diff --git a/.aiignore b/.aiignore
new file mode 100644
index 0000000..a53c1b1
--- /dev/null
+++ b/.aiignore
@@ -0,0 +1,176 @@
+# An .aiignore file follows the same syntax as a .gitignore file.
+# .gitignore documentation: https://git-scm.com/docs/gitignore
+
+# Secrets and environment
+.env
+.env.*
+.envrc
+*.key
+*.pem
+*.p12
+*.pfx
+*.crt
+*.cert
+*.der
+*.pub
+*.gpg
+*.asc
+*_credentials.*
+*credentials*.json
+secrets.*
+secret.*
+id_rsa*
+id_dsa*
+ssh_config
+.gnupg/
+
+# Brand- and env-specific configs
+envs/
+config/
+config/*.local.*
+*.local.*
+*.dev.*
+*.prod.*
+*.staging.*
+
+
+# Node.js
+node_modules/
+npm-debug.log*
+package-lock.json
+.pnpm-store/
+.pnp.*
+.yarn/*
+.yarn-cache/
+.yarnrc*
+.yarn/*
+.cache/
+.npm/
+.nvmrc
+
+# Logs and runtime artifacts
+logs/
+*.log
+*.pid
+*.seed
+*.pid.lock
+tmp/
+temp/
+.cache/
+coverage/
+.nyc_output/
+dist/
+build/
+out/
+.tsbuildinfo
+
+# Bundled/static artifacts
+public/
+dashboard/
+static/
+assets/build/
+*.min.js
+*.map
+
+# Test outputs
+junit.xml
+test-results/
+reports/
+coverage-final.json
+lcov.info
+
+# IDE/editor configs
+.idea/
+.vscode/
+*.iml
+*.ipr
+*.iws
+*.swp
+*.swo
+.DS_Store
+Thumbs.db
+
+# OS / tooling
+*.bak
+*.tmp
+*.orig
+*.patch
+*.tar
+*.tar.*
+*.zip
+*.7z
+*.gz
+*.bz2
+
+# PHP / Composer
+vendor/
+composer.lock
+phpunit.xml
+phpunit.xml.dist
+.cache/phpunit/*
+.phpunit.result.cache
+
+# WordPress-specific
+wp-config.php
+wp-content/uploads/
+wp-content/cache/
+wp-content/upgrade/
+wp-content/backups-*/
+wp-content/advanced-cache.php
+wp-content/object-cache.php
+wp-content/debug.log
+
+# Docker / containers
+docker-compose*.yml
+Dockerfile*
+.dockerignore
+.docker/
+docker/
+compose/
+*.env.docker
+.env.docker*
+
+# CI/CD tokens and artifacts
+.github/
+.gitlab/
+.gitlab-ci.yml
+.github/workflows/
+*.pem.enc
+*.secret
+*.token
+*.vault
+*.vault.json
+
+# Sentry / telemetry
+.sentryclirc
+.sentry-*
+.sentry/*
+
+# Swagger/OpenAPI generated artifacts
+swagger-definitions/*.yml
+swagger-definitions/**/*.yml
+
+# Database dumps
+*.sql
+*.sqlite
+*.sqlite3
+dump/
+backups/
+
+# Screenshots and media
+screenshot-service/**/*.png
+screenshot-service/**/*.jpg
+screenshot-service/**/*.jpeg
+*.png
+*.jpg
+*.jpeg
+*.gif
+*.mp4
+*.mov
+
+# Project-specific services
+plugin-provisioner-service/.env*
+screenshot-service/.env*
+wp-cloud-migrator/.env*
+wp-migrator/.env*
+wp-update-manager/.env*
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 87efc33..e78598f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- php-version: ['7.4', '8.0', '8.1', '8.2', '8.3']
+ php-version: ['8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
steps:
- name: Checkout code
@@ -46,7 +46,7 @@ jobs:
- name: Install PHPCS and WordPress Coding Standards
run: |
composer require --dev squizlabs/php_codesniffer wp-coding-standards/wpcs --no-interaction
- vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs
+ vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs,vendor/phpcsstandards/phpcsutils,vendor/phpcsstandards/phpcsextra
- name: Run PHPCS
run: vendor/bin/phpcs
@@ -72,14 +72,17 @@ jobs:
- name: Configure npm authentication
working-directory: frontend
run: |
- echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- env:
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ echo "//registry.npmjs.org/:_authToken=${{ secrets.DOGADO_TOKEN }}" > .npmrc
+ echo "always-auth=true" >> .npmrc
- name: Install dependencies
working-directory: frontend
run: npm ci
+ - name: Verify @dogado/gravity installation
+ working-directory: frontend
+ run: npm list @dogado/gravity
+
- name: Run ESLint
working-directory: frontend
run: npm run lint
@@ -123,9 +126,8 @@ jobs:
- name: Configure npm authentication
working-directory: frontend
run: |
- echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- env:
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ echo "//registry.npmjs.org/:_authToken=${{ secrets.DOGADO_TOKEN }}" > .npmrc
+ echo "always-auth=true" >> .npmrc
- name: Install dependencies
working-directory: frontend
@@ -169,12 +171,12 @@ jobs:
php-version: '8.2'
tools: composer:v2
+
- name: Configure npm authentication
working-directory: frontend
run: |
- echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- env:
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ echo "//registry.npmjs.org/:_authToken=${{ secrets.DOGADO_TOKEN }}" > .npmrc
+ echo "always-auth=true" >> .npmrc
- name: Install dependencies
run: |
@@ -229,12 +231,12 @@ jobs:
php-version: '8.2'
tools: composer:v2
+
- name: Configure npm authentication
working-directory: frontend
run: |
- echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- env:
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ echo "//registry.npmjs.org/:_authToken=${{ secrets.DOGADO_TOKEN }}" > .npmrc
+ echo "always-auth=true" >> .npmrc
- name: Install dependencies and build
run: |
diff --git a/.gitignore b/.gitignore
index 399c51c..022d6ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@ Thumbs.db
# Build artifacts
frontend/build/
frontend/standalone/
+assets/min-css/
# CI/CD
.phpcs-cache
diff --git a/assets/min-css/marketplace.min.css b/assets/min-css/marketplace.min.css
deleted file mode 100644
index 057870b..0000000
--- a/assets/min-css/marketplace.min.css
+++ /dev/null
@@ -1 +0,0 @@
-body.one-com_page_onecom-marketplace{background:#f7f7f7}.one-com_page_one-com_page_onecom-marketplace-products #wpcontent,.one-com_page_onecom-marketplace #wpcontent{padding:0}.gv-activated img.gv-icon-tile{width:48px;background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(20,20,20,.15);padding:8px}.gv-activated .marketplace-container .gv-product-header.gv-product-banner{display:flex;align-items:stretch;justify-content:space-between;background:var(--color-surface-toned);position:relative;overflow:hidden;border-radius:6px;border-color:#e2e2e2;max-height:320px}.gv-activated .marketplace-container .gv-product-header.gv-area-header{max-height:456px;border-color:#e2e2e2}.gv-product-banner .gv-left-banner img,.gv-product-banner .gv-right-banner img{width:100%;height:100%;max-height:320px;display:block;object-fit:cover}.gv-product-banner .gv-banner-content{flex:1;padding:0 1rem}#marketplace-root .gv-activated{max-width:1440px;margin:auto}.buttons-min-width{min-width:312px}#marketplace-root .gv-activated .gv-features-table.gv-product-table.gv-recommended-2 .gv-product:nth-child(2):before,#marketplace-root.gv-activated .gv-features-table.gv-product-table.gv-recommended-2 .gv-cell:nth-child(2):before{width:auto}#marketplace-root .gv-activated .gv-features-table.gv-product-table .gv-section .gv-table-row:last-child .gv-cell{border-bottom-width:1px!important}#marketplace-addons-root .gv-activated .gv-data-table .gv-icon-tile{max-width:unset}.gv-activated .gv-skeleton-loader .gv-icon-tile{height:48px;width:48px}.gv-activated .gv-addons-table{overflow:visible}.gv-activated .ocmp-plugin-cards{max-width:378px}@media (max-width:1024px){.gv-product-banner .gv-left-banner{display:none}.gv-activated .marketplace-container.gv-layout-product{gap:24px}.gv-activated .gv-addons-table{overflow-y:visible;overflow-x:auto}}@media (max-width:600px){.gv-activated .marketplace-container .gv-product-header.gv-product-banner{max-height:320px}#marketplace-root .gv-activated .marketplace-container .gv-product-header.gv-product-banner .gv-content.gv-banner-content{flex:0 0 50%;padding:16px}#marketplace-root .gv-activated .marketplace-container .gv-carousel-slide .gv-product-header.gv-area-header .gv-content{padding:16px}#marketplace-root .gv-activated .marketplace-container .gv-carousel-slide .gv-product-header.gv-area-header .gv-content h5{margin-bottom:8px}.gv-activated .gv-recommended-heading{font-size:24px;font-weight:700}.gv-activated .gv-addons-table{overflow-x:auto}}@media (max-width:768px){.gv-activated .marketplace-container .gv-product-header.gv-product-banner{max-height:320px}#marketplace-root .gv-activated .marketplace-container .gv-product-header .gv-content.gv-banner-content{flex:0 0 59%}#marketplace-root .gv-activated .gv-carousel-header{margin-top:10px}#marketplace-root .gv-activated .marketplace-container .gv-carousel-slide .gv-product-header.gv-area-header .gv-content{flex:0 0 50%}#marketplace-root .gv-activated .gv-product-single header.gv-product-header.gv-area-header{flex-direction:column;align-items:unset}#marketplace-root .gv-activated .gv-layout-product:not(.gv-product-single) .gv-product-header .gv-image{overflow:hidden;min-height:auto}#marketplace-root .gv-activated .gv-layout-product.gv-product-single .gv-product-header .gv-image picture{align-items:initial;display:block;height:auto;flex-wrap:initial}#marketplace-root .gv-activated .gv-layout-product.gv-product-single .gv-product-header .gv-image img{height:auto;max-width:480px;width:100%}.gv-activated .gv-addons-table{overflow-x:auto}}@media (min-width:1025px){.gv-activated .marketplace-container .gv-product-header.gv-product-banner{display:flex;align-items:center;justify-content:space-between;gap:0;max-width:100%}.gv-product-banner .gv-left-banner{flex:0 0 auto;max-width:25%;min-width:200px;transform:translate(-84px,6px)}.gv-product-banner .gv-right-banner{flex:0 0 auto;max-width:45%;min-width:250px;margin-top:50px;transform:translate(13px,22px)}.gv-product-banner .gv-banner-content{flex:1 1 auto;min-width:250px;padding:2rem 3rem}.gv-product-banner .gv-left-banner img,.gv-product-banner .gv-right-banner img{width:100%;height:100%;max-height:320px;display:block;object-fit:cover}#marketplace-root .gv-activated .marketplace-container .gv-carousel-slide .gv-product-header.gv-area-header .gv-content{flex:0 0 59%}#marketplace-root .gv-activated .marketplace-container .gv-carousel-slide .gv-product-header.gv-area-header{align-items:flex-start}}@media (min-width:769px) and (max-width:1024px){#marketplace-root .gv-activated .marketplace-container .gv-carousel-slide .gv-product-header.gv-area-header .gv-content{flex:0 0 44%}}@media (min-width:1025px) and (max-width:1280px){#marketplace-root .gv-activated .marketplace-container .gv-product-header.gv-product-banner .gv-content{margin-left:48px}}@media (min-width:1350px){.gv-activated .ocmp-plugin-cards .gv-desk-span-8{width:226px}}
\ No newline at end of file
diff --git a/backend/src/Controllers/MarketplaceController.php b/backend/src/Controllers/MarketplaceController.php
index fc902ca..d23c3d2 100644
--- a/backend/src/Controllers/MarketplaceController.php
+++ b/backend/src/Controllers/MarketplaceController.php
@@ -1,19 +1,52 @@
config = wp_parse_args( $config, [
- 'parent_menu_slug' => 'options-general.php',
- 'page_title' => __( 'Plugin Marketplace', 'text-domain' ),
- 'menu_title' => __( 'Marketplace', 'text-domain' ),
- 'menu_slug' => 'plugin-marketplace',
- 'api_url' => '', // default to empty, React can decide
- 'brand' => '', // optional brand identifier for marketplace API
- 'css_url' => '', // optional additional CSS
- 'css_handle' => 'marketplace-frontend-style',
- 'assets_path' => '', // Optional: explicit path to package root containing frontend/ directory
- 'payload' => [], // Optional: key-value array passed as headers for API authentication
- ] );
+ $this->config = wp_parse_args(
+ $config,
+ [
+ 'parent_menu_slug' => 'options-general.php',
+ 'page_title' => __( 'Plugin Marketplace', 'text-domain' ),
+ 'menu_title' => __( 'Marketplace', 'text-domain' ),
+ 'menu_slug' => 'plugin-marketplace',
+ 'api_url' => '', // default to empty, React can decide
+ 'brand' => '', // optional brand identifier for marketplace API
+ 'css_url' => '', // optional additional CSS
+ 'css_handle' => 'marketplace-frontend-style',
+ 'assets_path' => '', // Optional: explicit path to package root containing frontend/ directory
+ 'payload' => [], // Optional: key-value array passed as headers for API authentication
+ ]
+ );
// Defer model and asset initialization until needed (optimization for multi-plugin installs)
$this->model = null;
@@ -130,9 +171,9 @@ protected function find_package_root_via_composer() {
}
/**
- * Convert filesystem path to URL
+ * Convert filesystem path to URL.
*
- * @param string $path Absolute filesystem path
+ * @param string $path Absolute filesystem path.
* @return string URL
*/
protected function convert_path_to_url( $path ) {
@@ -170,14 +211,17 @@ public function init() {
add_action( 'wp_ajax_marketplace_deactivate_plugin', [ $this, 'ajax_deactivate_plugin' ] );
add_action( 'wp_ajax_marketplace_delete_plugin', [ $this, 'ajax_delete_plugin' ] );
- //reset transient for marketplace catalog
- add_action('upgrader_process_complete', [$this, 'reset_transient_on_core_update'], 10, 2);
- add_action('update_option_WPLANG', [$this, 'reset_transient_on_locale_change'], 999, 0);
+ // reset transient for marketplace catalog
+ add_action( 'upgrader_process_complete', [ $this, 'reset_transient_on_core_update' ], 10, 2 );
+ add_action( 'update_option_WPLANG', [ $this, 'reset_transient_on_locale_change' ], 999, 0 );
}
add_action( 'rest_api_init', [ $this, 'register_rest_routes' ] );
}
+ /**
+ * Register marketplace admin menu page.
+ */
public function register_menu() {
add_submenu_page(
$this->config['parent_menu_slug'],
@@ -191,12 +235,11 @@ public function register_menu() {
/**
* Register addons admin menu page with configurable slug.
- *
*/
public function register_addons_menu() {
- $menu_slug = $this->config['addons_menu_slug']?: 'onecom-marketplace-products';
- $page_title = $this->config['addons_page_title'] ?: __( 'Marketplace Products', '' );
- $menu_title = $this->config['addons_menu_title'] ?: __( 'Your add-ons', '' );
+ $menu_slug = $this->config['addons_menu_slug'] ?: 'onecom-marketplace-products';
+ $page_title = $this->config['addons_page_title'] ?: __( 'Marketplace Products', 'onecom-wp' );
+ $menu_title = $this->config['addons_menu_title'] ?: __( 'Your add-ons', 'onecom-wp' );
$parent_menu_slug = $this->config['parent_menu_slug'];
add_submenu_page(
@@ -209,8 +252,12 @@ public function register_addons_menu() {
);
}
+ /**
+ * Render the addons admin page.
+ */
public function render_addons_page() {
- // Lazy-load assets only when this page is actually rendered (optimization)
+ $wp_version = get_bloginfo( 'version' );
+ // Lazy-load assets only when this page is actually rendered (optimization).
$this->ensure_assets_resolved();
$base_path = $this->assets_base_path;
@@ -282,7 +329,7 @@ public function render_addons_page() {
'wp_user' => $wp_user, // Hashed
'wp_admin_email' => $wp_admin_email, // Hashed
'wp_role' => $wp_role,
- 'user_agent' => isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '',
+ 'user_agent' => isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : '',
'user_id' => $user_id,
];
@@ -324,21 +371,21 @@ public function render_addons_page() {
'activePlugins' => $active_plugins,
'activeThemeAuthor' => $active_theme_author,
'data_consent_status' => $data_consent_status,
- 'labels'=>array(
- 'install' => __('Install', 'onecom-wp'),
- 'installing' => __('Installing', 'onecom-wp'),
- 'activate' => __('Activate', 'onecom-wp'),
- 'deactivate' => __('Deactivate', 'onecom-wp'),
- 'activating' => __('Activating', 'onecom-wp'),
- 'deactivating' => __('Deactivating', 'onecom-wp'),
- 'download' => __('Download', 'onecom-wp'),
- 'downloading' => __('Downloading...', 'onecom-wp'),
- 'learnMore' => __('Learn more', 'onecom-wp'),
- 'all' => __('All', 'onecom-wp'),
- 'recommendedPlugins' => __('Recommended plugins', 'onecom-wp'),
- 'discouraged' => __('Discouraged plugins', 'onecom-wp'),
- 'moreDetails' => __('More details', 'onecom-wp'),
- ),
+ 'labels' => [
+ 'install' => __( 'Install', 'onecom-wp' ),
+ 'installing' => __( 'Installing', 'onecom-wp' ),
+ 'activate' => __( 'Activate', 'onecom-wp' ),
+ 'deactivate' => __( 'Deactivate', 'onecom-wp' ),
+ 'activating' => __( 'Activating', 'onecom-wp' ),
+ 'deactivating' => __( 'Deactivating', 'onecom-wp' ),
+ 'download' => __( 'Download', 'onecom-wp' ),
+ 'downloading' => __( 'Downloading...', 'onecom-wp' ),
+ 'learnMore' => __( 'Learn more', 'onecom-wp' ),
+ 'all' => __( 'All', 'onecom-wp' ),
+ 'recommendedPlugins' => __( 'Recommended plugins', 'onecom-wp' ),
+ 'discouraged' => __( 'Discouraged plugins', 'onecom-wp' ),
+ 'moreDetails' => __( 'More details', 'onecom-wp' ),
+ ],
// Always send mixpanel config so it can be used when consent is granted dynamically
'mixpanel' => [
'token' => $mixpanel_token,
@@ -426,7 +473,7 @@ public function render_admin_page() {
'wp_user' => $wp_user, // Hashed
'wp_admin_email' => $wp_admin_email, // Hashed
'wp_role' => $wp_role,
- 'user_agent' => isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '',
+ 'user_agent' => isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : '',
'user_id' => $user_id,
];
@@ -440,59 +487,59 @@ public function render_admin_page() {
unset( $global_properties['is_sandbox'] );
}
- // Get distinct_id from config if provided
- $distinct_id = ! empty( $this->config['mixp_distinct_id'] ) ? $this->config['mixp_distinct_id'] : '';
-
- // Get data consent status from config
- $data_consent_status = ! empty( $this->config['data_consent_status'] ) ? $this->config['data_consent_status'] : false;
-
- // Get Mixpanel token
- $mixpanel_token = $this->get_mixpanel_token();
-
- // Build base localized config
- $localized_config = [
- 'apiBaseUrl' => trailingslashit( rest_url( 'marketplace/v1/plugins' ) ),
- 'apiUrl' => $this->config['api_url'],
- 'locale' => $locale,
- 'brand' => $this->config['brand'],
- 'useWPHandlers' => true,
- 'wpConfig' => [
- 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
- 'adminUrl' => admin_url(),
- 'nonce' => wp_create_nonce( 'marketplace_nonce' ),
- 'rankMathRegistrationSkip' => (bool) ( ! empty( get_option( 'rank_math_registration_skip' ) ) && ( get_option( 'rank_math_registration_skip' ) === '1' || get_option( 'rank_math_registration_skip' ) === true ) ),
- ],
- 'enableDefaultStyles' => empty( $this->config['custom_css'] ),
- 'assetsBaseUrl' => $base_url,
- 'wpVersion' => $wp_version,
- 'activePlugins' => $active_plugins,
- 'activeThemeAuthor' => $active_theme_author,
- 'data_consent_status' => $data_consent_status,
- 'labels'=>array(
- 'install' => __('Install', 'onecom-wp'),
- 'installing' => __('Installing', 'onecom-wp'),
- 'activate' => __('Activate', 'onecom-wp'),
- 'deactivate' => __('Deactivate', 'onecom-wp'),
- 'activating' => __('Activating', 'onecom-wp'),
- 'deactivating' => __('Deactivating', 'onecom-wp'),
- 'download' => __('Download', 'onecom-wp'),
- 'downloading' => __('Downloading...', 'onecom-wp'),
- 'learnMore' => __('Learn more', 'onecom-wp'),
- 'all' => __('All', 'onecom-wp'),
- 'recommendedPlugins' => __('Recommended plugins', 'onecom-wp'),
- 'discouraged' => __('Discouraged plugins', 'onecom-wp'),
- 'moreDetails' => __('More details', 'onecom-wp'),
- ),
- // Always send mixpanel config so it can be used when consent is granted dynamically
- 'mixpanel' => [
- 'token' => $mixpanel_token,
- 'globalProperties' => $global_properties,
- 'distinctId' => $distinct_id,
- ],
- ];
-
- // Localize JS with config
- wp_localize_script( 'marketplace-frontend', 'marketplaceConfig', $localized_config );
+ // Get distinct_id from config if provided
+ $distinct_id = ! empty( $this->config['mixp_distinct_id'] ) ? $this->config['mixp_distinct_id'] : '';
+
+ // Get data consent status from config
+ $data_consent_status = ! empty( $this->config['data_consent_status'] ) ? $this->config['data_consent_status'] : false;
+
+ // Get Mixpanel token
+ $mixpanel_token = $this->get_mixpanel_token();
+
+ // Build base localized config
+ $localized_config = [
+ 'apiBaseUrl' => trailingslashit( rest_url( 'marketplace/v1/plugins' ) ),
+ 'apiUrl' => $this->config['api_url'],
+ 'locale' => $locale,
+ 'brand' => $this->config['brand'],
+ 'useWPHandlers' => true,
+ 'wpConfig' => [
+ 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
+ 'adminUrl' => admin_url(),
+ 'nonce' => wp_create_nonce( 'marketplace_nonce' ),
+ 'rankMathRegistrationSkip' => (bool) ( ! empty( get_option( 'rank_math_registration_skip' ) ) && ( get_option( 'rank_math_registration_skip' ) === '1' || get_option( 'rank_math_registration_skip' ) === true ) ),
+ ],
+ 'enableDefaultStyles' => empty( $this->config['custom_css'] ),
+ 'assetsBaseUrl' => $base_url,
+ 'wpVersion' => $wp_version,
+ 'activePlugins' => $active_plugins,
+ 'activeThemeAuthor' => $active_theme_author,
+ 'data_consent_status' => $data_consent_status,
+ 'labels' => [
+ 'install' => __( 'Install', 'onecom-wp' ),
+ 'installing' => __( 'Installing', 'onecom-wp' ),
+ 'activate' => __( 'Activate', 'onecom-wp' ),
+ 'deactivate' => __( 'Deactivate', 'onecom-wp' ),
+ 'activating' => __( 'Activating', 'onecom-wp' ),
+ 'deactivating' => __( 'Deactivating', 'onecom-wp' ),
+ 'download' => __( 'Download', 'onecom-wp' ),
+ 'downloading' => __( 'Downloading...', 'onecom-wp' ),
+ 'learnMore' => __( 'Learn more', 'onecom-wp' ),
+ 'all' => __( 'All', 'onecom-wp' ),
+ 'recommendedPlugins' => __( 'Recommended plugins', 'onecom-wp' ),
+ 'discouraged' => __( 'Discouraged plugins', 'onecom-wp' ),
+ 'moreDetails' => __( 'More details', 'onecom-wp' ),
+ ],
+ // Always send mixpanel config so it can be used when consent is granted dynamically
+ 'mixpanel' => [
+ 'token' => $mixpanel_token,
+ 'globalProperties' => $global_properties,
+ 'distinctId' => $distinct_id,
+ ],
+ ];
+
+ // Localize JS with config
+ wp_localize_script( 'marketplace-frontend', 'marketplaceConfig', $localized_config );
echo '
';
}
@@ -510,24 +557,47 @@ protected function get_mixpanel_token(): string {
return $token;
}
+ /**
+ * Register REST API routes.
+ */
public function register_rest_routes() {
- register_rest_route( 'marketplace/v1', '/plugins', [
- 'methods' => 'GET',
- 'callback' => [ $this, 'get_plugins' ],
- 'permission_callback' => '__return_true',
- ] );
-
- register_rest_route( 'marketplace/v1', '/plugins/active/(?P[a-zA-Z0-9-_]+)', [
- 'methods' => 'GET',
- 'callback' => [ $this, 'check_plugin_activation' ],
- 'permission_callback' => '__return_true',
- ] );
+ register_rest_route(
+ 'marketplace/v1',
+ '/plugins',
+ [
+ 'methods' => 'GET',
+ 'callback' => [ $this, 'get_plugins' ],
+ 'permission_callback' => '__return_true',
+ ]
+ );
+
+ register_rest_route(
+ 'marketplace/v1',
+ '/plugins/active/(?P[a-zA-Z0-9-_]+)',
+ [
+ 'methods' => 'GET',
+ 'callback' => [ $this, 'check_plugin_activation' ],
+ 'permission_callback' => '__return_true',
+ ]
+ );
}
+ /**
+ * Check if a plugin is activated.
+ *
+ * @param \WP_REST_Request $request The REST request object.
+ * @return WP_REST_Response The REST response object.
+ */
public function check_plugin_activation( $request ) {
$slug = $request->get_param( 'slug' );
if ( empty( $slug ) ) {
- return new WP_REST_Response( [ 'activated' => false, 'error' => 'Missing slug' ], 400 );
+ return new WP_REST_Response(
+ [
+ 'activated' => false,
+ 'error' => 'Missing slug',
+ ],
+ 400
+ );
}
require_once ABSPATH . 'wp-admin/includes/plugin.php';
@@ -535,13 +605,21 @@ public function check_plugin_activation( $request ) {
$activated = ( ! empty( $plugin_file ) && function_exists( 'is_plugin_active' ) ) ? is_plugin_active( $plugin_file ) : false;
- return new WP_REST_Response( [
- 'slug' => $slug,
- 'activated' => $activated,
- ], 200 );
+ return new WP_REST_Response(
+ [
+ 'slug' => $slug,
+ 'activated' => $activated,
+ ],
+ 200
+ );
}
-
+ /**
+ * Get plugins from the catalog.
+ *
+ * @param \WP_REST_Request $request The REST request object.
+ * @return WP_REST_Response The REST response object.
+ */
public function get_plugins( $request ) {
$brand_name = $this->config['brand'];
@@ -553,7 +631,7 @@ public function get_plugins( $request ) {
! empty( $marketplace_catalog['success'] ) &&
isset( $marketplace_catalog['data']['catalog'] ) &&
is_array( $marketplace_catalog['data']['catalog'] )
- ){
+ ) {
error_log( 'Using cached marketplace catalog' );
$plugins = $marketplace_catalog;
$is_cached = true;
@@ -570,7 +648,7 @@ public function get_plugins( $request ) {
! empty( $plugins['success'] ) &&
isset( $plugins['data']['catalog'] ) &&
is_array( $plugins['data']['catalog'] )
- ){
+ ) {
error_log( 'Caching marketplace catalog' );
set_site_transient( $transient_name, $plugins, 15 * MINUTE_IN_SECONDS );
} else {
@@ -581,7 +659,7 @@ public function get_plugins( $request ) {
}
// Attach WP state (installed/activated) for both legacy and new shapes
- $add_state = function( $plugin ) {
+ $add_state = function ( $plugin ) {
if ( empty( $plugin['slug'] ) ) {
return $plugin;
}
@@ -608,23 +686,23 @@ public function get_plugins( $request ) {
if ( empty( $section['items'] ) || ! is_array( $section['items'] ) ) {
continue;
}
- $plugins['data']['sections'][$si]['items'] = array_map( $add_state, $section['items'] );
+ $plugins['data']['sections'][ $si ]['items'] = array_map( $add_state, $section['items'] );
}
} elseif ( ! empty( $plugins['sections'] ) && is_array( $plugins['sections'] ) ) {
foreach ( $plugins['sections'] as $si => $section ) {
if ( empty( $section['items'] ) || ! is_array( $section['items'] ) ) {
continue;
}
- $plugins['sections'][$si]['items'] = array_map( $add_state, $section['items'] );
+ $plugins['sections'][ $si ]['items'] = array_map( $add_state, $section['items'] );
}
- } elseif ( ! empty( $plugins['data']['ui_json'] ) && is_array( $plugins['data']['ui_json'] ) ) {
- $plugins['data']['ui_json'] = array_map( $add_state, $plugins['data']['ui_json'] );
- }
+ } elseif ( ! empty( $plugins['data']['ui_json'] ) && is_array( $plugins['data']['ui_json'] ) ) {
+ $plugins['data']['ui_json'] = array_map( $add_state, $plugins['data']['ui_json'] );
+ }
- // Add is_cached flag to response
- $plugins['is_cached'] = $is_cached;
+ // Add is_cached flag to response
+ $plugins['is_cached'] = $is_cached;
- return new WP_REST_Response( $plugins, 200 );
+ return new WP_REST_Response( $plugins, 200 );
}
/**
@@ -634,12 +712,11 @@ public function ajax_install_plugin() {
check_ajax_referer( 'marketplace_nonce', 'nonce' );
if ( ! current_user_can( 'install_plugins' ) ) {
- wp_send_json_error([ 'message' => __( 'Permission denied', 'onecom-wp' ) ]);
+ wp_send_json_error( [ 'message' => __( 'Permission denied', 'onecom-wp' ) ] );
}
-
- $slug = sanitize_text_field( $_REQUEST['slug'] ?? '' );
- $download_url = esc_url_raw( $_REQUEST['download_url'] ?? '' );
+ $slug = sanitize_text_field( wp_unslash( $_REQUEST['slug'] ?? '' ) );
+ $download_url = esc_url_raw( wp_unslash( $_REQUEST['download_url'] ?? '' ) );
if ( empty( $slug ) || empty( $download_url ) ) {
wp_send_json_error( [ 'message' => __( 'Invalid plugin data.', 'text-domain' ) ] );
@@ -648,7 +725,7 @@ public function ajax_install_plugin() {
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
$upgrader = new \Plugin_Upgrader( new \Automatic_Upgrader_Skin() );
- $result = $upgrader->install( $download_url ); // use URL from React
+ $result = $upgrader->install( $download_url ); // use URL from React
if ( is_wp_error( $result ) ) {
wp_send_json_error( [ 'message' => $result->get_error_message() ] );
@@ -664,11 +741,13 @@ public function ajax_install_plugin() {
wp_send_json_error( [ 'message' => __( 'Plugin installation failed. The plugin was not found after installation.', 'onecom-wp' ) ] );
}
- wp_send_json_success([
- 'message' => __( 'Plugin installed successfully', 'onecom-wp' ),
- 'installed' => true,
- 'activated' => false,
- ]);
+ wp_send_json_success(
+ [
+ 'message' => __( 'Plugin installed successfully', 'onecom-wp' ),
+ 'installed' => true,
+ 'activated' => false,
+ ]
+ );
}
/**
@@ -809,7 +888,7 @@ private function is_installed( $slug = '' ): bool {
* but installed as "seo-by-rank-math-pro/rank-math-pro.php"), the function will scan installed
* plugins to find matches based on the main plugin file name.
*
- * @param string $slug
+ * @param string $slug The plugin slug.
* @return string Plugin file path relative to plugins dir, or empty string if not found.
*/
private function resolve_plugin_file_by_slug( $slug ): string {
@@ -825,7 +904,7 @@ private function resolve_plugin_file_by_slug( $slug ): string {
if ( isset( $plugins[ $slug ] ) ) {
return $slug;
}
- // Also try trimming any leading slashes just in case
+ // Also try trimming any leading slashes just in case.
$trimmed = ltrim( $slug, '/' );
if ( isset( $plugins[ $trimmed ] ) ) {
return $trimmed;
@@ -839,27 +918,27 @@ private function resolve_plugin_file_by_slug( $slug ): string {
}
}
- // Fallback: scan installed plugins for partial matches
+ // Fallback: scan installed plugins for partial matches.
// This handles cases like:
- // 1. slug "rank-math-pro" matching "seo-by-rank-math-pro/rank-math-pro.php" (file name)
+ // 1. slug "rank-math-pro" matching "seo-by-rank-math-pro/rank-math-pro.php" (file name).
foreach ( $plugins as $file => $data ) {
$parts = explode( '/', $file );
if ( count( $parts ) === 2 ) {
$directory = $parts[0];
$main_file = $parts[1];
- // Check if directory exactly matches the slug
+ // Check if directory exactly matches the slug.
if ( $directory === $slug ) {
return $file;
}
- // Check if the main plugin file name matches the slug
+ // Check if the main plugin file name matches the slug.
$file_slug = str_replace( '.php', '', $main_file );
if ( $file_slug === $slug ) {
return $file;
}
} elseif ( count( $parts ) === 1 ) {
- // Single file plugin
+ // Single file plugin.
$file_slug = str_replace( '.php', '', $parts[0] );
if ( $file_slug === $slug ) {
return $file;
@@ -870,6 +949,9 @@ private function resolve_plugin_file_by_slug( $slug ): string {
return '';
}
+ /**
+ * Activate plugin via AJAX.
+ */
public function ajax_activate_plugin() {
if ( ! current_user_can( 'activate_plugins' ) ) {
wp_send_json_error( [ 'message' => __( 'You do not have permission to activate plugins.', 'text-domain' ) ] );
@@ -883,12 +965,12 @@ public function ajax_activate_plugin() {
wp_send_json_error( [ 'message' => __( 'Missing plugin slug.', 'text-domain' ) ] );
}
- // Check if plugin is installed first
+ // Check if plugin is installed first.
if ( ! $this->is_installed( $slug ) ) {
wp_send_json_error( [ 'message' => __( 'Plugin not installed.', 'text-domain' ) ] );
}
- // Resolve the plugin file using the enhanced helper function
+ // Resolve the plugin file using the enhanced helper function.
require_once ABSPATH . 'wp-admin/includes/plugin.php';
$plugin_file = $this->resolve_plugin_file_by_slug( $slug );
@@ -897,7 +979,7 @@ public function ajax_activate_plugin() {
}
if ( $plugin_file === 'seo-by-rank-math-pro/rank-math-pro.php' ) {
- // Also activate the Free version if it's installed and not active
+ // Also activate the Free version if it's installed and not active.
$free_plugin_file = 'seo-by-rank-math/rank-math.php';
if ( $this->is_installed( 'seo-by-rank-math' ) && ! is_plugin_active( $free_plugin_file ) ) {
activate_plugin( $free_plugin_file );
@@ -910,28 +992,33 @@ public function ajax_activate_plugin() {
wp_send_json_error( [ 'message' => $result->get_error_message() ] );
}
- wp_send_json_success( [
- 'installed' => true,
- 'activated' => true,
- 'message' => __( 'Plugin activated successfully.', 'text-domain' ),
- ] );
+ wp_send_json_success(
+ [
+ 'installed' => true,
+ 'activated' => true,
+ 'message' => __( 'Plugin activated successfully.', 'text-domain' ),
+ ]
+ );
}
+ /**
+ * Deactivate plugin via AJAX.
+ */
public function ajax_deactivate_plugin() {
check_ajax_referer( 'marketplace_nonce', 'nonce' );
if ( ! current_user_can( 'activate_plugins' ) ) {
- wp_send_json_error([ 'message' => __( 'Permission denied', 'onecom-wp' ) ]);
+ wp_send_json_error( [ 'message' => __( 'Permission denied', 'onecom-wp' ) ] );
}
- $slug = sanitize_text_field( $_REQUEST['slug'] ?? '' );
+ $slug = sanitize_text_field( wp_unslash( $_REQUEST['slug'] ?? '' ) );
if ( empty( $slug ) ) {
- wp_send_json_error([ 'message' => __( 'Invalid plugin slug', 'onecom-wp' ) ]);
+ wp_send_json_error( [ 'message' => __( 'Invalid plugin slug', 'onecom-wp' ) ] );
}
// Check if plugin is installed first
if ( ! $this->is_installed( $slug ) ) {
- wp_send_json_error([ 'message' => __( 'Plugin not installed', 'onecom-wp' ) ]);
+ wp_send_json_error( [ 'message' => __( 'Plugin not installed', 'onecom-wp' ) ] );
}
// Resolve the plugin file using the enhanced helper function
@@ -946,7 +1033,7 @@ public function ajax_deactivate_plugin() {
}
if ( empty( $plugin_file ) ) {
- wp_send_json_error([ 'message' => __( 'Plugin file not found', 'onecom-wp' ) ]);
+ wp_send_json_error( [ 'message' => __( 'Plugin file not found', 'onecom-wp' ) ] );
}
// Ensure the plugin is loaded so its deactivation hooks are registered.
@@ -958,14 +1045,16 @@ public function ajax_deactivate_plugin() {
deactivate_plugins( $plugin_file, false, null );
if ( is_plugin_active( $plugin_file ) ) {
- wp_send_json_error([ 'message' => __( 'Failed to deactivate plugin', 'onecom-wp' ) ]);
+ wp_send_json_error( [ 'message' => __( 'Failed to deactivate plugin', 'onecom-wp' ) ] );
}
- wp_send_json_success([
- 'message' => __( 'Plugin deactivated successfully', 'onecom-wp' ),
- 'installed' => true,
- 'activated' => false,
- ]);
+ wp_send_json_success(
+ [
+ 'message' => __( 'Plugin deactivated successfully', 'onecom-wp' ),
+ 'installed' => true,
+ 'activated' => false,
+ ]
+ );
}
public function ajax_delete_plugin() {
@@ -975,7 +1064,7 @@ public function ajax_delete_plugin() {
wp_send_json_error( [ 'message' => __( 'Permission denied', 'onecom-wp' ) ] );
}
- $slug = sanitize_text_field( $_REQUEST['slug'] ?? '' );
+ $slug = sanitize_text_field( wp_unslash( $_REQUEST['slug'] ?? '' ) );
if ( empty( $slug ) ) {
wp_send_json_error( [ 'message' => __( 'Invalid plugin slug', 'onecom-wp' ) ] );
}
@@ -1011,24 +1100,26 @@ public function ajax_delete_plugin() {
wp_send_json_error( [ 'message' => __( 'Failed to delete plugin', 'onecom-wp' ) ] );
}
- wp_send_json_success( [
- 'message' => __( 'Plugin deleted successfully', 'onecom-wp' ),
- 'installed' => false,
- 'activated' => false,
- ] );
+ wp_send_json_success(
+ [
+ 'message' => __( 'Plugin deleted successfully', 'onecom-wp' ),
+ 'installed' => false,
+ 'activated' => false,
+ ]
+ );
}
/**
* Resets the transient on core update.
+ *
* @param $upgrader
* @param $hook_extra
* @return void
*/
- public function reset_transient_on_core_update($upgrader, $hook_extra): void
- {
+ public function reset_transient_on_core_update( $upgrader, $hook_extra ): void {
if (
empty( $hook_extra['action'] ) || 'update' !== $hook_extra['action'] ||
- empty( $hook_extra['type'] ) || 'core' !== $hook_extra['type']
+ empty( $hook_extra['type'] ) || 'core' !== $hook_extra['type']
) {
return;
}
@@ -1047,7 +1138,7 @@ public function reset_transient_on_core_update($upgrader, $hook_extra): void
*
* @return void
*/
- public function reset_transient_on_locale_change(){
+ public function reset_transient_on_locale_change() {
$brand_name = $this->config['brand'];
$transient_name = "{$brand_name}_marketplace_catalog";
$deleted = delete_site_transient( $transient_name );
diff --git a/backend/src/Models/MarketplaceModel.php b/backend/src/Models/MarketplaceModel.php
index 0bf63ce..30add2b 100644
--- a/backend/src/Models/MarketplaceModel.php
+++ b/backend/src/Models/MarketplaceModel.php
@@ -1,17 +1,38 @@
api_url = $api_url;
}
+ /**
+ * Fetch plugins from the API.
+ *
+ * @param array $payload Optional payload for the request.
+ * @return array The fetched plugins data.
+ */
public function fetch_plugins( array $payload = [] ): array {
$args = [
'timeout' => 30,
@@ -29,7 +50,7 @@ public function fetch_plugins( array $payload = [] ): array {
$body = wp_remote_retrieve_body( $response );
- // Handle null or empty body to avoid PHP 8.1+ deprecation warning
+ // Handle null or empty body to avoid PHP 8.1+ deprecation warning.
if ( empty( $body ) ) {
return [];
}
diff --git a/backend/src/marketplace.php b/backend/src/marketplace.php
index 962e143..cb8bb52 100644
--- a/backend/src/marketplace.php
+++ b/backend/src/marketplace.php
@@ -1,40 +1,50 @@
getMessage());
+ MarketplaceController::boot( $config );
+ } catch ( \Exception $e ) {
+ error_log( $e->getMessage() );
}
}
-}
\ No newline at end of file
+}
diff --git a/composer.json b/composer.json
index b6b34db..f3b1b2d 100644
--- a/composer.json
+++ b/composer.json
@@ -9,5 +9,16 @@
},
"require": {
"php": ">=7.4"
+ },
+ "require-dev": {
+ "squizlabs/php_codesniffer": "^3.10",
+ "wp-coding-standards/wpcs": "^3.0",
+ "phpcsstandards/phpcsutils": "^1.0",
+ "phpcsstandards/phpcsextra": "^1.0"
+ },
+ "config": {
+ "allow-plugins": {
+ "dealerdirect/phpcodesniffer-composer-installer": true
+ }
}
}
\ No newline at end of file
diff --git a/css/marketplace.css b/css/marketplace.css
index 7512ef6..9d68797 100644
--- a/css/marketplace.css
+++ b/css/marketplace.css
@@ -216,6 +216,9 @@ body.one-com_page_onecom-marketplace{
#marketplace-root .gv-activated .marketplace-container .gv-carousel-slide .gv-product-header.gv-area-header {
align-items: flex-start;
}
+ .gv-activated .ocmp-plugin-cards .gv-desk-span-8{
+ width:226px;
+ }
}
@media (min-width: 769px ) and (max-width: 1024px) {
diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json
deleted file mode 100644
index 72b5241..0000000
--- a/frontend/.eslintrc.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "extends": [
- "eslint:recommended",
- "plugin:react/recommended",
- "plugin:react-hooks/recommended",
- "plugin:jsx-a11y/recommended",
- "prettier"
- ],
- "plugins": ["react", "react-hooks", "jsx-a11y"],
- "env": {
- "browser": true,
- "es2021": true,
- "node": true
- },
- "parserOptions": {
- "ecmaVersion": "latest",
- "sourceType": "module",
- "ecmaFeatures": {
- "jsx": true
- }
- },
- "settings": {
- "react": {
- "version": "detect"
- }
- },
- "rules": {
- "react/react-in-jsx-scope": "off",
- "react/prop-types": "warn",
- "no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }],
- "no-console": ["warn", { "allow": ["warn", "error"] }]
- },
- "ignorePatterns": ["build/", "standalone/", "node_modules/", "webpack.wp.js", "vite.config.js"]
-}
diff --git a/frontend/.prettierignore b/frontend/.prettierignore
index c4b9847..77db192 100644
--- a/frontend/.prettierignore
+++ b/frontend/.prettierignore
@@ -1,6 +1,7 @@
build/
standalone/
node_modules/
+coverage/
*.min.js
*.min.css
package-lock.json
diff --git a/frontend/.prettierrc b/frontend/.prettierrc
index 49fb29b..1e26b16 100644
--- a/frontend/.prettierrc
+++ b/frontend/.prettierrc
@@ -1,10 +1,10 @@
{
"semi": true,
- "trailingComma": "es5",
"singleQuote": true,
+ "trailingComma": "es5",
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
- "arrowParens": "avoid",
+ "arrowParens": "always",
"endOfLine": "lf"
-}
+}
\ No newline at end of file
diff --git a/frontend/build/addons.asset.php b/frontend/build/addons.asset.php
deleted file mode 100644
index 3113d0a..0000000
--- a/frontend/build/addons.asset.php
+++ /dev/null
@@ -1 +0,0 @@
- array('react', 'react-dom'), 'version' => '00e49f76283dc64bb072');
diff --git a/frontend/build/addons.js b/frontend/build/addons.js
deleted file mode 100644
index 7a5673a..0000000
--- a/frontend/build/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(()=>{var e={108:(e,t,r)=>{"use strict";r.d(t,{u:()=>n});const n=(e,t)=>{if(!e)return!0;const r=String(e).split("."),n=String(t).split(".");for(let e=0;ei)return!0;if(t{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Oppdater side","ui.notifications.couldNotLoad":"Kunne ikke laste inn siden","ui.notifications.refreshPage":"Oppdater siden og kontakt vår support hvis problemet vedvarer."}')},488:(e,t,r)=>{"use strict";r.d(t,{Dn:()=>c,M:()=>l,Tc:()=>a});const n={EUR:"€",USD:"$",GBP:"£",DKK:"kr",NOK:"kr",SEK:"kr"},i=["DKK","SEK","NOK"],o=e=>n[e]||e,s=(e,t,r)=>i.includes(r)?`${e} ${t}`:`${t} ${e}`,a=e=>{if(e.prices&&Array.isArray(e.prices)&&e.prices.length>0){const t=e.prices.find(e=>"full"===e.priceType);if(t&&t.amount&&t.currency){const e=o(t.currency),r=Number(t.amount).toFixed(2);return s(r,e,t.currency)}}return null},c=e=>{if(e.prices&&Array.isArray(e.prices)&&e.prices.length>0){const t=e.prices.find(e=>"rebate"===e.priceType);if(t&&void 0!==t.amount&&null!==t.amount&&t.currency){const e=o(t.currency),r=Number(t.amount).toFixed(2);return s(r,e,t.currency)}}return null},l=(e,t="Free",r=null)=>{if("free"===e.licenseType)return t;if(e.prices&&Array.isArray(e.prices)&&e.prices.length>0){const t=e.prices.find(e=>"rebate"===e.priceType);if(t&&"premium"===e.licenseType){if(0===t.amount)return r?.labels?.freeUntilRenewal||"Free until renewal";if(t.amount&&t.currency){const e=o(t.currency),r=Number(t.amount).toFixed(2);return`${s(r,e,t.currency)} `}}let n=e.prices.find(e=>"full"===e.priceType&&(!0===e.isActive||void 0===e.isActive));if(n||(n=e.prices.find(e=>!0===e.isActive)),n||(n=e.prices[0]),n&&n.amount&&n.currency){const e=o(n.currency),t=Number(n.amount).toFixed(2);return s(t,e,n.currency)}}if(e.priceCurrency&&e.priceAmount){const t=o(e.priceCurrency),r=Number(e.priceAmount).toFixed(2);return s(r,t,e.priceCurrency)}return""}},1174:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(1609),i=r(7979);function o(){const{uiI18n:e}=(0,i.D)(),t=e?.notifications?.updateWPText?.replace("{0}","6.2");return(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col gv-flex-wrap gv-gap-lg gv-items-center gv-justify-center gv-p-fluid"},(0,n.createElement)("div",{className:"gv-text-center"},(0,n.createElement)("h5",{className:"gv-header-md gv-mb-sm"},e?.notifications?.updateWPTitle),(0,n.createElement)("p",{className:"gv-text-md gv-mb-lg"},t),(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary buttons-min-width",onClick:()=>{window.location.href="undefined"!=typeof window&&window.marketplaceConfig?.wpConfig?.adminUrl?`${window.marketplaceConfig.wpConfig.adminUrl}update-core.php`:"/wp-admin/update-core.php"}},(0,n.createElement)("span",null,e?.updateWPButton))))}},1199:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Pagina verversen","ui.notifications.couldNotLoad":"Kon de pagina niet laden","ui.notifications.refreshPage":"Ververs de pagina en neem contact op met onze (Engelstalige) support als het probleem zich blijft voordoen."}')},1338:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(1609),i=r(7979),o=r(7008),s=r(3220);function a({plugin:e}){const{assetsBaseUrl:t,pluginInAction:r,subscriptionStatus:a,isCheckingSubscription:c,isOnecomBrand:l,handlePluginAction:u,uiI18n:p,isSpecialPlugin:h}=(0,i.D)(),d=a[e.slug],f=c[e.slug],g=t||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",m=g?`${g}assets/`:"",v=t=>{const r=!e.installed;if(l&&h(e.slug)&&r&&"install"===t){(0,o.Mh)({buttonName:"Install",buttonAction:"product_install",plugin:e,context:{action:t,result:"initiated"}});const r=new CustomEvent("onecom-plugin-provision",{detail:{slug:e.slug},bubbles:!0,cancelable:!0,composed:!0});return void document.dispatchEvent(r)}u(t,e,"product_detail")},y=(e,t)=>e?e.replace("{0}",t||""):"",b=e?.name||"",_=l&&h(e.slug)&&!e.installed&&!1===d,w=l&&h(e.slug)&&!e.installed&&(f||void 0===d);return(0,n.createElement)("div",{className:"plugin-actions gv-mt-md"},w?(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md"}):_?(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary",onClick:()=>{(0,o.Mh)({buttonName:"Select",buttonAction:"subscribe_addon",plugin:e});const t=new CustomEvent("onecom-subscribe-addon",{detail:{slug:e.slug},bubbles:!0,cancelable:!0,composed:!0});document.dispatchEvent(t)},disabled:f},"Select"):e.installed?e.activated?(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary",onClick:()=>{(0,o.Mh)({buttonName:"Manage",buttonAction:"manage_product",context:{product_slug:e.slug,product_name:e.name,has_redirect_url:!(!e.redirectUrl||""===e.redirectUrl.trim()),has_onboarding_url:!(!e.onboardingUrl||""===e.onboardingUrl.trim())}});const t=(0,s.v)(e,!1);(0,s.J)(t)}},(0,n.createElement)("span",null,p?.labels?.manage||"Manage"),(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${m}icons/arrow_right.svg`})):(0,n.createElement)("button",{className:"gv-button gv-button-primary",disabled:r[e.slug],onClick:()=>v("activate")},r[e.slug]?y(p?.notifications?.activating||"Activating {0}",b):p?.activateButton||e.i18n?.activateButton||"Activate"):(0,n.createElement)("button",{className:"gv-button "+("seo-by-rank-math"===e.slug?"gv-button-secondary":"gv-button-primary"),disabled:r[e.slug],onClick:()=>v("install")},r[e.slug]?y(p?.notifications?.installing||"Installing {0}",b):p?.installButton||e.i18n?.installButton||"Install"))}},1352:(e,t,r)=>{"use strict";r.d(t,{TO:()=>o.T,gJ:()=>s,hz:()=>a,rV:()=>i.r});var n=r(1609),i=r(7565),o=r(8484);r(1831);const s=(0,n.createContext)();class a{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}},1609:e=>{"use strict";e.exports=window.React},1755:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(1609),i=r(7979),o=r(8291);function s(){const{assetsBaseUrl:e}=(0,i.D)(),{t}=(0,o.Bd)();return e||void 0!==window.marketplaceConfig&&window.marketplaceConfig,(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col gv-flex-wrap gv-gap-lg gv-items-center gv-justify-center gv-p-fluid"},(0,n.createElement)("div",{className:"gv-text-center"},(0,n.createElement)("h5",{className:"gv-header-md gv-mb-sm"},t("ui.notifications.couldNotLoad")),(0,n.createElement)("p",{className:"gv-text-md gv-mb-lg"},t("ui.notifications.refreshPage")),(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary buttons-min-width",onClick:()=>{window.location.reload()}},(0,n.createElement)("span",null,t("ui.button.refreshPage")))))}},1831:(e,t,r)=>{"use strict";r.d(t,{r:()=>o});var n=r(7565),i=r(8484);const o={type:"3rdParty",init(e){(0,n.P)(e.options.react),(0,i.V)(e)}}},2176:(e,t,r)=>{"use strict";r(8437)},2635:(e,t,r)=>{"use strict";r.r(t),r.d(t,{changeLanguage:()=>Q,createInstance:()=>G,default:()=>H,dir:()=>K,exists:()=>re,getFixedT:()=>ee,hasLoadedNamespace:()=>ie,init:()=>J,keyFromSelector:()=>I,loadLanguages:()=>se,loadNamespaces:()=>oe,loadResources:()=>Y,reloadResources:()=>Z,setDefaultNamespace:()=>ne,t:()=>te,use:()=>X});const n=e=>"string"==typeof e,i=()=>{let e,t;const r=new Promise((r,n)=>{e=r,t=n});return r.resolve=e,r.reject=t,r},o=e=>null==e?"":""+e,s=/###/g,a=e=>e&&e.indexOf("###")>-1?e.replace(s,"."):e,c=e=>!e||n(e),l=(e,t,r)=>{const i=n(t)?t.split("."):t;let o=0;for(;o{const{obj:n,k:i}=l(e,t,Object);if(void 0!==n||1===t.length)return void(n[i]=r);let o=t[t.length-1],s=t.slice(0,t.length-1),a=l(e,s,Object);for(;void 0===a.obj&&s.length;)o=`${s[s.length-1]}.${o}`,s=s.slice(0,s.length-1),a=l(e,s,Object),a?.obj&&void 0!==a.obj[`${a.k}.${o}`]&&(a.obj=void 0);a.obj[`${a.k}.${o}`]=r},p=(e,t)=>{const{obj:r,k:n}=l(e,t);if(r&&Object.prototype.hasOwnProperty.call(r,n))return r[n]},h=(e,t,r)=>{for(const i in t)"__proto__"!==i&&"constructor"!==i&&(i in e?n(e[i])||e[i]instanceof String||n(t[i])||t[i]instanceof String?r&&(e[i]=t[i]):h(e[i],t[i],r):e[i]=t[i]);return e},d=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var f={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const g=e=>n(e)?e.replace(/[&<>"'\/]/g,e=>f[e]):e,m=[" ",",","?","!",";"],v=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(void 0!==t)return t;const r=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,r),this.regExpQueue.push(e),r}}(20),y=(e,t,r=".")=>{if(!e)return;if(e[t]){if(!Object.prototype.hasOwnProperty.call(e,t))return;return e[t]}const n=t.split(r);let i=e;for(let e=0;e-1&&se?.replace("_","-"),_={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}};class w{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||"i18next:",this.logger=e||_,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,r,i){return i&&!this.debug?null:(n(e[0])&&(e[0]=`${r}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new w(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return(e=e||this.options).prefix=e.prefix||this.prefix,new w(this.logger,e)}}var k=new w;class S{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(e=>{this.observers[e]||(this.observers[e]=new Map);const r=this.observers[e].get(t)||0;this.observers[e].set(t,r+1)}),this}off(e,t){this.observers[e]&&(t?this.observers[e].delete(t):delete this.observers[e])}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,r])=>{for(let n=0;n{for(let i=0;i-1&&this.options.ns.splice(t,1)}getResource(e,t,r,i={}){const o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,s=void 0!==i.ignoreJSONStructure?i.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;e.indexOf(".")>-1?a=e.split("."):(a=[e,t],r&&(Array.isArray(r)?a.push(...r):n(r)&&o?a.push(...r.split(o)):a.push(r)));const c=p(this.data,a);return!c&&!t&&!r&&e.indexOf(".")>-1&&(e=a[0],t=a[1],r=a.slice(2).join(".")),!c&&s&&n(r)?y(this.data?.[e]?.[t],r,o):c}addResource(e,t,r,n,i={silent:!1}){const o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator;let s=[e,t];r&&(s=s.concat(o?r.split(o):r)),e.indexOf(".")>-1&&(s=e.split("."),n=t,t=s[1]),this.addNamespaces(t),u(this.data,s,n),i.silent||this.emit("added",e,t,r,n)}addResources(e,t,r,i={silent:!1}){for(const i in r)(n(r[i])||Array.isArray(r[i]))&&this.addResource(e,t,i,r[i],{silent:!0});i.silent||this.emit("added",e,t,r)}addResourceBundle(e,t,r,n,i,o={silent:!1,skipCopy:!1}){let s=[e,t];e.indexOf(".")>-1&&(s=e.split("."),n=r,r=t,t=s[1]),this.addNamespaces(t);let a=p(this.data,s)||{};o.skipCopy||(r=JSON.parse(JSON.stringify(r))),n?h(a,r,i):a={...a,...r},u(this.data,s,a),o.silent||this.emit("added",e,t,r)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return void 0!==this.getResource(e,t)}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}}var C={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,r,n,i){return e.forEach(e=>{t=this.processors[e]?.process(t,r,n,i)??t}),t}};const E=Symbol("i18next/PATH_KEY");function I(e,t){const{[E]:r}=e(function(){const e=[],t=Object.create(null);let r;return t.get=(n,i)=>(r?.revoke?.(),i===E?e:(e.push(i),r=Proxy.revocable(n,t),r.proxy)),Proxy.revocable(Object.create(null),t).proxy}());return r.join(t?.keySeparator??".")}const O={},N=e=>!n(e)&&"boolean"!=typeof e&&"number"!=typeof e;class A extends S{constructor(e,t={}){super(),((e,t,r)=>{["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"].forEach(e=>{t[e]&&(r[e]=t[e])})})(0,e,this),this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=k.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){const r={...t};if(null==e)return!1;const n=this.resolve(e,r);return void 0!==n?.res}extractFromKey(e,t){let r=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===r&&(r=":");const i=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const s=r&&e.indexOf(r)>-1,a=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||((e,t,r)=>{t=t||"",r=r||"";const n=m.filter(e=>t.indexOf(e)<0&&r.indexOf(e)<0);if(0===n.length)return!0;const i=v.getRegExp(`(${n.map(e=>"?"===e?"\\?":e).join("|")})`);let o=!i.test(e);if(!o){const t=e.indexOf(r);t>0&&!i.test(e.substring(0,t))&&(o=!0)}return o})(e,r,i));if(s&&!a){const t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:n(o)?[o]:o};const s=e.split(r);(r!==i||r===i&&this.options.ns.indexOf(s[0])>-1)&&(o=s.shift()),e=s.join(i)}return{key:e,namespaces:n(o)?[o]:o}}translate(e,t,r){let i="object"==typeof t?{...t}:t;if("object"!=typeof i&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof i&&(i={...i}),i||(i={}),null==e)return"";"function"==typeof e&&(e=I(e,{...this.options,...i})),Array.isArray(e)||(e=[String(e)]);const o=void 0!==i.returnDetails?i.returnDetails:this.options.returnDetails,s=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,{key:a,namespaces:c}=this.extractFromKey(e[e.length-1],i),l=c[c.length-1];let u=void 0!==i.nsSeparator?i.nsSeparator:this.options.nsSeparator;void 0===u&&(u=":");const p=i.lng||this.language,h=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if("cimode"===p?.toLowerCase())return h?o?{res:`${l}${u}${a}`,usedKey:a,exactUsedKey:a,usedLng:p,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${a}`:o?{res:a,usedKey:a,exactUsedKey:a,usedLng:p,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:a;const d=this.resolve(e,i);let f=d?.res;const g=d?.usedKey||a,m=d?.exactUsedKey||a,v=void 0!==i.joinArrays?i.joinArrays:this.options.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject,b=void 0!==i.count&&!n(i.count),_=A.hasDefaultValue(i),w=b?this.pluralResolver.getSuffix(p,i.count,i):"",k=i.ordinal&&b?this.pluralResolver.getSuffix(p,i.count,{ordinal:!1}):"",S=b&&!i.ordinal&&0===i.count,x=S&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${w}`]||i[`defaultValue${k}`]||i.defaultValue;let C=f;y&&!f&&_&&(C=x);const E=N(C),O=Object.prototype.toString.apply(C);if(!(y&&C&&E&&["[object Number]","[object Function]","[object RegExp]"].indexOf(O)<0)||n(v)&&Array.isArray(C))if(y&&n(v)&&Array.isArray(f))f=f.join(v),f&&(f=this.extendTranslation(f,e,i,r));else{let t=!1,n=!1;!this.isValidLookup(f)&&_&&(t=!0,f=x),this.isValidLookup(f)||(n=!0,f=a);const o=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:f,c=_&&x!==f&&this.options.updateMissing;if(n||t||c){if(this.logger.log(c?"updateKey":"missingKey",p,l,a,c?x:f),s){const e=this.resolve(a,{...i,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if("fallback"===this.options.saveMissingTo&&t&&t[0])for(let r=0;r{const n=_&&r!==f?r:o;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,n,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,n,c,i),this.emit("missingKey",e,l,t,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&b?e.forEach(e=>{const t=this.pluralResolver.getSuffixes(e,i);S&&i[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{r([e],a+t,i[`defaultValue${t}`]||x)})}):r(e,a,x))}f=this.extendTranslation(f,e,i,d,r),n&&f===a&&this.options.appendNamespaceToMissingKey&&(f=`${l}${u}${a}`),(n||t)&&this.options.parseMissingKeyHandler&&(f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${a}`:a,t?f:void 0,i))}else{if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,C,{...i,ns:c}):`key '${a} (${this.language})' returned an object instead of string.`;return o?(d.res=e,d.usedParams=this.getUsedParamsDetails(i),d):e}if(s){const e=Array.isArray(C),t=e?[]:{},r=e?m:g;for(const e in C)if(Object.prototype.hasOwnProperty.call(C,e)){const n=`${r}${s}${e}`;t[e]=_&&!f?this.translate(n,{...i,defaultValue:N(x)?x[e]:void 0,joinArrays:!1,ns:c}):this.translate(n,{...i,joinArrays:!1,ns:c}),t[e]===n&&(t[e]=C[e])}f=t}}return o?(d.res=f,d.usedParams=this.getUsedParamsDetails(i),d):f}extendTranslation(e,t,r,i,o){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const s=n(e)&&(void 0!==r?.interpolation?.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let a;if(s){const t=e.match(this.interpolator.nestingRegexp);a=t&&t.length}let c=r.replace&&!n(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(c={...this.options.interpolation.defaultVariables,...c}),e=this.interpolator.interpolate(e,c,r.lng||this.language||i.usedLng,r),s){const t=e.match(this.interpolator.nestingRegexp);a<(t&&t.length)&&(r.nest=!1)}!r.lng&&i&&i.res&&(r.lng=this.language||i.usedLng),!1!==r.nest&&(e=this.interpolator.nest(e,(...e)=>o?.[0]!==e[0]||r.context?this.translate(...e,t):(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null),r)),r.interpolation&&this.interpolator.reset()}const s=r.postProcess||this.options.postProcess,a=n(s)?[s]:s;return null!=e&&a?.length&&!1!==r.applyPostProcessor&&(e=C.handle(a,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...i,usedParams:this.getUsedParamsDetails(r)},...r}:r,this)),e}resolve(e,t={}){let r,i,o,s,a;return n(e)&&(e=[e]),e.forEach(e=>{if(this.isValidLookup(r))return;const c=this.extractFromKey(e,t),l=c.key;i=l;let u=c.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));const p=void 0!==t.count&&!n(t.count),h=p&&!t.ordinal&&0===t.count,d=void 0!==t.context&&(n(t.context)||"number"==typeof t.context)&&""!==t.context,f=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);u.forEach(e=>{this.isValidLookup(r)||(a=e,O[`${f[0]}-${e}`]||!this.utils?.hasLoadedNamespace||this.utils?.hasLoadedNamespace(a)||(O[`${f[0]}-${e}`]=!0,this.logger.warn(`key "${i}" for languages "${f.join(", ")}" won't get resolved as namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach(n=>{if(this.isValidLookup(r))return;s=n;const i=[l];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(i,l,n,e,t);else{let e;p&&(e=this.pluralResolver.getSuffix(n,t.count,t));const r=`${this.options.pluralSeparator}zero`,o=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(p&&(t.ordinal&&0===e.indexOf(o)&&i.push(l+e.replace(o,this.options.pluralSeparator)),i.push(l+e),h&&i.push(l+r)),d){const n=`${l}${this.options.contextSeparator||"_"}${t.context}`;i.push(n),p&&(t.ordinal&&0===e.indexOf(o)&&i.push(n+e.replace(o,this.options.pluralSeparator)),i.push(n+e),h&&i.push(n+r))}}let a;for(;a=i.pop();)this.isValidLookup(r)||(o=a,r=this.getResource(n,e,a,t))}))})}),{res:r,usedKey:i,exactUsedKey:o,usedLng:s,usedNS:a}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,t,r,n={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,r,n):this.resourceStore.getResource(e,t,r,n)}getUsedParamsDetails(e={}){const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=e.replace&&!n(e.replace);let i=r?e.replace:e;if(r&&void 0!==e.count&&(i.count=e.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!r){i={...i};for(const e of t)delete i[e]}return i}static hasDefaultValue(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&"defaultValue"===t.substring(0,12)&&void 0!==e[t])return!0;return!1}}class R{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=k.create("languageUtils")}getScriptPartFromCode(e){if(!(e=b(e))||e.indexOf("-")<0)return null;const t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}getLanguagePartFromCode(e){if(!(e=b(e))||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(n(e)&&e.indexOf("-")>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch(e){}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;const r=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(r)||(t=r)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;const r=this.getScriptPartFromCode(e);if(this.isSupportedCode(r))return t=r;const n=this.getLanguagePartFromCode(e);if(this.isSupportedCode(n))return t=n;t=this.options.supportedLngs.find(e=>e===n?e:e.indexOf("-")<0&&n.indexOf("-")<0?void 0:e.indexOf("-")>0&&n.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===n||0===e.indexOf(n)&&n.length>1?e:void 0)}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),n(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let r=e[t];return r||(r=e[this.getScriptPartFromCode(t)]),r||(r=e[this.formatLanguageCode(t)]),r||(r=e[this.getLanguagePartFromCode(t)]),r||(r=e.default),r||[]}toResolveHierarchy(e,t){const r=this.getFallbackCodes((!1===t?[]:t)||this.options.fallbackLng||[],e),i=[],o=e=>{e&&(this.isSupportedCode(e)?i.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return n(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?("languageOnly"!==this.options.load&&o(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&o(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&o(this.getLanguagePartFromCode(e))):n(e)&&o(this.formatLanguageCode(e)),r.forEach(e=>{i.indexOf(e)<0&&o(this.formatLanguageCode(e))}),i}}const M={zero:0,one:1,two:2,few:3,many:4,other:5},T={select:e=>1===e?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class L{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=k.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){const r=b("dev"===e?"en":e),n=t.ordinal?"ordinal":"cardinal",i=JSON.stringify({cleanedCode:r,type:n});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let o;try{o=new Intl.PluralRules(r,{type:n})}catch(r){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),T;if(!e.match(/-|_/))return T;const n=this.languageUtils.getLanguagePartFromCode(e);o=this.getRule(n,t)}return this.pluralRulesCache[i]=o,o}needsPlural(e,t={}){let r=this.getRule(e,t);return r||(r=this.getRule("dev",t)),r?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,r={}){return this.getSuffixes(e,r).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let r=this.getRule(e,t);return r||(r=this.getRule("dev",t)),r?r.resolvedOptions().pluralCategories.sort((e,t)=>M[e]-M[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${e}`):[]}getSuffix(e,t,r={}){const n=this.getRule(e,r);return n?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${n.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,r))}}const P=(e,t,r,i=".",o=!0)=>{let s=((e,t,r)=>{const n=p(e,r);return void 0!==n?n:p(t,r)})(e,t,r);return!s&&o&&n(r)&&(s=y(e,r,i),void 0===s&&(s=y(t,r,i))),s},D=e=>e.replace(/\$/g,"$$$$");class F{constructor(e={}){this.logger=k.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:r,useRawValueToEscape:n,prefix:i,prefixEscaped:o,suffix:s,suffixEscaped:a,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:p,nestingPrefixEscaped:h,nestingSuffix:f,nestingSuffixEscaped:m,nestingOptionsSeparator:v,maxReplaces:y,alwaysFormat:b}=e.interpolation;this.escape=void 0!==t?t:g,this.escapeValue=void 0===r||r,this.useRawValueToEscape=void 0!==n&&n,this.prefix=i?d(i):o||"{{",this.suffix=s?d(s):a||"}}",this.formatSeparator=c||",",this.unescapePrefix=l?"":u||"-",this.unescapeSuffix=this.unescapePrefix?"":l||"",this.nestingPrefix=p?d(p):h||d("$t("),this.nestingSuffix=f?d(f):m||d(")"),this.nestingOptionsSeparator=v||",",this.maxReplaces=y||1e3,this.alwaysFormat=void 0!==b&&b,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,r,i){let s,a,c;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=e=>{if(e.indexOf(this.formatSeparator)<0){const n=P(t,l,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(n,void 0,r,{...i,...t,interpolationkey:e}):n}const n=e.split(this.formatSeparator),o=n.shift().trim(),s=n.join(this.formatSeparator).trim();return this.format(P(t,l,o,this.options.keySeparator,this.options.ignoreJSONStructure),s,r,{...i,...t,interpolationkey:o})};this.resetRegExp();const p=i?.missingInterpolationHandler||this.options.missingInterpolationHandler,h=void 0!==i?.interpolation?.skipOnVariables?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>D(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?D(this.escape(e)):D(e)}].forEach(t=>{for(c=0;s=t.regex.exec(e);){const r=s[1].trim();if(a=u(r),void 0===a)if("function"==typeof p){const t=p(e,s,i);a=n(t)?t:""}else if(i&&Object.prototype.hasOwnProperty.call(i,r))a="";else{if(h){a=s[0];continue}this.logger.warn(`missed to pass in variable ${r} for interpolating ${e}`),a=""}else n(a)||this.useRawValueToEscape||(a=o(a));const l=t.safeValue(a);if(e=e.replace(s[0],l),h?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=s[0].length):t.regex.lastIndex=0,c++,c>=this.maxReplaces)break}}),e}nest(e,t,r={}){let i,s,a;const c=(e,t)=>{const r=this.nestingOptionsSeparator;if(e.indexOf(r)<0)return e;const n=e.split(new RegExp(`${r}[ ]*{`));let i=`{${n[1]}`;e=n[0],i=this.interpolate(i,a);const o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||s.length%2!=0)&&(i=i.replace(/'/g,'"'));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${r}${i}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,e};for(;i=this.nestingRegexp.exec(e);){let l=[];a={...r},a=a.replace&&!n(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;const u=/{.*}/.test(i[1])?i[1].lastIndexOf("}")+1:i[1].indexOf(this.formatSeparator);if(-1!==u&&(l=i[1].slice(u).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),i[1]=i[1].slice(0,u)),s=t(c.call(this,i[1].trim(),a),a),s&&i[0]===e&&!n(s))return s;n(s)||(s=o(s)),s||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${e}`),s=""),l.length&&(s=l.reduce((e,t)=>this.format(e,t,r.lng,{...r,interpolationkey:i[1].trim()}),s.trim())),e=e.replace(i[0],s),this.regexp.lastIndex=0}return e}}const U=e=>{const t={};return(r,n,i)=>{let o=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(o={...o,[i.interpolationkey]:void 0});const s=n+JSON.stringify(o);let a=t[s];return a||(a=e(b(n),i),t[s]=a),a(r)}},j=e=>(t,r,n)=>e(b(r),n)(t);class B{constructor(e={}){this.logger=k.create("formatter"),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||",";const r=t.cacheInBuiltFormats?U:j;this.formats={number:r((e,t)=>{const r=new Intl.NumberFormat(e,{...t});return e=>r.format(e)}),currency:r((e,t)=>{const r=new Intl.NumberFormat(e,{...t,style:"currency"});return e=>r.format(e)}),datetime:r((e,t)=>{const r=new Intl.DateTimeFormat(e,{...t});return e=>r.format(e)}),relativetime:r((e,t)=>{const r=new Intl.RelativeTimeFormat(e,{...t});return e=>r.format(e,t.range||"day")}),list:r((e,t)=>{const r=new Intl.ListFormat(e,{...t});return e=>r.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=U(t)}format(e,t,r,n={}){const i=t.split(this.formatSeparator);if(i.length>1&&i[0].indexOf("(")>1&&i[0].indexOf(")")<0&&i.find(e=>e.indexOf(")")>-1)){const e=i.findIndex(e=>e.indexOf(")")>-1);i[0]=[i[0],...i.splice(1,e)].join(this.formatSeparator)}return i.reduce((e,t)=>{const{formatName:i,formatOptions:o}=(e=>{let t=e.toLowerCase().trim();const r={};if(e.indexOf("(")>-1){const n=e.split("(");t=n[0].toLowerCase().trim();const i=n[1].substring(0,n[1].length-1);"currency"===t&&i.indexOf(":")<0?r.currency||(r.currency=i.trim()):"relativetime"===t&&i.indexOf(":")<0?r.range||(r.range=i.trim()):i.split(";").forEach(e=>{if(e){const[t,...n]=e.split(":"),i=n.join(":").trim().replace(/^'+|'+$/g,""),o=t.trim();r[o]||(r[o]=i),"false"===i&&(r[o]=!1),"true"===i&&(r[o]=!0),isNaN(i)||(r[o]=parseInt(i,10))}})}return{formatName:t,formatOptions:r}})(t);if(this.formats[i]){let t=e;try{const s=n?.formatParams?.[n.interpolationkey]||{},a=s.locale||s.lng||n.locale||n.lng||r;t=this.formats[i](e,a,{...o,...n,...s})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${i}`),e},e)}}class $ extends S{constructor(e,t,r,n={}){super(),this.backend=e,this.store=t,this.services=r,this.languageUtils=r.languageUtils,this.options=n,this.logger=k.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=n.maxParallelReads||10,this.readingCalls=0,this.maxRetries=n.maxRetries>=0?n.maxRetries:5,this.retryTimeout=n.retryTimeout>=1?n.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(r,n.backend,n)}queueLoad(e,t,r,n){const i={},o={},s={},a={};return e.forEach(e=>{let n=!0;t.forEach(t=>{const s=`${e}|${t}`;!r.reload&&this.store.hasResourceBundle(e,t)?this.state[s]=2:this.state[s]<0||(1===this.state[s]?void 0===o[s]&&(o[s]=!0):(this.state[s]=1,n=!1,void 0===o[s]&&(o[s]=!0),void 0===i[s]&&(i[s]=!0),void 0===a[t]&&(a[t]=!0)))}),n||(s[e]=!0)}),(Object.keys(i).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:n}),{toLoad:Object.keys(i),pending:Object.keys(o),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(a)}}loaded(e,t,r){const n=e.split("|"),i=n[0],o=n[1];t&&this.emit("failedLoading",i,o,t),!t&&r&&this.store.addResourceBundle(i,o,r,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&r&&(this.state[e]=0);const s={};this.queue.forEach(r=>{((e,t,r)=>{const{obj:n,k:i}=l(e,t,Object);n[i]=n[i]||[],n[i].push(r)})(r.loaded,[i],o),((e,t)=>{void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)})(r,e),t&&r.errors.push(t),0!==r.pendingCount||r.done||(Object.keys(r.loaded).forEach(e=>{s[e]||(s[e]={});const t=r.loaded[e];t.length&&t.forEach(t=>{void 0===s[e][t]&&(s[e][t]=!0)})}),r.done=!0,r.errors.length?r.callback(r.errors):r.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(e=>!e.done)}read(e,t,r,n=0,i=this.retryTimeout,o){if(!e.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:t,fcName:r,tried:n,wait:i,callback:o});this.readingCalls++;const s=(s,a)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}s&&a&&n{this.read.call(this,e,t,r,n+1,2*i,o)},i):o(s,a)},a=this.backend[r].bind(this.backend);if(2!==a.length)return a(e,t,s);try{const r=a(e,t);r&&"function"==typeof r.then?r.then(e=>s(null,e)).catch(s):s(null,r)}catch(e){s(e)}}prepareLoading(e,t,r={},i){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();n(e)&&(e=this.languageUtils.toResolveHierarchy(e)),n(t)&&(t=[t]);const o=this.queueLoad(e,t,r,i);if(!o.toLoad.length)return o.pending.length||i(),null;o.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,r){this.prepareLoading(e,t,{},r)}reload(e,t,r){this.prepareLoading(e,t,{reload:!0},r)}loadOne(e,t=""){const r=e.split("|"),n=r[0],i=r[1];this.read(n,i,"read",void 0,void 0,(r,o)=>{r&&this.logger.warn(`${t}loading namespace ${i} for language ${n} failed`,r),!r&&o&&this.logger.log(`${t}loaded namespace ${i} for language ${n}`,o),this.loaded(e,r,o)})}saveMissing(e,t,r,n,i,o={},s=()=>{}){if(!this.services?.utils?.hasLoadedNamespace||this.services?.utils?.hasLoadedNamespace(t)){if(null!=r&&""!==r){if(this.backend?.create){const a={...o,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=5===c.length?c(e,t,r,n,a):c(e,t,r,n),i&&"function"==typeof i.then?i.then(e=>s(null,e)).catch(s):s(null,i)}catch(e){s(e)}else c(e,t,r,n,s,a)}e&&e[0]&&this.store.addResource(e[0],t,r,n)}}else this.logger.warn(`did not save key "${r}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")}}const z=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if("object"==typeof e[1]&&(t=e[1]),n(e[1])&&(t.defaultValue=e[1]),n(e[2])&&(t.tDescription=e[2]),"object"==typeof e[2]||"object"==typeof e[3]){const r=e[3]||e[2];Object.keys(r).forEach(e=>{t[e]=r[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),q=e=>(n(e.ns)&&(e.ns=[e.ns]),n(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),n(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),"boolean"==typeof e.initImmediate&&(e.initAsync=e.initImmediate),e),V=()=>{};class W extends S{constructor(e={},t){var r;if(super(),this.options=q(e),this.services={},this.logger=k,this.modules={external:[]},r=this,Object.getOwnPropertyNames(Object.getPrototypeOf(r)).forEach(e=>{"function"==typeof r[e]&&(r[e]=r[e].bind(r))}),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,"function"==typeof e&&(t=e,e={}),null==e.defaultNS&&e.ns&&(n(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const r=z();this.options={...r,...this.options,...q(e)},this.options.interpolation={...r.interpolation,...this.options.interpolation},void 0!==e.keySeparator&&(this.options.userDefinedKeySeparator=e.keySeparator),void 0!==e.nsSeparator&&(this.options.userDefinedNsSeparator=e.nsSeparator);const o=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let e;this.modules.logger?k.init(o(this.modules.logger),this.options):k.init(null,this.options),e=this.modules.formatter?this.modules.formatter:B;const t=new R(this.options);this.store=new x(this.options.resources,this.options);const n=this.services;n.logger=k,n.resourceStore=this.store,n.languageUtils=t,n.pluralResolver=new L(t,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),!e||this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format||(n.formatter=o(e),n.formatter.init&&n.formatter.init(n,this.options),this.options.interpolation.format=n.formatter.format.bind(n.formatter)),n.interpolator=new F(this.options),n.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},n.backendConnector=new $(o(this.modules.backend),n.resourceStore,n,this.options),n.backendConnector.on("*",(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(n.languageDetector=o(this.modules.languageDetector),n.languageDetector.init&&n.languageDetector.init(n,this.options.detection,this.options)),this.modules.i18nFormat&&(n.i18nFormat=o(this.modules.i18nFormat),n.i18nFormat.init&&n.i18nFormat.init(this)),this.translator=new A(this.services,this.options),this.translator.on("*",(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||(t=V),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});const s=i(),a=()=>{const e=(e,r)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),s.resolve(r),t(e,r)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),s}loadResources(e,t=V){let r=t;const i=n(e)?e:this.language;if("function"==typeof e&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if("cimode"===i?.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return r();const e=[],t=t=>{t&&"cimode"!==t&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{"cimode"!==t&&e.indexOf(t)<0&&e.push(t)})};i?t(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),r(e)})}else r(null)}reloadResources(e,t,r){const n=i();return"function"==typeof e&&(r=e,e=void 0),"function"==typeof t&&(r=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),r||(r=V),this.services.backendConnector.reload(e,t,e=>{n.resolve(),r(e)}),n}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&C.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1)){for(let e=0;e-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;const r=i();this.emit("languageChanging",e);const o=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},s=(n,i)=>{i?this.isLanguageChangingTo===e&&(o(i),this.translator.changeLanguage(i),this.isLanguageChangingTo=void 0,this.emit("languageChanged",i),this.logger.log("languageChanged",i)):this.isLanguageChangingTo=void 0,r.resolve((...e)=>this.t(...e)),t&&t(n,(...e)=>this.t(...e))},a=t=>{e||t||!this.services.languageDetector||(t=[]);const r=n(t)?t:t&&t[0],i=this.store.hasLanguageSomeTranslations(r)?r:this.services.languageUtils.getBestMatchFromCodes(n(t)?[t]:t);i&&(this.language||o(i),this.translator.language||this.translator.changeLanguage(i),this.services.languageDetector?.cacheUserLanguage?.(i)),this.loadResources(i,e=>{s(e,i)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),r}getFixedT(e,t,r){const i=(e,t,...n)=>{let o;o="object"!=typeof t?this.options.overloadTranslationOptionHandler([e,t].concat(n)):{...t},o.lng=o.lng||i.lng,o.lngs=o.lngs||i.lngs,o.ns=o.ns||i.ns,""!==o.keyPrefix&&(o.keyPrefix=o.keyPrefix||r||i.keyPrefix);const s=this.options.keySeparator||".";let a;return o.keyPrefix&&Array.isArray(e)?a=e.map(e=>("function"==typeof e&&(e=I(e,{...this.options,...t})),`${o.keyPrefix}${s}${e}`)):("function"==typeof e&&(e=I(e,{...this.options,...t})),a=o.keyPrefix?`${o.keyPrefix}${s}${e}`:e),this.t(a,o)};return n(e)?i.lng=e:i.lngs=e,i.ns=t,i.keyPrefix=r,i}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=t.lng||this.resolvedLanguage||this.languages[0],n=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;const o=(e,t)=>{const r=this.services.backendConnector.state[`${e}|${t}`];return-1===r||0===r||2===r};if(t.precheck){const e=t.precheck(this,o);if(void 0!==e)return e}return!(!this.hasResourceBundle(r,e)&&this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages)&&(!o(r,e)||n&&!o(i,e)))}loadNamespaces(e,t){const r=i();return this.options.ns?(n(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{r.resolve(),t&&t(e)}),r):(t&&t(),Promise.resolve())}loadLanguages(e,t){const r=i();n(e)&&(e=[e]);const o=this.options.preload||[],s=e.filter(e=>o.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return s.length?(this.options.preload=o.concat(s),this.loadResources(e=>{r.resolve(),t&&t(e)}),r):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const t=new Intl.Locale(e);if(t&&t.getTextInfo){const e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch(e){}const t=this.services?.languageUtils||new R(z());return e.toLowerCase().indexOf("-latn")>1?"ltr":["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},t){return new W(e,t)}cloneInstance(e={},t=V){const r=e.forkResourceStore;r&&delete e.forkResourceStore;const n={...this.options,...e,isClone:!0},i=new W(n);if(void 0===e.debug&&void 0===e.prefix||(i.logger=i.logger.clone(e)),["store","services","language"].forEach(e=>{i[e]=this[e]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},r){const e=Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((r,n)=>(r[n]={...e[t][n]},r),e[t]),e),{});i.store=new x(e,n),i.services.resourceStore=i.store}return i.translator=new A(i.services,n),i.translator.on("*",(e,...t)=>{i.emit(e,...t)}),i.init(n,t),i.translator.options=n,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const H=W.createInstance();H.createInstance=W.createInstance;const G=H.createInstance,K=H.dir,J=H.init,Y=H.loadResources,Z=H.reloadResources,X=H.use,Q=H.changeLanguage,ee=H.getFixedT,te=H.t,re=H.exists,ne=H.setDefaultNamespace,ie=H.hasLoadedNamespace,oe=H.loadNamespaces,se=H.loadLanguages},2648:(e,t,r)=>{"use strict";r(1609),r(8437),r(9454)},2875:(e,t,r)=>{"use strict";r.d(t,{x:()=>s});const n=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,i={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},o=e=>i[e],s=e=>e.replace(n,o)},3220:(e,t,r)=>{"use strict";r.d(t,{J:()=>i,v:()=>n});const n=(e,t=!1)=>{let r=e.redirectUrl;const n="seo-by-rank-math"===e.slug||"seo-by-rank-math-pro"===e.slug,i=e.onboardingUrl&&"string"==typeof e.onboardingUrl&&""!==e.onboardingUrl.trim();if(n){const t=window.marketplaceConfig?.wpConfig;(!t||!0!==t.rankMathRegistrationSkip)&&i&&(r=e.onboardingUrl)}else t&&i&&(r=e.onboardingUrl);return r},i=e=>{if(e&&""!==e.trim()){const t=void 0!==window.marketplaceConfig&&window.marketplaceConfig?.wpConfig?.adminUrl;if(t){let r=e;r.startsWith("wp-admin/")&&(r=r.substring(9));const n=`${t}${r}`;window.location.href=n}else{const t=`${window.location.origin}/${e}`;window.location.href=t}return}window.location.href="/wp-admin/plugins.php"}},3227:(e,t,r)=>{"use strict";r(1609),r(7674),r(1352),r(9454)},3273:(e,t,r)=>{"use strict";r(1609),r(1352)},3461:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Päivitä sivu","ui.notifications.couldNotLoad":"Sivua ei voitu ladata","ui.notifications.refreshPage":"Päivitä sivu ja ota yhteyttä asiakaspalveluumme, jos ongelma jatkuu."}')},3526:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(1609),i=r(7979);function o(){const{loadingAction:e,loadingPlugin:t,assetsBaseUrl:r}=(0,i.D)();if(!e)return null;const o=`${r||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||""}assets/images/spinner.svg`;return(0,n.createElement)("div",{className:"loading-overlay show"},(0,n.createElement)("div",{className:"gv-loader-container gv-pos-center gv-pos-absolute"},(0,n.createElement)("gv-loader",{src:o}),(0,n.createElement)("p",null,e)))}},3591:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Actualizar página","ui.notifications.couldNotLoad":"No se puede cargar la página","ui.notifications.refreshPage":"Actualice la página y póngase en contacto con nuestro servicio de asistencia si el problema persiste."}')},3699:(e,t,r)=>{"use strict";r.d(t,{A:()=>f});var n=r(1609),i=r(7979),o=r(488),s=r(4598),a=r(9962),c=r(4677),l=r(4800),u=(r(6530),r(1755)),p=r(1174),h=r(7008),d=r(3220);function f(){const{apiBaseUrl:e,assetsBaseUrl:t,pluginInAction:r,setPluginInAction:f,subscriptionStatus:g,fetchSubscriptionStatus:m,isOnecomBrand:v,plugins:y,setPlugins:b,uiI18n:_,setUiI18n:w,handlePluginAction:k,catalogError:S,setCatalogError:x,catalogLoading:C,setCatalogLoading:E,shouldShowProvision:I,isSpecialPlugin:O,shouldShowPlugin:N,isWpVersionSupported:A}=(0,i.D)(),[R,M]=(0,n.useState)(null),[T,L]=(0,n.useState)([]),[P,D]=(0,n.useState)(null),F=(0,n.useRef)(null),U=(0,n.useRef)(!1),j=(0,n.useRef)(!1),B=((0,n.useRef)(null),(0,n.useRef)(null)),$=(0,n.useRef)(null),z=(0,n.useRef)(!1),q=t||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",V=q?`${q}assets/icons/`:"",W="undefined"!=typeof window?new URLSearchParams(window.location.search).get("plugin"):null;if((0,n.useEffect)(()=>{U.current||(U.current=!0,E(!0),x(null),fetch(e).then(e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return B.current=Date.now(),e.json()}).then(e=>{if((e.is_cached||e.cached)&&(z.current=!0),!(e.success&&e.data&&e.data.catalog))throw(0,h.oe)({category:"addons_page",itemName:"Addons Page",isContentRendered:!1}),new Error("Invalid API response structure");{const t=e.data.catalog;b(t);const r=!0===t.find(e=>"seo-by-rank-math"===e.slug)?.activated,n=!0===t.find(e=>"seo-by-rank-math-pro"===e.slug)?.activated,i=t.filter(e=>!!N(e)&&!0!==e.activated&&(!0===e.featured||"true"===e.featured)&&("seo-by-rank-math"===e.slug?!r&&!n:"seo-by-rank-math-pro"!==e.slug||r)).sort((e,t)=>(void 0!==e.displayOrder?parseInt(e.displayOrder):1/0)-(void 0!==t.displayOrder?parseInt(t.displayOrder):1/0)).slice(0,3);L(i);const o=e.data.uiI18n||e.data.ui_i18n;o&&w(o),v&&t.filter(e=>O(e.slug)).forEach(e=>{m(e.slug)})}}).catch(e=>{console.error("Failed to fetch plugins:",e),(0,h.oe)({category:"addons_page",itemName:"Addons Page",isContentRendered:!1}),x(e.message||"Failed to load plugins")}).finally(()=>{E(!1)}))},[e,b,w,x,E,N]),(0,n.useEffect)(()=>{if(W&&y.length){const e=y.find(e=>e.slug===W);e&&M(e)}else W||M(null)},[W,y]),(0,n.useEffect)(()=>{const e=()=>{const e=new URLSearchParams(window.location.search).get("plugin");if(e){if(y.length){const t=y.find(t=>t.slug===e);t&&M(t)}}else M(null)};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[y]),(0,n.useEffect)(()=>{const e=e=>{F.current&&!F.current.contains(e.target)&&D(null)};return null!==P?document.addEventListener("mousedown",e):document.removeEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[P]),(0,n.useEffect)(()=>{C||S||!(y.length>0)||W||j.current||($.current=Date.now(),"true"===sessionStorage.getItem("mp_skip_page_view")?sessionStorage.removeItem("mp_skip_page_view"):(0,h.oe)({category:"addons_page",itemName:"Addons Page",contentReceivedAt:B.current,contentRenderedAt:$.current,isCached:z.current}),j.current=!0)},[C,S,y.length,W]),C)return(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col gv-flex-wrap"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-lg gv-mb-sm",style:{width:"13%"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-fluid",style:{width:"33%"}}),(0,n.createElement)("div",{className:"gv-flex gv-justify-between gv-items-start"},(0,n.createElement)("div",{className:"gv-w-full"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-sm gv-mb-sm",style:{width:"13%"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-md",style:{width:"33%"}})),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-md",style:{width:"13%"}})),(0,n.createElement)("div",{className:"product-grid gv-grid gv-gap-lg gv-mob-grid-cols-1 gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3 gv-skeleton-loader"},[0,1,2].map(e=>(0,n.createElement)("div",{key:e,className:"gv-card gv-gap-md gv-content-container gv-p-lg gv-grid gv-grid-cols-12 gv-radius"},(0,n.createElement)("div",{className:"gv-desk-span-2 gv-span-3 gv-tab-span-3"},(0,n.createElement)("div",{className:"gv-skeleton gv-icon-tile"})),(0,n.createElement)("div",{className:"gv-desk-span-8 gv-tab-span-7 gv-span-7"},(0,n.createElement)("div",{className:"gv-skeleton gv-mb-xs",style:{height:"20px",width:"70%"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-mb-sm",style:{height:"16px",width:"100%"}}),(0,n.createElement)("div",{className:"gv-skeleton",style:{height:"16px",width:"40%"}})),(0,n.createElement)("div",{className:"gv-span-2 gv-content-center gv-text-right"},(0,n.createElement)("div",{className:"gv-skeleton",style:{height:"24px",width:"24px"}}))))),(0,n.createElement)("div",{className:"gv-data-table gv-mt-lg gv-overflow-x-auto gv-skeleton-loader"},(0,n.createElement)("table",{className:"gv-col-5-shrink gv-col-6-shrink"},(0,n.createElement)("thead",null,(0,n.createElement)("tr",null,(0,n.createElement)("th",{scope:"col"}),(0,n.createElement)("th",{scope:"col"},(0,n.createElement)("div",{className:"gv-skeleton",style:{height:"16px",width:"50px"}})),(0,n.createElement)("th",{scope:"col"},(0,n.createElement)("div",{className:"gv-skeleton",style:{height:"16px",width:"50px"}})),(0,n.createElement)("th",{scope:"col"},(0,n.createElement)("div",{className:"gv-skeleton",style:{height:"16px",width:"50px"}})),(0,n.createElement)("th",{scope:"col"}))),(0,n.createElement)("tbody",null,[0,1].map(e=>(0,n.createElement)("tr",{key:e},(0,n.createElement)("td",{style:{width:"80px"}},(0,n.createElement)("div",{className:"gv-skeleton gv-icon-tile"})),(0,n.createElement)("td",null,(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"})),(0,n.createElement)("td",null,(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"})),(0,n.createElement)("td",null,(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"})),(0,n.createElement)("td",null,(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm",style:{width:"24px"}}))))))));if(S)return(0,n.createElement)(u.A,null);if(!A("6.2"))return(0,n.createElement)(p.A,null);const H=y.filter(e=>e.installed||I(e));return(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col"},(0,n.createElement)("div",{className:"addons-header-wrap"},(0,n.createElement)("h3",null,_?.headings?.myProducts),(0,n.createElement)("p",{className:"gv-text-sm"},_?.text?.myProducts)),T.length>0&&(0,n.createElement)("section",{className:"addons-section gv-mt-fluid"},(0,n.createElement)("div",{className:"addons-header-container gv-flex gv-max-mob-flex-col gv-justify-between gv-items-start gv-tab-gap-lg"},(0,n.createElement)("div",{className:"heading-container gv-flex-1"},(0,n.createElement)("p",{className:"gv-text-bold gv-text-lg gv-mb-xs"},_?.headings?.recommendedProducts),(0,n.createElement)("p",{className:"gv-text-sm gv-mb-md"},_?.text?.recommendedText)),(0,n.createElement)("button",{className:"gv-button gv-button-primary gv-mode-condensed gv-flex-shrink-0",onClick:()=>{const e="undefined"!=typeof window&&window.marketplaceConfig?.wpConfig?.adminUrl?window.marketplaceConfig.wpConfig.adminUrl:"/wp-admin/";window.location.href=`${e}admin.php?page=onecom-marketplace`}},_.seeAllProducts,(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${V}arrow_right.svg`,alt:"See all products"}))),(0,n.createElement)("div",{className:"product-grid gv-grid gv-gap-lg gv-mob-grid-cols-1 gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3 gv-mt-md"},T.map(e=>{I(e);const t=e.i18n.freeTrialPeriod&&""!==e.i18n.freeTrialPeriod.trim()?e.i18n.freeTrialPeriod:_?.labels?.free||"Free",r=(0,o.M)(e,t,_),i=(0,o.Tc)(e),s=(0,o.Dn)(e);return(0,n.createElement)("div",{key:e.slug,className:"gv-card gv-gap-md gv-content-container gv-p-lg gv-grid gv-grid-cols-12 gv-radius"},(0,n.createElement)("div",{className:"gv-desk-span-2 gv-span-3 gv-tab-span-3"},(0,n.createElement)("img",{className:"gv-icon-tile",src:e.iconUrl||`${V}add_box.svg`,alt:e.name,style:{maxwidth:"auto"}})),(0,n.createElement)("div",{className:"gv-desk-span-8 gv-tab-span-7 gv-span-7"},(0,n.createElement)("p",{className:"gv-text-sm gv-text-bold gv-mb-xs"},e.name),(0,n.createElement)("p",{className:"oc-card-content gv-text-on-alternative gv-mb-sm gv-text-sm"},e.i18n.listingDescription||e.i18n.subtitle),(0,n.createElement)("span",{className:"gv-caption-lg gv-text-bold"},(0,n.createElement)(n.Fragment,null,"premium"===e.licenseType&&s>0?null!==s?s:i:r,"free"!==e.licenseType&&r&&r!==t&&r!==(_?.labels?.freeUntilRenewal||"Free until renewal")&&(0,n.createElement)("span",{className:"gv-period"},"/",_?.labels?.timeMonth)))),(0,n.createElement)("div",{className:"gv-span-2 gv-content-center gv-text-right"},(0,n.createElement)("a",{href:(a=e.slug,`${"undefined"!=typeof window&&window.marketplaceConfig?.wpConfig?.adminUrl?window.marketplaceConfig.wpConfig.adminUrl:"/wp-admin/"}admin.php?page=onecom-marketplace&plugin=${a}`),className:"gv-reset-button",style:{display:"inline-block"},"aria-label":`View details for ${e.name}`},(0,n.createElement)("img",{className:"gv-tile",src:`${V}arrow_forward.svg`,alt:`View ${e.name} details`,style:{minWidth:"24px"}}))));var a}))),H.length>0&&(0,n.createElement)("section",{className:"addons-section gv-mt-fluid"},(0,n.createElement)("div",{className:"gv-data-table gv-mt-lg gv-addons-table"},(0,n.createElement)("table",{className:"gv-col-5-shrink gv-col-6-shrink"},(0,n.createElement)("thead",null,(0,n.createElement)("tr",null,(0,n.createElement)("th",{scope:"col"}),(0,n.createElement)("th",{scope:"col"},_?.labels?.name),(0,n.createElement)("th",{scope:"col"},_?.labels?.type),(0,n.createElement)("th",{scope:"col"},_?.labels?.status),(0,n.createElement)("th",{scope:"col"}),(0,n.createElement)("th",{scope:"col"}))),(0,n.createElement)("tbody",null,H.map((e,t)=>{const r=I(e);return(0,n.createElement)("tr",{id:e.slug,key:e.slug},(0,n.createElement)("td",{style:{width:"80px"}},(0,n.createElement)("img",{src:e.iconUrl||`${V}add_box.svg`,alt:e.name,className:"gv-icon-tile",style:{maxWidth:"auto"}})),(0,n.createElement)("td",null,e.name),(0,n.createElement)("td",null,"free"===e.licenseType?_?.labels?.freePlugin:_?.labels?.premiumPlugin),(0,n.createElement)("td",null,(0,n.createElement)("div",{className:"gv-text-indicator"},(0,n.createElement)("span",{className:e.activated?"gv-indicator gv-state-positive":"gv-indicator gv-state-informative"}),(0,n.createElement)("span",null," ",e.activated?_?.labels?.active||"Active":r?_?.labels?.notInstalled||"Not Installed":_?.labels?.notActive||"Not Active"))),(0,n.createElement)("td",null,r?(0,n.createElement)("a",{href:"#",className:"gv-action",onClick:t=>{t.preventDefault();const r=new CustomEvent("onecom-plugin-provision",{detail:{slug:e.slug},bubbles:!0,cancelable:!0,composed:!0});document.dispatchEvent(r)}},_?.installAndActivate||"Install and activate"):!e.activated&&(0,n.createElement)("a",{href:"#",className:"gv-action",onClick:t=>{t.preventDefault(),k("activate",e,"addons")}},_?.activateButton||"Activate")),(0,n.createElement)("td",null,(e.activated||e.installed&&!r)&&(0,n.createElement)("div",{className:"gv-pos-relative",ref:P===t?F:null},(0,n.createElement)("button",{type:"button","aria-label":"Toggle menu",className:"gv-reset-button",onClick:()=>D(P===t?null:t)},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${V}more_horiz.svg`})),(0,n.createElement)("div",{className:"gv-contextual-menu gv-pos-right "+(P===t?"":"gv-invisible")},(0,n.createElement)("div",{className:"gv-menu"},(0,n.createElement)("button",{type:"button",className:"gv-btn-close","aria-label":"Close",onClick:()=>D(null)},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${V}close.svg`})),(0,n.createElement)("ul",null,e.activated&&(0,n.createElement)("li",{className:"gv-mb-0"},(0,n.createElement)("a",{href:"#",className:"gv-menu-item",onClick:t=>{t.preventDefault(),D(null),(e=>{"undefined"!=typeof window&&window.marketplaceConfig?.data_consent_status&&(0,h.Mh)({buttonName:"Manage",buttonAction:"manage_product",context:{product_slug:e.slug,product_name:e.name,has_redirect_url:!(!e.redirectUrl||""===e.redirectUrl.trim()),has_onboarding_url:!(!e.onboardingUrl||""===e.onboardingUrl.trim())}});const t=(0,d.v)(e,!1);(0,d.J)(t)})(e)}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${V}settings.svg`}),(0,n.createElement)("span",null,_?.labels?.manage||"Manage"))),e.activated&&(0,n.createElement)("li",{className:"gv-mb-0"},(0,n.createElement)("a",{href:"#",className:"gv-menu-item",onClick:t=>{t.preventDefault(),D(null),k("deactivate",e,"addons")}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${V}cancel.svg`}),(0,n.createElement)("span",null,_?.deactivate||"Deactivate"))),(0,n.createElement)("li",{className:"gv-mb-0"},!e.activated&&e.installed&&(0,n.createElement)("a",{href:"#",className:"gv-menu-item",onClick:t=>{t.preventDefault(),D(null),k("delete",e,"addons")}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${V}cancel.svg`}),(0,n.createElement)("span",null,_?.deleteButton||"Delete")))))))))}))))),(0,n.createElement)(c.A,null),(0,n.createElement)(l.A,null),R&&!W&&(()=>{const e=(t=R)&&"seo-by-rank-math"===t.slug?a.A:s.A;var t;return(0,n.createElement)(e,{plugin:R,onClose:()=>M(null),loading:C})})())}},3804:(e,t,r)=>{"use strict";r(4915),Object.create(null)},4469:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(1609),i=r(7979),o=r(7008),s=r(3220);function a({plugin:e}){const{assetsBaseUrl:t,noticeState:r,setNoticeState:a,handlePluginAction:c,cancelReload:l,uiI18n:u}=(0,i.D)();if(!r||!r.visible||r.pluginSlug!==e?.slug)return null;const p=t||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",h=p?`${p}assets/`:"",d="installed"===r.type,f="activated"===r.type,g=(e,t)=>e?e.replace("{0}",t||""):"",m=e?.name||"";return(0,n.createElement)("div",{className:"gv-notice gv-notice-success gv-p-lg gv-max-mob-pt-lg gv-mb-0 gv-mt-lg",style:{gridColumn:"1 / -1",width:"100%"}},(0,n.createElement)("img",{className:"gv-notice-icon",src:`${h}icons/success.svg`,alt:"Success"}),(0,n.createElement)("div",{className:"gv-notice-content"},(0,n.createElement)("div",{className:"gv-notice-title"},d&&g(u?.notifications?.pluginInstalled||"Plugin was installed.",m),f&&g(u?.notifications?.pluginActivated||"Plugin was activated.",m)),(0,n.createElement)("p",{className:"gv-text-sm"},d&&(u?.notifications?.activateNow||"Activate it now to start using it."),f&&g(u?.notifications?.manageInMyProducts||"{0} plugin was activated for this site. You can manage it on the My products page.",m))),d&&(0,n.createElement)("button",{type:"button",className:"gv-action gv-button gv-button-neutral",onClick:()=>{c("activate",e,"product_detail")}},u?.activatePluginButton),f&&(0,n.createElement)("button",{type:"button",className:"gv-action gv-button gv-button-neutral",onClick:()=>{(0,o.Mh)({buttonName:"Get started",buttonAction:"manage_product",plugin:e,context:{product_slug:e.slug,product_name:e.name,has_redirect_url:!(!e.redirectUrl||""===e.redirectUrl.trim()),has_onboarding_url:!(!e.onboardingUrl||""===e.onboardingUrl.trim())}}),l();const t=(0,s.v)(e,!0);(0,s.J)(t)}},(0,n.createElement)("span",null,u?.featuredCta||"Get Started"),(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${h}icons/arrow_forward.svg`})),(0,n.createElement)("button",{type:"button",className:"gv-notice-close","aria-label":"Close",onClick:()=>{a({visible:!1,type:null,pluginSlug:null}),sessionStorage.removeItem("mp_success_notice")}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${h}icons/close.svg`})))}},4598:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(1609),i=r(5795),o=r(1338),s=r(4469),a=r(4677),c=r(7979),l=r(488);function u({plugin:e,onClose:t,usePortal:r=!0,loading:u=!1}){const{assetsBaseUrl:p,useWPHandlers:h,pluginInAction:d,uiI18n:f,subscriptionStatus:g,isCheckingSubscription:m,setNoticeState:v,setErrorState:y}=(0,c.D)(),b=p||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",_=b?`${b}assets/icons/`:"";if(u){const e=(0,n.createElement)("div",{className:"gv-surface-dim"},(0,n.createElement)("article",{className:"gv-layout-product gv-p-0 gv-product-single gv-w-max-container gv-mx-auto gv-p-fluid"},(0,n.createElement)("nav",{className:"gv-breadcrumbs gv-area-nav gv-flex-col gv-items-start"},(0,n.createElement)("div",{className:"gv-flex gv-items-center gv-gap-xs"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"60px"}}))),(0,n.createElement)("header",{className:"gv-product-header gv-area-header"},(0,n.createElement)("div",{className:"gv-content gv-stack-space-sm gv-text-sm"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-lg gv-mb-sm",style:{marginBottom:"24px"}}),(0,n.createElement)("div",{className:"gv-skeleton"}),(0,n.createElement)("div",{className:"gv-skeleton"}),(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"80%"}})),(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("div",{className:"gv-card-image gv-h-full",style:{marginTop:"75px"}},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full",style:{minHeight:"300px"}})))),(0,n.createElement)("section",{className:"gv-product-table gv-features-table gv-products-1 gv-area-table"},(0,n.createElement)("div",{className:"gv-table-container"},(0,n.createElement)("div",{className:"gv-table",role:"table"},(0,n.createElement)("div",{className:"gv-table-header",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-product gv-p-0 oc-border-none",role:"columnheader"},(0,n.createElement)("div",{className:"gv-content"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-sm"}),(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"70%"}})),(0,n.createElement)("div",{className:"gv-bottom"},(0,n.createElement)("div",{className:"gv-price-container"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"120px",height:"32px"}})),(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mt-md"}))))),(0,n.createElement)("div",{className:"gv-section oc-left-border-0",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-section-header gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md",style:{width:"150px"}}))),[...Array(3)].map((e,t)=>(0,n.createElement)("div",{className:"gv-table-row",role:"row",key:t},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-w-full"})))))))),(0,n.createElement)("div",{className:"gv-area-details gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-stack-space-md"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-md",style:{width:"180px"}}),(0,n.createElement)("ul",{className:"gv-list-items gv-list-check gv-mode-condensed"},[...Array(3)].map((e,t)=>(0,n.createElement)("li",{key:t},(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"})))))),(0,n.createElement)("div",{className:"gv-area-content gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-text-sm gv-stack-space-md"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-md",style:{width:"250px"}}),(0,n.createElement)("div",{className:"gv-grid gv-gap-lg gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3"},[...Array(3)].map((e,t)=>(0,n.createElement)("div",{className:"gv-item gv-stack-space-sm",key:t},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-xs"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"}))))))));return r?(0,i.createPortal)(e,document.body):e}if(!e)return null;(0,n.useEffect)(()=>{window.scrollTo(0,0)},[e]),(0,n.useEffect)(()=>{v(t=>t.visible&&t.pluginSlug===e.slug?t:{visible:!1,type:null,pluginSlug:null}),y(t=>t.visible&&t.pluginSlug===e.slug?t:{visible:!1,type:null,pluginSlug:null})},[e.slug,v,y]),(0,n.useEffect)(()=>{const e=()=>{v({visible:!1,type:null,pluginSlug:null}),y({visible:!1,type:null,pluginSlug:null})};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[v,y]),void 0!==window.onecomWpVars&&window.onecomWpVars,e.thumbnail;const w=e.bannerUrl||e.image||e.thumbnail||"https://gravity.group.one/guide-images/product-image@2x.png",k=e.name||"Product",S=e.i18n?.description||e.i18n?.subtitle||e.description||e.shortDescription||"No description available.",x=e.i18n?.subtitle,C="free"===e.licenseType,E=e.i18n?.freeTrialText||"",I=E&&""!==E.trim(),O=e.i18n?.freeTrialPeriod||"",N=O&&""!==O.trim(),A=N||I?f?.headings?.freeTrial||"Free trial*":(0,l.M)(e,f?.labels?.free||"Free",f),R=A===(f?.labels?.freeUntilRenewal||"Free until renewal"),M=(0,l.Tc)(e),T=(0,l.Dn)(e),L=(e,t)=>{if(!e||"object"!=typeof e)return[];const r=[];let n=1;for(;e[`${t}${n}`];){const i=e[`${t}${n}`];i&&""!==i.trim()&&r.push(i),n++}return r},P=L(e.i18n,"keyBenefitContent"),D=L(e.i18n,"keyFeatureContent"),F=[];if(e.i18n&&"object"==typeof e.i18n){let t=1;for(;e.i18n[`coreFeatureTitle${t}`]||e.i18n[`coreFeatureContent${t}`];){const r=e.i18n[`coreFeatureTitle${t}`],n=e.i18n[`coreFeatureContent${t}`];r&&""!==r.trim()&&n&&""!==n.trim()&&F.push({name:r,desc:n}),t++}}const U=D,j=P,B=F,$=(0,n.createElement)("div",{className:"gv-surface-dim"},(0,n.createElement)("article",{className:"gv-layout-product gv-p-0 gv-product-single gv-w-max-container gv-mx-auto gv-p-fluid"},(0,n.createElement)("nav",{className:"gv-breadcrumbs gv-area-nav gv-flex-col gv-items-start"},(0,n.createElement)("a",{href:"#",onClick:r=>{if(r.preventDefault(),!d[e.slug])if("undefined"!=typeof window&&window.history&&window.history.length>1)try{window.history.back()}catch(e){t&&t()}else t&&t()},className:"gv-flex gv-items-center gv-gap-xs",role:"button","aria-label":"Go back",style:{opacity:d[e.slug]?.5:1,pointerEvents:d[e.slug]?"none":"auto",cursor:d[e.slug]?"not-allowed":"pointer"},"aria-disabled":d[e.slug]?"true":"false"},(0,n.createElement)("img",{style:{minWidth:"24px"},className:"gv-tile",src:`${_}arrow_back.svg`,alt:"Back to plugins"}),(0,n.createElement)("span",null,f.backButton)),(0,n.createElement)(s.A,{plugin:e}),(0,n.createElement)(a.A,{plugin:e})),(0,n.createElement)("header",{className:"gv-product-header gv-area-header"},(0,n.createElement)("div",{className:"gv-content gv-stack-space-md gv-text-sm"},(0,n.createElement)("h3",{className:"gv-title gv-header-lg"},k),(0,n.createElement)("p",{className:"gv-text-sm"},S)),(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("picture",null,(0,n.createElement)("source",{media:"(min-width: 600px)",srcSet:`${w} 1x, ${w} 2x`}),(0,n.createElement)("img",{src:w,srcSet:`${w} 1x, ${w} 2x`,alt:`${k} image`})))),(0,n.createElement)("section",{className:"gv-product-table gv-features-table gv-products-1 gv-area-table"},(0,n.createElement)("div",{className:"gv-table-container"},(0,n.createElement)("div",{className:"gv-table",role:"table"},(0,n.createElement)("div",{className:"gv-table-header",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-product gv-p-0 oc-border-none",role:"columnheader"},(0,n.createElement)("div",{className:"gv-content"},(0,n.createElement)("h3",{className:"gv-title"},k),(0,n.createElement)("p",null,x)),(0,n.createElement)("div",{className:"gv-bottom"},(0,n.createElement)("div",{className:"gv-price-container"},(0,n.createElement)("div",{className:"gv-price"},N||I?(0,n.createElement)("span",{className:"gv-price-text"},A):(0,n.createElement)(n.Fragment,null,(0,n.createElement)("span",{className:"gv-price-text"},"premium"===e.licenseType&&null!==T?null!==T?T:M:A),!C&&!R&&A&&(0,n.createElement)("span",{className:"gv-period"},"/",f?.labels?.timeMonth))),N||I?(0,n.createElement)("div",{className:"gv-price-info"},(0,n.createElement)("div",{className:"gv-info"},E)):!C&&A&&M&&null!==T&&(0,n.createElement)("div",{className:"gv-price-info"},(0,n.createElement)("div",{className:"gv-info"},f.labels.untilRenewal," [",T,"]/",f?.labels?.timeMonth),(0,n.createElement)("div",{className:"gv-info"},f.labels.afterThat," [",M,"]/",f?.labels?.timeMonth))),h?(0,n.createElement)(o.A,{plugin:e}):e.download&&(0,n.createElement)("a",{href:e.download,download:!0,className:"gv-button gv-button-secondary"},"Download"))))),U.length>0&&(0,n.createElement)("div",{className:"gv-section oc-left-border-0",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-section-header gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("h4",{className:"gv-title"},f?.keyFeatureHeading||e.i18n?.keyFeatureHeading))),U.map((e,t)=>(0,n.createElement)("div",{className:"gv-table-row",role:"row",key:t},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("span",{className:"gv-cell-text"},e)))))))),(0,n.createElement)("div",{className:"gv-area-details gv-grid gv-gap-fluid"},j.length>0&&(0,n.createElement)("section",{className:"gv-stack-space-md"},(0,n.createElement)("h2",{className:"gv-title gv-text-bold gv-text-lg"},f?.benefitHeading||e.i18n?.benefitHeading||"Key benefits"),(0,n.createElement)("ul",{className:"gv-list-items gv-list-check gv-mode-condensed"},j.map((e,t)=>(0,n.createElement)("li",{key:t},e))))),B.length>0&&(0,n.createElement)("div",{className:"gv-area-content gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-text-sm gv-stack-space-md"},(0,n.createElement)("h2",{className:"gv-title gv-text-bold gv-text-lg"},f?.featureOverviewHeading||e.i18n?.featureOverviewHeading||"Core features overview"),(0,n.createElement)("div",{className:"gv-grid gv-gap-lg gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3"},B.map((e,t)=>(0,n.createElement)("div",{className:"gv-item gv-stack-space-sm",key:t},(0,n.createElement)("h3",{className:"gv-title gv-text-bold gv-text-lg"},e.name),(0,n.createElement)("p",{className:"gv-text-sm"},e.desc))))))));return r?(0,i.createPortal)($,document.body):$}},4677:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(1609),i=r(7979);function o({plugin:e}){const{assetsBaseUrl:t,errorState:r,setErrorState:o,uiI18n:s,plugins:a}=(0,i.D)(),c=e||a.find(e=>e.slug===r.pluginSlug),l=r&&r.visible&&r.pluginSlug===c?.slug;if((0,n.useEffect)(()=>{if(l){const e=setTimeout(()=>{h()},5e3);return()=>clearTimeout(e)}},[l]),!l)return null;const u=t||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",p=u?`${u}assets/`:"",h=()=>{o({visible:!1,type:null,pluginSlug:null})},d="activate"===r.type,f="deactivate"===r.type,g="install"===r.type,m="delete"===r.type,v=(e,t)=>e?e.replace("{0}",t||""):"",y=c?.name||"";return(0,n.createElement)("div",{className:"gv-toast-container"},(0,n.createElement)("div",{className:"gv-toast gv-toast-alert gv-visible"},(0,n.createElement)("gv-icon",{className:"gv-notice-icon","aria-hidden":"true",src:`${p}icons/error.svg`}),(0,n.createElement)("div",{className:"gv-toast-content"},d&&v(s?.notifications?.pluginActivationFailed||"Couldn't activate plugin.",y),f&&v(s?.notifications?.pluginDeactivationFailed||"Couldn't deactivate plugin.",y),g&&v(s?.notifications?.pluginInstallationFailed||"Couldn't install plugin.",y),m&&v(s?.notifications?.pluginDeletionFailed||"Couldn't delete plugin.",y)),(0,n.createElement)("button",{type:"button",className:"gv-toast-close","aria-label":"Close",onClick:h},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${p}icons/close.svg`}))))}},4800:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(1609),i=r(7979);function o({plugin:e}){const{assetsBaseUrl:t,successState:r,setSuccessState:o,uiI18n:s,plugins:a}=(0,i.D)(),c=e||a.find(e=>e.slug===r.pluginSlug),l=r&&r.visible&&r.pluginSlug===c?.slug;if((0,n.useEffect)(()=>{if(l){const e=setTimeout(()=>{h()},5e3);return()=>clearTimeout(e)}},[l]),!l)return null;const u=t||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",p=u?`${u}assets/`:"",h=()=>{o({visible:!1,type:null,pluginSlug:null})},d="activate"===r.type,f="deactivate"===r.type,g="delete"===r.type,m=(e,t)=>e?e.replace("{0}",t||""):"",v=c?.name||"";return(0,n.createElement)("div",{className:"gv-toast-container"},(0,n.createElement)("div",{className:"gv-toast gv-toast-success gv-visible"},(0,n.createElement)("gv-icon",{className:"gv-notice-icon","aria-hidden":"true",src:`${p}icons/check_circle.svg`}),(0,n.createElement)("div",{className:"gv-toast-content"},d&&m(s?.notifications?.pluginActivatedShort||"Plugin activated.",v),f&&m(s?.notifications?.pluginDeactivated||"Plugin deactivated.",v),g&&m(s?.notifications?.pluginDeleted||"Plugin deleted successfully.",v)),(0,n.createElement)("button",{type:"button",className:"gv-toast-close","aria-label":"Close",onClick:h},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${p}icons/close.svg`}))))}},4811:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Actualiser la page","ui.notifications.couldNotLoad":"Impossible de charger la page","ui.notifications.refreshPage":"Veuillez rafraîchir la page et contact notre support si le problème persiste."}')},4814:(e,t,r)=>{"use strict";r(1609),r(3804),r(9454),r(7565)},4915:e=>{e.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},5036:(e,t,r)=>{"use strict";var n=r(2635),i=r(8291),o=r(7823),s=r(8491),a=r(5205),c=r(3591),l=r(3461),u=r(4811),p=r(7529),h=r(1199),d=r(333);const f={en_GB:{translation:o},da_DK:{translation:s},de_DE:{translation:a},es_ES:{translation:c},fi_FI:{translation:l},fr_FR:{translation:u},it_IT:{translation:p},nl_NL:{translation:h},no_NO:{translation:d},nb_NO:{translation:d},pt_PT:{translation:r(5383)},sv_SE:{translation:r(8300)},fi:{translation:l}};n.default.use(i.r9).init({resources:f,lng:"en_GB",fallbackLng:"en_GB",interpolation:{escapeValue:!1}})},5205:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Seite aktualisieren","ui.notifications.couldNotLoad":"Die Seite konnte nicht geladen werden","ui.notifications.refreshPage":"Bitte aktualisieren Sie die Seite und Kontakt Sie unser Support, falls das Problem weiterhin besteht."}')},5383:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Atualizar página","ui.notifications.couldNotLoad":"Não foi possível carregar a página","ui.notifications.refreshPage":"Atualize a página e contacte a nossa equipa de suporte se o problema persistir."}')},5795:e=>{"use strict";e.exports=window.ReactDOM},6255:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(1609),i=r(3699),o=r(3526),s=r(7979);const a=({apiBaseUrl:e,useWPHandlers:t,wpConfig:r,enableDefaultStyles:a,assetsBaseUrl:c})=>(0,n.createElement)(s.t,{apiBaseUrl:e,useWPHandlers:t,wpConfig:r,enableDefaultStyles:a,assetsBaseUrl:c},(0,n.createElement)(o.A,null),(0,n.createElement)("div",{className:"gv-activated"},(0,n.createElement)("div",{className:"marketplace-container gv-layout-product gv-w-max-container gv-mx-auto gv-p-fluid"},(0,n.createElement)(i.A,null))))},6530:()=>{var e=Object.defineProperty,t=(t,r,n)=>(((t,r,n)=>{r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n})(t,"symbol"!=typeof r?r+"":r,n),n);const r={};async function n(e){if(r.hasOwnProperty(e))return r[e];let t;return t=e.startsWith("data:")||!("caches"in self)?fetch(e).then(e=>e.text()):caches.open("gravity").then(async t=>{let r=await t.match(e);return r||(r=await fetch(e),r.ok&&await t.put(e,r.clone())),r.text()}),r[e]=t,t}class i extends HTMLElement{static get observedAttributes(){return["src"]}fetchFlag(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchFlag(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchFlag(r)}}t(i,"TAG_NAME","gv-flag");class o extends HTMLElement{static get observedAttributes(){return["src"]}fetchIcon(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchIcon(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchIcon(r)}}t(o,"TAG_NAME","gv-icon");class s extends HTMLElement{static get observedAttributes(){return["src"]}fetchIllustration(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchIllustration(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchIllustration(r)}}t(s,"TAG_NAME","gv-illustration");class a extends HTMLElement{static get observedAttributes(){return["src"]}fetchIndicator(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchIndicator(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchIndicator(r)}}t(a,"TAG_NAME","gv-indicator");class c extends HTMLElement{static get observedAttributes(){return["src"]}fetchLoader(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchLoader(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchLoader(r)}}t(c,"TAG_NAME","gv-loader");class l extends HTMLElement{static get observedAttributes(){return["src"]}fetchLogo(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchLogo(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchLogo(r)}}t(l,"TAG_NAME","gv-logo");class u extends HTMLElement{static get observedAttributes(){return["src"]}fetchPayIcon(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchPayIcon(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchPayIcon(r)}}t(u,"TAG_NAME","gv-pay-icon");class p extends HTMLElement{static get observedAttributes(){return["src"]}fetchTile(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchTile(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchTile(r)}}function h(e,t){customElements.get(e)||customElements.define(e,t)}t(p,"TAG_NAME","gv-tile"),h(i.TAG_NAME,i),h(o.TAG_NAME,o),h(s.TAG_NAME,s),h(a.TAG_NAME,a),h(c.TAG_NAME,c),h(l.TAG_NAME,l),h(u.TAG_NAME,u),h(p.TAG_NAME,p)},6751:(e,t,r)=>{"use strict";var n;if(r.d(t,{A:()=>Hd}),"undefined"==typeof window){var i={hostname:""};n={crypto:{randomUUID:function(){throw Error("unsupported")}},navigator:{userAgent:"",onLine:!0},document:{createElement:function(){return{}},location:i,referrer:""},screen:{width:0,height:0},location:i,addEventListener:function(){},removeEventListener:function(){}}}else n=window;function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(i[r]=e[r]);return i}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function m(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function v(e){var t="function"==typeof Map?new Map:void 0;return v=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return c(e,arguments,p(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),g(n,e)},v(e)}function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(y=function(){return!!e})()}function b(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e))||t){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}var k,S=Object.defineProperty,x=function(e,t,r){return function(e,t,r){return t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r}(e,"symbol"!==(void 0===t?"undefined":m(t))?t+"":t,r)},C=Object.defineProperty,E=function(e,t,r){return function(e,t,r){return t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r}(e,"symbol"!==(void 0===t?"undefined":m(t))?t+"":t,r)},I=function(e){return e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e}(I||{}),O={Node:["childNodes","parentNode","parentElement","textContent"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},N={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},A={};function R(e){if(A[e])return A[e];var t=globalThis[e],r=t.prototype,n=e in O?O[e]:void 0,i=Boolean(n&&n.every(function(e){var t,n;return Boolean(null==(n=null==(t=Object.getOwnPropertyDescriptor(r,e))?void 0:t.get)?void 0:n.toString().includes("[native code]"))})),o=e in N?N[e]:void 0,s=Boolean(o&&o.every(function(e){var t;return"function"==typeof r[e]&&(null==(t=r[e])?void 0:t.toString().includes("[native code]"))}));if(i&&s&&!globalThis.Zone)return A[e]=t.prototype,t.prototype;try{var a=document.createElement("iframe");document.body.appendChild(a);var c=a.contentWindow;if(!c)return t.prototype;var l=c[e].prototype;return document.body.removeChild(a),l?A[e]=l:r}catch(e){return r}}var M={};function T(e,t,r){var n,i=e+"."+String(r);if(M[i])return M[i].call(t);var o=R(e),s=null==(n=Object.getOwnPropertyDescriptor(o,r))?void 0:n.get;return s?(M[i]=s,s.call(t)):t[r]}var L=function(e){return T("Node",e,"childNodes")},P=function(e){return T("Node",e,"parentNode")},D=function(e){return T("Node",e,"parentElement")},F=function(e){return T("Node",e,"textContent")},U=function(e){return e&&"host"in e?T("ShadowRoot",e,"host"):null},j=function(e){return e&&"shadowRoot"in e?T("Element",e,"shadowRoot"):null};function B(e){return e.nodeType===e.ELEMENT_NODE}function $(e){var t=e&&"host"in e&&"mode"in e&&U(e)||null;return Boolean(t&&"shadowRoot"in t&&j(t)===e)}function z(e){return"[object ShadowRoot]"===Object.prototype.toString.call(e)}function q(e){try{var t=e.rules||e.cssRules;if(!t)return null;var r=e.href;return!r&&e.ownerNode&&e.ownerNode.ownerDocument&&(r=e.ownerNode.ownerDocument.location.href),(n=Array.from(t,function(e){return V(e,r)}).join("")).includes(" background-clip: text;")&&!n.includes(" -webkit-background-clip: text;")&&(n=n.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),n}catch(e){return null}var n}function V(e,t){if(function(e){return"styleSheet"in e}(e)){var r;try{r=q(e.styleSheet)||function(e){var t=e.cssText;if(t.split('"').length<3)return t;var r=["@import","url("+JSON.stringify(e.href)+")"];return""===e.layerName?r.push("layer"):e.layerName&&r.push("layer("+e.layerName+")"),e.supportsText&&r.push("supports("+e.supportsText+")"),e.media.length&&r.push(e.media.mediaText),r.join(" ")+";"}(e)}catch(t){r=e.cssText}return e.styleSheet.href?te(r,e.styleSheet.href):r}var n,i=e.cssText;return function(e){return"selectorText"in e}(e)&&e.selectorText.includes(":")&&(n=/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm,i=i.replace(n,"$1\\$2")),t?te(i,t):i}var W=function(){function e(){E(this,"idNodeMap",new Map),E(this,"nodeMetaMap",new WeakMap)}var t=e.prototype;return t.getId=function(e){var t;if(!e)return-1;var r=null==(t=this.getMeta(e))?void 0:t.id;return null!=r?r:-1},t.getNode=function(e){return this.idNodeMap.get(e)||null},t.getIds=function(){return Array.from(this.idNodeMap.keys())},t.getMeta=function(e){return this.nodeMetaMap.get(e)||null},t.removeNodeFromMap=function(e){var t=this,r=this.getId(e);this.idNodeMap.delete(r),e.childNodes&&e.childNodes.forEach(function(e){return t.removeNodeFromMap(e)})},t.has=function(e){return this.idNodeMap.has(e)},t.hasNode=function(e){return this.nodeMetaMap.has(e)},t.add=function(e,t){var r=t.id;this.idNodeMap.set(r,e),this.nodeMetaMap.set(e,t)},t.replace=function(e,t){var r=this.getNode(e);if(r){var n=this.nodeMetaMap.get(r);n&&this.nodeMetaMap.set(t,n)}this.idNodeMap.set(e,t)},t.reset=function(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap},e}();function H(e){var t=e.element,r=e.maskInputOptions,n=e.tagName,i=e.type,o=e.value,s=e.maskInputFn,a=o||"",c=i&&G(i);return(r[n.toLowerCase()]||c&&r[c])&&(a=s?s(a,t):"*".repeat(a.length)),a}function G(e){return e.toLowerCase()}var K="__rrweb_original__";function J(e){var t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?G(t):null}function Y(e,t){var r;try{r=new URL(e,null!=t?t:window.location.href)}catch(e){return null}var n,i=r.pathname.match(/\.([0-9a-z]+)(?:$)/i);return null!=(n=null==i?void 0:i[1])?n:null}var Z=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,X=/^(?:[a-z+]+:)?\/\//i,Q=/^www\..*/i,ee=/^(data:)([^,]*),(.*)/i;function te(e,t){return(e||"").replace(Z,function(e,r,n,i,o,s){var a,c=n||o||s,l=r||i||"";if(!c)return e;if(X.test(c)||Q.test(c))return"url("+l+c+l+")";if(ee.test(c))return"url("+l+c+l+")";if("/"===c[0])return"url("+l+(((a=t).indexOf("//")>-1?a.split("/").slice(0,3).join("/"):a.split("/")[0]).split("?")[0]+c)+l+")";var u=t.split("/"),p=c.split("/");u.pop();for(var h,d=b(p);!(h=d()).done;){var f=h.value;"."!==f&&(".."===f?u.pop():u.push(f))}return"url("+l+u.join("/")+l+")"})}function re(e,t){return void 0===t&&(t=!1),t?e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,""):e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,"").replace(/0px/g,"0")}var ne,ie,oe=1,se=new RegExp("[^a-z0-9-_:]");function ae(){return oe++}var ce=/^[^ \t\n\r\u000c]+/,le=/^[, \t\n\r\u000c]+/,ue=new WeakMap;function pe(e,t){return t&&""!==t.trim()?he(e,t):t}function he(e,t){var r=ue.get(e);if(r||(r=e.createElement("a"),ue.set(e,r)),t){if(t.startsWith("blob:")||t.startsWith("data:"))return t}else t="";return r.setAttribute("href",t),r.href}function de(e,t,r,n){return n?"src"===r||"href"===r&&("use"!==t||"#"!==n[0])||"xlink:href"===r&&"#"!==n[0]?pe(e,n):"background"!==r||"table"!==t&&"td"!==t&&"th"!==t?"srcset"===r?function(e,t){if(""===t.trim())return t;var r=0;function n(e){var n,i=e.exec(t.substring(r));return i?(n=i[0],r+=n.length,n):""}for(var i=[];n(le),!(r>=t.length);){var o=n(ce);if(","===o.slice(-1))o=pe(e,o.substring(0,o.length-1)),i.push(o);else{var s="";o=pe(e,o);for(var a=!1;;){var c=t.charAt(r);if(""===c){i.push((o+s).trim());break}if(a)")"===c&&(a=!1);else{if(","===c){r+=1,i.push((o+s).trim());break}"("===c&&(a=!0)}s+=c,r+=1}}}return i.join(", ")}(e,n):"style"===r?te(n,he(e)):"object"===t&&"data"===r?pe(e,n):n:pe(e,n):n}function fe(e,t,r){return("video"===e||"audio"===e)&&"autoplay"===t}function ge(e,t,r){if(!e)return!1;if(e.nodeType!==e.ELEMENT_NODE)return!!r&&ge(P(e),t,r);for(var n=e.classList.length;n--;){var i=e.classList[n];if(t.test(i))return!0}return!!r&&ge(P(e),t,r)}function me(e,t,r,n){var i;if(B(e)){if(!L(i=e).length)return!1}else{if(null===D(e))return!1;i=D(e)}try{if("string"==typeof t){if(n){if(i.closest("."+t))return!0}else if(i.classList.contains(t))return!0}else if(ge(i,t,n))return!0;if(r)if(n){if(i.closest(r))return!0}else if(i.matches(r))return!0}catch(e){}return!1}function ve(e,t){var r=t.doc,n=t.mirror,i=t.blockClass,o=t.blockSelector,s=t.needsMask,a=t.inlineStylesheet,c=t.maskInputOptions,l=void 0===c?{}:c,u=t.maskTextFn,p=t.maskInputFn,h=t.dataURLOptions,f=void 0===h?{}:h,g=t.inlineImages,m=t.recordCanvas,v=t.keepIframeSrcFn,y=t.newlyAddedElement,b=void 0!==y&&y,_=t.cssCaptured,w=void 0!==_&&_,k=function(e,t){if(t.hasNode(e)){var r=t.getId(e);return 1===r?void 0:r}}(r,n);switch(e.nodeType){case e.DOCUMENT_NODE:return"CSS1Compat"!==e.compatMode?{type:I.Document,childNodes:[],compatMode:e.compatMode}:{type:I.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:I.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:k};case e.ELEMENT_NODE:return function(e,t){for(var r,n=t.doc,i=t.inlineStylesheet,o=t.maskInputOptions,s=void 0===o?{}:o,a=t.maskInputFn,c=t.dataURLOptions,l=void 0===c?{}:c,u=t.inlineImages,p=t.recordCanvas,h=t.keepIframeSrcFn,f=t.newlyAddedElement,g=void 0!==f&&f,m=t.rootId,v=function(e,t,r){try{if("string"==typeof t){if(e.classList.contains(t))return!0}else for(var n=e.classList.length;n--;){var i=e.classList[n];if(t.test(i))return!0}if(r)return e.matches(r)}catch(e){}return!1}(e,t.blockClass,t.blockSelector),y=function(e){if(d(e,HTMLFormElement))return"form";var t=G(e.tagName);return se.test(t)?"div":t}(e),b={},_=e.attributes.length,w=0;w<_;w++){var k=e.attributes[w];fe(y,k.name,k.value)||(b[k.name]=de(n,y,G(k.name),k.value))}if("link"===y&&i){var S=Array.from(n.styleSheets).find(function(t){return t.href===e.href}),x=null;S&&(x=q(S)),x&&(delete b.rel,delete b.href,b._cssText=x)}if("style"===y&&e.sheet){var C=q(e.sheet);C&&(e.childNodes.length>1&&(C=function(e,t){return function(e,t,r){void 0===r&&(r=!1);var n=Array.from(t.childNodes),i=[],o=0;if(n.length>1&&e&&"string"==typeof e)for(var s=re(e,r),a=s.length/e.length,c=1;c2&&""===h[0]&&""!==n[c-1].textContent)d=s.indexOf(p,1);else if(1===h.length){if(p=p.substring(0,p.length-1),(h=s.split(p)).length<=1)return i.push(e),i;u=101}else u===l.length-1&&(d=s.indexOf(p));if(h.length>=2&&u>100){var f=n[c-1].textContent;if(f&&"string"==typeof f){var g=re(f).length;d=s.indexOf(p,g)}-1===d&&(d=h[0].length)}if(-1!==d){for(var m=Math.floor(d/a);m>0&&m50*n.length)return i.push(e),i;var v=re(e.substring(0,m),r);if(v.length===d){i.push(e.substring(0,m)),e=e.substring(m),s=s.substring(d);break}v.length",T=R.crossOrigin,L=function(){R.removeEventListener("load",L);try{ne.width=R.naturalWidth,ne.height=R.naturalHeight,ie.drawImage(R,0,0),b.rr_dataURL=ne.toDataURL(l.type,l.quality)}catch(e){if("anonymous"!==R.crossOrigin)return R.crossOrigin="anonymous",void(R.complete&&0!==R.naturalWidth?L():R.addEventListener("load",L));console.warn("Cannot inline img src="+M+"! Error: "+e)}"anonymous"===R.crossOrigin&&(T?b.crossOrigin=T:R.removeAttribute("crossorigin"))};R.complete&&0!==R.naturalWidth?L():R.addEventListener("load",L)}if("audio"===y||"video"===y){var P=b;P.rr_mediaState=e.paused?"paused":"played",P.rr_mediaCurrentTime=e.currentTime,P.rr_mediaPlaybackRate=e.playbackRate,P.rr_mediaMuted=e.muted,P.rr_mediaLoop=e.loop,P.rr_mediaVolume=e.volume}if(g||(e.scrollLeft&&(b.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(b.rr_scrollTop=e.scrollTop)),v){var D=e.getBoundingClientRect(),F=D.width,U=D.height;b={class:b.class,rr_width:F+"px",rr_height:U+"px"}}"iframe"!==y||h(b.src)||(e.contentDocument||(b.rr_src=b.src),delete b.src);try{customElements.get(y)&&(r=!0)}catch(e){}return{type:I.Element,tagName:y,attributes:b,childNodes:[],isSVG:(j=e,Boolean("svg"===j.tagName||j.ownerSVGElement)||void 0),needBlock:v,rootId:m,isCustom:r};var j}(e,{doc:r,blockClass:i,blockSelector:o,inlineStylesheet:a,maskInputOptions:l,maskInputFn:p,dataURLOptions:f,inlineImages:g,recordCanvas:m,keepIframeSrcFn:v,newlyAddedElement:b,rootId:k});case e.TEXT_NODE:return function(e,t){var r=t.needsMask,n=t.maskTextFn,i=t.rootId,o=t.cssCaptured,s=P(e),a=s&&s.tagName,c="",l="STYLE"===a||void 0,u="SCRIPT"===a||void 0;return u?c="SCRIPT_PLACEHOLDER":o||(c=F(e),l&&c&&(c=te(c,he(t.doc)))),!l&&!u&&c&&r&&(c=n?n(c,D(e)):c.replace(/[\S]/g,"*")),{type:I.Text,textContent:c||"",rootId:i}}(e,{doc:r,needsMask:s,maskTextFn:u,rootId:k,cssCaptured:w});case e.CDATA_SECTION_NODE:return{type:I.CDATA,textContent:"",rootId:k};case e.COMMENT_NODE:return{type:I.Comment,textContent:F(e)||"",rootId:k};default:return!1}}function ye(e){return null==e?"":e.toLowerCase()}function be(e,t){var r=t.doc,n=t.mirror,i=t.blockClass,o=t.blockSelector,s=t.maskTextClass,a=t.maskTextSelector,c=t.skipChild,l=void 0!==c&&c,u=t.inlineStylesheet,p=void 0===u||u,h=t.maskInputOptions,d=void 0===h?{}:h,f=t.maskTextFn,g=t.maskInputFn,m=t.slimDOMOptions,v=t.dataURLOptions,y=void 0===v?{}:v,_=t.inlineImages,w=void 0!==_&&_,k=t.recordCanvas,S=void 0!==k&&k,x=t.onSerialize,C=t.onIframeLoad,E=t.iframeLoadTimeout,O=void 0===E?5e3:E,N=t.onStylesheetLoad,A=t.stylesheetLoadTimeout,R=void 0===A?5e3:A,M=t.keepIframeSrcFn,T=void 0===M?function(){return!1}:M,D=t.newlyAddedElement,F=void 0!==D&&D,U=t.cssCaptured,q=void 0!==U&&U,V=t.needsMask,W=t.preserveWhiteSpace,H=void 0===W||W;V||(V=me(e,s,a,void 0===V));var G,K=ve(e,{doc:r,mirror:n,blockClass:i,blockSelector:o,needsMask:V,inlineStylesheet:p,maskInputOptions:d,maskTextFn:f,maskInputFn:g,dataURLOptions:y,inlineImages:w,recordCanvas:S,keepIframeSrcFn:T,newlyAddedElement:F,cssCaptured:q});if(!K)return console.warn(e,"not serialized"),null;G=n.hasNode(e)?n.getId(e):function(e,t){if(t.comment&&e.type===I.Comment)return!0;if(e.type===I.Element){if(t.script&&("script"===e.tagName||"link"===e.tagName&&("preload"===e.attributes.rel&&"script"===e.attributes.as||"modulepreload"===e.attributes.rel)||"link"===e.tagName&&"prefetch"===e.attributes.rel&&"string"==typeof e.attributes.href&&"js"===Y(e.attributes.href)))return!0;if(t.headFavicon&&("link"===e.tagName&&"shortcut icon"===e.attributes.rel||"meta"===e.tagName&&(ye(e.attributes.name).match(/^msapplication-tile(image|color)$/)||"application-name"===ye(e.attributes.name)||"icon"===ye(e.attributes.rel)||"apple-touch-icon"===ye(e.attributes.rel)||"shortcut icon"===ye(e.attributes.rel))))return!0;if("meta"===e.tagName){if(t.headMetaDescKeywords&&ye(e.attributes.name).match(/^description|keywords$/))return!0;if(t.headMetaSocial&&(ye(e.attributes.property).match(/^(og|twitter|fb):/)||ye(e.attributes.name).match(/^(og|twitter):/)||"pinterest"===ye(e.attributes.name)))return!0;if(t.headMetaRobots&&("robots"===ye(e.attributes.name)||"googlebot"===ye(e.attributes.name)||"bingbot"===ye(e.attributes.name)))return!0;if(t.headMetaHttpEquiv&&void 0!==e.attributes["http-equiv"])return!0;if(t.headMetaAuthorship&&("author"===ye(e.attributes.name)||"generator"===ye(e.attributes.name)||"framework"===ye(e.attributes.name)||"publisher"===ye(e.attributes.name)||"progid"===ye(e.attributes.name)||ye(e.attributes.property).match(/^article:/)||ye(e.attributes.property).match(/^product:/)))return!0;if(t.headMetaVerification&&("google-site-verification"===ye(e.attributes.name)||"yandex-verification"===ye(e.attributes.name)||"csrf-token"===ye(e.attributes.name)||"p:domain_verify"===ye(e.attributes.name)||"verify-v1"===ye(e.attributes.name)||"verification"===ye(e.attributes.name)||"shopify-checkout-api-token"===ye(e.attributes.name)))return!0}}return!1}(K,m)||!H&&K.type===I.Text&&!K.textContent.replace(/^\s+|\s+$/gm,"").length?-2:ae();var J=Object.assign(K,{id:G});if(n.add(e,J),-2===G)return null;x&&x(e);var Z=!l;if(J.type===I.Element){Z=Z&&!J.needBlock,delete J.needBlock;var X=j(e);X&&z(X)&&(J.isShadowHost=!0)}if((J.type===I.Document||J.type===I.Element)&&Z){m.headWhitespace&&J.type===I.Element&&"head"===J.tagName&&(H=!1);var Q={doc:r,mirror:n,blockClass:i,blockSelector:o,needsMask:V,maskTextClass:s,maskTextSelector:a,skipChild:l,inlineStylesheet:p,maskInputOptions:d,maskTextFn:f,maskInputFn:g,slimDOMOptions:m,dataURLOptions:y,inlineImages:w,recordCanvas:S,preserveWhiteSpace:H,onSerialize:x,onIframeLoad:C,iframeLoadTimeout:O,onStylesheetLoad:N,stylesheetLoadTimeout:R,keepIframeSrcFn:T,cssCaptured:!1};if(J.type===I.Element&&"textarea"===J.tagName&&void 0!==J.attributes.value);else{J.type===I.Element&&void 0!==J.attributes._cssText&&"string"==typeof J.attributes._cssText&&(Q.cssCaptured=!0);for(var ee,te=b(Array.from(L(e)));!(ee=te()).done;){var re=be(ee.value,Q);re&&J.childNodes.push(re)}}var ne=null;if(B(e)&&(ne=j(e)))for(var ie,oe=b(Array.from(L(ne)));!(ie=oe()).done;){var se=be(ie.value,Q);se&&(z(ne)&&(se.isShadow=!0),J.childNodes.push(se))}}var ce=P(e);return ce&&$(ce)&&z(ce)&&(J.isShadow=!0),J.type===I.Element&&"iframe"===J.tagName&&function(e,t,r){var n=e.contentWindow;if(n){var i,o=!1;try{i=n.document.readyState}catch(e){return}if("complete"===i){var s="about:blank";if(n.location.href!==s||e.src===s||""===e.src)return setTimeout(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}else{var a=setTimeout(function(){o||(t(),o=!0)},r);e.addEventListener("load",function(){clearTimeout(a),o=!0,t()})}}}(e,function(){var t=e.contentDocument;if(t&&C){var r=be(t,{doc:t,mirror:n,blockClass:i,blockSelector:o,needsMask:V,maskTextClass:s,maskTextSelector:a,skipChild:!1,inlineStylesheet:p,maskInputOptions:d,maskTextFn:f,maskInputFn:g,slimDOMOptions:m,dataURLOptions:y,inlineImages:w,recordCanvas:S,preserveWhiteSpace:H,onSerialize:x,onIframeLoad:C,iframeLoadTimeout:O,onStylesheetLoad:N,stylesheetLoadTimeout:R,keepIframeSrcFn:T});r&&C(e,r)}},O),J.type===I.Element&&"link"===J.tagName&&"string"==typeof J.attributes.rel&&("stylesheet"===J.attributes.rel||"preload"===J.attributes.rel&&"string"==typeof J.attributes.href&&"css"===Y(J.attributes.href))&&function(e,t,r){var n,i=!1;try{n=e.sheet}catch(e){return}if(!n){var o=setTimeout(function(){i||(t(),i=!0)},r);e.addEventListener("load",function(){clearTimeout(o),i=!0,t()})}}(e,function(){if(N){var t=be(e,{doc:r,mirror:n,blockClass:i,blockSelector:o,needsMask:V,maskTextClass:s,maskTextSelector:a,skipChild:!1,inlineStylesheet:p,maskInputOptions:d,maskTextFn:f,maskInputFn:g,slimDOMOptions:m,dataURLOptions:y,inlineImages:w,recordCanvas:S,preserveWhiteSpace:H,onSerialize:x,onIframeLoad:C,iframeLoadTimeout:O,onStylesheetLoad:N,stylesheetLoadTimeout:R,keepIframeSrcFn:T});t&&N(e,t)}},R),J}function _e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function we(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return d(this,e)?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}),r}var ke={exports:{}},Se=String,xe=function(){return{isColorSupported:!1,reset:Se,bold:Se,dim:Se,italic:Se,underline:Se,inverse:Se,hidden:Se,strikethrough:Se,black:Se,red:Se,green:Se,yellow:Se,blue:Se,magenta:Se,cyan:Se,white:Se,gray:Se,bgBlack:Se,bgRed:Se,bgGreen:Se,bgYellow:Se,bgBlue:Se,bgMagenta:Se,bgCyan:Se,bgWhite:Se}};ke.exports=xe(),ke.exports.createColors=xe;var Ce=ke.exports,Ee=we(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"}))),Ie=Ce,Oe=Ee,Ne=function(e){function t(r,n,i,o,s,a){var c;return(c=e.call(this,r)||this).name="CssSyntaxError",c.reason=r,s&&(c.file=s),o&&(c.source=o),a&&(c.plugin=a),void 0!==n&&void 0!==i&&("number"==typeof n?(c.line=n,c.column=i):(c.line=n.line,c.column=n.column,c.endLine=i.line,c.endColumn=i.column)),c.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(c,t),c}h(t,e);var r=t.prototype;return r.setMessage=function(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason},r.showSourceCode=function(e){var t=this;if(!this.source)return"";var r=this.source;null==e&&(e=Ie.isColorSupported),Oe&&e&&(r=Oe(r));var n,i,o=r.split(/\r?\n/),s=Math.max(this.line-3,0),a=Math.min(this.line+2,o.length),c=String(a).length;if(e){var l=Ie.createColors(!0),u=l.bold,p=l.gray,h=l.red;n=function(e){return u(h(e))},i=function(e){return p(e)}}else n=i=function(e){return e};return o.slice(s,a).map(function(e,r){var o=s+1+r,a=" "+(" "+o).slice(-c)+" | ";if(o===t.line){var l=i(a.replace(/\d/g," "))+e.slice(0,t.column-1).replace(/[^\t]/g," ");return n(">")+i(a)+e+"\n "+l+n("^")}return" "+i(a)+e}).join("\n")},r.toString=function(){var e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e},t}(v(Error)),Ae=Ne;Ne.default=Ne;var Re={};Re.isClean=Symbol("isClean"),Re.my=Symbol("my");var Me={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1},Te=function(){function e(e){this.builder=e}var t=e.prototype;return t.atrule=function(e,t){var r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{var i=(e.raws.between||"")+(t?";":"");this.builder(r+n+i,e)}},t.beforeAfter=function(e,t){var r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");for(var n=e.parent,i=0;n&&"root"!==n.type;)i+=1,n=n.parent;if(r.includes("\n")){var o=this.raw(e,null,"indent");if(o.length)for(var s=0;s0&&"comment"===e.nodes[t].type;)t-=1;for(var r=this.raw(e,"semicolon"),n=0;n0&&void 0!==e.raws.after)return(t=e.raws.after).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t},t.rawBeforeComment=function(e,t){var r;return e.walkComments(function(e){if(void 0!==e.raws.before)return(r=e.raws.before).includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r},t.rawBeforeDecl=function(e,t){var r;return e.walkDecls(function(e){if(void 0!==e.raws.before)return(r=e.raws.before).includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r},t.rawBeforeOpen=function(e){var t;return e.walk(function(e){if("decl"!==e.type&&void 0!==(t=e.raws.between))return!1}),t},t.rawBeforeRule=function(e){var t;return e.walk(function(r){if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return(t=r.raws.before).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t},t.rawColon=function(e){var t;return e.walkDecls(function(e){if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1}),t},t.rawEmptyBody=function(e){var t;return e.walk(function(e){if(e.nodes&&0===e.nodes.length&&void 0!==(t=e.raws.after))return!1}),t},t.rawIndent=function(e){return e.raws.indent?e.raws.indent:(e.walk(function(r){var n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){var i=r.raws.before.split("\n");return t=(t=i[i.length-1]).replace(/\S/g,""),!1}}),t);var t},t.rawSemicolon=function(e){var t;return e.walk(function(e){if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&void 0!==(t=e.raws.semicolon))return!1}),t},t.rawValue=function(e,t){var r=e[t],n=e.raws[t];return n&&n.value===r?n.raw:r},t.root=function(e){this.body(e),e.raws.after&&this.builder(e.raws.after)},t.rule=function(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")},t.stringify=function(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)},e}(),Le=Te;Te.default=Te;var Pe=Le;function De(e,t){new Pe(t).stringify(e)}var Fe=De;De.default=De;var Ue=Re.isClean,je=Re.my,Be=Ae,$e=Le,ze=Fe;function qe(e,t){var r=new e.constructor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&"proxyCache"!==n){var i=e[n],o=void 0===i?"undefined":m(i);"parent"===n&&"object"===o?t&&(r[n]=t):"source"===n?r[n]=i:Array.isArray(i)?r[n]=i.map(function(e){return qe(e,r)}):("object"===o&&null!==i&&(i=qe(i)),r[n]=i)}return r}var Ve=function(){function e(e){for(var t in void 0===e&&(e={}),this.raws={},this[Ue]=!1,this[je]=!0,e)if("nodes"===t){this.nodes=[];for(var r,n=b(e[t]);!(r=n()).done;){var i=r.value;"function"==typeof i.clone?this.append(i.clone()):this.append(i)}}else this[t]=e[t]}var t=e.prototype;return t.addToError=function(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){var t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,"$&"+t.input.from+":"+t.start.line+":"+t.start.column+"$&")}return e},t.after=function(e){return this.parent.insertAfter(this,e),this},t.assign=function(e){for(var t in void 0===e&&(e={}),e)this[t]=e[t];return this},t.before=function(e){return this.parent.insertBefore(this,e),this},t.cleanRaws=function(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between},t.clone=function(e){void 0===e&&(e={});var t=qe(this);for(var r in e)t[r]=e[r];return t},t.cloneAfter=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertAfter(this,t),t},t.cloneBefore=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertBefore(this,t),t},t.error=function(e,t){if(void 0===t&&(t={}),this.source){var r=this.rangeBy(t),n=r.end,i=r.start;return this.source.input.error(e,{column:i.column,line:i.line},{column:n.column,line:n.line},t)}return new Be(e)},t.getProxyProcessor=function(){return{get:function(e,t){return"proxyOf"===t?e:"root"===t?function(){return e.root().toProxy()}:e[t]},set:function(e,t,r){return e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0}}},t.markDirty=function(){if(this[Ue]){this[Ue]=!1;for(var e=this;e=e.parent;)e[Ue]=!1}},t.next=function(){if(this.parent){var e=this.parent.index(this);return this.parent.nodes[e+1]}},t.positionBy=function(e,t){var r=this.source.start;if(e.index)r=this.positionInside(e.index,t);else if(e.word){var n=(t=this.toString()).indexOf(e.word);-1!==n&&(r=this.positionInside(n,t))}return r},t.positionInside=function(e,t){for(var r=t||this.toString(),n=this.source.start.column,i=this.source.start.line,o=0;o-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,n)))}},t.loadFile=function(e){if(this.root=Xe(e),Ye(e))return this.mapFile=e,Ze(e,"utf-8").toString().trim()},t.loadMap=function(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(d(t,Ke))return Je.fromSourceMap(t).toString();if(d(t,Je))return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}var r=t(e);if(r){var n=this.loadFile(r);if(!n)throw new Error("Unable to load previous source map: "+r.toString());return n}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){var i=this.annotation;return e&&(i=Qe(Xe(e),i)),this.loadFile(i)}}},t.startWith=function(e,t){return!!e&&e.substr(0,t.length)===t},t.withContent=function(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)},e}(),tt=et;et.default=et;var rt=Ee.SourceMapConsumer,nt=Ee.SourceMapGenerator,it=Ee.fileURLToPath,ot=Ee.pathToFileURL,st=Ee.isAbsolute,at=Ee.resolve,ct=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},lt=Ee,ut=Ae,pt=tt,ht=Symbol("fromOffsetCache"),dt=Boolean(rt&&nt),ft=Boolean(at&&st),gt=function(){function e(e,t){if(void 0===t&&(t={}),null==e||"object"===(void 0===e?"undefined":m(e))&&!e.toString)throw new Error("PostCSS received "+e+" instead of CSS string");if(this.css=e.toString(),"\ufeff"===this.css[0]||""===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!ft||/^\w+:\/\//.test(t.from)||st(t.from)?this.file=t.from:this.file=at(t.from)),ft&&dt){var r=new pt(this.css,t);if(r.text){this.map=r;var n=r.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=" "),this.map&&(this.map.file=this.from)}var t=e.prototype;return t.error=function(e,t,r,n){var i,o,s;if(void 0===n&&(n={}),t&&"object"===(void 0===t?"undefined":m(t))){var a=t,c=r;if("number"==typeof a.offset){var l=this.fromOffset(a.offset);t=l.line,r=l.col}else t=a.line,r=a.column;if("number"==typeof c.offset){var u=this.fromOffset(c.offset);o=u.line,s=u.col}else o=c.line,s=c.column}else if(!r){var p=this.fromOffset(t);t=p.line,r=p.col}var h=this.origin(t,r,o,s);return(i=h?new ut(e,void 0===h.endLine?h.line:{column:h.column,line:h.line},void 0===h.endLine?h.column:{column:h.endColumn,line:h.endLine},h.source,h.file,n.plugin):new ut(e,void 0===o?t:{column:r,line:t},void 0===o?r:{column:s,line:o},this.css,this.file,n.plugin)).input={column:r,endColumn:s,endLine:o,line:t,source:this.css},this.file&&(ot&&(i.input.url=ot(this.file).toString()),i.input.file=this.file),i},t.fromOffset=function(e){var t;if(this[ht])t=this[ht];else{var r=this.css.split("\n");t=new Array(r.length);for(var n=0,i=0,o=r.length;i=t[t.length-1])s=t.length-1;else for(var a,c=t.length-2;s>1)])c=a-1;else{if(!(e>=t[a+1])){s=a;break}s=a+1}return{col:e-t[s]+1,line:s+1}},t.mapResolve=function(e){return/^\w+:\/\//.test(e)?e:at(this.map.consumer().sourceRoot||this.map.root||".",e)},t.origin=function(e,t,r,n){if(!this.map)return!1;var i,o,s=this.map.consumer(),a=s.originalPositionFor({column:t,line:e});if(!a.source)return!1;"number"==typeof r&&(i=s.originalPositionFor({column:n,line:r})),o=st(a.source)?ot(a.source):new URL(a.source,this.map.consumer().sourceRoot||ot(this.map.mapFile));var c={column:a.column,endColumn:i&&i.column,endLine:i&&i.line,line:a.line,url:o.toString()};if("file:"===o.protocol){if(!it)throw new Error("file: protocol is not available in this PostCSS build");c.file=it(o)}var l=s.sourceContentFor(a.source);return l&&(c.source=l),c},t.toJSON=function(){for(var e={},t=0,r=["hasBOM","css","file","id"];t=0;t--)"comment"===(e=this.root.nodes[t]).type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t);else this.css&&(this.css=this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm,""))},t.generate=function(){if(this.clearAnnotation(),Et&&Ct&&this.isMap())return this.generateMap();var e="";return this.stringify(this.root,function(t){e+=t}),[e]},t.generateMap=function(){if(this.root)this.generateString();else if(1===this.previous().length){var e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=yt.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new yt({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]},t.generateString=function(){var e=this;this.css="",this.map=new yt({file:this.outputFile(),ignoreInvalidMapping:!0});var t,r,n=1,i=1,o="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,function(a,c,l){if(e.css+=a,c&&"end"!==l&&(s.generated.line=n,s.generated.column=i-1,c.source&&c.source.start?(s.source=e.sourcePath(c),s.original.line=c.source.start.line,s.original.column=c.source.start.column-1,e.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,e.map.addMapping(s))),(t=a.match(/\n/g))?(n+=t.length,r=a.lastIndexOf("\n"),i=a.length-r):i+=a.length,c&&"start"!==l){var u=c.parent||{raws:{}};("decl"===c.type||"atrule"===c.type&&!c.nodes)&&c===u.last&&!u.raws.semicolon||(c.source&&c.source.end?(s.source=e.sourcePath(c),s.original.line=c.source.end.line,s.original.column=c.source.end.column-1,s.generated.line=n,s.generated.column=i-2,e.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,s.generated.line=n,s.generated.column=i-1,e.map.addMapping(s)))}})},t.isAnnotation=function(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some(function(e){return e.annotation}))},t.isInline=function(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;var e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some(function(e){return e.inline}))},t.isMap=function(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0},t.isSourcesContent=function(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some(function(e){return e.withContent()})},t.outputFile=function(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"},t.path=function(e){if(this.mapOpts.absolute)return e;if(60===e.charCodeAt(0))return e;if(/^\w+:\/\//.test(e))return e;var t=this.memoizedPaths.get(e);if(t)return t;var r=this.opts.to?bt(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(r=bt(wt(r,this.mapOpts.annotation)));var n=_t(r,e);return this.memoizedPaths.set(e,n),n},t.previous=function(){var e=this;if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(function(t){if(t.source&&t.source.input.map){var r=t.source.input.map;e.previousMaps.includes(r)||e.previousMaps.push(r)}});else{var t=new xt(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps},t.setSourcesContent=function(){var e=this,t={};if(this.root)this.root.walk(function(r){if(r.source){var n=r.source.input.from;if(n&&!t[n]){t[n]=!0;var i=e.usesFileUrls?e.toFileUrl(n):e.toUrl(e.path(n));e.map.setSourceContent(i,r.source.input.css)}}});else if(this.css){var r=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(r,this.css)}},t.sourcePath=function(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))},t.toBase64=function(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))},t.toFileUrl=function(e){var t=this.memoizedFileURLs.get(e);if(t)return t;if(St){var r=St(e).toString();return this.memoizedFileURLs.set(e,r),r}throw new Error("`map.absolute` option is not available in this PostCSS build")},t.toUrl=function(e){var t=this.memoizedURLs.get(e);if(t)return t;"\\"===kt&&(e=e.replace(/\\/g,"/"));var r=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,r),r},e}(),Ot=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="comment",r}return h(t,e),t}(We),Nt=Ot;Ot.default=Ot;var At,Rt,Mt,Tt,Lt=Re.isClean,Pt=Re.my,Dt=Ge,Ft=Nt;function Ut(e){return e.map(function(e){return e.nodes&&(e.nodes=Ut(e.nodes)),delete e.source,e})}function jt(e){if(e[Lt]=!1,e.proxyOf.nodes)for(var t,r=b(e.proxyOf.nodes);!(t=r()).done;)jt(t.value)}var Bt=function(e){function t(){return e.apply(this,arguments)||this}h(t,e);var r=t.prototype;return r.append=function(){for(var e=arguments.length,t=new Array(e),r=0;r1?t-1:0),i=1;i=e&&(this.indexes[r]=t-1);return this.markDirty(),this},r.replaceValues=function(e,t,r){return r||(r=t,t={}),this.walkDecls(function(n){t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))}),this.markDirty(),this},r.some=function(e){return this.nodes.some(e)},r.walk=function(e){return this.each(function(t,r){var n;try{n=e(t,r)}catch(e){throw t.addToError(e)}return!1!==n&&t.walk&&(n=t.walk(e)),n})},r.walkAtRules=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("atrule"===r.type&&e.test(r.name))return t(r,n)}):this.walk(function(r,n){if("atrule"===r.type&&r.name===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("atrule"===e.type)return t(e,r)}))},r.walkComments=function(e){return this.walk(function(t,r){if("comment"===t.type)return e(t,r)})},r.walkDecls=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("decl"===r.type&&e.test(r.prop))return t(r,n)}):this.walk(function(r,n){if("decl"===r.type&&r.prop===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("decl"===e.type)return t(e,r)}))},r.walkRules=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("rule"===r.type&&e.test(r.selector))return t(r,n)}):this.walk(function(r,n){if("rule"===r.type&&r.selector===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("rule"===e.type)return t(e,r)}))},l(t,[{key:"first",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}},{key:"last",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}}]),t}(We);Bt.registerParse=function(e){At=e},Bt.registerRule=function(e){Rt=e},Bt.registerAtRule=function(e){Mt=e},Bt.registerRoot=function(e){Tt=e};var $t=Bt;Bt.default=Bt,Bt.rebuild=function(e){"atrule"===e.type?Object.setPrototypeOf(e,Mt.prototype):"rule"===e.type?Object.setPrototypeOf(e,Rt.prototype):"decl"===e.type?Object.setPrototypeOf(e,Dt.prototype):"comment"===e.type?Object.setPrototypeOf(e,Ft.prototype):"root"===e.type&&Object.setPrototypeOf(e,Tt.prototype),e[Pt]=!0,e.nodes&&e.nodes.forEach(function(e){Bt.rebuild(e)})};var zt,qt,Vt=function(e){function t(t){var r;return(r=e.call(this,u({type:"document"},t))||this).nodes||(r.nodes=[]),r}return h(t,e),t.prototype.toResult=function(e){return void 0===e&&(e={}),new zt(new qt,this,e).stringify()},t}($t);Vt.registerLazyResult=function(e){zt=e},Vt.registerProcessor=function(e){qt=e};var Wt=Vt;Vt.default=Vt;var Ht=function(){function e(e,t){if(void 0===t&&(t={}),this.type="warning",this.text=e,t.node&&t.node.source){var r=t.node.rangeBy(t);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(var n in t)this[n]=t[n]}return e.prototype.toString=function(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text},e}(),Gt=Ht;Ht.default=Ht;var Kt=Gt,Jt=function(){function e(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}var t=e.prototype;return t.toString=function(){return this.css},t.warn=function(e,t){void 0===t&&(t={}),t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);var r=new Kt(e,t);return this.messages.push(r),r},t.warnings=function(){return this.messages.filter(function(e){return"warning"===e.type})},l(e,[{key:"content",get:function(){return this.css}}]),e}(),Yt=Jt;Jt.default=Jt;var Zt="'".charCodeAt(0),Xt='"'.charCodeAt(0),Qt="\\".charCodeAt(0),er="/".charCodeAt(0),tr="\n".charCodeAt(0),rr=" ".charCodeAt(0),nr="\f".charCodeAt(0),ir="\t".charCodeAt(0),or="\r".charCodeAt(0),sr="[".charCodeAt(0),ar="]".charCodeAt(0),cr="(".charCodeAt(0),lr=")".charCodeAt(0),ur="{".charCodeAt(0),pr="}".charCodeAt(0),hr=";".charCodeAt(0),dr="*".charCodeAt(0),fr=":".charCodeAt(0),gr="@".charCodeAt(0),mr=/[\t\n\f\r "#'()/;[\\\]{}]/g,vr=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,yr=/.[\r\n"'(/\\]/,br=/[\da-f]/i,_r=$t,wr=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="atrule",r}h(t,e);var r=t.prototype;return r.append=function(){for(var t=arguments.length,r=new Array(t),n=0;n1?r.raws.before=this.nodes[1].raws.before:delete r.raws.before;else if(this.first!==r)for(var o,s=b(i);!(o=s()).done;)o.value.raws.before=r.raws.before;return i},r.removeChild=function(t,r){var n=this.index(t);return!r&&0===n&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),e.prototype.removeChild.call(this,t)},r.toResult=function(e){return void 0===e&&(e={}),new Sr(new xr,this,e).stringify()},t}(Cr);Er.registerLazyResult=function(e){Sr=e},Er.registerProcessor=function(e){xr=e};var Ir=Er;Er.default=Er,Cr.registerRoot(Er);var Or={comma:function(e){return Or.split(e,[","],!0)},space:function(e){return Or.split(e,[" ","\n","\t"])},split:function(e,t,r){for(var n,i=[],o="",s=!1,a=0,c=!1,l="",u=!1,p=b(e);!(n=p()).done;){var h=n.value;u?u=!1:"\\"===h?u=!0:c?h===l&&(c=!1):'"'===h||"'"===h?(c=!0,l=h):"("===h?a+=1:")"===h?a>0&&(a-=1):0===a&&t.includes(h)&&(s=!0),s?(""!==o&&i.push(o.trim()),o="",s=!1):o+=h}return(r||""!==o)&&i.push(o.trim()),i}},Nr=Or;Or.default=Or;var Ar=$t,Rr=Nr,Mr=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="rule",r.nodes||(r.nodes=[]),r}return h(t,e),l(t,[{key:"selectors",get:function(){return Rr.comma(this.selector)},set:function(e){var t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}}]),t}(Ar),Tr=Mr;Mr.default=Mr,Ar.registerRule(Mr);var Lr=Ge,Pr=Nt,Dr=kr,Fr=Ir,Ur=Tr,jr={empty:!0,space:!0},Br=function(){function e(e){this.input=e,this.root=new Fr,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}var t=e.prototype;return t.atrule=function(e){var t,r,n,i=new Dr;i.name=e[1].slice(1),""===i.name&&this.unnamedAtrule(i,e),this.init(i,e[2]);for(var o=!1,s=!1,a=[],c=[];!this.tokenizer.endOfFile();){if("("===(t=(e=this.tokenizer.nextToken())[0])||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){i.source.end=this.getPosition(e[2]),i.source.end.offset++,this.semicolon=!0;break}if("{"===t){s=!0;break}if("}"===t){if(a.length>0){for(r=a[n=a.length-1];r&&"space"===r[0];)r=a[--n];r&&(i.source.end=this.getPosition(r[3]||r[2]),i.source.end.offset++)}this.end(e);break}a.push(e)}else a.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(i.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(i,"params",a),o&&(e=a[a.length-1],i.source.end=this.getPosition(e[3]||e[2]),i.source.end.offset++,this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),s&&(i.nodes=[],this.current=i)},t.checkMissedSemicolon=function(e){var t=this.colon(e);if(!1!==t){for(var r,n=0,i=t-1;i>=0&&("space"===(r=e[i])[0]||2!==(n+=1));i--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}},t.colon=function(e){for(var t,r,n,i,o=0,s=b(e.entries());!(i=s()).done;){var a=i.value,c=a[0];if("("===(r=(t=a[1])[0])&&(o+=1),")"===r&&(o-=1),0===o&&":"===r){if(n){if("word"===n[0]&&"progid"===n[1])continue;return c}this.doubleColon(t)}n=t}return!1},t.comment=function(e){var t=new Pr;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;var r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{var n=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}},t.createTokenizer=function(){this.tokenizer=function(e,t){void 0===t&&(t={});var r,n,i,o,s,a,c,l,u,p,h=e.css.valueOf(),d=t.ignoreErrors,f=h.length,g=0,m=[],v=[];function y(t){throw e.error("Unclosed "+t,g)}return{back:function(e){v.push(e)},endOfFile:function(){return 0===v.length&&g>=f},nextToken:function(e){if(v.length)return v.pop();if(!(g>=f)){var t=!!e&&e.ignoreUnclosed;switch(r=h.charCodeAt(g)){case tr:case rr:case ir:case or:case nr:n=g;do{n+=1,r=h.charCodeAt(n)}while(r===rr||r===tr||r===ir||r===or||r===nr);p=["space",h.slice(g,n)],g=n-1;break;case sr:case ar:case ur:case pr:case fr:case hr:case lr:var b=String.fromCharCode(r);p=[b,b,g];break;case cr:if(l=m.length?m.pop()[1]:"",u=h.charCodeAt(g+1),"url"===l&&u!==Zt&&u!==Xt&&u!==rr&&u!==tr&&u!==ir&&u!==nr&&u!==or){n=g;do{if(a=!1,-1===(n=h.indexOf(")",n+1))){if(d||t){n=g;break}y("bracket")}for(c=n;h.charCodeAt(c-1)===Qt;)c-=1,a=!a}while(a);p=["brackets",h.slice(g,n+1),g,n],g=n}else n=h.indexOf(")",g+1),o=h.slice(g,n+1),-1===n||yr.test(o)?p=["(","(",g]:(p=["brackets",o,g,n],g=n);break;case Zt:case Xt:i=r===Zt?"'":'"',n=g;do{if(a=!1,-1===(n=h.indexOf(i,n+1))){if(d||t){n=g+1;break}y("string")}for(c=n;h.charCodeAt(c-1)===Qt;)c-=1,a=!a}while(a);p=["string",h.slice(g,n+1),g,n],g=n;break;case gr:mr.lastIndex=g+1,mr.test(h),n=0===mr.lastIndex?h.length-1:mr.lastIndex-2,p=["at-word",h.slice(g,n+1),g,n],g=n;break;case Qt:for(n=g,s=!0;h.charCodeAt(n+1)===Qt;)n+=1,s=!s;if(r=h.charCodeAt(n+1),s&&r!==er&&r!==rr&&r!==tr&&r!==ir&&r!==or&&r!==nr&&(n+=1,br.test(h.charAt(n)))){for(;br.test(h.charAt(n+1));)n+=1;h.charCodeAt(n+1)===rr&&(n+=1)}p=["word",h.slice(g,n+1),g,n],g=n;break;default:r===er&&h.charCodeAt(g+1)===dr?(0===(n=h.indexOf("*/",g+2)+1)&&(d||t?n=h.length:y("comment")),p=["comment",h.slice(g,n+1),g,n],g=n):(vr.lastIndex=g+1,vr.test(h),n=0===vr.lastIndex?h.length-1:vr.lastIndex-2,p=["word",h.slice(g,n+1),g,n],m.push(p),g=n)}return g++,p}},position:function(){return g}}}(this.input)},t.decl=function(e,t){var r=new Lr;this.init(r,e[0][2]);var n,i=e[e.length-1];for(";"===i[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(i[3]||i[2]||function(e){for(var t=e.length-1;t>=0;t--){var r=e[t],n=r[3]||r[2];if(n)return n}}(e)),r.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){var o=e[0][0];if(":"===o||"space"===o||"comment"===o)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(":"===(n=e.shift())[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));for(var s,a=[];e.length&&("space"===(s=e[0][0])||"comment"===s);)a.push(e.shift());this.precheckMissedSemicolon(e);for(var c=e.length-1;c>=0;c--){if("!important"===(n=e[c])[1].toLowerCase()){r.important=!0;var l=this.stringFrom(e,c);" !important"!==(l=this.spacesFromEnd(e)+l)&&(r.raws.important=l);break}if("important"===n[1].toLowerCase()){for(var u=e.slice(0),p="",h=c;h>0;h--){var d=u[h][0];if(0===p.trim().indexOf("!")&&"space"!==d)break;p=u.pop()[1]+p}0===p.trim().indexOf("!")&&(r.important=!0,r.raws.important=p,e=u)}if("space"!==n[0]&&"comment"!==n[0])break}var f=e.some(function(e){return"space"!==e[0]&&"comment"!==e[0]});f&&(r.raws.between+=a.map(function(e){return e[1]}).join(""),a=[]),this.raw(r,"value",a.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)},t.doubleColon=function(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})},t.emptyRule=function(e){var t=new Ur;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t},t.end=function(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)},t.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())},t.freeSemicolon=function(e){if(this.spaces+=e[1],this.current.nodes){var t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}},t.getPosition=function(e){var t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}},t.init=function(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)},t.other=function(e){for(var t=!1,r=null,n=!1,i=null,o=[],s=e[1].startsWith("--"),a=[],c=e;c;){if(r=c[0],a.push(c),"("===r||"["===r)i||(i=c),o.push("("===r?")":"]");else if(s&&n&&"{"===r)i||(i=c),o.push("}");else if(0===o.length){if(";"===r){if(n)return void this.decl(a,s);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),t=!0;break}":"===r&&(n=!0)}else r===o[o.length-1]&&(o.pop(),0===o.length&&(i=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),o.length>0&&this.unclosedBracket(i),t&&n){if(!s)for(;a.length&&("space"===(c=a[a.length-1][0])||"comment"===c);)this.tokenizer.back(a.pop());this.decl(a,s)}else this.unknownWord(a)},t.parse=function(){for(var e;!this.tokenizer.endOfFile();)switch((e=this.tokenizer.nextToken())[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()},t.precheckMissedSemicolon=function(){},t.raw=function(e,t,r,n){for(var i,o,s,a,c=r.length,l="",u=!0,p=0;p0},t.runAsync=function(){var e=this;return a(function(){var t,r,n,i,o,s,a,c,l,u,p,h;return _(this,function(d){switch(d.label){case 0:e.plugin=0,t=0,d.label=1;case 1:if(!(t0))return[3,13];if(!on(a=e.visitTick(s)))return[3,12];d.label=9;case 9:return d.trys.push([9,11,,12]),[4,a];case 10:return d.sent(),[3,12];case 11:throw c=d.sent(),l=s[s.length-1].node,e.handleError(c,l);case 12:return[3,8];case 13:return[3,7];case 14:if(!e.listeners.OnceExit)return[3,18];u=function(){var t,r,n,i,s;return _(this,function(a){switch(a.label){case 0:t=h.value,r=t[0],n=t[1],e.result.lastPlugin=r,a.label=1;case 1:return a.trys.push([1,6,,7]),"document"!==o.type?[3,3]:(i=o.nodes.map(function(t){return n(t,e.helpers)}),[4,Promise.all(i)]);case 2:return a.sent(),[3,5];case 3:return[4,n(o,e.helpers)];case 4:a.sent(),a.label=5;case 5:return[3,7];case 6:throw s=a.sent(),e.handleError(s);case 7:return[2]}})},p=b(e.listeners.OnceExit),d.label=15;case 15:return(h=p()).done?[3,18]:[5,w(u())];case 16:d.sent(),d.label=17;case 17:return[3,15];case 18:return e.processed=!0,[2,e.stringify()]}})})()},t.runOnRoot=function(e){var t=this;this.result.lastPlugin=e;try{if("object"===(void 0===e?"undefined":m(e))&&e.Once){if("document"===this.result.root.type){var r=this.result.root.nodes.map(function(r){return e.Once(r,t.helpers)});return on(r[0])?Promise.all(r):r}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}},t.stringify=function(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();var e=this.result.opts,t=Jr;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);var r=new Kr(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result},t.sync=function(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(var e,t=b(this.plugins);!(e=t()).done;){var r=e.value;if(on(this.runOnRoot(r)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){for(var n=this.result.root;!n[Hr];)n[Hr]=!0,this.walkSync(n);if(this.listeners.OnceExit)if("document"===n.type)for(var i,o=b(n.nodes);!(i=o()).done;){var s=i.value;this.visitSync(this.listeners.OnceExit,s)}else this.visitSync(this.listeners.OnceExit,n)}return this.result},t.then=function(e,t){return this.async().then(e,t)},t.toString=function(){return this.css},t.visitSync=function(e,t){for(var r,n=b(e);!(r=n()).done;){var i=r.value,o=i[0],s=i[1];this.result.lastPlugin=o;var a=void 0;try{a=s(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(on(a))throw this.getAsyncError()}},t.visitTick=function(e){var t=e[e.length-1],r=t.node,n=t.visitors;if("root"===r.type||"document"===r.type||r.parent){if(n.length>0&&t.visitorIndex",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason},r.showSourceCode=function(e){var t=this;if(!this.source)return"";var r=this.source;null==e&&(e=ui.isColorSupported),pi&&e&&(r=pi(r));var n,i,o=r.split(/\r?\n/),s=Math.max(this.line-3,0),a=Math.min(this.line+2,o.length),c=String(a).length;if(e){var l=ui.createColors(!0),u=l.bold,p=l.gray,h=l.red;n=function(e){return u(h(e))},i=function(e){return p(e)}}else n=i=function(e){return e};return o.slice(s,a).map(function(e,r){var o=s+1+r,a=" "+(" "+o).slice(-c)+" | ";if(o===t.line){var l=i(a.replace(/\d/g," "))+e.slice(0,t.column-1).replace(/[^\t]/g," ");return n(">")+i(a)+e+"\n "+l+n("^")}return" "+i(a)+e}).join("\n")},r.toString=function(){var e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e},t}(v(Error)),di=hi;hi.default=hi;var fi={};fi.isClean=Symbol("isClean"),fi.my=Symbol("my");var gi={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1},mi=function(){function e(e){this.builder=e}var t=e.prototype;return t.atrule=function(e,t){var r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{var i=(e.raws.between||"")+(t?";":"");this.builder(r+n+i,e)}},t.beforeAfter=function(e,t){var r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");for(var n=e.parent,i=0;n&&"root"!==n.type;)i+=1,n=n.parent;if(r.includes("\n")){var o=this.raw(e,null,"indent");if(o.length)for(var s=0;s0&&"comment"===e.nodes[t].type;)t-=1;for(var r=this.raw(e,"semicolon"),n=0;n0&&void 0!==e.raws.after)return(t=e.raws.after).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t},t.rawBeforeComment=function(e,t){var r;return e.walkComments(function(e){if(void 0!==e.raws.before)return(r=e.raws.before).includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r},t.rawBeforeDecl=function(e,t){var r;return e.walkDecls(function(e){if(void 0!==e.raws.before)return(r=e.raws.before).includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r},t.rawBeforeOpen=function(e){var t;return e.walk(function(e){if("decl"!==e.type&&void 0!==(t=e.raws.between))return!1}),t},t.rawBeforeRule=function(e){var t;return e.walk(function(r){if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return(t=r.raws.before).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t},t.rawColon=function(e){var t;return e.walkDecls(function(e){if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1}),t},t.rawEmptyBody=function(e){var t;return e.walk(function(e){if(e.nodes&&0===e.nodes.length&&void 0!==(t=e.raws.after))return!1}),t},t.rawIndent=function(e){return e.raws.indent?e.raws.indent:(e.walk(function(r){var n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){var i=r.raws.before.split("\n");return t=(t=i[i.length-1]).replace(/\S/g,""),!1}}),t);var t},t.rawSemicolon=function(e){var t;return e.walk(function(e){if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&void 0!==(t=e.raws.semicolon))return!1}),t},t.rawValue=function(e,t){var r=e[t],n=e.raws[t];return n&&n.value===r?n.raw:r},t.root=function(e){this.body(e),e.raws.after&&this.builder(e.raws.after)},t.rule=function(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")},t.stringify=function(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)},e}(),vi=mi;mi.default=mi;var yi=vi;function bi(e,t){new yi(t).stringify(e)}var _i=bi;bi.default=bi;var wi=fi.isClean,ki=fi.my,Si=di,xi=vi,Ci=_i;function Ei(e,t){var r=new e.constructor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&"proxyCache"!==n){var i=e[n],o=void 0===i?"undefined":m(i);"parent"===n&&"object"===o?t&&(r[n]=t):"source"===n?r[n]=i:Array.isArray(i)?r[n]=i.map(function(e){return Ei(e,r)}):("object"===o&&null!==i&&(i=Ei(i)),r[n]=i)}return r}var Ii=function(){function e(e){for(var t in void 0===e&&(e={}),this.raws={},this[wi]=!1,this[ki]=!0,e)if("nodes"===t){this.nodes=[];for(var r,n=b(e[t]);!(r=n()).done;){var i=r.value;"function"==typeof i.clone?this.append(i.clone()):this.append(i)}}else this[t]=e[t]}var t=e.prototype;return t.addToError=function(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){var t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,"$&"+t.input.from+":"+t.start.line+":"+t.start.column+"$&")}return e},t.after=function(e){return this.parent.insertAfter(this,e),this},t.assign=function(e){for(var t in void 0===e&&(e={}),e)this[t]=e[t];return this},t.before=function(e){return this.parent.insertBefore(this,e),this},t.cleanRaws=function(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between},t.clone=function(e){void 0===e&&(e={});var t=Ei(this);for(var r in e)t[r]=e[r];return t},t.cloneAfter=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertAfter(this,t),t},t.cloneBefore=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertBefore(this,t),t},t.error=function(e,t){if(void 0===t&&(t={}),this.source){var r=this.rangeBy(t),n=r.end,i=r.start;return this.source.input.error(e,{column:i.column,line:i.line},{column:n.column,line:n.line},t)}return new Si(e)},t.getProxyProcessor=function(){return{get:function(e,t){return"proxyOf"===t?e:"root"===t?function(){return e.root().toProxy()}:e[t]},set:function(e,t,r){return e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0}}},t.markDirty=function(){if(this[wi]){this[wi]=!1;for(var e=this;e=e.parent;)e[wi]=!1}},t.next=function(){if(this.parent){var e=this.parent.index(this);return this.parent.nodes[e+1]}},t.positionBy=function(e,t){var r=this.source.start;if(e.index)r=this.positionInside(e.index,t);else if(e.word){var n=(t=this.toString()).indexOf(e.word);-1!==n&&(r=this.positionInside(n,t))}return r},t.positionInside=function(e,t){for(var r=t||this.toString(),n=this.source.start.column,i=this.source.start.line,o=0;o-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,n)))}},t.loadFile=function(e){if(this.root=Pi(e),Ti(e))return this.mapFile=e,Li(e,"utf-8").toString().trim()},t.loadMap=function(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(d(t,Ri))return Mi.fromSourceMap(t).toString();if(d(t,Mi))return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}var r=t(e);if(r){var n=this.loadFile(r);if(!n)throw new Error("Unable to load previous source map: "+r.toString());return n}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){var i=this.annotation;return e&&(i=Di(Pi(e),i)),this.loadFile(i)}}},t.startWith=function(e,t){return!!e&&e.substr(0,t.length)===t},t.withContent=function(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)},e}(),Ui=Fi;Fi.default=Fi;var ji=li.SourceMapConsumer,Bi=li.SourceMapGenerator,$i=li.fileURLToPath,zi=li.pathToFileURL,qi=li.isAbsolute,Vi=li.resolve,Wi=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},Hi=li,Gi=di,Ki=Ui,Ji=Symbol("fromOffsetCache"),Yi=Boolean(ji&&Bi),Zi=Boolean(Vi&&qi),Xi=function(){function e(e,t){if(void 0===t&&(t={}),null==e||"object"===(void 0===e?"undefined":m(e))&&!e.toString)throw new Error("PostCSS received "+e+" instead of CSS string");if(this.css=e.toString(),"\ufeff"===this.css[0]||""===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!Zi||/^\w+:\/\//.test(t.from)||qi(t.from)?this.file=t.from:this.file=Vi(t.from)),Zi&&Yi){var r=new Ki(this.css,t);if(r.text){this.map=r;var n=r.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=" "),this.map&&(this.map.file=this.from)}var t=e.prototype;return t.error=function(e,t,r,n){var i,o,s;if(void 0===n&&(n={}),t&&"object"===(void 0===t?"undefined":m(t))){var a=t,c=r;if("number"==typeof a.offset){var l=this.fromOffset(a.offset);t=l.line,r=l.col}else t=a.line,r=a.column;if("number"==typeof c.offset){var u=this.fromOffset(c.offset);o=u.line,s=u.col}else o=c.line,s=c.column}else if(!r){var p=this.fromOffset(t);t=p.line,r=p.col}var h=this.origin(t,r,o,s);return(i=h?new Gi(e,void 0===h.endLine?h.line:{column:h.column,line:h.line},void 0===h.endLine?h.column:{column:h.endColumn,line:h.endLine},h.source,h.file,n.plugin):new Gi(e,void 0===o?t:{column:r,line:t},void 0===o?r:{column:s,line:o},this.css,this.file,n.plugin)).input={column:r,endColumn:s,endLine:o,line:t,source:this.css},this.file&&(zi&&(i.input.url=zi(this.file).toString()),i.input.file=this.file),i},t.fromOffset=function(e){var t;if(this[Ji])t=this[Ji];else{var r=this.css.split("\n");t=new Array(r.length);for(var n=0,i=0,o=r.length;i=t[t.length-1])s=t.length-1;else for(var a,c=t.length-2;s>1)])c=a-1;else{if(!(e>=t[a+1])){s=a;break}s=a+1}return{col:e-t[s]+1,line:s+1}},t.mapResolve=function(e){return/^\w+:\/\//.test(e)?e:Vi(this.map.consumer().sourceRoot||this.map.root||".",e)},t.origin=function(e,t,r,n){if(!this.map)return!1;var i,o,s=this.map.consumer(),a=s.originalPositionFor({column:t,line:e});if(!a.source)return!1;"number"==typeof r&&(i=s.originalPositionFor({column:n,line:r})),o=qi(a.source)?zi(a.source):new URL(a.source,this.map.consumer().sourceRoot||zi(this.map.mapFile));var c={column:a.column,endColumn:i&&i.column,endLine:i&&i.line,line:a.line,url:o.toString()};if("file:"===o.protocol){if(!$i)throw new Error("file: protocol is not available in this PostCSS build");c.file=$i(o)}var l=s.sourceContentFor(a.source);return l&&(c.source=l),c},t.toJSON=function(){for(var e={},t=0,r=["hasBOM","css","file","id"];t=0;t--)"comment"===(e=this.root.nodes[t]).type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t);else this.css&&(this.css=this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm,""))},t.generate=function(){if(this.clearAnnotation(),lo&&co&&this.isMap())return this.generateMap();var e="";return this.stringify(this.root,function(t){e+=t}),[e]},t.generateMap=function(){if(this.root)this.generateString();else if(1===this.previous().length){var e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=to.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new to({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]},t.generateString=function(){var e=this;this.css="",this.map=new to({file:this.outputFile(),ignoreInvalidMapping:!0});var t,r,n=1,i=1,o="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,function(a,c,l){if(e.css+=a,c&&"end"!==l&&(s.generated.line=n,s.generated.column=i-1,c.source&&c.source.start?(s.source=e.sourcePath(c),s.original.line=c.source.start.line,s.original.column=c.source.start.column-1,e.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,e.map.addMapping(s))),(t=a.match(/\n/g))?(n+=t.length,r=a.lastIndexOf("\n"),i=a.length-r):i+=a.length,c&&"start"!==l){var u=c.parent||{raws:{}};("decl"===c.type||"atrule"===c.type&&!c.nodes)&&c===u.last&&!u.raws.semicolon||(c.source&&c.source.end?(s.source=e.sourcePath(c),s.original.line=c.source.end.line,s.original.column=c.source.end.column-1,s.generated.line=n,s.generated.column=i-2,e.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,s.generated.line=n,s.generated.column=i-1,e.map.addMapping(s)))}})},t.isAnnotation=function(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some(function(e){return e.annotation}))},t.isInline=function(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;var e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some(function(e){return e.inline}))},t.isMap=function(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0},t.isSourcesContent=function(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some(function(e){return e.withContent()})},t.outputFile=function(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"},t.path=function(e){if(this.mapOpts.absolute)return e;if(60===e.charCodeAt(0))return e;if(/^\w+:\/\//.test(e))return e;var t=this.memoizedPaths.get(e);if(t)return t;var r=this.opts.to?ro(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(r=ro(io(r,this.mapOpts.annotation)));var n=no(r,e);return this.memoizedPaths.set(e,n),n},t.previous=function(){var e=this;if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(function(t){if(t.source&&t.source.input.map){var r=t.source.input.map;e.previousMaps.includes(r)||e.previousMaps.push(r)}});else{var t=new ao(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps},t.setSourcesContent=function(){var e=this,t={};if(this.root)this.root.walk(function(r){if(r.source){var n=r.source.input.from;if(n&&!t[n]){t[n]=!0;var i=e.usesFileUrls?e.toFileUrl(n):e.toUrl(e.path(n));e.map.setSourceContent(i,r.source.input.css)}}});else if(this.css){var r=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(r,this.css)}},t.sourcePath=function(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))},t.toBase64=function(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))},t.toFileUrl=function(e){var t=this.memoizedFileURLs.get(e);if(t)return t;if(so){var r=so(e).toString();return this.memoizedFileURLs.set(e,r),r}throw new Error("`map.absolute` option is not available in this PostCSS build")},t.toUrl=function(e){var t=this.memoizedURLs.get(e);if(t)return t;"\\"===oo&&(e=e.replace(/\\/g,"/"));var r=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,r),r},e}(),po=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="comment",r}return h(t,e),t}(Oi),ho=po;po.default=po;var fo,go,mo,vo,yo=fi.isClean,bo=fi.my,_o=Ai,wo=ho;function ko(e){return e.map(function(e){return e.nodes&&(e.nodes=ko(e.nodes)),delete e.source,e})}function So(e){if(e[yo]=!1,e.proxyOf.nodes)for(var t,r=b(e.proxyOf.nodes);!(t=r()).done;)So(t.value)}var xo=function(e){function t(){return e.apply(this,arguments)||this}h(t,e);var r=t.prototype;return r.append=function(){for(var e=arguments.length,t=new Array(e),r=0;r1?t-1:0),i=1;i=e&&(this.indexes[r]=t-1);return this.markDirty(),this},r.replaceValues=function(e,t,r){return r||(r=t,t={}),this.walkDecls(function(n){t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))}),this.markDirty(),this},r.some=function(e){return this.nodes.some(e)},r.walk=function(e){return this.each(function(t,r){var n;try{n=e(t,r)}catch(e){throw t.addToError(e)}return!1!==n&&t.walk&&(n=t.walk(e)),n})},r.walkAtRules=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("atrule"===r.type&&e.test(r.name))return t(r,n)}):this.walk(function(r,n){if("atrule"===r.type&&r.name===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("atrule"===e.type)return t(e,r)}))},r.walkComments=function(e){return this.walk(function(t,r){if("comment"===t.type)return e(t,r)})},r.walkDecls=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("decl"===r.type&&e.test(r.prop))return t(r,n)}):this.walk(function(r,n){if("decl"===r.type&&r.prop===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("decl"===e.type)return t(e,r)}))},r.walkRules=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("rule"===r.type&&e.test(r.selector))return t(r,n)}):this.walk(function(r,n){if("rule"===r.type&&r.selector===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("rule"===e.type)return t(e,r)}))},l(t,[{key:"first",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}},{key:"last",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}}]),t}(Oi);xo.registerParse=function(e){fo=e},xo.registerRule=function(e){go=e},xo.registerAtRule=function(e){mo=e},xo.registerRoot=function(e){vo=e};var Co=xo;xo.default=xo,xo.rebuild=function(e){"atrule"===e.type?Object.setPrototypeOf(e,mo.prototype):"rule"===e.type?Object.setPrototypeOf(e,go.prototype):"decl"===e.type?Object.setPrototypeOf(e,_o.prototype):"comment"===e.type?Object.setPrototypeOf(e,wo.prototype):"root"===e.type&&Object.setPrototypeOf(e,vo.prototype),e[bo]=!0,e.nodes&&e.nodes.forEach(function(e){xo.rebuild(e)})};var Eo,Io,Oo=function(e){function t(t){var r;return(r=e.call(this,u({type:"document"},t))||this).nodes||(r.nodes=[]),r}return h(t,e),t.prototype.toResult=function(e){return void 0===e&&(e={}),new Eo(new Io,this,e).stringify()},t}(Co);Oo.registerLazyResult=function(e){Eo=e},Oo.registerProcessor=function(e){Io=e};var No=Oo;Oo.default=Oo;var Ao=function(){function e(e,t){if(void 0===t&&(t={}),this.type="warning",this.text=e,t.node&&t.node.source){var r=t.node.rangeBy(t);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(var n in t)this[n]=t[n]}return e.prototype.toString=function(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text},e}(),Ro=Ao;Ao.default=Ao;var Mo=Ro,To=function(){function e(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}var t=e.prototype;return t.toString=function(){return this.css},t.warn=function(e,t){void 0===t&&(t={}),t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);var r=new Mo(e,t);return this.messages.push(r),r},t.warnings=function(){return this.messages.filter(function(e){return"warning"===e.type})},l(e,[{key:"content",get:function(){return this.css}}]),e}(),Lo=To;To.default=To;var Po="'".charCodeAt(0),Do='"'.charCodeAt(0),Fo="\\".charCodeAt(0),Uo="/".charCodeAt(0),jo="\n".charCodeAt(0),Bo=" ".charCodeAt(0),$o="\f".charCodeAt(0),zo="\t".charCodeAt(0),qo="\r".charCodeAt(0),Vo="[".charCodeAt(0),Wo="]".charCodeAt(0),Ho="(".charCodeAt(0),Go=")".charCodeAt(0),Ko="{".charCodeAt(0),Jo="}".charCodeAt(0),Yo=";".charCodeAt(0),Zo="*".charCodeAt(0),Xo=":".charCodeAt(0),Qo="@".charCodeAt(0),es=/[\t\n\f\r "#'()/;[\\\]{}]/g,ts=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,rs=/.[\r\n"'(/\\]/,ns=/[\da-f]/i,is=Co,os=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="atrule",r}h(t,e);var r=t.prototype;return r.append=function(){for(var t=arguments.length,r=new Array(t),n=0;n1?r.raws.before=this.nodes[1].raws.before:delete r.raws.before;else if(this.first!==r)for(var o,s=b(i);!(o=s()).done;)o.value.raws.before=r.raws.before;return i},r.removeChild=function(t,r){var n=this.index(t);return!r&&0===n&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),e.prototype.removeChild.call(this,t)},r.toResult=function(e){return void 0===e&&(e={}),new as(new cs,this,e).stringify()},t}(ls);us.registerLazyResult=function(e){as=e},us.registerProcessor=function(e){cs=e};var ps=us;us.default=us,ls.registerRoot(us);var hs={comma:function(e){return hs.split(e,[","],!0)},space:function(e){return hs.split(e,[" ","\n","\t"])},split:function(e,t,r){for(var n,i=[],o="",s=!1,a=0,c=!1,l="",u=!1,p=b(e);!(n=p()).done;){var h=n.value;u?u=!1:"\\"===h?u=!0:c?h===l&&(c=!1):'"'===h||"'"===h?(c=!0,l=h):"("===h?a+=1:")"===h?a>0&&(a-=1):0===a&&t.includes(h)&&(s=!0),s?(""!==o&&i.push(o.trim()),o="",s=!1):o+=h}return(r||""!==o)&&i.push(o.trim()),i}},ds=hs;hs.default=hs;var fs=Co,gs=ds,ms=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="rule",r.nodes||(r.nodes=[]),r}return h(t,e),l(t,[{key:"selectors",get:function(){return gs.comma(this.selector)},set:function(e){var t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}}]),t}(fs),vs=ms;ms.default=ms,fs.registerRule(ms);var ys=Ai,bs=ho,_s=ss,ws=ps,ks=vs,Ss={empty:!0,space:!0},xs=function(){function e(e){this.input=e,this.root=new ws,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}var t=e.prototype;return t.atrule=function(e){var t,r,n,i=new _s;i.name=e[1].slice(1),""===i.name&&this.unnamedAtrule(i,e),this.init(i,e[2]);for(var o=!1,s=!1,a=[],c=[];!this.tokenizer.endOfFile();){if("("===(t=(e=this.tokenizer.nextToken())[0])||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){i.source.end=this.getPosition(e[2]),i.source.end.offset++,this.semicolon=!0;break}if("{"===t){s=!0;break}if("}"===t){if(a.length>0){for(r=a[n=a.length-1];r&&"space"===r[0];)r=a[--n];r&&(i.source.end=this.getPosition(r[3]||r[2]),i.source.end.offset++)}this.end(e);break}a.push(e)}else a.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(i.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(i,"params",a),o&&(e=a[a.length-1],i.source.end=this.getPosition(e[3]||e[2]),i.source.end.offset++,this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),s&&(i.nodes=[],this.current=i)},t.checkMissedSemicolon=function(e){var t=this.colon(e);if(!1!==t){for(var r,n=0,i=t-1;i>=0&&("space"===(r=e[i])[0]||2!==(n+=1));i--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}},t.colon=function(e){for(var t,r,n,i,o=0,s=b(e.entries());!(i=s()).done;){var a=i.value,c=a[0];if("("===(r=(t=a[1])[0])&&(o+=1),")"===r&&(o-=1),0===o&&":"===r){if(n){if("word"===n[0]&&"progid"===n[1])continue;return c}this.doubleColon(t)}n=t}return!1},t.comment=function(e){var t=new bs;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;var r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{var n=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}},t.createTokenizer=function(){this.tokenizer=function(e,t){void 0===t&&(t={});var r,n,i,o,s,a,c,l,u,p,h=e.css.valueOf(),d=t.ignoreErrors,f=h.length,g=0,m=[],v=[];function y(t){throw e.error("Unclosed "+t,g)}return{back:function(e){v.push(e)},endOfFile:function(){return 0===v.length&&g>=f},nextToken:function(e){if(v.length)return v.pop();if(!(g>=f)){var t=!!e&&e.ignoreUnclosed;switch(r=h.charCodeAt(g)){case jo:case Bo:case zo:case qo:case $o:n=g;do{n+=1,r=h.charCodeAt(n)}while(r===Bo||r===jo||r===zo||r===qo||r===$o);p=["space",h.slice(g,n)],g=n-1;break;case Vo:case Wo:case Ko:case Jo:case Xo:case Yo:case Go:var b=String.fromCharCode(r);p=[b,b,g];break;case Ho:if(l=m.length?m.pop()[1]:"",u=h.charCodeAt(g+1),"url"===l&&u!==Po&&u!==Do&&u!==Bo&&u!==jo&&u!==zo&&u!==$o&&u!==qo){n=g;do{if(a=!1,-1===(n=h.indexOf(")",n+1))){if(d||t){n=g;break}y("bracket")}for(c=n;h.charCodeAt(c-1)===Fo;)c-=1,a=!a}while(a);p=["brackets",h.slice(g,n+1),g,n],g=n}else n=h.indexOf(")",g+1),o=h.slice(g,n+1),-1===n||rs.test(o)?p=["(","(",g]:(p=["brackets",o,g,n],g=n);break;case Po:case Do:i=r===Po?"'":'"',n=g;do{if(a=!1,-1===(n=h.indexOf(i,n+1))){if(d||t){n=g+1;break}y("string")}for(c=n;h.charCodeAt(c-1)===Fo;)c-=1,a=!a}while(a);p=["string",h.slice(g,n+1),g,n],g=n;break;case Qo:es.lastIndex=g+1,es.test(h),n=0===es.lastIndex?h.length-1:es.lastIndex-2,p=["at-word",h.slice(g,n+1),g,n],g=n;break;case Fo:for(n=g,s=!0;h.charCodeAt(n+1)===Fo;)n+=1,s=!s;if(r=h.charCodeAt(n+1),s&&r!==Uo&&r!==Bo&&r!==jo&&r!==zo&&r!==qo&&r!==$o&&(n+=1,ns.test(h.charAt(n)))){for(;ns.test(h.charAt(n+1));)n+=1;h.charCodeAt(n+1)===Bo&&(n+=1)}p=["word",h.slice(g,n+1),g,n],g=n;break;default:r===Uo&&h.charCodeAt(g+1)===Zo?(0===(n=h.indexOf("*/",g+2)+1)&&(d||t?n=h.length:y("comment")),p=["comment",h.slice(g,n+1),g,n],g=n):(ts.lastIndex=g+1,ts.test(h),n=0===ts.lastIndex?h.length-1:ts.lastIndex-2,p=["word",h.slice(g,n+1),g,n],m.push(p),g=n)}return g++,p}},position:function(){return g}}}(this.input)},t.decl=function(e,t){var r=new ys;this.init(r,e[0][2]);var n,i=e[e.length-1];for(";"===i[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(i[3]||i[2]||function(e){for(var t=e.length-1;t>=0;t--){var r=e[t],n=r[3]||r[2];if(n)return n}}(e)),r.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){var o=e[0][0];if(":"===o||"space"===o||"comment"===o)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(":"===(n=e.shift())[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));for(var s,a=[];e.length&&("space"===(s=e[0][0])||"comment"===s);)a.push(e.shift());this.precheckMissedSemicolon(e);for(var c=e.length-1;c>=0;c--){if("!important"===(n=e[c])[1].toLowerCase()){r.important=!0;var l=this.stringFrom(e,c);" !important"!==(l=this.spacesFromEnd(e)+l)&&(r.raws.important=l);break}if("important"===n[1].toLowerCase()){for(var u=e.slice(0),p="",h=c;h>0;h--){var d=u[h][0];if(0===p.trim().indexOf("!")&&"space"!==d)break;p=u.pop()[1]+p}0===p.trim().indexOf("!")&&(r.important=!0,r.raws.important=p,e=u)}if("space"!==n[0]&&"comment"!==n[0])break}var f=e.some(function(e){return"space"!==e[0]&&"comment"!==e[0]});f&&(r.raws.between+=a.map(function(e){return e[1]}).join(""),a=[]),this.raw(r,"value",a.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)},t.doubleColon=function(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})},t.emptyRule=function(e){var t=new ks;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t},t.end=function(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)},t.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())},t.freeSemicolon=function(e){if(this.spaces+=e[1],this.current.nodes){var t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}},t.getPosition=function(e){var t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}},t.init=function(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)},t.other=function(e){for(var t=!1,r=null,n=!1,i=null,o=[],s=e[1].startsWith("--"),a=[],c=e;c;){if(r=c[0],a.push(c),"("===r||"["===r)i||(i=c),o.push("("===r?")":"]");else if(s&&n&&"{"===r)i||(i=c),o.push("}");else if(0===o.length){if(";"===r){if(n)return void this.decl(a,s);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),t=!0;break}":"===r&&(n=!0)}else r===o[o.length-1]&&(o.pop(),0===o.length&&(i=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),o.length>0&&this.unclosedBracket(i),t&&n){if(!s)for(;a.length&&("space"===(c=a[a.length-1][0])||"comment"===c);)this.tokenizer.back(a.pop());this.decl(a,s)}else this.unknownWord(a)},t.parse=function(){for(var e;!this.tokenizer.endOfFile();)switch((e=this.tokenizer.nextToken())[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()},t.precheckMissedSemicolon=function(){},t.raw=function(e,t,r,n){for(var i,o,s,a,c=r.length,l="",u=!0,p=0;p0},t.runAsync=function(){var e=this;return a(function(){var t,r,n,i,o,s,a,c,l,u,p,h;return _(this,function(d){switch(d.label){case 0:e.plugin=0,t=0,d.label=1;case 1:if(!(t0))return[3,13];if(!zs(a=e.visitTick(s)))return[3,12];d.label=9;case 9:return d.trys.push([9,11,,12]),[4,a];case 10:return d.sent(),[3,12];case 11:throw c=d.sent(),l=s[s.length-1].node,e.handleError(c,l);case 12:return[3,8];case 13:return[3,7];case 14:if(!e.listeners.OnceExit)return[3,18];u=function(){var t,r,n,i,s;return _(this,function(a){switch(a.label){case 0:t=h.value,r=t[0],n=t[1],e.result.lastPlugin=r,a.label=1;case 1:return a.trys.push([1,6,,7]),"document"!==o.type?[3,3]:(i=o.nodes.map(function(t){return n(t,e.helpers)}),[4,Promise.all(i)]);case 2:return a.sent(),[3,5];case 3:return[4,n(o,e.helpers)];case 4:a.sent(),a.label=5;case 5:return[3,7];case 6:throw s=a.sent(),e.handleError(s);case 7:return[2]}})},p=b(e.listeners.OnceExit),d.label=15;case 15:return(h=p()).done?[3,18]:[5,w(u())];case 16:d.sent(),d.label=17;case 17:return[3,15];case 18:return e.processed=!0,[2,e.stringify()]}})})()},t.runOnRoot=function(e){var t=this;this.result.lastPlugin=e;try{if("object"===(void 0===e?"undefined":m(e))&&e.Once){if("document"===this.result.root.type){var r=this.result.root.nodes.map(function(r){return e.Once(r,t.helpers)});return zs(r[0])?Promise.all(r):r}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}},t.stringify=function(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();var e=this.result.opts,t=Ts;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);var r=new Ms(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result},t.sync=function(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(var e,t=b(this.plugins);!(e=t()).done;){var r=e.value;if(zs(this.runOnRoot(r)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){for(var n=this.result.root;!n[As];)n[As]=!0,this.walkSync(n);if(this.listeners.OnceExit)if("document"===n.type)for(var i,o=b(n.nodes);!(i=o()).done;){var s=i.value;this.visitSync(this.listeners.OnceExit,s)}else this.visitSync(this.listeners.OnceExit,n)}return this.result},t.then=function(e,t){return this.async().then(e,t)},t.toString=function(){return this.css},t.visitSync=function(e,t){for(var r,n=b(e);!(r=n()).done;){var i=r.value,o=i[0],s=i[1];this.result.lastPlugin=o;var a=void 0;try{a=s(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(zs(a))throw this.getAsyncError()}},t.visitTick=function(e){var t=e[e.length-1],r=t.node,n=t.visitors;if("root"===r.type||"document"===r.type||r.parent){if(n.length>0&&t.visitorIndext?(n&&(clearTimeout(n),n=null),i=c,e.apply(u,s)):n||!1===r.trailing||(n=setTimeout(function(){i=!1===r.leading?0:Date.now(),n=null,e.apply(u,s)},l))}}function sc(e,t,r,n,i){void 0===i&&(i=window);var o=i.Object.getOwnPropertyDescriptor(e,t);return i.Object.defineProperty(e,t,n?r:{set:function(e){var t=this;setTimeout(function(){r.set.call(t,e)},0),o&&o.set&&o.set.call(this,e)}}),function(){return sc(e,t,o||{},!0)}}"undefined"!=typeof window&&window.Proxy&&window.Reflect&&(ic=new Proxy(ic,{get:function(e,t,r){return"map"===t&&console.error(nc),Reflect.get(e,t,r)}}));var ac=Date.now;function cc(e){var t,r,n,i,o=e.document;return{left:o.scrollingElement?o.scrollingElement.scrollLeft:void 0!==e.pageXOffset?e.pageXOffset:o.documentElement.scrollLeft||(null==o?void 0:o.body)&&(null==(t=Ya(o.body))?void 0:t.scrollLeft)||(null==(r=null==o?void 0:o.body)?void 0:r.scrollLeft)||0,top:o.scrollingElement?o.scrollingElement.scrollTop:void 0!==e.pageYOffset?e.pageYOffset:(null==o?void 0:o.documentElement.scrollTop)||(null==o?void 0:o.body)&&(null==(n=Ya(o.body))?void 0:n.scrollTop)||(null==(i=null==o?void 0:o.body)?void 0:i.scrollTop)||0}}function lc(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function uc(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function pc(e){return e?e.nodeType===e.ELEMENT_NODE?e:Ya(e):null}function hc(e,t,r,n){if(!e)return!1;var i=pc(e);if(!i)return!1;try{if("string"==typeof t){if(i.classList.contains(t))return!0;if(n&&null!==i.closest("."+t))return!0}else if(ge(i,t,n))return!0}catch(e){}if(r){if(i.matches(r))return!0;if(n&&null!==i.closest(r))return!0}return!1}function dc(e,t,r){return!("TITLE"!==e.tagName||!r.headTitleMutations)||-2===t.getId(e)}function fc(e,t){if($(e))return!1;var r=t.getId(e);if(!t.has(r))return!0;var n=Ja(e);return(!n||n.nodeType!==e.DOCUMENT_NODE)&&(!n||fc(n,t))}function gc(e){return Boolean(e.changedTouches)}function mc(e,t){return Boolean("IFRAME"===e.nodeName&&t.getMeta(e))}function vc(e,t){return Boolean("LINK"===e.nodeName&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&"stylesheet"===e.getAttribute("rel")&&t.getMeta(e))}function yc(e){return!!e&&(d(e,Fa)&&"shadowRoot"in e?Boolean(e.shadowRoot):Boolean(tc(e)))}/[1-9][0-9]{12}/.test(Date.now().toString())||(ac=function(){return(new Date).getTime()});var bc=function(){function e(){x(this,"id",1),x(this,"styleIDMap",new WeakMap),x(this,"idStyleMap",new Map)}var t=e.prototype;return t.getId=function(e){var t;return null!=(t=this.styleIDMap.get(e))?t:-1},t.has=function(e){return this.styleIDMap.has(e)},t.add=function(e,t){return this.has(e)?this.getId(e):(r=void 0===t?this.id++:t,this.styleIDMap.set(e,r),this.idStyleMap.set(r,e),r);var r},t.getStyle=function(e){return this.idStyleMap.get(e)||null},t.reset=function(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1},t.generateId=function(){return this.id++},e}();function _c(e){var t,r=null;return"getRootNode"in e&&(null==(t=Qa(e))?void 0:t.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&ec(Qa(e))&&(r=ec(Qa(e))),r}function wc(e){var t=e.ownerDocument;return!!t&&(Xa(t,e)||function(e){var t=e.ownerDocument;if(!t)return!1;var r=function(e){for(var t,r=e;t=_c(r);)r=t;return r}(e);return Xa(t,r)}(e))}var kc=function(e){return e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e}(kc||{}),Sc=function(e){return e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e}(Sc||{}),xc=function(e){return e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e}(xc||{}),Cc=function(e){return e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e}(Cc||{}),Ec=function(e){return e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e}(Ec||{}),Ic=function(e){return e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e}(Ic||{}),Oc=function(e){return e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e}(Oc||{});function Nc(e){return"__ln"in e}var Ac,Rc=function(){function e(){x(this,"length",0),x(this,"head",null),x(this,"tail",null)}var t=e.prototype;return t.get=function(e){if(e>=this.length)throw new Error("Position outside of list range");for(var t=this.head,r=0;r0&&this.stylesheetManager.adoptStyleSheets(e.contentDocument.adoptedStyleSheets,this.mirror.getId(e.contentDocument))},t.handleMessage=function(e){var t=e;if("rrweb"===t.data.type&&t.origin===t.data.origin&&e.source){var r=this.crossOriginIframeMap.get(e.source);if(r){var n=this.transformCrossOriginEvent(r,t.data.event);n&&this.wrappedEmit(n,t.data.isCheckout)}}},t.transformCrossOriginEvent=function(e,t){var r,n=this;switch(t.type){case kc.FullSnapshot:this.crossOriginIframeMirror.reset(e),this.crossOriginIframeStyleMirror.reset(e),this.replaceIdOnNode(t.data.node,e);var i=t.data.node.id;return this.crossOriginIframeRootIdMap.set(e,i),this.patchRootIdOnNode(t.data.node,i),{timestamp:t.timestamp,type:kc.IncrementalSnapshot,data:{source:Sc.Mutation,adds:[{parentId:this.mirror.getId(e),nextId:null,node:t.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}};case kc.Meta:case kc.Load:case kc.DomContentLoaded:return!1;case kc.Plugin:return t;case kc.Custom:return this.replaceIds(t.data.payload,e,["id","parentId","previousId","nextId"]),t;case kc.IncrementalSnapshot:switch(t.data.source){case Sc.Mutation:return t.data.adds.forEach(function(t){n.replaceIds(t,e,["parentId","nextId","previousId"]),n.replaceIdOnNode(t.node,e);var r=n.crossOriginIframeRootIdMap.get(e);r&&n.patchRootIdOnNode(t.node,r)}),t.data.removes.forEach(function(t){n.replaceIds(t,e,["parentId","id"])}),t.data.attributes.forEach(function(t){n.replaceIds(t,e,["id"])}),t.data.texts.forEach(function(t){n.replaceIds(t,e,["id"])}),t;case Sc.Drag:case Sc.TouchMove:case Sc.MouseMove:return t.data.positions.forEach(function(t){n.replaceIds(t,e,["id"])}),t;case Sc.ViewportResize:return!1;case Sc.MediaInteraction:case Sc.MouseInteraction:case Sc.Scroll:case Sc.CanvasMutation:case Sc.Input:return this.replaceIds(t.data,e,["id"]),t;case Sc.StyleSheetRule:case Sc.StyleDeclaration:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleId"]),t;case Sc.Font:return t;case Sc.Selection:return t.data.ranges.forEach(function(t){n.replaceIds(t,e,["start","end"])}),t;case Sc.AdoptedStyleSheet:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleIds"]),null==(r=t.data.styles)||r.forEach(function(t){n.replaceStyleIds(t,e,["styleId"])}),t}}return!1},t.replace=function(e,t,r,n){for(var i,o=b(n);!(i=o()).done;){var s=i.value;(Array.isArray(t[s])||"number"==typeof t[s])&&(Array.isArray(t[s])?t[s]=e.getIds(r,t[s]):t[s]=e.getId(r,t[s]))}return t},t.replaceIds=function(e,t,r){return this.replace(this.crossOriginIframeMirror,e,t,r)},t.replaceStyleIds=function(e,t,r){return this.replace(this.crossOriginIframeStyleMirror,e,t,r)},t.replaceIdOnNode=function(e,t){var r=this;this.replaceIds(e,t,["id","rootId"]),"childNodes"in e&&e.childNodes.forEach(function(e){r.replaceIdOnNode(e,t)})},t.patchRootIdOnNode=function(e,t){var r=this;e.type===Oc.Document||e.rootId||(e.rootId=t),"childNodes"in e&&e.childNodes.forEach(function(e){r.patchRootIdOnNode(e,t)})},e}(),Qc=function(){function e(e){x(this,"shadowDoms",new WeakSet),x(this,"mutationCb"),x(this,"scrollCb"),x(this,"bypassOptions"),x(this,"mirror"),x(this,"restoreHandlers",[]),this.mutationCb=e.mutationCb,this.scrollCb=e.scrollCb,this.bypassOptions=e.bypassOptions,this.mirror=e.mirror,this.init()}var t=e.prototype;return t.init=function(){this.reset(),this.patchAttachShadow(Element,document)},t.addShadowRoot=function(e,t){var r=this;if(z(e)&&!this.shadowDoms.has(e)){this.shadowDoms.add(e);var n=$c(u({},this.bypassOptions,{doc:t,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this}),e);this.restoreHandlers.push(function(){return n.disconnect()}),this.restoreHandlers.push(zc(u({},this.bypassOptions,{scrollCb:this.scrollCb,doc:e,mirror:this.mirror}))),setTimeout(function(){e.adoptedStyleSheets&&e.adoptedStyleSheets.length>0&&r.bypassOptions.stylesheetManager.adoptStyleSheets(e.adoptedStyleSheets,r.mirror.getId(ec(e))),r.restoreHandlers.push(Gc({mirror:r.mirror,stylesheetManager:r.bypassOptions.stylesheetManager},e))},0)}},t.observeAttachShadow=function(e){e.contentWindow&&e.contentDocument&&this.patchAttachShadow(e.contentWindow.Element,e.contentDocument)},t.patchAttachShadow=function(e,t){var r=this;this.restoreHandlers.push(Ga(e.prototype,"attachShadow",function(e){return function(n){var i=e.call(this,n),o=tc(this);return o&&wc(this)&&r.addShadowRoot(o,t),i}}))},t.reset=function(){this.restoreHandlers.forEach(function(e){try{e()}catch(e){}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet},e}(),el="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tl="undefined"==typeof Uint8Array?[]:new Uint8Array(256),rl=0;rl<64;rl++)tl[el.charCodeAt(rl)]=rl;var nl=new Map,il=function(e,t,r){if(e&&(al(e,t)||"object"===(void 0===e?"undefined":m(e)))){var n=function(e,t){var r=nl.get(e);return r||(r=new Map,nl.set(e,r)),r.has(t)||r.set(t,[]),r.get(t)}(r,e.constructor.name),i=n.indexOf(e);return-1===i&&(i=n.length,n.push(e)),i}};function ol(e,t,r){return d(e,Array)?e.map(function(e){return ol(e,t,r)}):null===e?e:d(e,Float32Array)||d(e,Float64Array)||d(e,Int32Array)||d(e,Uint32Array)||d(e,Uint8Array)||d(e,Uint16Array)||d(e,Int16Array)||d(e,Int8Array)||d(e,Uint8ClampedArray)?{rr_type:e.constructor.name,args:[Object.values(e)]}:d(e,ArrayBuffer)?{rr_type:e.constructor.name,base64:function(e){var t,r=new Uint8Array(e),n=r.length,i="";for(t=0;t>2],i+=el[(3&r[t])<<4|r[t+1]>>4],i+=el[(15&r[t+1])<<2|r[t+2]>>6],i+=el[63&r[t+2]];return n%3==2?i=i.substring(0,i.length-1)+"=":n%3==1&&(i=i.substring(0,i.length-2)+"=="),i}(e)}:d(e,DataView)?{rr_type:e.constructor.name,args:[ol(e.buffer,t,r),e.byteOffset,e.byteLength]}:d(e,HTMLImageElement)?{rr_type:e.constructor.name,src:e.src}:d(e,HTMLCanvasElement)?{rr_type:"HTMLImageElement",src:e.toDataURL()}:d(e,ImageData)?{rr_type:e.constructor.name,args:[ol(e.data,t,r),e.width,e.height]}:al(e,t)||"object"===(void 0===e?"undefined":m(e))?{rr_type:e.constructor.name,index:il(e,t,r)}:e}var sl=function(e,t,r){return e.map(function(e){return ol(e,t,r)})},al=function(e,t){var r=["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter(function(e){return"function"==typeof t[e]});return Boolean(r.find(function(r){return d(e,t[r])}))};function cl(e,t,r,n){var i=[];try{var o=Ga(e.HTMLCanvasElement.prototype,"getContext",function(e){return function(i){for(var o=arguments.length,s=new Array(o>1?o-1:0),a=1;a0&&(o.styles=s),this.adoptedStyleSheetCb(o)}},t.reset=function(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet},t.trackStylesheetInLinkElement=function(e){},e}(),bl=function(){function e(){x(this,"nodeMap",new WeakMap),x(this,"active",!1)}var t=e.prototype;return t.inOtherBuffer=function(e,t){var r=this.nodeMap.get(e);return r&&Array.from(r).some(function(e){return e!==t})},t.add=function(e,t){var r=this;this.active||(this.active=!0,requestAnimationFrame(function(){r.nodeMap=new WeakMap,r.active=!1})),this.nodeMap.set(e,(this.nodeMap.get(e)||new Set).add(t))},t.destroy=function(){},e}(),_l=!1;try{if(2!==Array.from([1],function(e){return 2*e})[0]){var wl=document.createElement("iframe");document.body.appendChild(wl),Array.from=(null==(k=wl.contentWindow)?void 0:k.Array.from)||Array.from,document.body.removeChild(wl)}}catch(e){console.debug("Unable to override Array.from",e)}var kl,Sl,xl=new W;function Cl(e){void 0===e&&(e={});var t=e.emit,r=e.checkoutEveryNms,n=e.checkoutEveryNth,i=e.blockClass,o=void 0===i?"rr-block":i,s=e.blockSelector,a=void 0===s?null:s,c=e.ignoreClass,l=void 0===c?"rr-ignore":c,p=e.ignoreSelector,h=void 0===p?null:p,d=e.maskTextClass,f=void 0===d?"rr-mask":d,g=e.maskTextSelector,m=void 0===g?null:g,v=e.inlineStylesheet,y=void 0===v||v,_=e.maskAllInputs,w=e.maskInputOptions,k=e.slimDOMOptions,S=e.maskInputFn,x=e.maskTextFn,C=e.hooks,E=e.packFn,I=e.sampling,O=void 0===I?{}:I,N=e.dataURLOptions,A=void 0===N?{}:N,R=e.mousemoveWait,M=e.recordDOM,T=void 0===M||M,L=e.recordCanvas,P=void 0!==L&&L,D=e.recordCrossOriginIframes,F=void 0!==D&&D,U=e.recordAfter,j=void 0===U?"DOMContentLoaded"===e.recordAfter?e.recordAfter:"load":U,B=e.userTriggeredOnInput,$=void 0!==B&&B,z=e.collectFonts,q=void 0!==z&&z,V=e.inlineImages,H=void 0!==V&&V,G=e.plugins,K=e.keepIframeSrcFn,J=void 0===K?function(){return!1}:K,Y=e.ignoreCSSAttributes,Z=void 0===Y?new Set([]):Y,X=e.errorHandler;Ac=X;var Q=!F||window.parent===window,ee=!1;if(!Q)try{window.parent.document&&(ee=!1)}catch(e){ee=!0}if(Q&&!t)throw new Error("emit function is required");if(!Q&&!ee)return function(){};void 0!==R&&void 0===O.mousemove&&(O.mousemove=R),xl.reset();var te,re=!0===_?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0,hidden:!0}:void 0!==w?w:{password:!0},ne=!0===k||"all"===k?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:"all"===k,headMetaDescKeywords:"all"===k,headTitleMutations:"all"===k}:k||{};!function(e){void 0===e&&(e=window),"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach)}();var ie=0,oe=function(e){for(var t,r=b(G||[]);!(t=r()).done;){var n=t.value;n.eventProcessor&&(e=n.eventProcessor(e))}return E&&!ee&&(e=E(e)),e};fl=function(e,i){var o,s=e;if(s.timestamp=ac(),!(null==(o=jc[0])?void 0:o.isFrozen())||s.type===kc.FullSnapshot||s.type===kc.IncrementalSnapshot&&s.data.source===Sc.Mutation||jc.forEach(function(e){return e.unfreeze()}),Q)null==t||t(oe(s),i);else if(ee){var a={type:"rrweb",event:oe(s),origin:window.location.origin,isCheckout:i};window.parent.postMessage(a,"*")}if(s.type===kc.FullSnapshot)te=s,ie=0;else if(s.type===kc.IncrementalSnapshot){if(s.data.source===Sc.Mutation&&s.data.isAttachIframe)return;ie++;var c=n&&ie>=n,l=r&&s.timestamp-te.timestamp>r;(c||l)&&gl(!0)}};for(var se,ae=function(e){fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Mutation},e)})},ce=function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Scroll},e)})},le=function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.CanvasMutation},e)})},ue=new yl({mutationCb:ae,adoptedStyleSheetCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.AdoptedStyleSheet},e)})}}),pe=new Xc({mirror:xl,mutationCb:ae,stylesheetManager:ue,recordCrossOriginIframes:F,wrappedEmit:fl}),he=b(G||[]);!(se=he()).done;){var de=se.value;de.getMirror&&de.getMirror({nodeMirror:xl,crossOriginIframeMirror:pe.crossOriginIframeMirror,crossOriginIframeStyleMirror:pe.crossOriginIframeStyleMirror})}var fe=new bl;ml=new vl({recordCanvas:P,mutationCb:le,win:window,blockClass:o,blockSelector:a,mirror:xl,sampling:O.canvas,dataURLOptions:A});var ge=new Qc({mutationCb:ae,scrollCb:ce,bypassOptions:{blockClass:o,blockSelector:a,maskTextClass:f,maskTextSelector:m,inlineStylesheet:y,maskInputOptions:re,dataURLOptions:A,maskTextFn:x,maskInputFn:S,recordCanvas:P,inlineImages:H,sampling:O,slimDOMOptions:ne,iframeManager:pe,stylesheetManager:ue,canvasManager:ml,keepIframeSrcFn:J,processedNodeManager:fe},mirror:xl});gl=function(e){if(void 0===e&&(e=!1),T){fl({type:kc.Meta,data:{href:window.location.href,width:uc(),height:lc()}},e),ue.reset(),ge.init(),jc.forEach(function(e){return e.lock()});var t=function(e,t){var r=t||{},n=r.mirror,i=void 0===n?new W:n,o=r.blockClass,s=r.blockSelector,a=r.maskTextClass,c=r.maskTextSelector,l=r.inlineStylesheet,u=r.inlineImages,p=r.recordCanvas,h=r.maskAllInputs,d=void 0!==h&&h,f=r.slimDOM,g=void 0!==f&&f,m=r.keepIframeSrcFn;return be(e,{doc:e,mirror:i,blockClass:void 0===o?"rr-block":o,blockSelector:void 0===s?null:s,maskTextClass:void 0===a?"rr-mask":a,maskTextSelector:void 0===c?null:c,skipChild:!1,inlineStylesheet:void 0===l||l,maskInputOptions:!0===d?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0,hidden:!0}:!1===d?{password:!0}:d,maskTextFn:r.maskTextFn,maskInputFn:r.maskInputFn,slimDOMOptions:!0===g||"all"===g?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:"all"===g,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:!1===g?{}:g,dataURLOptions:r.dataURLOptions,inlineImages:void 0!==u&&u,recordCanvas:void 0!==p&&p,preserveWhiteSpace:r.preserveWhiteSpace,onSerialize:r.onSerialize,onIframeLoad:r.onIframeLoad,iframeLoadTimeout:r.iframeLoadTimeout,onStylesheetLoad:r.onStylesheetLoad,stylesheetLoadTimeout:r.stylesheetLoadTimeout,keepIframeSrcFn:void 0===m?function(){return!1}:m,newlyAddedElement:!1})}(document,{mirror:xl,blockClass:o,blockSelector:a,maskTextClass:f,maskTextSelector:m,inlineStylesheet:y,maskAllInputs:re,maskTextFn:x,maskInputFn:S,slimDOM:ne,dataURLOptions:A,recordCanvas:P,inlineImages:H,onSerialize:function(e){mc(e,xl)&&pe.addIframe(e),vc(e,xl)&&ue.trackLinkElement(e),yc(e)&&ge.addShadowRoot(tc(e),document)},onIframeLoad:function(e,t){pe.attachIframe(e,t),ge.observeAttachShadow(e)},onStylesheetLoad:function(e,t){ue.attachLinkElement(e,t)},keepIframeSrcFn:J});if(!t)return console.warn("Failed to snapshot the document");fl({type:kc.FullSnapshot,data:{node:t,initialOffset:cc(window)}},e),jc.forEach(function(e){return e.unlock()}),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&ue.adoptStyleSheets(document.adoptedStyleSheets,xl.getId(document))}};try{var me=[],ve=function(e){var t;return Uc(Kc)({mutationCb:ae,mousemoveCb:function(e,t){return fl({type:kc.IncrementalSnapshot,data:{source:t,positions:e}})},mouseInteractionCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.MouseInteraction},e)})},scrollCb:ce,viewportResizeCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.ViewportResize},e)})},inputCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Input},e)})},mediaInteractionCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.MediaInteraction},e)})},styleSheetRuleCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.StyleSheetRule},e)})},styleDeclarationCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.StyleDeclaration},e)})},canvasMutationCb:le,fontCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Font},e)})},selectionCb:function(e){fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Selection},e)})},customElementCb:function(e){fl({type:kc.IncrementalSnapshot,data:u({source:Sc.CustomElement},e)})},blockClass:o,ignoreClass:l,ignoreSelector:h,maskTextClass:f,maskTextSelector:m,maskInputOptions:re,inlineStylesheet:y,sampling:O,recordDOM:T,recordCanvas:P,inlineImages:H,userTriggeredOnInput:$,collectFonts:q,doc:e,maskInputFn:S,maskTextFn:x,keepIframeSrcFn:J,blockSelector:a,slimDOMOptions:ne,dataURLOptions:A,mirror:xl,iframeManager:pe,stylesheetManager:ue,shadowDomManager:ge,processedNodeManager:fe,canvasManager:ml,ignoreCSSAttributes:Z,plugins:(null==(t=null==G?void 0:G.filter(function(e){return e.observer}))?void 0:t.map(function(e){return{observer:e.observer,options:e.options,callback:function(t){return fl({type:kc.Plugin,data:{plugin:e.name,payload:t}})}}}))||[]},C)};pe.addLoadListener(function(e){try{me.push(ve(e.contentDocument))}catch(e){console.warn(e)}});var ye=function(){gl(),me.push(ve(document)),_l=!0};return"interactive"===document.readyState||"complete"===document.readyState?ye():(me.push(rc("DOMContentLoaded",function(){fl({type:kc.DomContentLoaded,data:{}}),"DOMContentLoaded"===j&&ye()})),me.push(rc("load",function(){fl({type:kc.Load,data:{}}),"load"===j&&ye()},window))),function(){me.forEach(function(e){try{e()}catch(e){String(e).toLowerCase().includes("cross-origin")||console.warn(e)}}),fe.destroy(),_l=!1,Ac=void 0}}catch(e){console.warn(e)}}Cl.addCustomEvent=function(e,t){if(!_l)throw new Error("please add custom event after start recording");fl({type:kc.Custom,data:{tag:e,payload:t}})},Cl.freezePage=function(){jc.forEach(function(e){return e.freeze()})},Cl.takeFullSnapshot=function(e){if(!_l)throw new Error("please take full snapshot after start recording");gl(e)},Cl.mirror=xl,(Sl=kl||(kl={}))[Sl.NotStarted=0]="NotStarted",Sl[Sl.Running=1]="Running",Sl[Sl.Stopped=2]="Stopped",Cl.addCustomEvent,Cl.freezePage,Cl.takeFullSnapshot;var El=Object.defineProperty,Il=function(e,t,r){return function(e,t,r){return t in e?El(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r}(e,"symbol"!==(void 0===t?"undefined":m(t))?t+"":t,r)},Ol=function(){function e(e){Il(this,"fileName"),Il(this,"functionName"),Il(this,"lineNumber"),Il(this,"columnNumber"),this.fileName=e.fileName||"",this.functionName=e.functionName||"",this.lineNumber=e.lineNumber,this.columnNumber=e.columnNumber}return e.prototype.toString=function(){var e=this.lineNumber||"",t=this.columnNumber||"";return this.functionName?this.functionName+" ("+this.fileName+":"+e+":"+t+")":this.fileName+":"+e+":"+t},e}(),Nl=/(^|@)\S+:\d+/,Al=/^\s*at .*(\S+:\d+|\(native\))/m,Rl=/^(eval@)?(\[native code])?$/,Ml={parse:function(e){return e?void 0!==e.stacktrace||void 0!==e["opera#sourceloc"]?this.parseOpera(e):e.stack&&e.stack.match(Al)?this.parseV8OrIE(e):e.stack?this.parseFFOrSafari(e):(console.warn("[console-record-plugin]: Failed to parse error object:",e),[]):[]},extractLocation:function(e){if(-1===e.indexOf(":"))return[e];var t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,""));if(!t)throw new Error("Cannot parse given url: "+e);return[t[1],t[2]||void 0,t[3]||void 0]},parseV8OrIE:function(e){return e.stack.split("\n").filter(function(e){return!!e.match(Al)},this).map(function(e){e.indexOf("(eval ")>-1&&(e=e.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var t=e.replace(/^\s+/,"").replace(/\(eval code/g,"("),r=t.match(/ (\((.+):(\d+):(\d+)\)$)/),n=(t=r?t.replace(r[0],""):t).split(/\s+/).slice(1),i=this.extractLocation(r?r[1]:n.pop()),o=n.join(" ")||void 0,s=["eval",""].indexOf(i[0])>-1?void 0:i[0];return new Ol({functionName:o,fileName:s,lineNumber:i[1],columnNumber:i[2]})},this)},parseFFOrSafari:function(e){return e.stack.split("\n").filter(function(e){return!e.match(Rl)},this).map(function(e){if(e.indexOf(" > eval")>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===e.indexOf("@")&&-1===e.indexOf(":"))return new Ol({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,r=e.match(t),n=r&&r[1]?r[1]:void 0,i=this.extractLocation(e.replace(t,""));return new Ol({functionName:n,fileName:i[0],lineNumber:i[1],columnNumber:i[2]})},this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf("\n")>-1&&e.message.split("\n").length>e.stacktrace.split("\n").length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){for(var t=/Line (\d+).*script (?:in )?(\S+)/i,r=e.message.split("\n"),n=[],i=2,o=r.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;return new Ol({functionName:n,fileName:r[0],lineNumber:r[1],columnNumber:r[2]})},this)}};function Tl(e){if(!e||!e.outerHTML)return"";for(var t="";e.parentElement;){var r=e.localName;if(!r)break;r=r.toLowerCase();var n=e.parentElement,i=[];if(n.children&&n.children.length>0)for(var o=0;o1&&(r+=":eq("+i.indexOf(e)+")"),t=r+(t?">"+t:""),e=n}return t}function Ll(e){return"[object Object]"===Object.prototype.toString.call(e)}function Pl(e,t){if(0===t)return!0;for(var r,n=b(Object.keys(e));!(r=n()).done;){var i=r.value;if(Ll(e[i])&&Pl(e[i],t-1))return!0}return!1}function Dl(e,t){var r={numOfKeysLimit:50,depthOfLimit:4};Object.assign(r,t);var n=[],i=[];return JSON.stringify(e,function(e,t){if(n.length>0){var o=n.indexOf(this);~o?n.splice(o+1):n.push(this),~o?i.splice(o,1/0,e):i.push(e),~n.indexOf(t)&&(t=n[0]===t?"[Circular ~]":"[Circular ~."+i.slice(0,n.indexOf(t)).join(".")+"]")}else n.push(t);if(null===t)return t;if(void 0===t)return"undefined";if(Ll(s=t)&&Object.keys(s).length>r.numOfKeysLimit||"function"==typeof s||Ll(s)&&Pl(s,r.depthOfLimit))return function(e){var t=e.toString();return r.stringLengthLimit&&t.length>r.stringLengthLimit&&(t=t.slice(0,r.stringLengthLimit)+"..."),t}(t);var s;if("bigint"===(void 0===t?"undefined":m(t)))return t.toString()+"n";if(d(t,Event)){var a={};for(var c in t){var l=t[c];Array.isArray(l)?a[c]=Tl(l.length?l[0]:null):a[c]=l}return a}return d(t,Node)?d(t,HTMLElement)?t?t.outerHTML:"":t.nodeName:d(t,Error)?t.stack?t.stack+"\nEnd of stack for Error object":t.name+": "+t.message:t})}var Fl={level:["assert","clear","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],lengthThreshold:1e3,logger:"console"};function Ul(e,t,r){var n,i=r?Object.assign({},Fl,r):Fl,o=i.logger;if(!o)return function(){};n="string"==typeof o?t[o]:o;var s=0,a=!1,c=[];if(i.level.includes("error")){var l=function(t){var r=t.message,n=t.error,o=Ml.parse(n).map(function(e){return e.toString()}),s=[Dl(r,i.stringifyOptions)];e({level:"error",trace:o,payload:s})};t.addEventListener("error",l),c.push(function(){t.removeEventListener("error",l)});var u=function(t){var r,n;d(t.reason,Error)?n=[Dl("Uncaught (in promise) "+(r=t.reason).name+": "+r.message,i.stringifyOptions)]:(r=new Error,n=[Dl("Uncaught (in promise)",i.stringifyOptions),Dl(t.reason,i.stringifyOptions)]);var o=Ml.parse(r).map(function(e){return e.toString()});e({level:"error",trace:o,payload:n})};t.addEventListener("unhandledrejection",u),c.push(function(){t.removeEventListener("unhandledrejection",u)})}for(var p,h=b(i.level);!(p=h()).done;){var f=p.value;c.push(g(n,f))}return function(){c.forEach(function(e){return e()})};function g(t,r){var n=this;return t[r]?function(t,o){try{if(!(o in t))return function(){};var c=t[o],l=function(t){var o=n;return function(){for(var n=arguments.length,c=new Array(n),l=0;l0&&Wl(Gl,r))}catch(e){Yl.call(new Xl(r),e)}}}function Yl(e){var t=this;t.triggered||(t.triggered=!0,t.def&&(t=t.def),t.msg=e,t.state=2,t.chain.length>0&&Wl(Gl,t))}function Zl(e,t,r,n){for(var i=0;i0&&(t[r]=e)}),t},Tu.truncate=function(e,t){var r;return"string"==typeof e?r=e.slice(0,t):Tu.isArray(e)?(r=[],Tu.each(e,function(e){r.push(Tu.truncate(e,t))})):Tu.isObject(e)?(r={},Tu.each(e,function(e,n){r[n]=Tu.truncate(e,t)})):r=e,r},Tu.JSONEncode=function(e){var t=function(e){var t=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,r={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return t.lastIndex=0,t.test(e)?'"'+e.replace(t,function(e){var t=r[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'},r=function(e,n){var i="",o=0,s="",a="",c=0,l=i,u=[],p=n[e];switch(p&&"object"==typeof p&&"function"==typeof p.toJSON&&(p=p.toJSON(e)),typeof p){case"string":return t(p);case"number":return isFinite(p)?String(p):"null";case"boolean":case"null":return String(p);case"object":if(!p)return"null";if(i+=" ",u=[],"[object Array]"===bu.apply(p)){for(c=p.length,o=0;o="0"&&iu<="9";)t+=iu,lu();if("."===iu)for(t+=".";lu()&&iu>="0"&&iu<="9";)t+=iu;if("e"===iu||"E"===iu)for(t+=iu,lu(),"-"!==iu&&"+"!==iu||(t+=iu,lu());iu>="0"&&iu<="9";)t+=iu,lu();if(e=+t,isFinite(e))return e;cu("Bad number")},pu=function(){var e,t,r,n="";if('"'===iu)for(;lu();){if('"'===iu)return lu(),n;if("\\"===iu)if(lu(),"u"===iu){for(r=0,t=0;t<4&&(e=parseInt(lu(),16),isFinite(e));t+=1)r=16*r+e;n+=String.fromCharCode(r)}else{if("string"!=typeof au[iu])break;n+=au[iu]}else n+=iu}cu("Bad string")},hu=function(){for(;iu&&iu<=" ";)lu()},su=function(){switch(hu(),iu){case"{":return function(){var e,t={};if("{"===iu){if(lu("{"),hu(),"}"===iu)return lu("}"),t;for(;iu;){if(e=pu(),hu(),lu(":"),Object.hasOwnProperty.call(t,e)&&cu('Duplicate key "'+e+'"'),t[e]=su(),hu(),"}"===iu)return lu("}"),t;lu(","),hu()}}cu("Bad object")}();case"[":return function(){var e=[];if("["===iu){if(lu("["),hu(),"]"===iu)return lu("]"),e;for(;iu;){if(e.push(su()),hu(),"]"===iu)return lu("]"),e;lu(","),hu()}}cu("Bad array")}();case'"':return pu();case"-":return uu();default:return iu>="0"&&iu<="9"?uu():function(){switch(iu){case"t":return lu("t"),lu("r"),lu("u"),lu("e"),!0;case"f":return lu("f"),lu("a"),lu("l"),lu("s"),lu("e"),!1;case"n":return lu("n"),lu("u"),lu("l"),lu("l"),null}cu('Unexpected "'+iu+'"')}()}},function(e){var t;return ou=e,nu=0,iu=" ",t=su(),hu(),iu&&cu("Syntax error"),t}),Tu.base64Encode=function(e){var t,r,n,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a=0,c=0,l="",u=[];if(!e)return e;e=Tu.utf8Encode(e);do{t=(o=e.charCodeAt(a++)<<16|e.charCodeAt(a++)<<8|e.charCodeAt(a++))>>18&63,r=o>>12&63,n=o>>6&63,i=63&o,u[c++]=s.charAt(t)+s.charAt(r)+s.charAt(n)+s.charAt(i)}while(a127&&s<2048?String.fromCharCode(s>>6|192,63&s|128):String.fromCharCode(s>>12|224,s>>6&63|128,63&s|128),null!==a&&(r>t&&(o+=e.substring(t,r)),o+=a,t=r=i+1)}return r>t&&(o+=e.substring(t,e.length)),o},Tu.UUID=function(){try{return n.crypto.randomUUID()}catch(r){for(var e=new Array(36),t=0;t<36;t++)e[t]=Math.floor(16*Math.random());return e[14]=4,e[19]=e[19]&=-5,e[19]=e[19]|=8,e[8]=e[13]=e[18]=e[23]="-",Tu.map(e,function(e){return e.toString(16)}).join("")}};var ju=["ahrefsbot","ahrefssiteaudit","amazonbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","facebookexternal","petalbot","pinterest","screaming frog","yahoo! slurp","yandex","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleweblight","mediapartners-google","storebot-google"];Tu.isBlockedUA=function(e){var t;for(e=e.toLowerCase(),t=0;t=0}function n(t){if(!Su.getElementsByTagName)return[];var n,i,o,s,a,c,l,u,p,h,d=t.split(" "),f=[Su];for(c=0;c-1){o=(i=n.split("#"))[0];var g=i[1],m=Su.getElementById(g);if(!m||o&&m.nodeName.toLowerCase()!=o)return[];f=[m]}else if(n.indexOf(".")>-1){o=(i=n.split("."))[0];var v=i[1];for(o||(o="*"),s=[],a=0,l=0;l-1};break;default:b=function(e){return e.getAttribute(_)}}for(f=[],h=0,l=0;l=3?t[2]:""},currentUrl:function(){return n.location.href},properties:function(e){return"object"!=typeof e&&(e={}),Tu.extend(Tu.strip_empty_properties({$os:Tu.info.os(),$browser:Tu.info.browser(Eu,ku.vendor,xu),$referrer:Su.referrer,$referring_domain:Tu.info.referringDomain(Su.referrer),$device:Tu.info.device(Eu)}),{$current_url:Tu.info.currentUrl(),$browser_version:Tu.info.browserVersion(Eu,ku.vendor,xu),$screen_height:Cu.height,$screen_width:Cu.width,mp_lib:"web",$lib_version:du.LIB_VERSION,$insert_id:Ku(),time:Tu.timestamp()/1e3},Tu.strip_empty_properties(e))},people_properties:function(){return Tu.extend(Tu.strip_empty_properties({$os:Tu.info.os(),$browser:Tu.info.browser(Eu,ku.vendor,xu)}),{$browser_version:Tu.info.browserVersion(Eu,ku.vendor,xu)})},mpPageViewProperties:function(){return Tu.strip_empty_properties({current_page_title:Su.title,current_domain:n.location.hostname,current_url_path:n.location.pathname,current_url_protocol:n.location.protocol,current_url_search:n.location.search})}};var Ku=function(e){var t=Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10);return e?t.substring(0,e):t},Ju=/[a-z0-9][a-z0-9-]*\.[a-z]+$/i,Yu=/[a-z0-9][a-z0-9-]+\.[a-z.]{2,6}$/i,Zu=function(e){var t=Yu,r=e.split("."),n=r[r.length-1];(n.length>4||"com"===n||"org"===n)&&(t=Ju);var i=e.match(t);return i?i[0]:""},Xu=function(){},Qu=null,ep=null;"undefined"!=typeof JSON&&(Qu=JSON.stringify,ep=JSON.parse),Qu=Qu||Tu.JSONEncode,ep=ep||Tu.JSONDecode,Tu.info=Tu.info,Tu.info.browser=Tu.info.browser,Tu.info.browserVersion=Tu.info.browserVersion,Tu.info.device=Tu.info.device,Tu.info.properties=Tu.info.properties,Tu.isBlockedUA=Tu.isBlockedUA,Tu.isEmptyObject=Tu.isEmptyObject,Tu.isObject=Tu.isObject,Tu.JSONDecode=Tu.JSONDecode,Tu.JSONEncode=Tu.JSONEncode,Tu.toArray=Tu.toArray,Tu.NPO=eu;var tp="mixpanelRecordingEvents",rp="mixpanelRecordingRegistry",np=[tp,rp],ip=function(e){this.dbPromise=null,this.storeName=e};function op(e,t){mp(!0,e,t)}function sp(e,t){mp(!1,e,t)}function ap(e,t){return"1"===gp(e,t)}function cp(e,t){if(function(e){if(e&&e.ignoreDnt)return!1;var t=e&&e.window||n,r=t.navigator||{},i=!1;return Tu.each([r.doNotTrack,r.msDoNotTrack,t.doNotTrack],function(e){Tu.includes([!0,1,"1","yes"],e)&&(i=!0)}),i}(t))return Lu.warn('This browser has "Do Not Track" enabled. This will prevent the Mixpanel SDK from sending any data. To ignore the "Do Not Track" browser setting, initialize the Mixpanel instance with the config "ignore_dnt: true"'),!0;var r="0"===gp(e,t);return r&&Lu.warn("You are opted out of Mixpanel tracking. This will prevent the Mixpanel SDK from sending any data."),r}function lp(e){return vp(e,function(e){return this.get_config(e)})}function up(e){return vp(e,function(e){return this._get_config(e)})}function pp(e){return vp(e,function(e){return this._get_config(e)})}function hp(e,t){dp(t=t||{}).remove(fp(e,t),!!t.crossSubdomainCookie,t.cookieDomain)}function dp(e){return"localStorage"===(e=e||{}).persistenceType?Tu.localStorage:Tu.cookie}function fp(e,t){return((t=t||{}).persistencePrefix||"__mp_opt_in_out_")+e}function gp(e,t){return dp(t).get(fp(e,t))}function mp(e,t,r){Tu.isString(t)&&t.length?(dp(r=r||{}).set(fp(t,r),e?1:0,Tu.isNumber(r.cookieExpiration)?r.cookieExpiration:null,!!r.crossSubdomainCookie,!!r.secureCookie,!!r.crossSiteCookie,r.cookieDomain),r.track&&e&&r.track(r.trackEventName||"$opt_in",r.trackProperties,{send_immediately:!0})):Lu.error("gdpr."+(e?"optIn":"optOut")+" called with an invalid token")}function vp(e,t){return function(){var r=!1;try{var n=t.call(this,"token"),i=t.call(this,"ignore_dnt"),o=t.call(this,"opt_out_tracking_persistence_type"),s=t.call(this,"opt_out_tracking_cookie_prefix"),a=t.call(this,"window");n&&(r=cp(n,{ignoreDnt:i,persistenceType:o,persistencePrefix:s,window:a}))}catch(e){Lu.error("Unexpected error when checking tracking opt-out status: "+e)}if(!r)return e.apply(this,arguments);var c=arguments[arguments.length-1];"function"==typeof c&&c(0)}}ip.prototype._openDb=function(){return new tu(function(e,t){var r=n.indexedDB.open("mixpanelBrowserDb",1);r.onerror=function(){t(r.error)},r.onsuccess=function(){e(r.result)},r.onupgradeneeded=function(e){var t=e.target.result;np.forEach(function(e){t.createObjectStore(e)})}})},ip.prototype.init=function(){return n.indexedDB?(this.dbPromise||(this.dbPromise=this._openDb()),this.dbPromise.then(function(e){return e instanceof n.IDBDatabase?tu.resolve():tu.reject(e)})):tu.reject("indexedDB is not supported in this browser")},ip.prototype.isInitialized=function(){return!!this.dbPromise},ip.prototype.makeTransaction=function(e,t){var r=this.storeName,n=function(n){return new tu(function(i,o){var s=n.transaction(r,e);s.oncomplete=function(){i(s)},s.onabort=s.onerror=function(){o(s.error)},t(s.objectStore(r))})};return this.dbPromise.then(n).catch(function(e){return e&&"InvalidStateError"===e.name?(this.dbPromise=this._openDb(),this.dbPromise.then(n)):tu.reject(e)}.bind(this))},ip.prototype.setItem=function(e,t){return this.makeTransaction("readwrite",function(r){r.put(t,e)})},ip.prototype.getItem=function(e){var t;return this.makeTransaction("readonly",function(r){t=r.get(e)}).then(function(){return t.result})},ip.prototype.removeItem=function(e){return this.makeTransaction("readwrite",function(t){t.delete(e)})},ip.prototype.getAll=function(){var e;return this.makeTransaction("readonly",function(t){e=t.getAll()}).then(function(){return e.result})};var yp=Du("lock"),bp=function(e,t){t=t||{},this.storageKey=e,this.storage=t.storage||n.localStorage,this.pollIntervalMS=t.pollIntervalMS||100,this.timeoutMS=t.timeoutMS||2e3,this.promiseImpl=t.promiseImpl||tu};bp.prototype.withLock=function(e,t){return new(0,this.promiseImpl)(Tu.bind(function(r,n){var i=t||(new Date).getTime()+"|"+Math.random(),o=(new Date).getTime(),s=this.storageKey,a=this.pollIntervalMS,c=this.timeoutMS,l=this.storage,u=s+":X",p=s+":Y",h=s+":Z",d=function(e){if((new Date).getTime()-o>c)return yp.error("Timeout waiting for mutex on "+s+"; clearing lock. ["+i+"]"),l.removeItem(h),l.removeItem(p),void m();setTimeout(function(){try{e()}catch(e){n(e)}},a*(Math.random()+.1))},f=function(e,t){e()?t():d(function(){f(e,t)})},g=function(){var e=l.getItem(p);return!(e&&e!==i||(l.setItem(p,i),l.getItem(p)!==i&&(zu(l,!0)||n(new Error("localStorage support dropped while acquiring lock")),1)))},m=function(){l.setItem(u,i),f(g,function(){l.getItem(u)!==i?d(function(){l.getItem(p)===i?f(function(){return!l.getItem(h)},v):m()}):v()})},v=function(){l.setItem(h,"1");var t=function(){l.removeItem(h),l.getItem(p)===i&&l.removeItem(p),l.getItem(u)===i&&l.removeItem(u)};e().then(function(e){t(),r(e)}).catch(function(e){t(),n(e)})};try{if(!zu(l,!0))throw new Error("localStorage support check failed");m()}catch(e){n(e)}},this))};var _p=function(e){this.storage=e||n.localStorage};_p.prototype.init=function(){return tu.resolve()},_p.prototype.isInitialized=function(){return!0},_p.prototype.setItem=function(e,t){return new tu(Tu.bind(function(r,n){try{this.storage.setItem(e,Qu(t))}catch(e){n(e)}r()},this))},_p.prototype.getItem=function(e){return new tu(Tu.bind(function(t,r){var n;try{n=ep(this.storage.getItem(e))}catch(e){r(e)}t(n)},this))},_p.prototype.removeItem=function(e){return new tu(Tu.bind(function(t,r){try{this.storage.removeItem(e)}catch(e){r(e)}t()},this))};var wp=Du("batch"),kp=function(e,t){var r,i,o,s;t=t||{},this.storageKey=e,this.usePersistence=t.usePersistence,this.usePersistence&&(this.queueStorage=t.queueStorage||new _p,this.lock=new bp(e,{storage:t.sharedLockStorage||n.localStorage,timeoutMS:t.sharedLockTimeoutMS})),this.reportError=t.errorReporter||Tu.bind(wp.error,wp),this.pid=t.pid||null,this.memQueue=[],this.initialized=!1,t.enqueueThrottleMs?this.enqueuePersisted=(r=Tu.bind(this._enqueuePersisted,this),i=t.enqueueThrottleMs,o=null,s=[],function(e){var t=this;return s.push(e),o||(o=new tu(function(e){setTimeout(function(){var n=r.apply(t,[s]);o=null,s=[],e(n)},i)})),o}):this.enqueuePersisted=Tu.bind(function(e){return this._enqueuePersisted([e])},this)};kp.prototype.ensureInit=function(){return this.initialized||!this.usePersistence?tu.resolve():this.queueStorage.init().then(Tu.bind(function(){this.initialized=!0},this)).catch(Tu.bind(function(e){this.reportError("Error initializing queue persistence. Disabling persistence",e),this.initialized=!0,this.usePersistence=!1},this))},kp.prototype.enqueue=function(e,t){var r={id:Ku(),flushAfter:(new Date).getTime()+2*t,payload:e};return this.usePersistence?this.enqueuePersisted(r):(this.memQueue.push(r),tu.resolve(!0))},kp.prototype._enqueuePersisted=function(e){var t=Tu.bind(function(){return this.ensureInit().then(Tu.bind(function(){return this.readFromStorage()},this)).then(Tu.bind(function(t){return this.saveToStorage(t.concat(e))},this)).then(Tu.bind(function(t){return t&&(this.memQueue=this.memQueue.concat(e)),t},this)).catch(Tu.bind(function(t){return this.reportError("Error enqueueing items",t,e),!1},this))},this);return this.lock.withLock(t,this.pid).catch(Tu.bind(function(e){return this.reportError("Error acquiring storage lock",e),!1},this))},kp.prototype.fillBatch=function(e){var t=this.memQueue.slice(0,e);return this.usePersistence&&t.lengtho.flushAfter&&!n[o.id]&&(o.orphaned=!0,t.push(o),t.length>=e))break}}return t},this)):tu.resolve(t)};var Sp=function(e,t){var r=[];return Tu.each(e,function(e){e.id&&!t[e.id]&&r.push(e)}),r};kp.prototype.removeItemsByID=function(e){var t={};if(Tu.each(e,function(e){t[e]=!0}),this.memQueue=Sp(this.memQueue,t),this.usePersistence){var r=Tu.bind(function(){return this.ensureInit().then(Tu.bind(function(){return this.readFromStorage()},this)).then(Tu.bind(function(e){return e=Sp(e,t),this.saveToStorage(e)},this)).then(Tu.bind(function(){return this.readFromStorage()},this)).then(Tu.bind(function(e){for(var r=0;r5&&(this.reportError("[dupe] item ID sent too many times, not sending",{item:e,batchSize:o.length,timesSent:this.itemIdsSentSuccessfully[n]}),r=!1):this.reportError("[dupe] found item with no ID",{item:e}),r&&a.push(t)}c[e.id]=t},this),a.length<1)return this.requestInProgress=!1,this.resetFlush(),tu.resolve();var l=Tu.bind(function(){return this.queue.removeItemsByID(Tu.map(o,function(e){return e.id})).then(Tu.bind(function(e){return Tu.each(o,Tu.bind(function(e){var t=e.id;t?(this.itemIdsSentSuccessfully[t]=this.itemIdsSentSuccessfully[t]||0,this.itemIdsSentSuccessfully[t]++,this.itemIdsSentSuccessfully[t]>5&&this.reportError("[dupe] item ID sent too many times",{item:e,batchSize:o.length,timesSent:this.itemIdsSentSuccessfully[t]})):this.reportError("[dupe] found item with no ID while removing",{item:e})},this)),e?(this.consecutiveRemovalFailures=0,this.flushOnlyOnInterval&&!s?(this.resetFlush(),tu.resolve()):this.flush()):(++this.consecutiveRemovalFailures>5?(this.reportError("Too many queue failures; disabling batching system."),this.stopAllBatching()):this.resetFlush(),tu.resolve())},this))},this),u=Tu.bind(function(s){this.requestInProgress=!1;try{if(e.unloading)return this.queue.updatePayloads(c);if(Tu.isObject(s)&&"timeout"===s.error&&(new Date).getTime()-r>=t)return this.reportError("Network timeout; retrying"),this.flush();if(Tu.isObject(s)&&(s.httpStatusCode>=500||429===s.httpStatusCode||s.httpStatusCode<=0&&(p=n.navigator.onLine,!Tu.isUndefined(p)&&!p)||"timeout"===s.error)){var a=2*this.flushInterval;return s.retryAfter&&(a=1e3*parseInt(s.retryAfter,10)||a),a=Math.min(6e5,a),this.reportError("Error; retry in "+a+" ms"),this.scheduleFlush(a),tu.resolve()}if(Tu.isObject(s)&&413===s.httpStatusCode){if(o.length>1){var u=Math.max(1,Math.floor(i/2));return this.batchSize=Math.min(this.batchSize,u,o.length-1),this.reportError("413 response; reducing batch size to "+this.batchSize),this.resetFlush(),tu.resolve()}return this.reportError("Single-event request too large; dropping",o),this.resetBatchSize(),l()}return l()}catch(e){this.reportError("Error handling API response",e),this.resetFlush()}var p},this),p={method:"POST",verbose:!0,ignore_json_errors:!0,timeout_ms:t};return e.unloading&&(p.transport="sendBeacon"),Cp.log("MIXPANEL REQUEST:",a),this.sendRequestPromise(a,p).then(u)},this)).catch(Tu.bind(function(e){this.reportError("Error flushing request queue",e),this.resetFlush()},this))},Ep.prototype.reportError=function(e,t){if(Cp.error.apply(Cp.error,arguments),this.errorReporter)try{t instanceof Error||(t=new Error(e)),this.errorReporter(e,t)}catch(t){Cp.error(t)}};var Ip=function(e){var t=Date.now();return!e||t>e.maxExpires||t>e.idleExpires},Op=Du("recorder"),Np=n.CompressionStream,Ap={batch_size:1e3,batch_flush_interval_ms:1e4,batch_request_timeout_ms:9e4,batch_autostart:!0},Rp=new Set([Sc.MouseMove,Sc.MouseInteraction,Sc.Scroll,Sc.ViewportResize,Sc.Input,Sc.TouchMove,Sc.MediaInteraction,Sc.Drag,Sc.Selection]),Mp=function(e){this._mixpanel=e.mixpanelInstance,this._onIdleTimeout=e.onIdleTimeout||Xu,this._onMaxLengthReached=e.onMaxLengthReached||Xu,this._onBatchSent=e.onBatchSent||Xu,this._rrwebRecord=e.rrwebRecord||null,this._stopRecording=null,this.replayId=e.replayId,this.batchStartUrl=e.batchStartUrl||null,this.replayStartUrl=e.replayStartUrl||null,this.idleExpires=e.idleExpires||null,this.maxExpires=e.maxExpires||null,this.replayStartTime=e.replayStartTime||null,this.lastEventTimestamp=e.lastEventTimestamp||null,this.seqNo=e.seqNo||0,this.idleTimeoutId=null,this.maxTimeoutId=null,this.recordMaxMs=fu,this.recordMinMs=0;var t=zu(e.sharedLockStorage,!0)&&!this.getConfig("disable_persistence");this.batcherKey="__mprec_"+this.getConfig("name")+"_"+this.getConfig("token")+"_"+this.replayId,this.queueStorage=new ip(tp),this.batcher=new Ep(this.batcherKey,{errorReporter:this.reportError.bind(this),flushOnlyOnInterval:!0,libConfig:Ap,sendRequestFunc:this.flushEventsWithOptOut.bind(this),queueStorage:this.queueStorage,sharedLockStorage:e.sharedLockStorage,usePersistence:t,stopAllBatchingFunc:this.stopRecording.bind(this),enqueueThrottleMs:250,sharedLockTimeoutMS:1e4})};Mp.prototype.getUserIdInfo=function(){if(this.finalFlushUserIdInfo)return this.finalFlushUserIdInfo;var e={distinct_id:String(this._mixpanel.get_distinct_id())},t=this._mixpanel.get_property("$device_id");t&&(e.$device_id=t);var r=this._mixpanel.get_property("$user_id");return r&&(e.$user_id=r),e},Mp.prototype.unloadPersistedData=function(){return this.batcher.stop(),this.queueStorage.init().catch(function(){this.reportError("Error initializing IndexedDB storage for unloading persisted data.")}.bind(this)).then(function(){return this.getDurationMs()fu&&(this.recordMaxMs=fu,Op.critical("record_max_ms cannot be greater than "+fu+"ms. Capping value.")),this.maxExpires||(this.maxExpires=(new Date).getTime()+this.recordMaxMs),this.recordMinMs=this._getRecordMinMs(),this.replayStartTime||(this.replayStartTime=(new Date).getTime(),this.batchStartUrl=Tu.info.currentUrl(),this.replayStartUrl=Tu.info.currentUrl()),e||this.recordMinMs>0?this.batcher.stop():this.batcher.start();var t=function(){clearTimeout(this.idleTimeoutId);var e=this.getConfig("record_idle_timeout_ms");this.idleTimeoutId=setTimeout(this._onIdleTimeout,e),this.idleExpires=(new Date).getTime()+e}.bind(this);t();var r,n=this.getConfig("record_block_selector");""!==n&&null!==n||(n=void 0);try{this._stopRecording=this._rrwebRecord({emit:function(e){this.idleExpires&&this.idleExpires=this.recordMinMs&&this.batcher.start(),t()),this.__enqueuePromise=this.batcher.enqueue(e),(null===this.lastEventTimestamp||e.timestamp>this.lastEventTimestamp)&&(this.lastEventTimestamp=e.timestamp))}.bind(this),blockClass:this.getConfig("record_block_class"),blockSelector:n,collectFonts:this.getConfig("record_collect_fonts"),dataURLOptions:{type:"image/webp",quality:.6},maskAllInputs:!0,maskTextClass:this.getConfig("record_mask_text_class"),maskTextSelector:this.getConfig("record_mask_text_selector"),recordCanvas:this.getConfig("record_canvas"),sampling:{canvas:15},plugins:this.getConfig("record_console")?[(r={stringifyOptions:{stringLengthLimit:1e3,numOfKeysLimit:50,depthOfLimit:2}},{name:"rrweb/console@1",observer:Ul,options:r})]:[]})}catch(e){this.reportError("Unexpected error when starting rrweb recording.",e)}if("function"!=typeof this._stopRecording)return this.reportError("rrweb failed to start, skipping this recording."),this._stopRecording=null,void this.stopRecording();var i=this.maxExpires-(new Date).getTime();this.maxTimeoutId=setTimeout(this._onMaxLengthReached.bind(this),i)}else Op.log("Recording already in progress, skipping startRecording.");else this.reportError("rrweb record function not provided. ")},Mp.prototype.stopRecording=function(e){if(this.finalFlushUserIdInfo=this.getUserIdInfo(),!this.isRrwebStopped()){try{this._stopRecording()}catch(e){this.reportError("Error with rrweb stopRecording",e)}this._stopRecording=null}var t;return this.batcher.stopped?t=this.batcher.clear():e||(t=this.batcher.flush()),this.batcher.stop(),clearTimeout(this.idleTimeoutId),clearTimeout(this.maxTimeoutId),t},Mp.prototype.isRrwebStopped=function(){return null===this._stopRecording},Mp.prototype.flushEventsWithOptOut=function(e,t,r){var n=function(e){0===e&&(this.stopRecording(),r({error:"Tracking has been opted out, stopping recording."}))}.bind(this);this._flushEvents(e,t,r,n)},Mp.prototype.serialize=function(){var e;try{e=this._mixpanel.get_tab_id()}catch(t){this.reportError("Error getting tab ID for serialization ",t),e=null}return{replayId:this.replayId,seqNo:this.seqNo,replayStartTime:this.replayStartTime,batchStartUrl:this.batchStartUrl,replayStartUrl:this.replayStartUrl,lastEventTimestamp:this.lastEventTimestamp,idleExpires:this.idleExpires,maxExpires:this.maxExpires,tabId:e}},Mp.deserialize=function(e,t){return new Mp(Tu.extend({},t,{replayId:e.replayId,batchStartUrl:e.batchStartUrl,replayStartUrl:e.replayStartUrl,idleExpires:e.idleExpires,maxExpires:e.maxExpires,replayStartTime:e.replayStartTime,lastEventTimestamp:e.lastEventTimestamp,seqNo:e.seqNo,sharedLockStorage:t.sharedLockStorage}))},Mp.prototype._sendRequest=function(e,t,r,i){var o=function(t,r){200===t.status&&this.replayId===e&&(this.seqNo++,this.batchStartUrl=Tu.info.currentUrl()),this._onBatchSent(),i({status:0,httpStatusCode:t.status,responseBody:r,retryAfter:t.headers.get("Retry-After")})}.bind(this),s=this._mixpanel.get_api_host&&this._mixpanel.get_api_host("record")||this.getConfig("api_host");n.fetch(s+"/"+this.getConfig("api_routes").record+"?"+new URLSearchParams(t),{method:"POST",headers:{Authorization:"Basic "+btoa(this.getConfig("token")+":"),"Content-Type":"application/octet-stream"},body:r}).then(function(e){e.json().then(function(t){o(e,t)}).catch(function(e){i({error:e})})}).catch(function(e){i({error:e,httpStatusCode:0})})},Mp.prototype._flushEvents=lp(function(e,t,r){var i=e.length;if(i>0){for(var o=this.replayId,s=1/0,a=-1/0,c=!1,l=0;l=16.4&&o<16.6)}(Eu,ku.vendor,xu)){var d=new Blob([h],{type:"application/json"}).stream().pipeThrough(new Np("gzip"));new Response(d).blob().then(function(e){p.format="gzip",this._sendRequest(o,p,e,r)}.bind(this))}else p.format="body",this._sendRequest(o,p,h,r)}}),Mp.prototype.reportError=function(e,t){Op.error.apply(Op.error,arguments);try{t||e instanceof Error||(e=new Error(e)),this.getConfig("error_reporter")(e,t)}catch(t){Op.error(t)}},Mp.prototype.getDurationMs=function(){return null===this.replayStartTime?0:null===this.lastEventTimestamp?(new Date).getTime()-this.replayStartTime:this.lastEventTimestamp-this.replayStartTime},Mp.prototype._getRecordMinMs=function(){var e=this.getConfig("record_min_ms");return e>8e3?(Op.critical("record_min_ms cannot be greater than 8000ms. Capping value."),8e3):e};var Tp=function(e){this.idb=new ip(rp),this.errorReporter=e.errorReporter,this.mixpanelInstance=e.mixpanelInstance,this.sharedLockStorage=e.sharedLockStorage};Tp.prototype.isPersistenceEnabled=function(){return!this.mixpanelInstance.get_config("disable_persistence")},Tp.prototype.handleError=function(e){this.errorReporter("IndexedDB error: ",e)},Tp.prototype.setActiveRecording=function(e){if(!this.isPersistenceEnabled())return tu.resolve();var t=e.tabId;return t?this.idb.init().then(function(){return this.idb.setItem(t,e)}.bind(this)).catch(this.handleError.bind(this)):(console.warn("No tab ID is set, cannot persist recording metadata."),tu.resolve())},Tp.prototype.getActiveRecording=function(){return this.isPersistenceEnabled()?this.idb.init().then(function(){return this.idb.getItem(this.mixpanelInstance.get_tab_id())}.bind(this)).then(function(e){return Ip(e)?null:e}.bind(this)).catch(this.handleError.bind(this)):tu.resolve(null)},Tp.prototype.clearActiveRecording=function(){return this.isPersistenceEnabled()?this.markActiveRecordingExpired():this.deleteActiveRecording()},Tp.prototype.markActiveRecordingExpired=function(){return this.getActiveRecording().then(function(e){if(e)return e.maxExpires=0,this.setActiveRecording(e)}.bind(this)).catch(this.handleError.bind(this))},Tp.prototype.deleteActiveRecording=function(){return this.idb.isInitialized()?this.idb.removeItem(this.mixpanelInstance.get_tab_id()).catch(this.handleError.bind(this)):tu.resolve()},Tp.prototype.flushInactiveRecordings=function(){return this.isPersistenceEnabled()?this.idb.init().then(function(){return this.idb.getAll()}.bind(this)).then(function(e){var t=e.filter(function(e){return Ip(e)}).map(function(e){return Mp.deserialize(e,{mixpanelInstance:this.mixpanelInstance,sharedLockStorage:this.sharedLockStorage}).unloadPersistedData().then(function(){return this.idb.removeItem(e.tabId)}.bind(this)).catch(this.handleError.bind(this))}.bind(this));return tu.all(t)}.bind(this)).catch(this.handleError.bind(this)):tu.resolve([])};var Lp=Du("recorder"),Pp=function(e,t,r){this.mixpanelInstance=e,this.rrwebRecord=t||Cl,this.sharedLockStorage=r,this.recordingRegistry=new Tp({mixpanelInstance:this.mixpanelInstance,errorReporter:Lp.error,sharedLockStorage:r}),this._flushInactivePromise=this.recordingRegistry.flushInactiveRecordings(),this.activeRecording=null,this.stopRecordingInProgress=!1};Pp.prototype.startRecording=function(e){if(e=e||{},!this.activeRecording||this.activeRecording.isRrwebStopped()){var t=function(){Lp.log("Idle timeout reached, restarting recording."),this.resetRecording()}.bind(this),r=function(){Lp.log("Max recording length reached, stopping recording."),this.resetRecording()}.bind(this),n=function(){this.recordingRegistry.setActiveRecording(this.activeRecording.serialize()),this.__flushPromise=this.activeRecording.batcher._flushPromise}.bind(this),i={mixpanelInstance:this.mixpanelInstance,onBatchSent:n,onIdleTimeout:t,onMaxLengthReached:r,replayId:Tu.UUID(),rrwebRecord:this.rrwebRecord,sharedLockStorage:this.sharedLockStorage};return e.activeSerializedRecording?this.activeRecording=Mp.deserialize(e.activeSerializedRecording,i):this.activeRecording=new Mp(i),this.activeRecording.startRecording(e.shouldStopBatcher),this.recordingRegistry.setActiveRecording(this.activeRecording.serialize())}Lp.log("Recording already in progress, skipping startRecording.")},Pp.prototype.stopRecording=function(){return this.stopRecordingInProgress=!0,this._stopCurrentRecording(!1,!0).then(function(){return this.recordingRegistry.clearActiveRecording()}.bind(this)).then(function(){this.stopRecordingInProgress=!1}.bind(this))},Pp.prototype.pauseRecording=function(){return this._stopCurrentRecording(!1)},Pp.prototype._stopCurrentRecording=function(e,t){if(this.activeRecording){var r=this.activeRecording.stopRecording(e);return t&&(this.activeRecording=null),r}return tu.resolve()},Pp.prototype.resumeRecording=function(e){return this.activeRecording&&this.activeRecording.isRrwebStopped()?(this.activeRecording.startRecording(!1),tu.resolve(null)):this.recordingRegistry.getActiveRecording().then(function(t){return t&&!this.stopRecordingInProgress?this.startRecording({activeSerializedRecording:t}):e?this.startRecording({shouldStopBatcher:!1}):(Lp.log("No resumable recording found."),null)}.bind(this))},Pp.prototype.resetRecording=function(){this.stopRecording(),this.startRecording({shouldStopBatcher:!0})},Pp.prototype.getActiveReplayId=function(){return this.activeRecording&&!this.activeRecording.isRrwebStopped()?this.activeRecording.replayId:null},Object.defineProperty(Pp.prototype,"replayId",{get:function(){return this.getActiveReplayId()}}),n.__mp_recorder=Pp;var Dp="change",Fp="click",Up="hashchange",jp="load",Bp="mp_locationchange",$p="popstate",zp="scrollend",qp="scroll",Vp="submit",Wp="visibilitychange",Hp=["clientX","clientY","offsetX","offsetY","pageX","pageY","screenX","screenY","x","y"],Gp=["mp-include"],Kp=["mp-no-track"],Jp=Kp.concat(["mp-sensitive"]),Yp=["aria-label","aria-labelledby","aria-describedby","href","name","role","title","type"],Zp={button:!0,checkbox:!0,combobox:!0,grid:!0,link:!0,listbox:!0,menu:!0,menubar:!0,menuitem:!0,menuitemcheckbox:!0,menuitemradio:!0,navigation:!0,option:!0,radio:!0,radiogroup:!0,searchbox:!0,slider:!0,spinbutton:!0,switch:!0,tab:!0,tablist:!0,textbox:!0,tree:!0,treegrid:!0,treeitem:!0},Xp={base:!0,head:!0,html:!0,link:!0,meta:!0,script:!0,style:!0,title:!0,br:!0,hr:!0,wbr:!0,noscript:!0,picture:!0,source:!0,template:!0,track:!0},Qp={article:!0,div:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,p:!0,section:!0,span:!0},eh=["onclick","onmousedown","onmouseup","onpointerdown","onpointerup","ontouchend","ontouchstart"],th=Du("autocapture");function rh(e){for(var t={},r=nh(e).split(" "),n=0;n0?t[0]:e.target||e.srcElement}function bh(){this.clicks=[]}function _h(e,t){this.changeCallback=e||function(){},this.observerConfig=t,this.observedShadowRoots=null,this.shadowObservers=[]}bh.prototype.isRageClick=function(e,t){var r=(t=t||{}).threshold_px||30,n=t.timeout_ms||1e3,i=t.click_count||4;if(t.interactive_elements_only){var o=yh(e);if(!o||mh(o))return!1}var s=Date.now(),a=e.pageX,c=e.pageY,l=this.clicks[this.clicks.length-1];if(l&&s-l.timestamp=i)return this.clicks=[],!0}else this.clicks=[{x:a,y:c,timestamp:s}];return!1},_h.prototype.getEventTarget=function(e){if(this.observedShadowRoots)return yh(e)},_h.prototype.observeFromEvent=function(e){if(this.observedShadowRoots)for(var t=vh(e),r=0;r=t?this.hasChangesAfter(s.timestamp)||i.push(s):this.pendingClicks.push(s)}return i},Ch.prototype.hasChangesAfter=function(e){return this.lastChangeEventTimestamp>=e-100},Ch.prototype.recordChangeEvent=function(){this.lastChangeEventTimestamp=Date.now()},Ch.prototype.triggerProcessing=function(e){this.processingActive||(this.processingActive=!0,this.processRecursively(e))},Ch.prototype.processRecursively=function(e){if(this.isTracking&&this.onDeadClickCallback){var t=e.timeout_ms,r=this;this.processingTimeout=setTimeout(function(){if(r.processingActive){for(var t=r.getDeadClicks(e),n=0;n0?r.processRecursively(e):r.processingActive=!1}},t)}else this.processingActive=!1},Ch.prototype.startTracking=function(){if(!this.isTracking){this.isTracking=!0;var e=this;wh.forEach(function(t){var r=function(){e.recordChangeEvent()};document.addEventListener(t,r,{capture:!0,passive:!0}),e.eventListeners.push({target:document,event:t,handler:r,options:{capture:!0,passive:!0}})}),Sh.forEach(function(t){var r=function(){e.recordChangeEvent()};window.addEventListener(t,r),e.eventListeners.push({target:window,event:t,handler:r})}),kh.forEach(function(t){var r=function(){e.recordChangeEvent()};window.addEventListener(t,r,{passive:!0}),e.eventListeners.push({target:window,event:t,handler:r,options:{passive:!0}})});var t=function(){e.recordChangeEvent()};if(document.addEventListener("selectionchange",t),e.eventListeners.push({target:document,event:"selectionchange",handler:t}),window.MutationObserver)try{this.mutationObserver=new window.MutationObserver(function(){e.recordChangeEvent()}),this.mutationObserver.observe(document.body||document.documentElement,xh)}catch(e){th.critical("Error while setting up mutation observer",e)}if(window.customElements)try{this.shadowDOMObserver=new _h(function(){e.recordChangeEvent()},xh),this.shadowDOMObserver.start()}catch(e){th.critical("Error while setting up shadow DOM observer",e),this.shadowDOMObserver=null}}},Ch.prototype.stopTracking=function(){if(this.isTracking){this.isTracking=!1,this.pendingClicks=[],this.lastChangeEventTimestamp=0,this.processingActive=!1,this.processingTimeout&&(clearTimeout(this.processingTimeout),this.processingTimeout=null);for(var e=0;ethis.maxScrollViewDepth&&(this.maxScrollViewDepth=e),this.previousScrollHeight=Su.body.scrollHeight}}.bind(this));this.listenerScrollDepth=e.listener,n.addEventListener(e.eventType,this.listenerScrollDepth)}},Zh.prototype.initClickTracking=function(){n.removeEventListener(Fp,this.listenerClick),(this.getConfig(Uh)||this.mp.get_config("record_heatmap_data"))&&(th.log("Initializing click tracking"),this.listenerClick=function(e){(this.getConfig(Uh)||this.mp.is_recording_heatmap_data())&&this.trackDomEvent(e,Kh)}.bind(this),n.addEventListener(Fp,this.listenerClick))},Zh.prototype.initDeadClickTracking=function(){this._getClickTrackingConfig(jh)||this.mp.get_config("record_heatmap_data")?(th.log("Initializing dead click tracking"),this._deadClickTracker||(this._deadClickTracker=new Ch(function(e){this.trackDomEvent(e,Jh)}.bind(this)),this._deadClickTracker.startTracking()),this.listenerDeadClick||(this.listenerDeadClick=function(e){var t=this._getClickTrackingConfig(jh);if((t||this.mp.is_recording_heatmap_data())&&!this.currentUrlBlocked()){var r=t||{};r.timeout_ms||(r.timeout_ms=500),this._deadClickTracker.trackClick(e,r)}}.bind(this),n.addEventListener(Fp,this.listenerDeadClick))):this.stopDeadClickTracking()},Zh.prototype.initInputTracking=function(){n.removeEventListener(Dp,this.listenerChange),this.getConfig(Bh)&&(th.log("Initializing input tracking"),this.listenerChange=function(e){this.getConfig(Bh)&&this.trackDomEvent(e,"$mp_input_change")}.bind(this),n.addEventListener(Dp,this.listenerChange))},Zh.prototype.initPageviewTracking=function(){if(n.removeEventListener(Bp,this.listenerLocationchange),this.pageviewTrackingConfig()){th.log("Initializing pageview tracking");var e="",t=!1;this.currentUrlBlocked()||(t=this.mp.track_pageview(Gh)),t&&(e=Tu.info.currentUrl()),this.listenerLocationchange=Fu(function(){if(!this.currentUrlBlocked()){var t=Tu.info.currentUrl(),r=!1,n=t.split("#")[0].split("?")[0]!==e.split("#")[0].split("?")[0],i=this.pageviewTrackingConfig();i===Ih?r=t!==e:"url-with-path-and-query-string"===i?r=t.split("#")[0]!==e.split("#")[0]:"url-with-path"===i&&(r=n),r&&(this.mp.track_pageview(Gh)&&(e=t),n&&(this.lastScrollCheckpoint=0,th.log("Path change: re-initializing scroll depth checkpoints")))}}.bind(this)),n.addEventListener(Bp,this.listenerLocationchange)}},Zh.prototype.initRageClickTracking=function(){n.removeEventListener(Fp,this.listenerRageClick),(this._getClickTrackingConfig(zh)||this.mp.get_config("record_heatmap_data"))&&(th.log("Initializing rage click tracking"),this._rageClickTracker||(this._rageClickTracker=new bh),this.listenerRageClick=function(e){var t=this._getClickTrackingConfig(zh);(t||this.mp.is_recording_heatmap_data())&&(this.currentUrlBlocked()||this._rageClickTracker.isRageClick(e,t)&&this.trackDomEvent(e,Yh))}.bind(this),n.addEventListener(Fp,this.listenerRageClick))},Zh.prototype.initScrollTracking=function(){if(n.removeEventListener(zp,this.listenerScroll),n.removeEventListener(qp,this.listenerScroll),this.getConfig(qh)){th.log("Initializing scroll tracking"),this.lastScrollCheckpoint=0;var e=fh(function(){if(this.getConfig(qh)&&!this.currentUrlBlocked()){var e=this.getConfig(Dh),t=(this.getConfig(Fh)||[]).slice().sort(function(e,t){return e-t}),r=n.scrollY,i=Tu.extend({$scroll_top:r},Gh);try{var o=Su.body.scrollHeight,s=Math.round(r/(o-n.innerHeight)*100);if(i.$scroll_height=o,i.$scroll_percentage=s,s>this.lastScrollCheckpoint)for(var a=0;a=c&&this.lastScrollCheckpoint=0;p--)c=this._mixpanel.persistence.load_queue(ud),l=c.pop(),a._mixpanel.persistence.save(),Tu.isEmptyObject(l)||a.append(l,u);var h=this._mixpanel.persistence.load_queue(hd);if(!Tu.isUndefined(h)&&Tu.isArray(h)&&h.length)for(var d,f=function(e,t){0===e&&a._mixpanel.persistence._add_to_people_queue(hd,d),Tu.isUndefined(s)||s(e,t)},g=h.length-1;g>=0;g--)h=this._mixpanel.persistence.load_queue(hd),d=h.pop(),a._mixpanel.persistence.save(),Tu.isEmptyObject(d)||a.remove(d,f)},gd.prototype._is_reserved_property=function(e){return"$distinct_id"===e||"$token"===e||"$device_id"===e||"$user_id"===e||"$had_persisted_distinct_id"===e},gd.prototype.set=gd.prototype.set,gd.prototype.set_once=gd.prototype.set_once,gd.prototype.unset=gd.prototype.unset,gd.prototype.increment=gd.prototype.increment,gd.prototype.append=gd.prototype.append,gd.prototype.remove=gd.prototype.remove,gd.prototype.union=gd.prototype.union,gd.prototype.track_charge=gd.prototype.track_charge,gd.prototype.clear_charges=gd.prototype.clear_charges,gd.prototype.delete_user=gd.prototype.delete_user,gd.prototype.toString=gd.prototype.toString;var md,vd="__mps",yd="__mpso",bd="__mpus",_d="__mpa",wd="__mpap",kd="__mpr",Sd="__mpu",xd="$people_distinct_id",Cd="__alias",Ed="__timers",Id=[vd,yd,bd,_d,wd,kd,Sd,xd,Cd,Ed],Od=function(e){this.props={},this.campaign_params_saved=!1,e.persistence_name?this.name="mp_"+e.persistence_name:this.name="mp_"+e.token+"_mixpanel";var t=e.persistence;"cookie"!==t&&"localStorage"!==t&&(Lu.critical("Unknown persistence type "+t+"; falling back to cookie"),t=e.persistence="cookie"),"localStorage"===t&&Tu.localStorage.is_supported()?this.storage=Tu.localStorage:this.storage=Tu.cookie,this.load(),this.update_config(e),this.upgrade(),this.save()};Od.prototype.properties=function(){var e={};return this.load(),Tu.each(this.props,function(t,r){Tu.include(Id,r)||(e[r]=t)}),e},Od.prototype.load=function(){if(!this.disabled){var e=this.storage.parse(this.name);e&&(this.props=Tu.extend({},e))}},Od.prototype.upgrade=function(){var e,t;this.storage===Tu.localStorage?(e=Tu.cookie.parse(this.name),Tu.cookie.remove(this.name),Tu.cookie.remove(this.name,!0),e&&this.register_once(e)):this.storage===Tu.cookie&&(t=Tu.localStorage.parse(this.name),Tu.localStorage.remove(this.name),t&&this.register_once(t))},Od.prototype.save=function(){this.disabled||this.storage.set(this.name,Qu(this.props),this.expire_days,this.cross_subdomain,this.secure,this.cross_site,this.cookie_domain)},Od.prototype.load_prop=function(e){return this.load(),this.props[e]},Od.prototype.remove=function(){this.storage.remove(this.name,!1,this.cookie_domain),this.storage.remove(this.name,!0,this.cookie_domain)},Od.prototype.clear=function(){this.remove(),this.props={}},Od.prototype.register_once=function(e,t,r){return!!Tu.isObject(e)&&(void 0===t&&(t="None"),this.expire_days=void 0===r?this.default_expiry:r,this.load(),Tu.each(e,function(e,r){this.props.hasOwnProperty(r)&&this.props[r]!==t||(this.props[r]=e)},this),this.save(),!0)},Od.prototype.register=function(e,t){return!!Tu.isObject(e)&&(this.expire_days=void 0===t?this.default_expiry:t,this.load(),Tu.extend(this.props,e),this.save(),!0)},Od.prototype.unregister=function(e){this.load(),e in this.props&&(delete this.props[e],this.save())},Od.prototype.update_search_keyword=function(e){this.register(Tu.info.searchInfo(e))},Od.prototype.update_referrer_info=function(e){this.register_once({$initial_referrer:e||"$direct",$initial_referring_domain:Tu.info.referringDomain(e)||"$direct"},"")},Od.prototype.get_referrer_info=function(){return Tu.strip_empty_properties({$initial_referrer:this.props.$initial_referrer,$initial_referring_domain:this.props.$initial_referring_domain})},Od.prototype.update_config=function(e){this.default_expiry=this.expire_days=e.cookie_expiration,this.set_disabled(e.disable_persistence),this.set_cookie_domain(e.cookie_domain),this.set_cross_site(e.cross_site_cookie),this.set_cross_subdomain(e.cross_subdomain_cookie),this.set_secure(e.secure_cookie)},Od.prototype.set_disabled=function(e){this.disabled=e,this.disabled?this.remove():this.save()},Od.prototype.set_cookie_domain=function(e){e!==this.cookie_domain&&(this.remove(),this.cookie_domain=e,this.save())},Od.prototype.set_cross_site=function(e){e!==this.cross_site&&(this.cross_site=e,this.remove(),this.save())},Od.prototype.set_cross_subdomain=function(e){e!==this.cross_subdomain&&(this.cross_subdomain=e,this.remove(),this.save())},Od.prototype.get_cross_subdomain=function(){return this.cross_subdomain},Od.prototype.set_secure=function(e){e!==this.secure&&(this.secure=!!e,this.remove(),this.save())},Od.prototype._add_to_people_queue=function(e,t){var r=this._get_queue_key(e),n=t[e],i=this._get_or_create_queue(sd),o=this._get_or_create_queue(ad),s=this._get_or_create_queue(cd),a=this._get_or_create_queue(ld),c=this._get_or_create_queue(pd),l=this._get_or_create_queue(hd,[]),u=this._get_or_create_queue(ud,[]);r===vd?(Tu.extend(i,n),this._pop_from_people_queue(ld,n),this._pop_from_people_queue(pd,n),this._pop_from_people_queue(cd,n)):r===yd?(Tu.each(n,function(e,t){t in o||(o[t]=e)}),this._pop_from_people_queue(cd,n)):r===bd?Tu.each(n,function(e){Tu.each([i,o,a,c],function(t){e in t&&delete t[e]}),Tu.each(u,function(t){e in t&&delete t[e]}),s[e]=!0}):r===_d?(Tu.each(n,function(e,t){t in i?i[t]+=e:(t in a||(a[t]=0),a[t]+=e)},this),this._pop_from_people_queue(cd,n)):r===Sd?(Tu.each(n,function(e,t){Tu.isArray(e)&&(t in c||(c[t]=[]),Tu.each(e,function(e){Tu.include(c[t],e)||c[t].push(e)}))}),this._pop_from_people_queue(cd,n)):r===kd?(l.push(n),this._pop_from_people_queue(ud,n)):r===wd&&(u.push(n),this._pop_from_people_queue(cd,n)),Lu.log("MIXPANEL PEOPLE REQUEST (QUEUED, PENDING IDENTIFY):"),Lu.log(t),this.save()},Od.prototype._pop_from_people_queue=function(e,t){var r=this.props[this._get_queue_key(e)];Tu.isUndefined(r)||Tu.each(t,function(t,n){e===ud||e===hd?Tu.each(r,function(e){e[n]===t&&delete e[n]}):delete r[n]},this)},Od.prototype.load_queue=function(e){return this.load_prop(this._get_queue_key(e))},Od.prototype._get_queue_key=function(e){return e===sd?vd:e===ad?yd:e===cd?bd:e===ld?_d:e===ud?wd:e===hd?kd:e===pd?Sd:void Lu.error("Invalid queue:",e)},Od.prototype._get_or_create_queue=function(e,t){var r=this._get_queue_key(e);return t=Tu.isUndefined(t)?{}:t,this.props[r]||(this.props[r]=t)},Od.prototype.set_event_timer=function(e,t){var r=this.load_prop(Ed)||{};r[e]=t,this.props[Ed]=r,this.save()},Od.prototype.remove_event_timer=function(e){var t=(this.load_prop(Ed)||{})[e];return Tu.isUndefined(t)||(delete this.props[Ed][e],this.save()),t};var Nd,Ad=function(e,t){throw new Error(e+" not available in this build.")},Rd=function(e){return e},Md="mixpanel",Td="base64",Ld="$device:",Pd=n.XMLHttpRequest&&"withCredentials"in new XMLHttpRequest,Dd=!Pd&&-1===Eu.indexOf("MSIE")&&-1===Eu.indexOf("Mozilla"),Fd=null;ku.sendBeacon&&(Fd=function(){return ku.sendBeacon.apply(ku,arguments)});var Ud={track:"track/",engage:"engage/",groups:"groups/",record:"record/",flags:"flags/"},jd={api_host:"https://api-js.mixpanel.com",api_hosts:{},api_routes:Ud,api_extra_query_params:{},api_method:"POST",api_transport:"XHR",api_payload_format:Td,app_host:"https://mixpanel.com",autocapture:!1,cdn:"https://cdn.mxpnl.com",cross_site_cookie:!1,cross_subdomain_cookie:!0,error_reporter:Xu,flags:!1,persistence:"cookie",persistence_name:"",cookie_domain:"",cookie_name:"",loaded:Xu,mp_loader:null,track_marketing:!0,track_pageview:!1,skip_first_touch_marketing:!1,store_google:!0,stop_utm_persistence:!1,save_referrer:!0,test:!1,verbose:!1,img:!1,debug:!1,track_links_timeout:300,cookie_expiration:365,upgrade:!1,disable_persistence:!1,disable_cookie:!1,secure_cookie:!1,ip:!0,opt_out_tracking_by_default:!1,opt_out_persistence_by_default:!1,opt_out_tracking_persistence_type:"localStorage",opt_out_tracking_cookie_prefix:null,property_blacklist:[],xhr_headers:{},ignore_dnt:!1,batch_requests:!0,batch_size:50,batch_flush_interval_ms:5e3,batch_request_timeout_ms:9e4,batch_autostart:!0,hooks:{},record_block_class:new RegExp("^(mp-block|fs-exclude|amp-block|rr-block|ph-no-capture)$"),record_block_selector:"img, video, audio",record_canvas:!1,record_collect_fonts:!1,record_console:!0,record_heatmap_data:!1,record_idle_timeout_ms:18e5,record_mask_text_class:new RegExp("^(mp-mask|fs-mask|amp-mask|rr-mask|ph-mask)$"),record_mask_text_selector:"*",record_max_ms:fu,record_min_ms:0,record_sessions_percent:0,recorder_src:"https://cdn.mxpnl.com/libs/mixpanel-recorder.min.js"},Bd=!1,$d=function(){},zd=function(e,t,r){var n,i=r===Md?Nd:Nd[r];if(i&&0===md)n=i;else{if(i&&!Tu.isArray(i))return void Lu.error("You have already initialized "+r);n=new $d}if(n._cached_groups={},n._init(e,t,r),n.people=new gd,n.people._init(n),!n.get_config("skip_first_touch_marketing")){var o=Tu.info.campaignParams(null),s={},a=!1;Tu.each(o,function(e,t){s["initial_"+t]=e,e&&(a=!0)}),a&&n.people.set_once(s)}return du.DEBUG=du.DEBUG||n.get_config("debug"),!Tu.isUndefined(i)&&Tu.isArray(i)&&(n._execute_array.call(n.people,i.people),n._execute_array(i)),n};$d.prototype.init=function(e,t,r){if(Tu.isUndefined(r))this.report_error("You must name your new library: init(token, config, name)");else{if(r!==Md){var n=zd(e,t,r);return Nd[r]=n,n._loaded(),n}this.report_error("You must initialize the main mixpanel object right after you include the Mixpanel js snippet")}},$d.prototype._init=function(e,t,r){t=t||{},this.__loaded=!0,this.config={};var i={};if("api_payload_format"in t||(t.api_host||jd.api_host).match(/\.mixpanel\.com/)&&(i.api_payload_format="json"),this.set_config(Tu.extend({},jd,i,t,{name:r,token:e,callback_fn:(r===Md?r:Md+"."+r)+"._jsc"})),this._jsc=Xu,this.__dom_loaded_queue=[],this.__request_queue=[],this.__disabled_events=[],this._flags={disable_all_events:!1,identify_called:!1},this.request_batchers={},this._batch_requests=this.get_config("batch_requests"),this._batch_requests)if(Tu.localStorage.is_supported(!0)&&Pd){if(this.init_batchers(),Fd&&n.addEventListener){var o=Tu.bind(function(){this.request_batchers.events.stopped||this.request_batchers.events.flush({unloading:!0})},this);n.addEventListener("pagehide",function(e){e.persisted&&o()}),n.addEventListener("visibilitychange",function(){"hidden"===Su.visibilityState&&o()})}}else this._batch_requests=!1,Lu.log("Turning off Mixpanel request-queueing; needs XHR and localStorage support"),Tu.each(this.get_batcher_configs(),function(e){Lu.log("Clearing batch queue "+e.queue_key),Tu.localStorage.remove(e.queue_key)});this.persistence=this.cookie=new Od(this.config),this.unpersisted_superprops={},this._gdpr_init();var s=Tu.UUID();this.get_distinct_id()||this.register_once({distinct_id:Ld+s,$device_id:s},""),this.flags=new rd({getFullApiRoute:Tu.bind(function(){return this.get_api_host("flags")+"/"+this.get_config("api_routes").flags},this),getConfigFunc:Tu.bind(this.get_config,this),setConfigFunc:Tu.bind(this.set_config,this),getPropertyFunc:Tu.bind(this.get_property,this),trackingFunc:Tu.bind(this.track,this)}),this.flags.init(),this.flags=this.flags,this.autocapture=new Zh(this),this.autocapture.init(),this._init_tab_id(),this._check_and_start_session_recording()},$d.prototype._init_tab_id=function(){if(this.get_config("disable_persistence"))Lu.log("Tab ID initialization skipped due to disable_persistence config");else if(Tu.sessionStorage.is_supported())try{var e=this.get_config("name")+"_"+this.get_config("token"),t="mp_tab_id_"+e,r="mp_gen_new_tab_id_"+e;!Tu.sessionStorage.get(r)&&Tu.sessionStorage.get(t)||Tu.sessionStorage.set(t,"$tab-"+Tu.UUID()),Tu.sessionStorage.set(r,"1"),this.tab_id=Tu.sessionStorage.get(t),n.addEventListener("beforeunload",function(){Tu.sessionStorage.remove(r)})}catch(e){this.report_error("Error initializing tab id",e)}else this.report_error("Session storage is not supported, cannot keep track of unique tab ID.")},$d.prototype.get_tab_id=function(){return this.tab_id||null},$d.prototype._should_load_recorder=function(){if(this.get_config("disable_persistence"))return Lu.log("Load recorder check skipped due to disable_persistence config"),Promise.resolve(!1);var e=new ip(rp),t=this.get_tab_id();return e.init().then(function(){return e.getAll()}).then(function(e){for(var r=0;r0&&100*Math.random()<=this.get_config("record_sessions_percent");e||r?t(!0):this._should_load_recorder().then(function(e){e&&t(!1)})}else Lu.critical("Browser does not support MutationObserver; skipping session recording")}),$d.prototype.start_session_recording=function(){this._check_and_start_session_recording(!0)},$d.prototype.stop_session_recording=function(){return this._recorder?this._recorder.stopRecording():Promise.resolve()},$d.prototype.pause_session_recording=function(){return this._recorder?this._recorder.pauseRecording():Promise.resolve()},$d.prototype.resume_session_recording=function(){return this._recorder?this._recorder.resumeRecording():Promise.resolve()},$d.prototype.is_recording_heatmap_data=function(){return this._get_session_replay_id()&&this.get_config("record_heatmap_data")},$d.prototype.get_session_recording_properties=function(){var e={},t=this._get_session_replay_id();return t&&(e.$mp_replay_id=t),e},$d.prototype.get_session_replay_url=function(){var e=null,t=this._get_session_replay_id();return t&&(e="https://mixpanel.com/projects/replay-redirect?"+Tu.HTTPBuildQuery({replay_id:t,distinct_id:this.get_distinct_id(),token:this.get_config("token")})),e},$d.prototype._get_session_replay_id=function(){var e=null;return this._recorder&&(e=this._recorder.replayId),e||null},$d.prototype.__get_recorder=function(){return this._recorder},$d.prototype._loaded=function(){if(this.get_config("loaded")(this),this._set_default_superprops(),this.people.set_once(this.persistence.get_referrer_info()),this.get_config("store_google")&&this.get_config("stop_utm_persistence")){var e=Tu.info.campaignParams(null);Tu.each(e,function(e,t){this.unregister(t)}.bind(this))}},$d.prototype._set_default_superprops=function(){this.persistence.update_search_keyword(Su.referrer),this.get_config("store_google")&&!this.get_config("stop_utm_persistence")&&this.register(Tu.info.campaignParams()),this.get_config("save_referrer")&&this.persistence.update_referrer_info(Su.referrer)},$d.prototype._dom_loaded=function(){Tu.each(this.__dom_loaded_queue,function(e){this._track_dom.apply(this,e)},this),this.has_opted_out_tracking()||Tu.each(this.__request_queue,function(e){this._send_request.apply(this,e)},this),delete this.__dom_loaded_queue,delete this.__request_queue},$d.prototype._track_dom=function(e,t){if(this.get_config("img"))return this.report_error("You can't use DOM tracking functions with img = true."),!1;if(!Bd)return this.__dom_loaded_queue.push([e,t]),!1;var r=(new e).init(this);return r.track.apply(r,t)},$d.prototype._prepare_callback=function(e,t){if(Tu.isUndefined(e))return null;if(Pd)return function(r){e(r,t)};var r=this._jsc,n=""+Math.floor(1e8*Math.random()),i=this.get_config("callback_fn")+"["+n+"]";return r[n]=function(i){delete r[n],e(i,t)},i},$d.prototype._send_request=function(e,t,r,n){var i=!0;if(Dd)return this.__request_queue.push(arguments),i;var o={method:this.get_config("api_method"),transport:this.get_config("api_transport"),verbose:this.get_config("verbose")},s=null;n||!Tu.isFunction(r)&&"string"!=typeof r||(n=r,r=null),r=Tu.extend(o,r||{}),Pd||(r.method="GET");var a="POST"===r.method,c=Fd&&a&&"sendbeacon"===r.transport.toLowerCase(),l=r.verbose;t.verbose&&(l=!0),this.get_config("test")&&(t.test=1),l&&(t.verbose=1),this.get_config("img")&&(t.img=1),Pd||(n?t.callback=n:(l||this.get_config("test"))&&(t.callback="(function(){})")),t.ip=this.get_config("ip")?1:0,t._=(new Date).getTime().toString(),a&&(s="data="+encodeURIComponent(t.data),delete t.data),Tu.extend(t,this.get_config("api_extra_query_params")),e+="?"+Tu.HTTPBuildQuery(t);var u=this;if("img"in t){var p=Su.createElement("img");p.src=e,Su.body.appendChild(p)}else if(c){try{i=Fd(e,s)}catch(e){u.report_error(e),i=!1}try{n&&n(i?1:0)}catch(e){u.report_error(e)}}else if(Pd)try{var h=new XMLHttpRequest;h.open(r.method,e,!0);var d=this.get_config("xhr_headers");if(a&&(d["Content-Type"]="application/x-www-form-urlencoded"),Tu.each(d,function(e,t){h.setRequestHeader(t,e)}),r.timeout_ms&&void 0!==h.timeout){h.timeout=r.timeout_ms;var f=(new Date).getTime()}h.withCredentials=!0,h.onreadystatechange=function(){var e;if(4===h.readyState)if(200===h.status){if(n)if(l){var t;try{t=Tu.JSONDecode(h.responseText)}catch(e){if(u.report_error(e),!r.ignore_json_errors)return;t=h.responseText}n(t)}else n(Number(h.responseText))}else if(e=h.timeout&&!h.status&&(new Date).getTime()-f>=h.timeout?"timeout":"Bad HTTP status: "+h.status+" "+h.statusText,u.report_error(e),n)if(l){var i=h.responseHeaders||{};n({status:0,httpStatusCode:h.status,error:e,retryAfter:i["Retry-After"]})}else n(0)},h.send(s)}catch(e){u.report_error(e),i=!1}else{var g=Su.createElement("script");g.type="text/javascript",g.async=!0,g.defer=!0,g.src=e;var m=Su.getElementsByTagName("script")[0];m.parentNode.insertBefore(g,m)}return i},$d.prototype._execute_array=function(e){var t,r=[],n=[],i=[];Tu.each(e,function(e){e&&(t=e[0],Tu.isArray(t)?i.push(e):"function"==typeof e?e.call(this):Tu.isArray(e)&&"alias"===t?r.push(e):Tu.isArray(e)&&-1!==t.indexOf("track")&&"function"==typeof this[t]?i.push(e):n.push(e))},this);var o=function(e,t){Tu.each(e,function(e){if(Tu.isArray(e[0])){var r=t;Tu.each(e,function(e){r=r[e[0]].apply(r,e.slice(1))})}else this[e[0]].apply(this,e.slice(1))},t)};o(r,this),o(n,this),o(i,this)},$d.prototype.are_batchers_initialized=function(){return!!this.request_batchers.events},$d.prototype.get_batcher_configs=function(){var e="__mpq_"+this.get_config("token");return this._batcher_configs=this._batcher_configs||{events:{type:"events",api_name:"track",queue_key:e+"_ev"},people:{type:"people",api_name:"engage",queue_key:e+"_pp"},groups:{type:"groups",api_name:"groups",queue_key:e+"_gr"}},this._batcher_configs},$d.prototype.init_batchers=function(){if(!this.are_batchers_initialized()){var e=Tu.bind(function(e){return new Ep(e.queue_key,{libConfig:this.config,errorReporter:this.get_config("error_reporter"),sendRequestFunc:Tu.bind(function(t,r,n){var i=this.get_config("api_routes");this._send_request(this.get_api_host(e.api_name)+"/"+i[e.api_name],this._encode_data_for_request(t),r,this._prepare_callback(n,t))},this),beforeSendHook:Tu.bind(function(t){return this._run_hook("before_send_"+e.type,t)},this),stopAllBatchingFunc:Tu.bind(this.stop_batch_senders,this),usePersistence:!0})},this),t=this.get_batcher_configs();this.request_batchers={events:e(t.events),people:e(t.people),groups:e(t.groups)}}this.get_config("batch_autostart")&&this.start_batch_senders()},$d.prototype.start_batch_senders=function(){this._batchers_were_started=!0,this.are_batchers_initialized()&&(this._batch_requests=!0,Tu.each(this.request_batchers,function(e){e.start()}))},$d.prototype.stop_batch_senders=function(){this._batch_requests=!1,Tu.each(this.request_batchers,function(e){e.stop(),e.clear()})},$d.prototype.push=function(e){this._execute_array([e])},$d.prototype.disable=function(e){void 0===e?this._flags.disable_all_events=!0:this.__disabled_events=this.__disabled_events.concat(e)},$d.prototype._encode_data_for_request=function(e){var t=Qu(e);return this.get_config("api_payload_format")===Td&&(t=Tu.base64Encode(t)),{data:t}},$d.prototype._track_or_batch=function(e,t){var r=Tu.truncate(e.data,255),n=e.endpoint,i=e.batcher,o=e.should_send_immediately,s=e.send_request_options||{};t=t||Xu;var a=!0,c=Tu.bind(function(){return s.skip_hooks||(r=this._run_hook("before_send_"+e.type,r)),r?(Lu.log("MIXPANEL REQUEST:"),Lu.log(r),this._send_request(n,this._encode_data_for_request(r),s,this._prepare_callback(t,r))):null},this);return this._batch_requests&&!o?i.enqueue(r).then(function(e){e?t(1,r):c()}):a=c(),a&&r},$d.prototype.track=lp(function(e,t,r,n){n||"function"!=typeof r||(n=r,r=null);var i=(r=r||{}).transport;i&&(r.transport=i);var o=r.send_immediately;if("function"!=typeof n&&(n=Xu),Tu.isUndefined(e))this.report_error("No event name provided to mixpanel.track");else{if(!this._event_is_disabled(e)){(t=Tu.extend({},t)).token=this.get_config("token");var s=this.persistence.remove_event_timer(e);if(!Tu.isUndefined(s)){var a=(new Date).getTime()-s;t.$duration=parseFloat((a/1e3).toFixed(3))}this._set_default_superprops();var c=this.get_config("track_marketing")?Tu.info.marketingParams():{};t=Tu.extend({},Tu.info.properties({mp_loader:this.get_config("mp_loader")}),c,this.persistence.properties(),this.unpersisted_superprops,this.get_session_recording_properties(),t);var l=this.get_config("property_blacklist");Tu.isArray(l)?Tu.each(l,function(e){delete t[e]}):this.report_error("Invalid value for property_blacklist config: "+l);var u={event:e,properties:t};return this._track_or_batch({type:"events",data:u,endpoint:this.get_api_host("events")+"/"+this.get_config("api_routes").track,batcher:this.request_batchers.events,should_send_immediately:o,send_request_options:r},n)}n(0)}}),$d.prototype.set_group=lp(function(e,t,r){Tu.isArray(t)||(t=[t]);var n={};return n[e]=t,this.register(n),this.people.set(e,t,r)}),$d.prototype.add_group=lp(function(e,t,r){var n=this.get_property(e),i={};return void 0===n?(i[e]=[t],this.register(i)):-1===n.indexOf(t)&&(n.push(t),i[e]=n,this.register(i)),this.people.union(e,t,r)}),$d.prototype.remove_group=lp(function(e,t,r){var n=this.get_property(e);if(void 0!==n){var i=n.indexOf(t);i>-1&&(n.splice(i,1),this.register({group_key:n})),0===n.length&&this.unregister(e)}return this.people.remove(e,t,r)}),$d.prototype.track_with_groups=lp(function(e,t,r,n){var i=Tu.extend({},t||{});return Tu.each(r,function(e,t){null!=e&&(i[t]=e)}),this.track(e,i,n)}),$d.prototype._create_map_key=function(e,t){return e+"_"+JSON.stringify(t)},$d.prototype._remove_group_from_cache=function(e,t){delete this._cached_groups[this._create_map_key(e,t)]},$d.prototype.get_group=function(e,t){var r=this._create_map_key(e,t),n=this._cached_groups[r];return void 0!==n&&n._group_key===e&&n._group_id===t||((n=new fd)._init(this,e,t),this._cached_groups[r]=n),n},$d.prototype.track_pageview=lp(function(e,t){"object"!=typeof e&&(e={});var r=(t=t||{}).event_name||"$mp_web_page_view",n=Tu.extend(Tu.info.mpPageViewProperties(),Tu.info.campaignParams(),Tu.info.clickParams()),i=Tu.extend({},n,e);return this.track(r,i)}),$d.prototype.track_links=function(){return this._track_dom.call(this,id,arguments)},$d.prototype.track_forms=function(){return this._track_dom.call(this,od,arguments)},$d.prototype.time_event=function(e){Tu.isUndefined(e)?this.report_error("No event name provided to mixpanel.time_event"):this._event_is_disabled(e)||this.persistence.set_event_timer(e,(new Date).getTime())};var qd={persistent:!0},Vd=function(e){var t;return t=Tu.isObject(e)?e:Tu.isUndefined(e)?{}:{days:e},Tu.extend({},qd,t)};$d.prototype.register=function(e,t){var r=Vd(t);r.persistent?this.persistence.register(e,r.days):Tu.extend(this.unpersisted_superprops,e)},$d.prototype.register_once=function(e,t,r){var n=Vd(r);n.persistent?this.persistence.register_once(e,t,n.days):(void 0===t&&(t="None"),Tu.each(e,function(e,r){this.unpersisted_superprops.hasOwnProperty(r)&&this.unpersisted_superprops[r]!==t||(this.unpersisted_superprops[r]=e)},this))},$d.prototype.unregister=function(e,t){(t=Vd(t)).persistent?this.persistence.unregister(e):delete this.unpersisted_superprops[e]},$d.prototype._register_single=function(e,t){var r={};r[e]=t,this.register(r)},$d.prototype.identify=function(e,t,r,n,i,o,s,a){var c=this.get_distinct_id();if(e&&c!==e){if("string"==typeof e&&0===e.indexOf(Ld))return this.report_error("distinct_id cannot have $device: prefix"),-1;this.register({$user_id:e})}if(!this.get_property("$device_id")){var l=c;this.register_once({$had_persisted_distinct_id:!0,$device_id:l},"")}e!==c&&e!==this.get_property(Cd)&&(this.unregister(Cd),this.register({distinct_id:e})),this._flags.identify_called=!0,this.people._flush(t,r,n,i,o,s,a),e!==c&&this.track("$identify",{distinct_id:e,$anon_distinct_id:c},{skip_hooks:!0}),e!==c&&this.flags.fetchFlags()},$d.prototype.reset=function(){this.stop_session_recording(),this.persistence.clear(),this._flags.identify_called=!1;var e=Tu.UUID();this.register_once({distinct_id:Ld+e,$device_id:e},""),this._check_and_start_session_recording()},$d.prototype.get_distinct_id=function(){return this.get_property("distinct_id")},$d.prototype.alias=function(e,t){if(e===this.get_property(xd))return this.report_error("Attempting to create alias for existing People user - aborting."),-2;var r=this;return Tu.isUndefined(t)&&(t=this.get_distinct_id()),e!==t?(this._register_single(Cd,e),this.track("$create_alias",{alias:e,distinct_id:t},{skip_hooks:!0},function(){r.identify(e)})):(this.report_error("alias matches current distinct_id - skipping api call."),this.identify(e),-1)},$d.prototype.name_tag=function(e){this._register_single("mp_name_tag",e)},$d.prototype.set_config=function(e){Tu.isObject(e)&&(Tu.extend(this.config,e),e.batch_size&&Tu.each(this.request_batchers,function(e){e.resetBatchSize()}),this.get_config("persistence_name")||(this.config.persistence_name=this.config.cookie_name),this.get_config("disable_persistence")||(this.config.disable_persistence=this.config.disable_cookie),this.persistence&&this.persistence.update_config(this.config),du.DEBUG=du.DEBUG||this.get_config("debug"),("autocapture"in e||"record_heatmap_data"in e)&&this.autocapture&&this.autocapture.init())},$d.prototype.get_config=function(e){return this.config[e]},$d.prototype._run_hook=function(e){var t=(this.config.hooks[e]||Rd).apply(this,yu.call(arguments,1));return void 0===t&&(this.report_error(e+" hook did not return a value"),t=null),t},$d.prototype.get_property=function(e){return this.persistence.load_prop([e])},$d.prototype.get_api_host=function(e){return this.get_config("api_hosts")[e]||this.get_config("api_host")},$d.prototype.toString=function(){var e=this.get_config("name");return e!==Md&&(e=Md+"."+e),e},$d.prototype._event_is_disabled=function(e){return Tu.isBlockedUA(Eu)||this._flags.disable_all_events||Tu.include(this.__disabled_events,e)},$d.prototype._gdpr_init=function(){"localStorage"===this.get_config("opt_out_tracking_persistence_type")&&Tu.localStorage.is_supported()&&(!this.has_opted_in_tracking()&&this.has_opted_in_tracking({persistence_type:"cookie"})&&this.opt_in_tracking({enable_persistence:!1}),!this.has_opted_out_tracking()&&this.has_opted_out_tracking({persistence_type:"cookie"})&&this.opt_out_tracking({clear_persistence:!1}),this.clear_opt_in_out_tracking({persistence_type:"cookie",enable_persistence:!1})),this.has_opted_out_tracking()?this._gdpr_update_persistence({clear_persistence:!0}):this.has_opted_in_tracking()||!this.get_config("opt_out_tracking_by_default")&&!Tu.cookie.get("mp_optout")||(Tu.cookie.remove("mp_optout"),this.opt_out_tracking({clear_persistence:this.get_config("opt_out_persistence_by_default")}))},$d.prototype._gdpr_update_persistence=function(e){var t;if(e&&e.clear_persistence)t=!0;else{if(!e||!e.enable_persistence)return;t=!1}this.get_config("disable_persistence")||this.persistence.disabled===t||this.persistence.set_disabled(t),t?(this.stop_batch_senders(),this.stop_session_recording()):this._batchers_were_started&&this.start_batch_senders()},$d.prototype._gdpr_call_func=function(e,t){return t=Tu.extend({track:Tu.bind(this.track,this),persistence_type:this.get_config("opt_out_tracking_persistence_type"),cookie_prefix:this.get_config("opt_out_tracking_cookie_prefix"),cookie_expiration:this.get_config("cookie_expiration"),cross_site_cookie:this.get_config("cross_site_cookie"),cross_subdomain_cookie:this.get_config("cross_subdomain_cookie"),cookie_domain:this.get_config("cookie_domain"),secure_cookie:this.get_config("secure_cookie"),ignore_dnt:this.get_config("ignore_dnt")},t),Tu.localStorage.is_supported()||(t.persistence_type="cookie"),e(this.get_config("token"),{track:t.track,trackEventName:t.track_event_name,trackProperties:t.track_properties,persistenceType:t.persistence_type,persistencePrefix:t.cookie_prefix,cookieDomain:t.cookie_domain,cookieExpiration:t.cookie_expiration,crossSiteCookie:t.cross_site_cookie,crossSubdomainCookie:t.cross_subdomain_cookie,secureCookie:t.secure_cookie,ignoreDnt:t.ignore_dnt})},$d.prototype.opt_in_tracking=function(e){e=Tu.extend({enable_persistence:!0},e),this._gdpr_call_func(op,e),this._gdpr_update_persistence(e)},$d.prototype.opt_out_tracking=function(e){(e=Tu.extend({clear_persistence:!0,delete_user:!0},e)).delete_user&&this.people&&this.people._identify_called()&&(this.people.delete_user(),this.people.clear_charges()),this._gdpr_call_func(sp,e),this._gdpr_update_persistence(e)},$d.prototype.has_opted_in_tracking=function(e){return this._gdpr_call_func(ap,e)},$d.prototype.has_opted_out_tracking=function(e){return this._gdpr_call_func(cp,e)},$d.prototype.clear_opt_in_out_tracking=function(e){e=Tu.extend({enable_persistence:!0},e),this._gdpr_call_func(hp,e),this._gdpr_update_persistence(e)},$d.prototype.report_error=function(e,t){Lu.error.apply(Lu.error,arguments);try{t||e instanceof Error||(e=new Error(e)),this.get_config("error_reporter")(e,t)}catch(t){Lu.error(t)}},$d.prototype.init=$d.prototype.init,$d.prototype.reset=$d.prototype.reset,$d.prototype.disable=$d.prototype.disable,$d.prototype.time_event=$d.prototype.time_event,$d.prototype.track=$d.prototype.track,$d.prototype.track_links=$d.prototype.track_links,$d.prototype.track_forms=$d.prototype.track_forms,$d.prototype.track_pageview=$d.prototype.track_pageview,$d.prototype.register=$d.prototype.register,$d.prototype.register_once=$d.prototype.register_once,$d.prototype.unregister=$d.prototype.unregister,$d.prototype.identify=$d.prototype.identify,$d.prototype.alias=$d.prototype.alias,$d.prototype.name_tag=$d.prototype.name_tag,$d.prototype.set_config=$d.prototype.set_config,$d.prototype.get_config=$d.prototype.get_config,$d.prototype.get_api_host=$d.prototype.get_api_host,$d.prototype.get_property=$d.prototype.get_property,$d.prototype.get_distinct_id=$d.prototype.get_distinct_id,$d.prototype.toString=$d.prototype.toString,$d.prototype.opt_out_tracking=$d.prototype.opt_out_tracking,$d.prototype.opt_in_tracking=$d.prototype.opt_in_tracking,$d.prototype.has_opted_out_tracking=$d.prototype.has_opted_out_tracking,$d.prototype.has_opted_in_tracking=$d.prototype.has_opted_in_tracking,$d.prototype.clear_opt_in_out_tracking=$d.prototype.clear_opt_in_out_tracking,$d.prototype.get_group=$d.prototype.get_group,$d.prototype.set_group=$d.prototype.set_group,$d.prototype.add_group=$d.prototype.add_group,$d.prototype.remove_group=$d.prototype.remove_group,$d.prototype.track_with_groups=$d.prototype.track_with_groups,$d.prototype.start_batch_senders=$d.prototype.start_batch_senders,$d.prototype.stop_batch_senders=$d.prototype.stop_batch_senders,$d.prototype.start_session_recording=$d.prototype.start_session_recording,$d.prototype.stop_session_recording=$d.prototype.stop_session_recording,$d.prototype.pause_session_recording=$d.prototype.pause_session_recording,$d.prototype.resume_session_recording=$d.prototype.resume_session_recording,$d.prototype.get_session_recording_properties=$d.prototype.get_session_recording_properties,$d.prototype.get_session_replay_url=$d.prototype.get_session_replay_url,$d.prototype.get_tab_id=$d.prototype.get_tab_id,$d.prototype.DEFAULT_API_ROUTES=Ud,$d.prototype.__get_recorder=$d.prototype.__get_recorder,Od.prototype.properties=Od.prototype.properties,Od.prototype.update_search_keyword=Od.prototype.update_search_keyword,Od.prototype.update_referrer_info=Od.prototype.update_referrer_info,Od.prototype.get_cross_subdomain=Od.prototype.get_cross_subdomain,Od.prototype.clear=Od.prototype.clear;var Wd={},Hd=(Ad=function(e,t){t()},md=0,(Nd=new $d).init=function(e,t,r){if(r)return Nd[r]||(Nd[r]=Wd[r]=zd(e,t,r),Nd[r]._loaded()),Nd[r];var i=Nd;Wd[Md]?i=Wd[Md]:e&&((i=zd(e,t,Md))._loaded(),Wd[Md]=i),Nd=i,1===md&&(n[Md]=Nd),Tu.each(Wd,function(e,t){t!==Md&&(Nd[t]=e)}),Nd._=Tu},Nd.init(),function(){function e(){e.done||(e.done=!0,Bd=!0,Dd=!1,Tu.each(Wd,function(e){e._dom_loaded()}))}if(Su.addEventListener)"complete"===Su.readyState?e():Su.addEventListener("DOMContentLoaded",e,!1);else if(Su.attachEvent){Su.attachEvent("onreadystatechange",e);var t=!1;try{t=null===n.frameElement}catch(e){}Su.documentElement.doScroll&&t&&function t(){try{Su.documentElement.doScroll("left")}catch(e){return void setTimeout(t,1)}e()}()}Tu.register_event(n,"load",e,!0)}(),Nd)},7008:(e,t,r)=>{"use strict";r.d(t,{Mh:()=>p,bi:()=>s,lL:()=>o,oe:()=>u,qt:()=>a});var n=r(6751);let i=!1;const o=()=>{try{if("undefined"==typeof window)return!1;if(i)return!0;const e=window.marketplaceConfig||{};if(!e.data_consent_status)return!1;const t=e.mixpanel||{},r=t.token;if(!r||""===r)return!1;n.A.init(r,{debug:t.debug||!1,track_pageview:!1,persistence:"localStorage",property_blacklist:["$initial_referrer","$initial_referring_domain","$current_url","$referrer","$referring_domain","mp_lib","$lib_version","$browser","$browser_version","$device","$screen_height","$screen_width","$os","$search_engine"]});const o=t.distinctId;return o&&""!==o&&n.A.identify(o),i=!0,!0}catch(e){return!1}},s=()=>{try{i&&void 0!==n.A&&(n.A.reset(),i=!1)}catch(e){console.error("[MixpanelTracking] Error disabling Mixpanel:",e)}},a=()=>{try{if("undefined"==typeof window)return!1;const e=((window.marketplaceConfig||{}).mixpanel||{}).token;return!(!e||""===e)&&(i=!1,o())}catch(e){return console.error("[MixpanelTracking] Error enabling Mixpanel:",e),!1}},c=()=>{try{if("undefined"==typeof window)return{};const e=((window.marketplaceConfig||{}).mixpanel||{}).globalProperties||{},t=new URLSearchParams(window.location.search).get("page")||"",r={...e,hit_type:"event",page:t||window.location.pathname,path:window.location.pathname+window.location.search,referrer:document.referrer.split("/").filter(Boolean).pop()||""};return Object.fromEntries(Object.entries(r).filter(([e,t])=>""!==t&&null!=t&&(!Array.isArray(t)||0!==t.length)))}catch(e){return{}}},l=(e,t={})=>{try{if(!(()=>{try{return i&&void 0!==n.A}catch(e){return!1}})())return;const r={...c(),...t};n.A.track(e,r)}catch(t){console.error("[MixpanelTracking] Error tracking event:",e,t)}},u=({pluginSlug:e,pluginName:t,category:r,itemName:n,isContentRendered:i=!0,contentReceivedAt:o=null,contentRenderedAt:s=null,isCached:a=!1}={})=>{try{const c=Date.now(),u={content_received_at:o||c,is_content_rendered:i,is_cached:a};i&&(u.content_rendered_at=s||c),n?u.item_name=n:e&&(u.item_name=e),e&&(u.product_slug=e),t&&(u.product_name=t),r&&(u.item_category=r),l("Page Viewed",u)}catch(e){console.error("[MixpanelTracking] Error tracking page view:",e)}},p=({buttonName:e,buttonAction:t,plugin:r=null,context:n={}}={})=>{try{const i={button_name:e||"",button_action:t||"",item_name:e||"",timestamp:Date.now()};r&&Object.assign(i,(e=>{if(!e)return{};const t={product_slug:e.slug||"",product_name:e.name||""};if(e.categories&&e.categories.length>0){const r="object"==typeof e.categories[0]?e.categories[0].slug||e.categories[0].title:e.categories[0];t.item_category=r}return e.licenseType&&(t.license_type=e.licenseType),void 0!==e.priceAmount&&(t.price_amount=e.priceAmount),e.priceCurrency&&(t.price_currency=e.priceCurrency),t})(r)),Object.assign(i,n),l("Button Clicked",i)}catch(e){console.error("[MixpanelTracking] Error tracking button click:",e)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Aggiorna pagina","ui.notifications.couldNotLoad":"Impossibile caricare la pagina","ui.notifications.refreshPage":"Aggiorna la pagina e contatta il nostro supporto se il problema persiste."}')},7565:(e,t,r)=>{"use strict";r.d(t,{P:()=>i,r:()=>o});let n={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:r(2875).x};const i=(e={})=>{n={...n,...e}},o=()=>n},7674:(e,t,r)=>{"use strict";r(1609),r(1352)},7823:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Refresh page","ui.notifications.couldNotLoad":"Couldn’t load the page","ui.notifications.refreshPage":"Please refresh the page and contact our support if the issue persists."}')},7829:(e,t,r)=>{"use strict";r(1609),r(4814),r(1352)},7979:(e,t,r)=>{"use strict";r.d(t,{D:()=>c,t:()=>a});var n=r(1609),i=r(7008),o=r(108);const s=(0,n.createContext)(null),a=({children:e,apiBaseUrl:t,useWPHandlers:r,wpConfig:a,enableDefaultStyles:c,assetsBaseUrl:l})=>{const[u,p]=(0,n.useState)({}),[h,d]=(0,n.useState)({}),[f,g]=(0,n.useState)({}),[m,v]=(0,n.useState)([]),[y,b]=(0,n.useState)({}),[_,w]=(0,n.useState)(""),[k,S]=(0,n.useState)(""),[x,C]=(0,n.useState)({visible:!1,type:null,pluginSlug:null}),[E,I]=(0,n.useState)({visible:!1,type:null,pluginSlug:null}),[O,N]=(0,n.useState)({visible:!1,type:null,pluginSlug:null}),[A,R]=(0,n.useState)(!1),[M,T]=(0,n.useState)(!1),[L,P]=(0,n.useState)(!0),[D,F]=(0,n.useState)(()=>{const e="undefined"!=typeof window&&window.marketplaceConfig?.data_consent_status;return!0===e||"true"===e||"1"===e||1===e}),U=((0,n.useRef)({}),(0,n.useRef)(null)),j="onecom"===("undefined"!=typeof window&&window.marketplaceConfig?.brand),B="undefined"!=typeof window&&window.marketplaceConfig?.activePlugins?window.marketplaceConfig.activePlugins:[],$="undefined"!=typeof window&&window.marketplaceConfig?.activeThemeAuthor?window.marketplaceConfig.activeThemeAuthor:"",z="undefined"!=typeof window&&window.marketplaceConfig?.wpVersion?window.marketplaceConfig.wpVersion:"";(0,n.useEffect)(()=>{const e=sessionStorage.getItem("mp_success_notice");if(e)try{const t=JSON.parse(e);C({visible:t.visible,type:t.type,pluginSlug:t.pluginSlug}),N({visible:t.visible,type:t.successType,pluginSlug:t.pluginSlug}),setTimeout(()=>{sessionStorage.removeItem("mp_success_notice")},100)}catch(e){console.error("Error parsing persisted success notice",e)}},[]),(0,n.useEffect)(()=>{!0===D&&(0,i.lL)();const e=e=>{const t=void 0!==e.detail?.data_consent_status&&e.detail.data_consent_status;F(t),!0===t?("undefined"!=typeof window&&window.marketplaceConfig&&(window.marketplaceConfig.data_consent_status=!0),(0,i.qt)()):("undefined"!=typeof window&&window.marketplaceConfig&&(window.marketplaceConfig.data_consent_status=!1),(0,i.bi)())};window.addEventListener("onConsentStatusChanged",e);const t=t=>{if("onecom_data_consent_status"===t.key){const r="1"===t.newValue;e({detail:{data_consent_status:r}})}};return window.addEventListener("storage",t),()=>{window.removeEventListener("onConsentStatusChanged",e),window.removeEventListener("storage",t)}},[]);const q=(0,n.useCallback)(async e=>{if(j&&W(e)){g(t=>({...t,[e]:!0}));try{const t=void 0!==window.marketplaceConfig&&window.marketplaceConfig?.wpConfig?.ajaxUrl;if(!t)return void g(t=>({...t,[e]:!1}));const r=new FormData;r.append("action","get_addon_purchase_status"),r.append("addon_purchase_check","true"),r.append("addon_slug",e);const n=await fetch(t,{method:"POST",body:r}),i=await n.json();d(t=>({...t,[e]:i.is_purchased}))}catch(t){d(t=>({...t,[e]:!1}))}finally{g(t=>({...t,[e]:!1}))}}},[j]),V=(0,n.useCallback)(()=>{U.current&&(clearTimeout(U.current),U.current=null),sessionStorage.removeItem("mp_success_notice")},[]),W=(0,n.useCallback)(e=>"wp-rocket"===e||"seo-by-rank-math-pro"===e,[]),H=(0,n.useCallback)(e=>(0,o.u)(z,e),[z]),G=(0,n.useCallback)(e=>!(!e||!j)&&W(e.slug)&&!e.installed&&!0===h[e.slug],[j,h,W]),K=(0,n.useCallback)(e=>{if(!e.rules)return!0;if(e.rules.mustHavePlugins&&Array.isArray(e.rules.mustHavePlugins)){if(0===e.rules.mustHavePlugins.length)return!0;if(!e.rules.mustHavePlugins.some(e=>B.includes(e)))return!1}if(e.rules.mustHaveThemesByAuthor&&"string"==typeof e.rules.mustHaveThemesByAuthor){const t=e.rules.mustHaveThemesByAuthor;if($!==t)return!1}return!0},[B,$]),J=(0,n.useCallback)(async(e,n,o="")=>{const s="activate"===e&&"imagify"===n.slug;p(e=>({...e,[n.slug]:!0}));let c=!1;const l=n.name||n.slug;let u="";if(u="activate"===e?(y?.notifications?.activating||"Activating {0}").replace("{0}",l)+"...":"deactivate"===e?(y?.notifications?.deactivating||"Deactivating {0}").replace("{0}",l)+"...":"install"===e?(y?.notifications?.installing||"Installing {0}").replace("{0}",l)+"...":"delete"===e?(y?.notifications?.deleting||"Deleting {0}").replace("{0}",l)+"...":`${e.charAt(0).toUpperCase()+(e.endsWith("e")?e.slice(1,-1):e.slice(1))+"ing"} ${l}`,w(u),S(""),s){let s=`${t}${e}/${n.slug}`;const l=`download_url=${encodeURIComponent(n.download||"")}`;return s=r?`${a.ajaxUrl}?action=marketplace_${e}_plugin&_wpnonce=${a.nonce}&nonce=${a.nonce}&slug=${n.slug}&${l}`:s+(s.includes("?")?"&":"?")+l,void setTimeout(async()=>{try{await fetch(s,{method:"POST"})}catch(e){console.log("Imagify activation request initiated")}let r=0;const a=async()=>{try{const r=`${t}active/${n.slug}`,s=await fetch(r),a=await s.json();if(a&&a.activated)return(0,i.Mh)({buttonName:"Activate",buttonAction:"product_activate",plugin:n,context:{action:e,result:"success",special_case:"imagify_redirect"}}),void("product_detail"===o?(sessionStorage.setItem("mp_skip_page_view","true"),sessionStorage.setItem("mp_success_notice",JSON.stringify({visible:!0,type:"activated",pluginSlug:n.slug,successType:"activate"})),U.current=setTimeout(()=>{window.location.reload()},500)):(N({visible:!0,type:"activate",pluginSlug:n.slug}),U.current=setTimeout(()=>{sessionStorage.setItem("mp_skip_page_view","true"),window.location.reload()},3e3),w(""),S(""),c=!0))}catch(e){console.error("Error checking activation status",e)}r++,r<6?setTimeout(a,1e3):(I({visible:!0,type:"activate",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Activate",buttonAction:"product_activate",plugin:n,context:{action:e,result:"error",error_message:"Imagify activation timeout after polling"}}),w(""),S(""),p(e=>({...e,[n.slug]:!1})))};setTimeout(a,1e3)},100)}try{let s=`${t}/${e}/${n.slug}`;const l=`download_url=${encodeURIComponent(n.download||"")}`;s=r?`${a.ajaxUrl}?action=marketplace_${e}_plugin&_wpnonce=${a.nonce}&nonce=${a.nonce}&slug=${n.slug}&${l}`:s+(s.includes("?")?"&":"?")+l;const u=await fetch(s,{method:"POST"}),p=await u.json();if(p.success)if(v(t=>t.map(t=>t.slug===n.slug?{...t,installed:p.data.installed,activated:p.data.activated}:"deactivate"===e&&"seo-by-rank-math"===n.slug&&"seo-by-rank-math-pro"===t.slug?{...t,activated:!1}:"activate"===e&&"seo-by-rank-math-pro"===n.slug&&"seo-by-rank-math"===t.slug?{...t,activated:!0}:t)),"install"===e&&p.data.installed)C({visible:!0,type:"installed",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Install",buttonAction:"product_install",plugin:n,context:{action:e,result:"success"}});else if("delete"!==e||p.data.installed){if("activate"===e&&p.data.activated)return c=!0,(0,i.Mh)({buttonName:"Activate",buttonAction:"product_activate",plugin:n,context:{action:e,result:"success"}}),void("product_detail"===o?(sessionStorage.setItem("mp_skip_page_view","true"),sessionStorage.setItem("mp_success_notice",JSON.stringify({visible:!0,type:"activated",pluginSlug:n.slug,successType:"activate"})),U.current=setTimeout(()=>{window.location.reload()},500)):(N({visible:!0,type:"activate",pluginSlug:n.slug}),U.current=setTimeout(()=>{sessionStorage.setItem("mp_skip_page_view","true"),window.location.reload()},3e3),w(""),S("")));if("deactivate"===e&&!p.data.activated)return c=!0,N({visible:!0,type:"deactivate",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Deactivate",buttonAction:"product_deactivate",plugin:n,context:{action:e,result:"success"}}),U.current=setTimeout(()=>{sessionStorage.setItem("mp_skip_page_view","true"),window.location.reload()},3e3),w(""),void S("")}else C({visible:!0,type:"deleted",pluginSlug:n.slug}),N({visible:!0,type:"delete",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Delete",buttonAction:"product_delete",plugin:n,context:{action:e,result:"success"}});else"activate"===e?(I({visible:!0,type:"activate",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Activate",buttonAction:"product_activate",plugin:n,context:{action:e,result:"error",error_message:p.data?.message||y?.notifications?.pluginActivationFailed||"Activation failed"}})):"deactivate"===e?(I({visible:!0,type:"deactivate",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Deactivate",buttonAction:"product_deactivate",plugin:n,context:{action:e,result:"error",error_message:p.data?.message||y?.notifications?.pluginDeactivationFailed||"Deactivation failed"}})):"install"===e?(I({visible:!0,type:"install",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Install",buttonAction:"product_install",plugin:n,context:{action:e,result:"error",error_message:p.data?.message||"Installation failed"}})):"delete"===e?(I({visible:!0,type:"delete",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Delete",buttonAction:"product_delete",plugin:n,context:{action:e,result:"error",error_message:p.data?.message||y?.notifications?.pluginDeletionFailed||"Deletion failed"}})):alert(p.data?.message||"Failed to perform action")}catch(t){console.error("Plugin action failed",t),"activate"!==e&&"install"!==e&&"delete"!==e||(0,i.Mh)({buttonName:"activate"===e?"Activate":"install"===e?"Install":"Delete",buttonAction:"activate"===e?"product_activate":"install"===e?"product_install":"product_delete",plugin:n,context:{action:e,result:"error",error_message:t.message||"Network error"}})}finally{c||p(e=>({...e,[n.slug]:!1})),w(""),S("")}},[t,r,a,y]),Y={apiBaseUrl:t,useWPHandlers:r,wpConfig:a,enableDefaultStyles:c,assetsBaseUrl:l,pluginInAction:u,setPluginInAction:p,subscriptionStatus:h,isCheckingSubscription:f,fetchSubscriptionStatus:q,isOnecomBrand:j,plugins:m,setPlugins:v,uiI18n:y,setUiI18n:b,handlePluginAction:J,cancelReload:V,loadingAction:_,loadingPlugin:k,noticeState:x,setNoticeState:C,errorState:E,setErrorState:I,successState:O,setSuccessState:N,allPluginsActivated:A,setAllPluginsActivated:R,catalogError:M,setCatalogError:T,catalogLoading:L,setCatalogLoading:P,shouldShowProvision:G,isSpecialPlugin:W,shouldShowPlugin:K,isWpVersionSupported:H,wpVersion:z,activePlugins:B,activeThemeAuthor:$};return(0,n.createElement)(s.Provider,{value:Y},e)},c=()=>{const e=(0,n.useContext)(s);if(!e)throw new Error("useMarketplace must be used within MarketplaceProvider");return e}},8291:(e,t,r)=>{"use strict";r.d(t,{Bd:()=>n.B,r9:()=>i.r}),r(7829),r(4814);var n=r(8437),i=(r(2648),r(2176),r(3273),r(3227),r(7674),r(1831));r(7565),r(1352)},8300:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Uppdatera sidan","ui.notifications.couldNotLoad":"Det gick inte att ladda sidan","ui.notifications.refreshPage":"Uppdatera sidan och kontakta vår support om problemet kvarstår."}')},8437:(e,t,r)=>{"use strict";r.d(t,{B:()=>a});var n=r(1609),i=r(1352),o=r(9454);const s=(e,t,r,n)=>e.getFixedT(t,r,n),a=(e,t={})=>{const{i18n:r}=t,{i18n:a,defaultNS:c}=(0,n.useContext)(i.gJ)||{},l=r||a||(0,i.TO)();if(l&&!l.reportNamespaces&&(l.reportNamespaces=new i.hz),!l){(0,o.mc)(l,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const e=(e,t)=>(0,o.Kg)(t)?t:(0,o.Gv)(t)&&(0,o.Kg)(t.defaultValue)?t.defaultValue:Array.isArray(e)?e[e.length-1]:e,t=[e,{},!1];return t.t=e,t.i18n={},t.ready=!1,t}l.options.react?.wait&&(0,o.mc)(l,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const u={...(0,i.rV)(),...l.options.react,...t},{useSuspense:p,keyPrefix:h}=u;let d=e||c||l.options?.defaultNS;d=(0,o.Kg)(d)?[d]:d||["translation"],l.reportNamespaces.addUsedNamespaces?.(d);const f=(l.isInitialized||l.initializedStoreOnce)&&d.every(e=>(0,o.NM)(e,l,u)),g=((e,t,r,i)=>(0,n.useCallback)(s(e,t,r,i),[e,t,r,i]))(l,t.lng||null,"fallback"===u.nsMode?d:d[0],h),m=()=>g,v=()=>s(l,t.lng||null,"fallback"===u.nsMode?d:d[0],h),[y,b]=(0,n.useState)(m);let _=d.join();t.lng&&(_=`${t.lng}${_}`);const w=((e,t)=>{const r=(0,n.useRef)();return(0,n.useEffect)(()=>{r.current=e},[e,t]),r.current})(_),k=(0,n.useRef)(!0);(0,n.useEffect)(()=>{const{bindI18n:e,bindI18nStore:r}=u;k.current=!0,f||p||(t.lng?(0,o.GA)(l,t.lng,d,()=>{k.current&&b(v)}):(0,o.dM)(l,d,()=>{k.current&&b(v)})),f&&w&&w!==_&&k.current&&b(v);const n=()=>{k.current&&b(v)};return e&&l?.on(e,n),r&&l?.store.on(r,n),()=>{k.current=!1,l&&e&&e?.split(" ").forEach(e=>l.off(e,n)),r&&l&&r.split(" ").forEach(e=>l.store.off(e,n))}},[l,_]),(0,n.useEffect)(()=>{k.current&&f&&b(m)},[l,h,f]);const S=[y,l,f];if(S.t=y,S.i18n=l,S.ready=f,f)return S;if(!f&&!p)return S;throw new Promise(e=>{t.lng?(0,o.GA)(l,t.lng,d,()=>e()):(0,o.dM)(l,d,()=>e())})}},8484:(e,t,r)=>{"use strict";let n;r.d(t,{T:()=>o,V:()=>i});const i=e=>{n=e},o=()=>n},8491:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Genindlæs side","ui.notifications.couldNotLoad":"Kunne ikke indlæse siden","ui.notifications.refreshPage":"Opdater venligst siden og kontakt vores support, hvis problemet fortsætter."}')},9454:(e,t,r)=>{"use strict";r.d(t,{GA:()=>a,Gv:()=>u,Kg:()=>l,NM:()=>c,dM:()=>s,mc:()=>i});const n={},i=(e,t,r,i)=>{l(r)&&n[r]||(l(r)&&(n[r]=new Date),((e,t,r,n)=>{const i=[r,{code:t,...n||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,"warn","react-i18next::",!0);l(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)})(e,t,r,i))},o=(e,t)=>()=>{if(e.isInitialized)t();else{const r=()=>{setTimeout(()=>{e.off("initialized",r)},0),t()};e.on("initialized",r)}},s=(e,t,r)=>{e.loadNamespaces(t,o(e,r))},a=(e,t,r,n)=>{if(l(r)&&(r=[r]),e.options.preload&&e.options.preload.indexOf(t)>-1)return s(e,r,n);r.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,o(e,n))},c=(e,t,r={})=>t.languages&&t.languages.length?t.hasLoadedNamespace(e,{lng:r.lng,precheck:(t,n)=>{if(r.bindI18n&&r.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!n(t.isLanguageChangingTo,e))return!1}}):(i(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0),l=e=>"string"==typeof e,u=e=>"object"==typeof e&&null!==e},9962:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(1609),i=r(5795),o=r(1338),s=r(4469),a=r(4677),c=r(7979),l=r(488);function u({plugin:e,onClose:t,usePortal:r=!0,loading:u=!1}){const{assetsBaseUrl:p,useWPHandlers:h,pluginInAction:d,plugins:f,uiI18n:g,subscriptionStatus:m,isCheckingSubscription:v,noticeState:y,setNoticeState:b,setErrorState:_}=(0,c.D)(),w=f.find(e=>"seo-by-rank-math"===e.slug)||null,k=f.find(e=>"seo-by-rank-math-pro"===e.slug)||null,S=p||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",x=S?`${S}assets/icons/`:"";if(u){const e=(0,n.createElement)("div",{className:"gv-surface-dim"},(0,n.createElement)("article",{className:"gv-w-max-container gv-mx-auto"},(0,n.createElement)("nav",{className:"gv-breadcrumbs gv-area-nav gv-mb-lg"},(0,n.createElement)("a",{href:"#",onClick:e=>{if(e.preventDefault(),"undefined"!=typeof window&&window.history&&window.history.length>1)try{window.history.back()}catch(e){t&&t()}else t&&t()}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${x}arrow_back.svg`}),(0,n.createElement)("span",null,g.backButton))),(0,n.createElement)("header",{className:"gv-area-header"},(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("div",{className:"gv-card-image gv-h-full"},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full",style:{minHeight:"300px"}})))),(0,n.createElement)("header",{className:"gv-area-header gv-mt-fluid gv-mb-fluid"},(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("div",{className:"gv-card-image gv-h-full"},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full",style:{minHeight:"300px"}})))),(0,n.createElement)("div",{className:"gv-area-details gv-grid gv-gap-fluid gv-mb-fluid"},(0,n.createElement)("section",{className:"gv-stack-space-md"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-md",style:{width:"160px"}}),(0,n.createElement)("ul",{className:""},[...Array(3)].map((e,t)=>(0,n.createElement)("li",{key:t},(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"})))))),(0,n.createElement)("div",{className:"gv-area-content gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-text-sm gv-stack-space-md"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md",style:{width:"160px",marginBottom:"28px"}}),(0,n.createElement)("div",{className:"gv-grid gv-gap-lg gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3"},[...Array(3)].map((e,t)=>(0,n.createElement)("div",{className:"gv-item gv-stack-space-sm",key:t},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-sm",style:{width:"160px"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-xs"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"}))))))));return r?(0,i.createPortal)(e,document.body):e}if(!e)return null;const C=(0,n.useRef)(null),E=(0,n.useRef)(null),I=(0,n.useRef)(null),O=(0,n.useRef)(null),N=(0,n.useRef)(null),[A,R]=((0,n.useRef)([]),(0,n.useState)(0));(0,n.useEffect)(()=>{window.scrollTo(0,0)},[e]),(0,n.useEffect)(()=>{b(e=>!e.visible||e.pluginSlug!==w?.slug&&e.pluginSlug!==k?.slug?{visible:!1,type:null,pluginSlug:null}:e),_(e=>!e.visible||e.pluginSlug!==w?.slug&&e.pluginSlug!==k?.slug?{visible:!1,type:null,pluginSlug:null}:e)},[w?.slug,k?.slug,b,_]),(0,n.useEffect)(()=>{const e=()=>{b({visible:!1,type:null,pluginSlug:null}),_({visible:!1,type:null,pluginSlug:null})};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[b,_]),(0,n.useEffect)(()=>{const e=C.current,t=E.current,r=I.current,n=O.current,i=N.current;if(!(e&&t&&r&&n&&i))return;const o=t.querySelector(".gv-previous"),s=t.querySelector(".gv-next");let a=!1,c="top",l=!1,u=!1,p=!1,h=null,d=!1;const f=()=>{const t=e.scrollLeft,r=e.offsetWidth,n=Math.round(t/r);R(n),o&&(0===n?o.classList.add("gv-disabled"):o.classList.remove("gv-disabled")),s&&(n>=Math.round(e.scrollWidth/r)-1?s.classList.add("gv-disabled"):s.classList.remove("gv-disabled"))},g=()=>{const e=parseFloat(getComputedStyle(r).paddingTop)||0,i=n.offsetHeight/2,o=i+e,s=window.innerHeight/2-o,a=2*i;return t.style.transform=`translateY(${o}px)`,t.style.top=`${s}px`,t.style.bottom=`${a}px`,{bottomValue:a,halfHeaderHeight:i}},m=e=>{const n=r.getBoundingClientRect(),i=window.innerHeight-e,o=n.bottom<=i;o!==a&&(a=o,a?t.classList.add("gv-state-bottom"):t.classList.remove("gv-state-bottom"))},v=()=>{if(p)return;let e;e=l?l&&!u?"overlay":"bottom":"top",e!==c&&(p=!0,c=e,"top"===c?(i.classList.add("gv-state-top"),i.classList.remove("gv-state-overlay")):"overlay"===c?(i.classList.remove("gv-state-top"),i.classList.add("gv-state-overlay")):(i.classList.remove("gv-state-top"),i.classList.remove("gv-state-overlay")),requestAnimationFrame(()=>{setTimeout(()=>{p=!1},50)}))},{bottomValue:y}=g();e.addEventListener("scroll",f);const b=new IntersectionObserver(e=>{e.forEach(e=>{!e.isIntersecting&&e.boundingClientRect.top<0?l=!0:(e.isIntersecting||e.boundingClientRect.top>=0)&&(l=!1),v()})},{threshold:[0,1],rootMargin:"0px"}),_=document.createElement("div");_.style.position="absolute",_.style.bottom="0",_.style.left="0",_.style.width="1px",_.style.height="1px",_.style.pointerEvents="none",r.style.position="relative",r.appendChild(_);const w=new IntersectionObserver(e=>{e.forEach(e=>{u=e.isIntersecting,v()})},{threshold:[0],rootMargin:"-100px 0px 0px 0px"});b.observe(i),w.observe(_);const k=()=>{d||(d=!0,requestAnimationFrame(()=>{m(y)}),h=setTimeout(()=>{d=!1},100))},S=()=>{const{bottomValue:e}=g();m(e)};return window.addEventListener("scroll",k),window.addEventListener("resize",S),f(),m(y),v(),()=>{h&&clearTimeout(h),e.removeEventListener("scroll",f),window.removeEventListener("scroll",k),window.removeEventListener("resize",S),b.disconnect(),w.disconnect(),_&&_.parentNode&&_.parentNode.removeChild(_)}},[]),void 0!==window.onecomWpVars&&window.onecomWpVars,e.thumbnail;const M=e.bannerUrl||e.image||e.thumbnail||"https://gravity.group.one/guide-images/product-image@2x.png",T=w?.name||e.name||"Product",L=w?.i18n?.description||w?.i18n?.subtitle,P=w?.i18n?.subtitle,D=k?.name||"Rank Math Pro",F=k?.i18n?.subtitle||k?.i18n?.description,U=k?(0,l.M)(k,g?.labels?.free||"Free",g):"",j=U===(g?.labels?.freeUntilRenewal||"Free until renewal"),B=(0,l.Tc)(k),$=(e,t)=>{if(!e||"object"!=typeof e)return[];const r=[];let n=1;for(;e[`${t}${n}`];){const i=e[`${t}${n}`];i&&""!==i.trim()&&r.push(i),n++}return r},z=w?.i18n||e.i18n,q=$(z,"keyBenefitContent"),V=$(w?.i18n,"keyFeatureContent"),W=$(k?.i18n,"keyFeatureContent"),H=Math.max(V.length,W.length),G=[];if(z&&"object"==typeof z){let e=1;for(;z[`coreFeatureTitle${e}`]||z[`coreFeatureContent${e}`];){const t=z[`coreFeatureTitle${e}`],r=z[`coreFeatureContent${e}`];t&&""!==t.trim()&&r&&""!==r.trim()&&G.push({name:t,desc:r}),e++}}const K=q,J=G,Y=(0,n.createElement)("div",{className:"gv-surface-dim"},(0,n.createElement)("article",{className:"gv-layout-product gv-w-max-container gv-mx-auto gv-p-fluid gv-p-0"},(0,n.createElement)("nav",{className:"gv-breadcrumbs gv-area-nav"},(0,n.createElement)("a",{href:"#",onClick:r=>{if(r.preventDefault(),!d[e.slug])if("undefined"!=typeof window&&window.history&&window.history.length>1)try{window.history.back()}catch(e){t&&t()}else t&&t()},className:"gv-flex gv-items-center gv-gap-xs",role:"button","aria-label":"Go back",style:{opacity:d[e.slug]?.5:1,pointerEvents:d[e.slug]?"none":"auto",cursor:d[e.slug]?"not-allowed":"pointer"},"aria-disabled":d[e.slug]?"true":"false"},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${x}arrow_back.svg`}),(0,n.createElement)("span",null,g.backButton)),(0,n.createElement)(s.A,{plugin:y?.pluginSlug===k?.slug?k:w}),(0,n.createElement)(a.A,{plugin:w}),(0,n.createElement)(a.A,{plugin:k})),(0,n.createElement)("header",{className:"gv-product-header gv-area-header"},(0,n.createElement)("div",{className:"gv-content gv-stack-space-md gv-text-sm"},(0,n.createElement)("h3",{className:"gv-title gv-header-lg"},"Rank Math"),(0,n.createElement)("p",{className:"gv-text-sm"},L)),(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("picture",null,(0,n.createElement)("source",{media:"(min-width: 600px)",srcSet:`${M} 2x, ${M} 1x`}),(0,n.createElement)("img",{src:M,srcSet:`${M} 2x, ${M} 1x`,alt:"Product image"})))),(0,n.createElement)("section",{className:"gv-product-table gv-features-table gv-products-2 gv-recommended-2 gv-area-table"},(0,n.createElement)("div",{className:"gv-dots-scroll-area"},(0,n.createElement)("div",{className:"gv-table-container"},(0,n.createElement)("div",{className:"gv-slider-nav",ref:E},(0,n.createElement)("button",{type:"button",className:"gv-nav-button gv-previous gv-disabled",onClick:()=>{const e=C.current;if(!e)return;const t=e.offsetWidth;e.scrollTo({left:e.scrollLeft-t,behavior:"smooth"})}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${x}chevron_left.svg`})),(0,n.createElement)("button",{type:"button",className:"gv-nav-button gv-next",onClick:()=>{const e=C.current;if(!e)return;const t=e.offsetWidth;e.scrollTo({left:e.scrollLeft+t,behavior:"smooth"})}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${x}chevron_right.svg`}))),(0,n.createElement)("div",{className:"gv-table-slider",ref:C},(0,n.createElement)("div",{className:"gv-table",role:"table",ref:I},(0,n.createElement)("div",{className:"gv-table-header",role:"rowgroup",ref:O},(0,n.createElement)("div",{className:"gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-product gv-p-0",role:"columnheader"},(0,n.createElement)("div",{className:"gv-content"},(0,n.createElement)("h3",{className:"gv-title"},`${T} free`),(0,n.createElement)("p",null,P)),(0,n.createElement)("div",{className:"gv-bottom"},(0,n.createElement)("div",{className:"gv-price-container"},(0,n.createElement)("div",{className:"gv-price"},(0,n.createElement)("span",{className:"gv-price-text"},g?.labels?.free||"Free"))),h&&w?(0,n.createElement)(o.A,{plugin:w}):w?.download&&(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-secondary"},g?.installButton||w?.i18n?.installButton||"Install"))),(0,n.createElement)("div",{className:"gv-product gv-p-0",role:"columnheader"},(0,n.createElement)("div",{className:"gv-recommended-label"},"Recommended"),(0,n.createElement)("div",{className:"gv-content"},(0,n.createElement)("h3",{className:"gv-title"},D),(0,n.createElement)("p",null,F.substring(0,120),F.length>120?"…":"")),(0,n.createElement)("div",{className:"gv-bottom"},(0,n.createElement)("div",{className:"gv-price-container"},(0,n.createElement)("div",{className:"gv-price"},(0,n.createElement)("span",{className:"gv-price-text"},U,U&&!j&&",-"),U&&!j&&(0,n.createElement)("span",{className:"gv-period"},"/",g?.labels?.timeMonth)),U&&(0,n.createElement)("div",{className:"gv-price-info"},(0,n.createElement)("div",{className:"gv-info"},g.labels.afterThat," [",B,"]/",g?.labels?.timeMonth))),h&&k?(0,n.createElement)(o.A,{plugin:k}):(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary"},"Select"))))),H>0&&(0,n.createElement)("div",{className:"gv-section",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-section-header gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("h4",{className:"gv-title"},g?.keyFeatureHeading||w?.i18n?.keyFeatureHeading||"Key features")),(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("h4",{className:"gv-title"},g?.keyFeatureHeading||k?.i18n?.keyFeatureHeading||"Key features"))),Array.from({length:H}).map((e,t)=>(0,n.createElement)("div",{className:"gv-table-row",role:"row",key:t},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("span",{className:"gv-cell-text"},V[t]||"")),(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("span",{className:"gv-cell-text"},W[t]||"")))))))),(0,n.createElement)("div",{className:"gv-slider-pagination gv-state-top",ref:N},(0,n.createElement)("div",{className:"gv-dots",role:"tablist"},[0,1].map(e=>(0,n.createElement)("span",{key:e,className:"gv-dot "+(A===e?"gv-active":""),role:"tab","aria-selected":A===e?"true":"false","aria-label":`Go to slide ${e+1}`,onClick:()=>(e=>{const t=C.current;if(!t)return;const r=t.offsetWidth;t.scrollTo({left:r*e,behavior:"smooth"})})(e),style:{cursor:"pointer"}})))))),(0,n.createElement)("div",{className:"gv-area-details gv-grid gv-gap-fluid"},K.length>0&&(0,n.createElement)("section",{className:"gv-stack-space-md"},(0,n.createElement)("h2",{className:"gv-title gv-text-bold gv-text-lg"},g?.benefitHeading||e.i18n?.benefitHeading||"Key benefits"),(0,n.createElement)("ul",{className:"gv-list-items gv-list-check gv-mode-condensed"},K.map((e,t)=>(0,n.createElement)("li",{key:t},e))))),J.length>0&&(0,n.createElement)("div",{className:"gv-area-content gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-text-sm gv-stack-space-md"},(0,n.createElement)("h2",{className:"gv-title gv-text-bold gv-text-lg"},g?.featureOverviewHeading||e.i18n?.featureOverviewHeading||"Core features overview"),(0,n.createElement)("div",{className:"gv-grid gv-gap-lg gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3"},J.map((e,t)=>(0,n.createElement)("div",{className:"gv-item gv-stack-space-sm",key:t},(0,n.createElement)("h3",{className:"gv-title gv-text-bold gv-text-lg"},e.name),(0,n.createElement)("p",{className:"gv-text-sm"},e.desc))))))));return r?(0,i.createPortal)(Y,document.body):Y}}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n);var e=r(1609),t=r(5795),i=r.n(t),o=r(6255),s=(r(5036),r(108));document.addEventListener("DOMContentLoaded",()=>{const t=document.getElementById("marketplace-addons-root");if(t){const n=window.marketplaceConfig||{};n.locale&&Promise.resolve().then(r.bind(r,2635)).then(({default:e})=>{e.changeLanguage(n.locale)});const a=(0,s.u)(n.wpVersion,"6.2");"function"==typeof i().createRoot&&a?i().createRoot(t).render((0,e.createElement)(o.A,{...n})):i().render((0,e.createElement)(o.A,{...n}),t)}})})(),window.MarketPlaceWP=n})();
-//# sourceMappingURL=addons.js.map
\ No newline at end of file
diff --git a/frontend/build/index.asset.php b/frontend/build/index.asset.php
deleted file mode 100644
index b0d81b4..0000000
--- a/frontend/build/index.asset.php
+++ /dev/null
@@ -1 +0,0 @@
- array('react', 'react-dom'), 'version' => 'c61183d4dbc36f524021');
diff --git a/frontend/build/index.js b/frontend/build/index.js
deleted file mode 100644
index 64eb426..0000000
--- a/frontend/build/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(()=>{var e={108:(e,t,r)=>{"use strict";r.d(t,{u:()=>n});const n=(e,t)=>{if(!e)return!0;const r=String(e).split("."),n=String(t).split(".");for(let e=0;ei)return!0;if(t{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Oppdater side","ui.notifications.couldNotLoad":"Kunne ikke laste inn siden","ui.notifications.refreshPage":"Oppdater siden og kontakt vår support hvis problemet vedvarer."}')},488:(e,t,r)=>{"use strict";r.d(t,{Dn:()=>c,M:()=>l,Tc:()=>a});const n={EUR:"€",USD:"$",GBP:"£",DKK:"kr",NOK:"kr",SEK:"kr"},i=["DKK","SEK","NOK"],o=e=>n[e]||e,s=(e,t,r)=>i.includes(r)?`${e} ${t}`:`${t} ${e}`,a=e=>{if(e.prices&&Array.isArray(e.prices)&&e.prices.length>0){const t=e.prices.find(e=>"full"===e.priceType);if(t&&t.amount&&t.currency){const e=o(t.currency),r=Number(t.amount).toFixed(2);return s(r,e,t.currency)}}return null},c=e=>{if(e.prices&&Array.isArray(e.prices)&&e.prices.length>0){const t=e.prices.find(e=>"rebate"===e.priceType);if(t&&void 0!==t.amount&&null!==t.amount&&t.currency){const e=o(t.currency),r=Number(t.amount).toFixed(2);return s(r,e,t.currency)}}return null},l=(e,t="Free",r=null)=>{if("free"===e.licenseType)return t;if(e.prices&&Array.isArray(e.prices)&&e.prices.length>0){const t=e.prices.find(e=>"rebate"===e.priceType);if(t&&"premium"===e.licenseType){if(0===t.amount)return r?.labels?.freeUntilRenewal||"Free until renewal";if(t.amount&&t.currency){const e=o(t.currency),r=Number(t.amount).toFixed(2);return`${s(r,e,t.currency)} `}}let n=e.prices.find(e=>"full"===e.priceType&&(!0===e.isActive||void 0===e.isActive));if(n||(n=e.prices.find(e=>!0===e.isActive)),n||(n=e.prices[0]),n&&n.amount&&n.currency){const e=o(n.currency),t=Number(n.amount).toFixed(2);return s(t,e,n.currency)}}if(e.priceCurrency&&e.priceAmount){const t=o(e.priceCurrency),r=Number(e.priceAmount).toFixed(2);return s(r,t,e.priceCurrency)}return""}},1174:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(1609),i=r(7979);function o(){const{uiI18n:e}=(0,i.D)(),t=e?.notifications?.updateWPText?.replace("{0}","6.2");return(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col gv-flex-wrap gv-gap-lg gv-items-center gv-justify-center gv-p-fluid"},(0,n.createElement)("div",{className:"gv-text-center"},(0,n.createElement)("h5",{className:"gv-header-md gv-mb-sm"},e?.notifications?.updateWPTitle),(0,n.createElement)("p",{className:"gv-text-md gv-mb-lg"},t),(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary buttons-min-width",onClick:()=>{window.location.href="undefined"!=typeof window&&window.marketplaceConfig?.wpConfig?.adminUrl?`${window.marketplaceConfig.wpConfig.adminUrl}update-core.php`:"/wp-admin/update-core.php"}},(0,n.createElement)("span",null,e?.updateWPButton))))}},1199:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Pagina verversen","ui.notifications.couldNotLoad":"Kon de pagina niet laden","ui.notifications.refreshPage":"Ververs de pagina en neem contact op met onze (Engelstalige) support als het probleem zich blijft voordoen."}')},1338:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(1609),i=r(7979),o=r(7008),s=r(3220);function a({plugin:e}){const{assetsBaseUrl:t,pluginInAction:r,subscriptionStatus:a,isCheckingSubscription:c,isOnecomBrand:l,handlePluginAction:u,uiI18n:p,isSpecialPlugin:h}=(0,i.D)(),d=a[e.slug],f=c[e.slug],g=t||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",m=g?`${g}assets/`:"",v=t=>{const r=!e.installed;if(l&&h(e.slug)&&r&&"install"===t){(0,o.Mh)({buttonName:"Install",buttonAction:"product_install",plugin:e,context:{action:t,result:"initiated"}});const r=new CustomEvent("onecom-plugin-provision",{detail:{slug:e.slug},bubbles:!0,cancelable:!0,composed:!0});return void document.dispatchEvent(r)}u(t,e,"product_detail")},y=(e,t)=>e?e.replace("{0}",t||""):"",b=e?.name||"",_=l&&h(e.slug)&&!e.installed&&!1===d,w=l&&h(e.slug)&&!e.installed&&(f||void 0===d);return(0,n.createElement)("div",{className:"plugin-actions gv-mt-md"},w?(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md"}):_?(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary",onClick:()=>{(0,o.Mh)({buttonName:"Select",buttonAction:"subscribe_addon",plugin:e});const t=new CustomEvent("onecom-subscribe-addon",{detail:{slug:e.slug},bubbles:!0,cancelable:!0,composed:!0});document.dispatchEvent(t)},disabled:f},"Select"):e.installed?e.activated?(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary",onClick:()=>{(0,o.Mh)({buttonName:"Manage",buttonAction:"manage_product",context:{product_slug:e.slug,product_name:e.name,has_redirect_url:!(!e.redirectUrl||""===e.redirectUrl.trim()),has_onboarding_url:!(!e.onboardingUrl||""===e.onboardingUrl.trim())}});const t=(0,s.v)(e,!1);(0,s.J)(t)}},(0,n.createElement)("span",null,p?.labels?.manage||"Manage"),(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${m}icons/arrow_right.svg`})):(0,n.createElement)("button",{className:"gv-button gv-button-primary",disabled:r[e.slug],onClick:()=>v("activate")},r[e.slug]?y(p?.notifications?.activating||"Activating {0}",b):p?.activateButton||e.i18n?.activateButton||"Activate"):(0,n.createElement)("button",{className:"gv-button "+("seo-by-rank-math"===e.slug?"gv-button-secondary":"gv-button-primary"),disabled:r[e.slug],onClick:()=>v("install")},r[e.slug]?y(p?.notifications?.installing||"Installing {0}",b):p?.installButton||e.i18n?.installButton||"Install"))}},1352:(e,t,r)=>{"use strict";r.d(t,{TO:()=>o.T,gJ:()=>s,hz:()=>a,rV:()=>i.r});var n=r(1609),i=r(7565),o=r(8484);r(1831);const s=(0,n.createContext)();class a{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}},1609:e=>{"use strict";e.exports=window.React},1755:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(1609),i=r(7979),o=r(8291);function s(){const{assetsBaseUrl:e}=(0,i.D)(),{t}=(0,o.Bd)();return e||void 0!==window.marketplaceConfig&&window.marketplaceConfig,(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col gv-flex-wrap gv-gap-lg gv-items-center gv-justify-center gv-p-fluid"},(0,n.createElement)("div",{className:"gv-text-center"},(0,n.createElement)("h5",{className:"gv-header-md gv-mb-sm"},t("ui.notifications.couldNotLoad")),(0,n.createElement)("p",{className:"gv-text-md gv-mb-lg"},t("ui.notifications.refreshPage")),(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary buttons-min-width",onClick:()=>{window.location.reload()}},(0,n.createElement)("span",null,t("ui.button.refreshPage")))))}},1831:(e,t,r)=>{"use strict";r.d(t,{r:()=>o});var n=r(7565),i=r(8484);const o={type:"3rdParty",init(e){(0,n.P)(e.options.react),(0,i.V)(e)}}},2176:(e,t,r)=>{"use strict";r(8437)},2635:(e,t,r)=>{"use strict";r.r(t),r.d(t,{changeLanguage:()=>Q,createInstance:()=>G,default:()=>H,dir:()=>K,exists:()=>re,getFixedT:()=>ee,hasLoadedNamespace:()=>ie,init:()=>J,keyFromSelector:()=>I,loadLanguages:()=>se,loadNamespaces:()=>oe,loadResources:()=>Y,reloadResources:()=>Z,setDefaultNamespace:()=>ne,t:()=>te,use:()=>X});const n=e=>"string"==typeof e,i=()=>{let e,t;const r=new Promise((r,n)=>{e=r,t=n});return r.resolve=e,r.reject=t,r},o=e=>null==e?"":""+e,s=/###/g,a=e=>e&&e.indexOf("###")>-1?e.replace(s,"."):e,c=e=>!e||n(e),l=(e,t,r)=>{const i=n(t)?t.split("."):t;let o=0;for(;o{const{obj:n,k:i}=l(e,t,Object);if(void 0!==n||1===t.length)return void(n[i]=r);let o=t[t.length-1],s=t.slice(0,t.length-1),a=l(e,s,Object);for(;void 0===a.obj&&s.length;)o=`${s[s.length-1]}.${o}`,s=s.slice(0,s.length-1),a=l(e,s,Object),a?.obj&&void 0!==a.obj[`${a.k}.${o}`]&&(a.obj=void 0);a.obj[`${a.k}.${o}`]=r},p=(e,t)=>{const{obj:r,k:n}=l(e,t);if(r&&Object.prototype.hasOwnProperty.call(r,n))return r[n]},h=(e,t,r)=>{for(const i in t)"__proto__"!==i&&"constructor"!==i&&(i in e?n(e[i])||e[i]instanceof String||n(t[i])||t[i]instanceof String?r&&(e[i]=t[i]):h(e[i],t[i],r):e[i]=t[i]);return e},d=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var f={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const g=e=>n(e)?e.replace(/[&<>"'\/]/g,e=>f[e]):e,m=[" ",",","?","!",";"],v=new class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(void 0!==t)return t;const r=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,r),this.regExpQueue.push(e),r}}(20),y=(e,t,r=".")=>{if(!e)return;if(e[t]){if(!Object.prototype.hasOwnProperty.call(e,t))return;return e[t]}const n=t.split(r);let i=e;for(let e=0;e-1&&se?.replace("_","-"),_={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console?.[e]?.apply?.(console,t)}};class w{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||"i18next:",this.logger=e||_,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,t,r,i){return i&&!this.debug?null:(n(e[0])&&(e[0]=`${r}${this.prefix} ${e[0]}`),this.logger[t](e))}create(e){return new w(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return(e=e||this.options).prefix=e.prefix||this.prefix,new w(this.logger,e)}}var k=new w;class S{constructor(){this.observers={}}on(e,t){return e.split(" ").forEach(e=>{this.observers[e]||(this.observers[e]=new Map);const r=this.observers[e].get(t)||0;this.observers[e].set(t,r+1)}),this}off(e,t){this.observers[e]&&(t?this.observers[e].delete(t):delete this.observers[e])}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,r])=>{for(let n=0;n{for(let i=0;i-1&&this.options.ns.splice(t,1)}getResource(e,t,r,i={}){const o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,s=void 0!==i.ignoreJSONStructure?i.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;e.indexOf(".")>-1?a=e.split("."):(a=[e,t],r&&(Array.isArray(r)?a.push(...r):n(r)&&o?a.push(...r.split(o)):a.push(r)));const c=p(this.data,a);return!c&&!t&&!r&&e.indexOf(".")>-1&&(e=a[0],t=a[1],r=a.slice(2).join(".")),!c&&s&&n(r)?y(this.data?.[e]?.[t],r,o):c}addResource(e,t,r,n,i={silent:!1}){const o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator;let s=[e,t];r&&(s=s.concat(o?r.split(o):r)),e.indexOf(".")>-1&&(s=e.split("."),n=t,t=s[1]),this.addNamespaces(t),u(this.data,s,n),i.silent||this.emit("added",e,t,r,n)}addResources(e,t,r,i={silent:!1}){for(const i in r)(n(r[i])||Array.isArray(r[i]))&&this.addResource(e,t,i,r[i],{silent:!0});i.silent||this.emit("added",e,t,r)}addResourceBundle(e,t,r,n,i,o={silent:!1,skipCopy:!1}){let s=[e,t];e.indexOf(".")>-1&&(s=e.split("."),n=r,r=t,t=s[1]),this.addNamespaces(t);let a=p(this.data,s)||{};o.skipCopy||(r=JSON.parse(JSON.stringify(r))),n?h(a,r,i):a={...a,...r},u(this.data,s,a),o.silent||this.emit("added",e,t,r)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return void 0!==this.getResource(e,t)}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}}var C={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,r,n,i){return e.forEach(e=>{t=this.processors[e]?.process(t,r,n,i)??t}),t}};const E=Symbol("i18next/PATH_KEY");function I(e,t){const{[E]:r}=e(function(){const e=[],t=Object.create(null);let r;return t.get=(n,i)=>(r?.revoke?.(),i===E?e:(e.push(i),r=Proxy.revocable(n,t),r.proxy)),Proxy.revocable(Object.create(null),t).proxy}());return r.join(t?.keySeparator??".")}const O={},N=e=>!n(e)&&"boolean"!=typeof e&&"number"!=typeof e;class A extends S{constructor(e,t={}){super(),((e,t,r)=>{["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"].forEach(e=>{t[e]&&(r[e]=t[e])})})(0,e,this),this.options=t,void 0===this.options.keySeparator&&(this.options.keySeparator="."),this.logger=k.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){const r={...t};if(null==e)return!1;const n=this.resolve(e,r);return void 0!==n?.res}extractFromKey(e,t){let r=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===r&&(r=":");const i=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const s=r&&e.indexOf(r)>-1,a=!(this.options.userDefinedKeySeparator||t.keySeparator||this.options.userDefinedNsSeparator||t.nsSeparator||((e,t,r)=>{t=t||"",r=r||"";const n=m.filter(e=>t.indexOf(e)<0&&r.indexOf(e)<0);if(0===n.length)return!0;const i=v.getRegExp(`(${n.map(e=>"?"===e?"\\?":e).join("|")})`);let o=!i.test(e);if(!o){const t=e.indexOf(r);t>0&&!i.test(e.substring(0,t))&&(o=!0)}return o})(e,r,i));if(s&&!a){const t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:n(o)?[o]:o};const s=e.split(r);(r!==i||r===i&&this.options.ns.indexOf(s[0])>-1)&&(o=s.shift()),e=s.join(i)}return{key:e,namespaces:n(o)?[o]:o}}translate(e,t,r){let i="object"==typeof t?{...t}:t;if("object"!=typeof i&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),"object"==typeof i&&(i={...i}),i||(i={}),null==e)return"";"function"==typeof e&&(e=I(e,{...this.options,...i})),Array.isArray(e)||(e=[String(e)]);const o=void 0!==i.returnDetails?i.returnDetails:this.options.returnDetails,s=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,{key:a,namespaces:c}=this.extractFromKey(e[e.length-1],i),l=c[c.length-1];let u=void 0!==i.nsSeparator?i.nsSeparator:this.options.nsSeparator;void 0===u&&(u=":");const p=i.lng||this.language,h=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if("cimode"===p?.toLowerCase())return h?o?{res:`${l}${u}${a}`,usedKey:a,exactUsedKey:a,usedLng:p,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${a}`:o?{res:a,usedKey:a,exactUsedKey:a,usedLng:p,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:a;const d=this.resolve(e,i);let f=d?.res;const g=d?.usedKey||a,m=d?.exactUsedKey||a,v=void 0!==i.joinArrays?i.joinArrays:this.options.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject,b=void 0!==i.count&&!n(i.count),_=A.hasDefaultValue(i),w=b?this.pluralResolver.getSuffix(p,i.count,i):"",k=i.ordinal&&b?this.pluralResolver.getSuffix(p,i.count,{ordinal:!1}):"",S=b&&!i.ordinal&&0===i.count,x=S&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${w}`]||i[`defaultValue${k}`]||i.defaultValue;let C=f;y&&!f&&_&&(C=x);const E=N(C),O=Object.prototype.toString.apply(C);if(!(y&&C&&E&&["[object Number]","[object Function]","[object RegExp]"].indexOf(O)<0)||n(v)&&Array.isArray(C))if(y&&n(v)&&Array.isArray(f))f=f.join(v),f&&(f=this.extendTranslation(f,e,i,r));else{let t=!1,n=!1;!this.isValidLookup(f)&&_&&(t=!0,f=x),this.isValidLookup(f)||(n=!0,f=a);const o=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:f,c=_&&x!==f&&this.options.updateMissing;if(n||t||c){if(this.logger.log(c?"updateKey":"missingKey",p,l,a,c?x:f),s){const e=this.resolve(a,{...i,keySeparator:!1});e&&e.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let e=[];const t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if("fallback"===this.options.saveMissingTo&&t&&t[0])for(let r=0;r{const n=_&&r!==f?r:o;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,n,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,n,c,i),this.emit("missingKey",e,l,t,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&b?e.forEach(e=>{const t=this.pluralResolver.getSuffixes(e,i);S&&i[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{r([e],a+t,i[`defaultValue${t}`]||x)})}):r(e,a,x))}f=this.extendTranslation(f,e,i,d,r),n&&f===a&&this.options.appendNamespaceToMissingKey&&(f=`${l}${u}${a}`),(n||t)&&this.options.parseMissingKeyHandler&&(f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${a}`:a,t?f:void 0,i))}else{if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,C,{...i,ns:c}):`key '${a} (${this.language})' returned an object instead of string.`;return o?(d.res=e,d.usedParams=this.getUsedParamsDetails(i),d):e}if(s){const e=Array.isArray(C),t=e?[]:{},r=e?m:g;for(const e in C)if(Object.prototype.hasOwnProperty.call(C,e)){const n=`${r}${s}${e}`;t[e]=_&&!f?this.translate(n,{...i,defaultValue:N(x)?x[e]:void 0,joinArrays:!1,ns:c}):this.translate(n,{...i,joinArrays:!1,ns:c}),t[e]===n&&(t[e]=C[e])}f=t}}return o?(d.res=f,d.usedParams=this.getUsedParamsDetails(i),d):f}extendTranslation(e,t,r,i,o){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const s=n(e)&&(void 0!==r?.interpolation?.skipOnVariables?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let a;if(s){const t=e.match(this.interpolator.nestingRegexp);a=t&&t.length}let c=r.replace&&!n(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(c={...this.options.interpolation.defaultVariables,...c}),e=this.interpolator.interpolate(e,c,r.lng||this.language||i.usedLng,r),s){const t=e.match(this.interpolator.nestingRegexp);a<(t&&t.length)&&(r.nest=!1)}!r.lng&&i&&i.res&&(r.lng=this.language||i.usedLng),!1!==r.nest&&(e=this.interpolator.nest(e,(...e)=>o?.[0]!==e[0]||r.context?this.translate(...e,t):(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null),r)),r.interpolation&&this.interpolator.reset()}const s=r.postProcess||this.options.postProcess,a=n(s)?[s]:s;return null!=e&&a?.length&&!1!==r.applyPostProcessor&&(e=C.handle(a,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...i,usedParams:this.getUsedParamsDetails(r)},...r}:r,this)),e}resolve(e,t={}){let r,i,o,s,a;return n(e)&&(e=[e]),e.forEach(e=>{if(this.isValidLookup(r))return;const c=this.extractFromKey(e,t),l=c.key;i=l;let u=c.namespaces;this.options.fallbackNS&&(u=u.concat(this.options.fallbackNS));const p=void 0!==t.count&&!n(t.count),h=p&&!t.ordinal&&0===t.count,d=void 0!==t.context&&(n(t.context)||"number"==typeof t.context)&&""!==t.context,f=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);u.forEach(e=>{this.isValidLookup(r)||(a=e,O[`${f[0]}-${e}`]||!this.utils?.hasLoadedNamespace||this.utils?.hasLoadedNamespace(a)||(O[`${f[0]}-${e}`]=!0,this.logger.warn(`key "${i}" for languages "${f.join(", ")}" won't get resolved as namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach(n=>{if(this.isValidLookup(r))return;s=n;const i=[l];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(i,l,n,e,t);else{let e;p&&(e=this.pluralResolver.getSuffix(n,t.count,t));const r=`${this.options.pluralSeparator}zero`,o=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(p&&(t.ordinal&&0===e.indexOf(o)&&i.push(l+e.replace(o,this.options.pluralSeparator)),i.push(l+e),h&&i.push(l+r)),d){const n=`${l}${this.options.contextSeparator||"_"}${t.context}`;i.push(n),p&&(t.ordinal&&0===e.indexOf(o)&&i.push(n+e.replace(o,this.options.pluralSeparator)),i.push(n+e),h&&i.push(n+r))}}let a;for(;a=i.pop();)this.isValidLookup(r)||(o=a,r=this.getResource(n,e,a,t))}))})}),{res:r,usedKey:i,exactUsedKey:o,usedLng:s,usedNS:a}}isValidLookup(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}getResource(e,t,r,n={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,r,n):this.resourceStore.getResource(e,t,r,n)}getUsedParamsDetails(e={}){const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=e.replace&&!n(e.replace);let i=r?e.replace:e;if(r&&void 0!==e.count&&(i.count=e.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!r){i={...i};for(const e of t)delete i[e]}return i}static hasDefaultValue(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&"defaultValue"===t.substring(0,12)&&void 0!==e[t])return!0;return!1}}class R{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=k.create("languageUtils")}getScriptPartFromCode(e){if(!(e=b(e))||e.indexOf("-")<0)return null;const t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}getLanguagePartFromCode(e){if(!(e=b(e))||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(n(e)&&e.indexOf("-")>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch(e){}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(e=>{if(t)return;const r=this.formatLanguageCode(e);this.options.supportedLngs&&!this.isSupportedCode(r)||(t=r)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;const r=this.getScriptPartFromCode(e);if(this.isSupportedCode(r))return t=r;const n=this.getLanguagePartFromCode(e);if(this.isSupportedCode(n))return t=n;t=this.options.supportedLngs.find(e=>e===n?e:e.indexOf("-")<0&&n.indexOf("-")<0?void 0:e.indexOf("-")>0&&n.indexOf("-")<0&&e.substring(0,e.indexOf("-"))===n||0===e.indexOf(n)&&n.length>1?e:void 0)}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),n(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let r=e[t];return r||(r=e[this.getScriptPartFromCode(t)]),r||(r=e[this.formatLanguageCode(t)]),r||(r=e[this.getLanguagePartFromCode(t)]),r||(r=e.default),r||[]}toResolveHierarchy(e,t){const r=this.getFallbackCodes((!1===t?[]:t)||this.options.fallbackLng||[],e),i=[],o=e=>{e&&(this.isSupportedCode(e)?i.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return n(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?("languageOnly"!==this.options.load&&o(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&o(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&o(this.getLanguagePartFromCode(e))):n(e)&&o(this.formatLanguageCode(e)),r.forEach(e=>{i.indexOf(e)<0&&o(this.formatLanguageCode(e))}),i}}const M={zero:0,one:1,two:2,few:3,many:4,other:5},T={select:e=>1===e?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class P{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=k.create("pluralResolver"),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){const r=b("dev"===e?"en":e),n=t.ordinal?"ordinal":"cardinal",i=JSON.stringify({cleanedCode:r,type:n});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let o;try{o=new Intl.PluralRules(r,{type:n})}catch(r){if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),T;if(!e.match(/-|_/))return T;const n=this.languageUtils.getLanguagePartFromCode(e);o=this.getRule(n,t)}return this.pluralRulesCache[i]=o,o}needsPlural(e,t={}){let r=this.getRule(e,t);return r||(r=this.getRule("dev",t)),r?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,r={}){return this.getSuffixes(e,r).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let r=this.getRule(e,t);return r||(r=this.getRule("dev",t)),r?r.resolvedOptions().pluralCategories.sort((e,t)=>M[e]-M[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${e}`):[]}getSuffix(e,t,r={}){const n=this.getRule(e,r);return n?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${n.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",t,r))}}const L=(e,t,r,i=".",o=!0)=>{let s=((e,t,r)=>{const n=p(e,r);return void 0!==n?n:p(t,r)})(e,t,r);return!s&&o&&n(r)&&(s=y(e,r,i),void 0===s&&(s=y(t,r,i))),s},D=e=>e.replace(/\$/g,"$$$$");class F{constructor(e={}){this.logger=k.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:t,escapeValue:r,useRawValueToEscape:n,prefix:i,prefixEscaped:o,suffix:s,suffixEscaped:a,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:p,nestingPrefixEscaped:h,nestingSuffix:f,nestingSuffixEscaped:m,nestingOptionsSeparator:v,maxReplaces:y,alwaysFormat:b}=e.interpolation;this.escape=void 0!==t?t:g,this.escapeValue=void 0===r||r,this.useRawValueToEscape=void 0!==n&&n,this.prefix=i?d(i):o||"{{",this.suffix=s?d(s):a||"}}",this.formatSeparator=c||",",this.unescapePrefix=l?"":u||"-",this.unescapeSuffix=this.unescapePrefix?"":l||"",this.nestingPrefix=p?d(p):h||d("$t("),this.nestingSuffix=f?d(f):m||d(")"),this.nestingOptionsSeparator=v||",",this.maxReplaces=y||1e3,this.alwaysFormat=void 0!==b&&b,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,r,i){let s,a,c;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=e=>{if(e.indexOf(this.formatSeparator)<0){const n=L(t,l,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(n,void 0,r,{...i,...t,interpolationkey:e}):n}const n=e.split(this.formatSeparator),o=n.shift().trim(),s=n.join(this.formatSeparator).trim();return this.format(L(t,l,o,this.options.keySeparator,this.options.ignoreJSONStructure),s,r,{...i,...t,interpolationkey:o})};this.resetRegExp();const p=i?.missingInterpolationHandler||this.options.missingInterpolationHandler,h=void 0!==i?.interpolation?.skipOnVariables?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>D(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?D(this.escape(e)):D(e)}].forEach(t=>{for(c=0;s=t.regex.exec(e);){const r=s[1].trim();if(a=u(r),void 0===a)if("function"==typeof p){const t=p(e,s,i);a=n(t)?t:""}else if(i&&Object.prototype.hasOwnProperty.call(i,r))a="";else{if(h){a=s[0];continue}this.logger.warn(`missed to pass in variable ${r} for interpolating ${e}`),a=""}else n(a)||this.useRawValueToEscape||(a=o(a));const l=t.safeValue(a);if(e=e.replace(s[0],l),h?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=s[0].length):t.regex.lastIndex=0,c++,c>=this.maxReplaces)break}}),e}nest(e,t,r={}){let i,s,a;const c=(e,t)=>{const r=this.nestingOptionsSeparator;if(e.indexOf(r)<0)return e;const n=e.split(new RegExp(`${r}[ ]*{`));let i=`{${n[1]}`;e=n[0],i=this.interpolate(i,a);const o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||s.length%2!=0)&&(i=i.replace(/'/g,'"'));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${r}${i}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,e};for(;i=this.nestingRegexp.exec(e);){let l=[];a={...r},a=a.replace&&!n(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;const u=/{.*}/.test(i[1])?i[1].lastIndexOf("}")+1:i[1].indexOf(this.formatSeparator);if(-1!==u&&(l=i[1].slice(u).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),i[1]=i[1].slice(0,u)),s=t(c.call(this,i[1].trim(),a),a),s&&i[0]===e&&!n(s))return s;n(s)||(s=o(s)),s||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${e}`),s=""),l.length&&(s=l.reduce((e,t)=>this.format(e,t,r.lng,{...r,interpolationkey:i[1].trim()}),s.trim())),e=e.replace(i[0],s),this.regexp.lastIndex=0}return e}}const U=e=>{const t={};return(r,n,i)=>{let o=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(o={...o,[i.interpolationkey]:void 0});const s=n+JSON.stringify(o);let a=t[s];return a||(a=e(b(n),i),t[s]=a),a(r)}},j=e=>(t,r,n)=>e(b(r),n)(t);class B{constructor(e={}){this.logger=k.create("formatter"),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||",";const r=t.cacheInBuiltFormats?U:j;this.formats={number:r((e,t)=>{const r=new Intl.NumberFormat(e,{...t});return e=>r.format(e)}),currency:r((e,t)=>{const r=new Intl.NumberFormat(e,{...t,style:"currency"});return e=>r.format(e)}),datetime:r((e,t)=>{const r=new Intl.DateTimeFormat(e,{...t});return e=>r.format(e)}),relativetime:r((e,t)=>{const r=new Intl.RelativeTimeFormat(e,{...t});return e=>r.format(e,t.range||"day")}),list:r((e,t)=>{const r=new Intl.ListFormat(e,{...t});return e=>r.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=U(t)}format(e,t,r,n={}){const i=t.split(this.formatSeparator);if(i.length>1&&i[0].indexOf("(")>1&&i[0].indexOf(")")<0&&i.find(e=>e.indexOf(")")>-1)){const e=i.findIndex(e=>e.indexOf(")")>-1);i[0]=[i[0],...i.splice(1,e)].join(this.formatSeparator)}return i.reduce((e,t)=>{const{formatName:i,formatOptions:o}=(e=>{let t=e.toLowerCase().trim();const r={};if(e.indexOf("(")>-1){const n=e.split("(");t=n[0].toLowerCase().trim();const i=n[1].substring(0,n[1].length-1);"currency"===t&&i.indexOf(":")<0?r.currency||(r.currency=i.trim()):"relativetime"===t&&i.indexOf(":")<0?r.range||(r.range=i.trim()):i.split(";").forEach(e=>{if(e){const[t,...n]=e.split(":"),i=n.join(":").trim().replace(/^'+|'+$/g,""),o=t.trim();r[o]||(r[o]=i),"false"===i&&(r[o]=!1),"true"===i&&(r[o]=!0),isNaN(i)||(r[o]=parseInt(i,10))}})}return{formatName:t,formatOptions:r}})(t);if(this.formats[i]){let t=e;try{const s=n?.formatParams?.[n.interpolationkey]||{},a=s.locale||s.lng||n.locale||n.lng||r;t=this.formats[i](e,a,{...o,...n,...s})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${i}`),e},e)}}class $ extends S{constructor(e,t,r,n={}){super(),this.backend=e,this.store=t,this.services=r,this.languageUtils=r.languageUtils,this.options=n,this.logger=k.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=n.maxParallelReads||10,this.readingCalls=0,this.maxRetries=n.maxRetries>=0?n.maxRetries:5,this.retryTimeout=n.retryTimeout>=1?n.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(r,n.backend,n)}queueLoad(e,t,r,n){const i={},o={},s={},a={};return e.forEach(e=>{let n=!0;t.forEach(t=>{const s=`${e}|${t}`;!r.reload&&this.store.hasResourceBundle(e,t)?this.state[s]=2:this.state[s]<0||(1===this.state[s]?void 0===o[s]&&(o[s]=!0):(this.state[s]=1,n=!1,void 0===o[s]&&(o[s]=!0),void 0===i[s]&&(i[s]=!0),void 0===a[t]&&(a[t]=!0)))}),n||(s[e]=!0)}),(Object.keys(i).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:n}),{toLoad:Object.keys(i),pending:Object.keys(o),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(a)}}loaded(e,t,r){const n=e.split("|"),i=n[0],o=n[1];t&&this.emit("failedLoading",i,o,t),!t&&r&&this.store.addResourceBundle(i,o,r,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&r&&(this.state[e]=0);const s={};this.queue.forEach(r=>{((e,t,r)=>{const{obj:n,k:i}=l(e,t,Object);n[i]=n[i]||[],n[i].push(r)})(r.loaded,[i],o),((e,t)=>{void 0!==e.pending[t]&&(delete e.pending[t],e.pendingCount--)})(r,e),t&&r.errors.push(t),0!==r.pendingCount||r.done||(Object.keys(r.loaded).forEach(e=>{s[e]||(s[e]={});const t=r.loaded[e];t.length&&t.forEach(t=>{void 0===s[e][t]&&(s[e][t]=!0)})}),r.done=!0,r.errors.length?r.callback(r.errors):r.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(e=>!e.done)}read(e,t,r,n=0,i=this.retryTimeout,o){if(!e.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads)return void this.waitingReads.push({lng:e,ns:t,fcName:r,tried:n,wait:i,callback:o});this.readingCalls++;const s=(s,a)=>{if(this.readingCalls--,this.waitingReads.length>0){const e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}s&&a&&n{this.read.call(this,e,t,r,n+1,2*i,o)},i):o(s,a)},a=this.backend[r].bind(this.backend);if(2!==a.length)return a(e,t,s);try{const r=a(e,t);r&&"function"==typeof r.then?r.then(e=>s(null,e)).catch(s):s(null,r)}catch(e){s(e)}}prepareLoading(e,t,r={},i){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();n(e)&&(e=this.languageUtils.toResolveHierarchy(e)),n(t)&&(t=[t]);const o=this.queueLoad(e,t,r,i);if(!o.toLoad.length)return o.pending.length||i(),null;o.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,r){this.prepareLoading(e,t,{},r)}reload(e,t,r){this.prepareLoading(e,t,{reload:!0},r)}loadOne(e,t=""){const r=e.split("|"),n=r[0],i=r[1];this.read(n,i,"read",void 0,void 0,(r,o)=>{r&&this.logger.warn(`${t}loading namespace ${i} for language ${n} failed`,r),!r&&o&&this.logger.log(`${t}loaded namespace ${i} for language ${n}`,o),this.loaded(e,r,o)})}saveMissing(e,t,r,n,i,o={},s=()=>{}){if(!this.services?.utils?.hasLoadedNamespace||this.services?.utils?.hasLoadedNamespace(t)){if(null!=r&&""!==r){if(this.backend?.create){const a={...o,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=5===c.length?c(e,t,r,n,a):c(e,t,r,n),i&&"function"==typeof i.then?i.then(e=>s(null,e)).catch(s):s(null,i)}catch(e){s(e)}else c(e,t,r,n,s,a)}e&&e[0]&&this.store.addResource(e[0],t,r,n)}}else this.logger.warn(`did not save key "${r}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")}}const z=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if("object"==typeof e[1]&&(t=e[1]),n(e[1])&&(t.defaultValue=e[1]),n(e[2])&&(t.tDescription=e[2]),"object"==typeof e[2]||"object"==typeof e[3]){const r=e[3]||e[2];Object.keys(r).forEach(e=>{t[e]=r[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),q=e=>(n(e.ns)&&(e.ns=[e.ns]),n(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),n(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),"boolean"==typeof e.initImmediate&&(e.initAsync=e.initImmediate),e),V=()=>{};class W extends S{constructor(e={},t){var r;if(super(),this.options=q(e),this.services={},this.logger=k,this.modules={external:[]},r=this,Object.getOwnPropertyNames(Object.getPrototypeOf(r)).forEach(e=>{"function"==typeof r[e]&&(r[e]=r[e].bind(r))}),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,"function"==typeof e&&(t=e,e={}),null==e.defaultNS&&e.ns&&(n(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const r=z();this.options={...r,...this.options,...q(e)},this.options.interpolation={...r.interpolation,...this.options.interpolation},void 0!==e.keySeparator&&(this.options.userDefinedKeySeparator=e.keySeparator),void 0!==e.nsSeparator&&(this.options.userDefinedNsSeparator=e.nsSeparator);const o=e=>e?"function"==typeof e?new e:e:null;if(!this.options.isClone){let e;this.modules.logger?k.init(o(this.modules.logger),this.options):k.init(null,this.options),e=this.modules.formatter?this.modules.formatter:B;const t=new R(this.options);this.store=new x(this.options.resources,this.options);const n=this.services;n.logger=k,n.resourceStore=this.store,n.languageUtils=t,n.pluralResolver=new P(t,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),!e||this.options.interpolation.format&&this.options.interpolation.format!==r.interpolation.format||(n.formatter=o(e),n.formatter.init&&n.formatter.init(n,this.options),this.options.interpolation.format=n.formatter.format.bind(n.formatter)),n.interpolator=new F(this.options),n.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},n.backendConnector=new $(o(this.modules.backend),n.resourceStore,n,this.options),n.backendConnector.on("*",(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(n.languageDetector=o(this.modules.languageDetector),n.languageDetector.init&&n.languageDetector.init(n,this.options.detection,this.options)),this.modules.i18nFormat&&(n.i18nFormat=o(this.modules.i18nFormat),n.i18nFormat.init&&n.i18nFormat.init(this)),this.translator=new A(this.services,this.options),this.translator.on("*",(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||(t=V),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&"dev"!==e[0]&&(this.options.lng=e[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});const s=i(),a=()=>{const e=(e,r)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),s.resolve(r),t(e,r)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),s}loadResources(e,t=V){let r=t;const i=n(e)?e:this.language;if("function"==typeof e&&(r=e),!this.options.resources||this.options.partialBundledLanguages){if("cimode"===i?.toLowerCase()&&(!this.options.preload||0===this.options.preload.length))return r();const e=[],t=t=>{t&&"cimode"!==t&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{"cimode"!==t&&e.indexOf(t)<0&&e.push(t)})};i?t(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{e||this.resolvedLanguage||!this.language||this.setResolvedLanguage(this.language),r(e)})}else r(null)}reloadResources(e,t,r){const n=i();return"function"==typeof e&&(r=e,e=void 0),"function"==typeof t&&(r=t,t=void 0),e||(e=this.languages),t||(t=this.options.ns),r||(r=V),this.services.backendConnector.reload(e,t,e=>{n.resolve(),r(e)}),n}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&C.addPostProcessor(e),"formatter"===e.type&&(this.modules.formatter=e),"3rdParty"===e.type&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!(["cimode","dev"].indexOf(e)>-1)){for(let e=0;e-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;const r=i();this.emit("languageChanging",e);const o=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},s=(n,i)=>{i?this.isLanguageChangingTo===e&&(o(i),this.translator.changeLanguage(i),this.isLanguageChangingTo=void 0,this.emit("languageChanged",i),this.logger.log("languageChanged",i)):this.isLanguageChangingTo=void 0,r.resolve((...e)=>this.t(...e)),t&&t(n,(...e)=>this.t(...e))},a=t=>{e||t||!this.services.languageDetector||(t=[]);const r=n(t)?t:t&&t[0],i=this.store.hasLanguageSomeTranslations(r)?r:this.services.languageUtils.getBestMatchFromCodes(n(t)?[t]:t);i&&(this.language||o(i),this.translator.language||this.translator.changeLanguage(i),this.services.languageDetector?.cacheUserLanguage?.(i)),this.loadResources(i,e=>{s(e,i)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?0===this.services.languageDetector.detect.length?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e):a(this.services.languageDetector.detect()),r}getFixedT(e,t,r){const i=(e,t,...n)=>{let o;o="object"!=typeof t?this.options.overloadTranslationOptionHandler([e,t].concat(n)):{...t},o.lng=o.lng||i.lng,o.lngs=o.lngs||i.lngs,o.ns=o.ns||i.ns,""!==o.keyPrefix&&(o.keyPrefix=o.keyPrefix||r||i.keyPrefix);const s=this.options.keySeparator||".";let a;return o.keyPrefix&&Array.isArray(e)?a=e.map(e=>("function"==typeof e&&(e=I(e,{...this.options,...t})),`${o.keyPrefix}${s}${e}`)):("function"==typeof e&&(e=I(e,{...this.options,...t})),a=o.keyPrefix?`${o.keyPrefix}${s}${e}`:e),this.t(a,o)};return n(e)?i.lng=e:i.lngs=e,i.ns=t,i.keyPrefix=r,i}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=t.lng||this.resolvedLanguage||this.languages[0],n=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===r.toLowerCase())return!0;const o=(e,t)=>{const r=this.services.backendConnector.state[`${e}|${t}`];return-1===r||0===r||2===r};if(t.precheck){const e=t.precheck(this,o);if(void 0!==e)return e}return!(!this.hasResourceBundle(r,e)&&this.services.backendConnector.backend&&(!this.options.resources||this.options.partialBundledLanguages)&&(!o(r,e)||n&&!o(i,e)))}loadNamespaces(e,t){const r=i();return this.options.ns?(n(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{r.resolve(),t&&t(e)}),r):(t&&t(),Promise.resolve())}loadLanguages(e,t){const r=i();n(e)&&(e=[e]);const o=this.options.preload||[],s=e.filter(e=>o.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return s.length?(this.options.preload=o.concat(s),this.loadResources(e=>{r.resolve(),t&&t(e)}),r):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const t=new Intl.Locale(e);if(t&&t.getTextInfo){const e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch(e){}const t=this.services?.languageUtils||new R(z());return e.toLowerCase().indexOf("-latn")>1?"ltr":["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"].indexOf(t.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},t){return new W(e,t)}cloneInstance(e={},t=V){const r=e.forkResourceStore;r&&delete e.forkResourceStore;const n={...this.options,...e,isClone:!0},i=new W(n);if(void 0===e.debug&&void 0===e.prefix||(i.logger=i.logger.clone(e)),["store","services","language"].forEach(e=>{i[e]=this[e]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},r){const e=Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((r,n)=>(r[n]={...e[t][n]},r),e[t]),e),{});i.store=new x(e,n),i.services.resourceStore=i.store}return i.translator=new A(i.services,n),i.translator.on("*",(e,...t)=>{i.emit(e,...t)}),i.init(n,t),i.translator.options=n,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const H=W.createInstance();H.createInstance=W.createInstance;const G=H.createInstance,K=H.dir,J=H.init,Y=H.loadResources,Z=H.reloadResources,X=H.use,Q=H.changeLanguage,ee=H.getFixedT,te=H.t,re=H.exists,ne=H.setDefaultNamespace,ie=H.hasLoadedNamespace,oe=H.loadNamespaces,se=H.loadLanguages},2648:(e,t,r)=>{"use strict";r(1609),r(8437),r(9454)},2875:(e,t,r)=>{"use strict";r.d(t,{x:()=>s});const n=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,i={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},o=e=>i[e],s=e=>e.replace(n,o)},3220:(e,t,r)=>{"use strict";r.d(t,{J:()=>i,v:()=>n});const n=(e,t=!1)=>{let r=e.redirectUrl;const n="seo-by-rank-math"===e.slug||"seo-by-rank-math-pro"===e.slug,i=e.onboardingUrl&&"string"==typeof e.onboardingUrl&&""!==e.onboardingUrl.trim();if(n){const t=window.marketplaceConfig?.wpConfig;(!t||!0!==t.rankMathRegistrationSkip)&&i&&(r=e.onboardingUrl)}else t&&i&&(r=e.onboardingUrl);return r},i=e=>{if(e&&""!==e.trim()){const t=void 0!==window.marketplaceConfig&&window.marketplaceConfig?.wpConfig?.adminUrl;if(t){let r=e;r.startsWith("wp-admin/")&&(r=r.substring(9));const n=`${t}${r}`;window.location.href=n}else{const t=`${window.location.origin}/${e}`;window.location.href=t}return}window.location.href="/wp-admin/plugins.php"}},3227:(e,t,r)=>{"use strict";r(1609),r(7674),r(1352),r(9454)},3258:(e,t,r)=>{"use strict";r.d(t,{A:()=>s});var n=r(1609),i=r(7979),o=r(488);function s({loading:e=!1}){const{plugins:t,assetsBaseUrl:r,uiI18n:s}=(0,i.D)(),[a,c]=(0,n.useState)(0),[l,u]=(0,n.useState)(2),p="undefined"!=typeof window&&window.marketplaceConfig?.activePlugins?window.marketplaceConfig.activePlugins:[],h="undefined"!=typeof window&&window.marketplaceConfig?.activeThemeAuthor?window.marketplaceConfig.activeThemeAuthor:"";(0,n.useEffect)(()=>{const e=()=>{window.innerWidth>1024?u(2):(window.innerWidth,u(1))};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);const d=e=>{if(!e.rules)return!0;if(e.rules.mustHavePlugins&&Array.isArray(e.rules.mustHavePlugins)){if(0===e.rules.mustHavePlugins.length)return!0;if(!e.rules.mustHavePlugins.some(e=>p.includes(e)))return!1}if(e.rules.mustHaveThemesByAuthor&&"string"==typeof e.rules.mustHaveThemesByAuthor){const t=e.rules.mustHaveThemesByAuthor;if(h!==t)return!1}return!0},f=!0===t.find(e=>"seo-by-rank-math"===e.slug)?.activated,g=!0===t.find(e=>"seo-by-rank-math-pro"===e.slug)?.activated,m=t.filter(e=>!0!==e.activated&&!0===e.featured&&("seo-by-rank-math"===e.slug?!f&&!g&&d(e):"seo-by-rank-math-pro"===e.slug?f&&d(e):d(e))).sort((e,t)=>(void 0!==e.displayOrder?parseInt(e.displayOrder):1/0)-(void 0!==t.displayOrder?parseInt(t.displayOrder):1/0)),v=r||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",y=v?`${v}assets/icons/`:"",b=m.length,_=Math.max(0,b-l);return e?(0,n.createElement)("section",{className:"gv-featured-carousel gv-w-full"},(0,n.createElement)("div",{className:"gv-carousel-header gv-mb-lg gv-tab-mt-md gv-max-mob-mt-0"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md",style:{width:"200px"}})),(0,n.createElement)("div",{className:"gv-carousel-container",style:{position:"relative",overflow:"hidden"}},(0,n.createElement)("div",{className:"gv-carousel-track",style:{display:"flex",gap:"1rem"}},[...Array(l)].map((e,t)=>(0,n.createElement)("div",{key:`skeleton-slide-${t}`,className:"gv-carousel-slide gv-border-alt",style:{minWidth:`calc((100% - ${l-1}rem) / ${l})`,maxWidth:`calc((100% - ${l-1}rem) / ${l})`,flex:"0 0 auto",backgroundColor:"#D9EBF7",borderRadius:"6px",display:"flex",justifyContent:"space-between",maxHeight:"456px"}},(0,n.createElement)("header",{className:"gv-product-header gv-area-header gv-w-full",style:{border:"none",background:"#D9EBF7"}},(0,n.createElement)("div",{className:"gv-content gv-stack-space-sm gv-text-sm gv-flex gv-flex-col gv-items-start"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"80px",marginBottom:"24px"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-w-full"}),(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-w-full"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm",style:{width:"90%"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm",style:{width:"80%"}}),(0,n.createElement)("div",{className:"gv-slide-footer gv-flex gv-align-center gv-flex-wrap gv-items-center",style:{marginTop:"24px"}},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"100px",height:"40px"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-ml-md",style:{width:"60px",height:"24px"}}))),(0,n.createElement)("div",{className:"gv-image gv-max-mob-pl-md"},(0,n.createElement)("div",{className:"gv-card-image",style:{width:"100%",height:"100%",marginTop:"74px"}},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full"}))))))))):m&&0!==m.length?(0,n.createElement)("section",{className:"gv-featured-carousel gv-w-full"},(0,n.createElement)("div",{className:"gv-carousel-header gv-mb-lg gv-tab-mt-md gv-max-mob-mt-0"},(0,n.createElement)("h5",{className:"gv-title gv-heading-sm gv-recommended-heading"},s?.headings?.recommendedHeading)),(0,n.createElement)("div",{className:"gv-carousel-container",style:{position:"relative",overflow:"hidden"}},(0,n.createElement)("div",{className:"gv-carousel-track",style:{display:"flex",transition:"transform 0.3s ease-in-out",transform:`translateX(calc(-${a} * ((100% - ${l-1}rem) / ${l} + 1rem)))`,gap:"1rem"}},m.map((e,t)=>{const r=e?.i18n?.featuredTitle,i=e?.i18n?.featuredContent,a=e.i18n.freeTrialPeriod&&""!==e.i18n.freeTrialPeriod.trim()?e.i18n.freeTrialPeriod:s?.labels?.free||"Free",c=(0,o.M)(e,a,s),u=e.bannerUrl||e.image||e.thumbnail||"https://gravity.group.one/guide-images/product-image@2x.png",p=Array.isArray(e.categories)&&e.categories.length?"object"==typeof e.categories[0]?e.categories[0]:{slug:String(e.categories[0]),title:String(e.categories[0]),description:null}:{slug:"Others",title:"Others",description:null};return p.title||p.slug,(0,n.createElement)("div",{key:`slide-${t}`,className:"gv-carousel-slide gv-border-alt",style:{minWidth:`calc((100% - ${l-1}rem) / ${l})`,maxWidth:`calc((100% - ${l-1}rem) / ${l})`,flex:"0 0 auto",backgroundColor:"#D9EBF7",borderRadius:"6px",display:"flex",justifyContent:"space-between",maxHeight:"456px"}},(0,n.createElement)("header",{className:"gv-product-header gv-area-header",style:{border:"none",background:"#D9EBF7"}},(0,n.createElement)("div",{className:"gv-content gv-stack-space-lg gv-text-sm gv-flex gv-flex-col gv-items-start gv-h-full gv-justify-between"},(0,n.createElement)("div",{className:"gv-badge gv-badge-info"},e?.name),(0,n.createElement)("h5",{className:"gv-title gv-header-sm",style:{overflow:"hidden",display:"-webkit-box",WebkitLineClamp:3,WebkitBoxOrient:"vertical",textOverflow:"ellipsis"}},r),(0,n.createElement)("p",{className:"gv-text-sm gv-flex-1",style:{overflow:"hidden",display:"-webkit-box",WebkitBoxOrient:"vertical",textOverflow:"ellipsis"}},i),(0,n.createElement)("div",{className:"gv-slide-footer gv-flex gv-align-center gv-items-center"},(0,n.createElement)("button",{onClick:()=>(e=>{if("undefined"!=typeof window){const t=new URL(window.location.href);t.searchParams.set("plugin",e.slug),window.history.pushState({},"",t.toString()),window.dispatchEvent(new PopStateEvent("popstate"))}})(e),className:"gv-button gv-button-secondary gv-w-auto gv-flex-shrink-0"},s?.featuredCta),(0,n.createElement)("span",{className:"gv-price gv-text-bold gv-text-md gv-ml-md gv-flex-1"},c,"free"!==e.licenseType&&c&&c!==a&&c!==(s?.labels?.freeUntilRenewal||"Free until renewal")&&(0,n.createElement)("span",{className:"gv-period"},"/",s?.labels?.timeMonth)))),(0,n.createElement)("div",{className:"gv-image gv-max-mob-pl-md"},(0,n.createElement)("picture",null,(0,n.createElement)("source",{media:"(min-width: 600px)",srcSet:`${u} 1x, ${u} 2x`}),(0,n.createElement)("img",{src:u,srcSet:`${u} 1x, ${u} 2x`,alt:`${r} image`})))))}))),b>l&&(0,n.createElement)("div",{className:"gv-carousel-nav-wrapper gv-flex gv-justify-center gv-align-center gv-mt-sm gv-gap-fluid"},(0,n.createElement)("button",{onClick:()=>{a>0&&c(e=>e-1)},disabled:0===a,className:"gv-carousel-nav gv-carousel-nav-prev",style:{display:"flex",alignItems:"center",justifyContent:"center",cursor:0===a?"not-allowed":"pointer",opacity:0===a?.5:1},"aria-label":"Previous slide"},(0,n.createElement)("img",{src:`${y}chevron_left.svg`,alt:"Previous",style:{width:"24px",height:"24px"}})),(0,n.createElement)("div",{className:"gv-carousel-dots gv-flex-wrap gv-items-center gv-flex gv-justify-center gv-gap-sm"},Array.from({length:_+1}).map((e,t)=>(0,n.createElement)("button",{key:t,onClick:()=>(e=>{c(Math.min(e,_))})(t),className:"gv-carousel-dot",style:{width:"8px",height:"8px",borderRadius:"50%",border:"none",background:a===t?"#0066CC":"#D0D0D0",cursor:"pointer",padding:0},"aria-label":`Go to slide ${t+1}`}))),(0,n.createElement)("button",{onClick:()=>{a<_&&c(e=>e+1)},disabled:a>=_,className:"gv-carousel-nav gv-carousel-nav-next",style:{display:"flex",alignItems:"center",justifyContent:"center",cursor:a>=_?"not-allowed":"pointer",opacity:a>=_?.5:1},"aria-label":"Next slide"},(0,n.createElement)("img",{src:`${y}chevron_right.svg`,alt:"Next",style:{width:"24px",height:"24px"}})))):null}},3273:(e,t,r)=>{"use strict";r(1609),r(1352)},3461:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Päivitä sivu","ui.notifications.couldNotLoad":"Sivua ei voitu ladata","ui.notifications.refreshPage":"Päivitä sivu ja ota yhteyttä asiakaspalveluumme, jos ongelma jatkuu."}')},3526:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(1609),i=r(7979);function o(){const{loadingAction:e,loadingPlugin:t,assetsBaseUrl:r}=(0,i.D)();if(!e)return null;const o=`${r||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||""}assets/images/spinner.svg`;return(0,n.createElement)("div",{className:"loading-overlay show"},(0,n.createElement)("div",{className:"gv-loader-container gv-pos-center gv-pos-absolute"},(0,n.createElement)("gv-loader",{src:o}),(0,n.createElement)("p",null,e)))}},3591:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Actualizar página","ui.notifications.couldNotLoad":"No se puede cargar la página","ui.notifications.refreshPage":"Actualice la página y póngase en contacto con nuestro servicio de asistencia si el problema persiste."}')},3804:(e,t,r)=>{"use strict";r(4915),Object.create(null)},4103:(e,t,r)=>{"use strict";function n(e){if(!e||!e.data||!Array.isArray(e.data.catalog))return console.error("Unsupported marketplace response shape. Expected { data: { catalog: [...] } }.",e),{plugins:[],uiI18n:{},locale:null};const t=e.data.catalog,r=e.data.uiI18n||{},n=e.data.locale||null;if(0===t.length)return{plugins:[],uiI18n:r,locale:n};const i=t.map(e=>{var t,r;const n=e?.i18n?.description,i="string"==typeof n&&n?n:"object"==typeof e?.description&&null!==e.description?e.description["en-gb"]||Object.values(e.description)[0]||"":e?.description||"",o=e?.download||e?.download_url||e?.downloadUrl||"",s="object"==typeof e?.author&&null!==e.author?e.author.name||"":e?.author||"",a="object"==typeof e?.author&&null!==e.author&&e.author.url||"",c="object"==typeof e?.price&&null!==e.price?e.price.amount:void 0,l="object"==typeof e?.price&&null!==e.price?e.price.currency:void 0;return{...e,name:e?.name||"Unknown",slug:e?.slug||"",thumbnail:e?.thumbnail||"",description:i,download:o,author:s,authorUrl:a,priceAmount:c,priceCurrency:l,installed:null!==(t=e?.installed)&&void 0!==t&&t,activated:null!==(r=e?.activated)&&void 0!==r&&r,i18n:e?.i18n||{}}}),o=new Set;return{plugins:i.filter(e=>{const t=e.slug||e.name||JSON.stringify(e);return!o.has(t)&&(o.add(t),!0)}),uiI18n:r,locale:n}}r.d(t,{i:()=>n})},4469:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var n=r(1609),i=r(7979),o=r(7008),s=r(3220);function a({plugin:e}){const{assetsBaseUrl:t,noticeState:r,setNoticeState:a,handlePluginAction:c,cancelReload:l,uiI18n:u}=(0,i.D)();if(!r||!r.visible||r.pluginSlug!==e?.slug)return null;const p=t||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",h=p?`${p}assets/`:"",d="installed"===r.type,f="activated"===r.type,g=(e,t)=>e?e.replace("{0}",t||""):"",m=e?.name||"";return(0,n.createElement)("div",{className:"gv-notice gv-notice-success gv-p-lg gv-max-mob-pt-lg gv-mb-0 gv-mt-lg",style:{gridColumn:"1 / -1",width:"100%"}},(0,n.createElement)("img",{className:"gv-notice-icon",src:`${h}icons/success.svg`,alt:"Success"}),(0,n.createElement)("div",{className:"gv-notice-content"},(0,n.createElement)("div",{className:"gv-notice-title"},d&&g(u?.notifications?.pluginInstalled||"Plugin was installed.",m),f&&g(u?.notifications?.pluginActivated||"Plugin was activated.",m)),(0,n.createElement)("p",{className:"gv-text-sm"},d&&(u?.notifications?.activateNow||"Activate it now to start using it."),f&&g(u?.notifications?.manageInMyProducts||"{0} plugin was activated for this site. You can manage it on the My products page.",m))),d&&(0,n.createElement)("button",{type:"button",className:"gv-action gv-button gv-button-neutral",onClick:()=>{c("activate",e,"product_detail")}},u?.activatePluginButton),f&&(0,n.createElement)("button",{type:"button",className:"gv-action gv-button gv-button-neutral",onClick:()=>{(0,o.Mh)({buttonName:"Get started",buttonAction:"manage_product",plugin:e,context:{product_slug:e.slug,product_name:e.name,has_redirect_url:!(!e.redirectUrl||""===e.redirectUrl.trim()),has_onboarding_url:!(!e.onboardingUrl||""===e.onboardingUrl.trim())}}),l();const t=(0,s.v)(e,!0);(0,s.J)(t)}},(0,n.createElement)("span",null,u?.featuredCta||"Get Started"),(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${h}icons/arrow_forward.svg`})),(0,n.createElement)("button",{type:"button",className:"gv-notice-close","aria-label":"Close",onClick:()=>{a({visible:!1,type:null,pluginSlug:null}),sessionStorage.removeItem("mp_success_notice")}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${h}icons/close.svg`})))}},4598:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(1609),i=r(5795),o=r(1338),s=r(4469),a=r(4677),c=r(7979),l=r(488);function u({plugin:e,onClose:t,usePortal:r=!0,loading:u=!1}){const{assetsBaseUrl:p,useWPHandlers:h,pluginInAction:d,uiI18n:f,subscriptionStatus:g,isCheckingSubscription:m,setNoticeState:v,setErrorState:y}=(0,c.D)(),b=p||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",_=b?`${b}assets/icons/`:"";if(u){const e=(0,n.createElement)("div",{className:"gv-surface-dim"},(0,n.createElement)("article",{className:"gv-layout-product gv-p-0 gv-product-single gv-w-max-container gv-mx-auto gv-p-fluid"},(0,n.createElement)("nav",{className:"gv-breadcrumbs gv-area-nav gv-flex-col gv-items-start"},(0,n.createElement)("div",{className:"gv-flex gv-items-center gv-gap-xs"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"60px"}}))),(0,n.createElement)("header",{className:"gv-product-header gv-area-header"},(0,n.createElement)("div",{className:"gv-content gv-stack-space-sm gv-text-sm"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-lg gv-mb-sm",style:{marginBottom:"24px"}}),(0,n.createElement)("div",{className:"gv-skeleton"}),(0,n.createElement)("div",{className:"gv-skeleton"}),(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"80%"}})),(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("div",{className:"gv-card-image gv-h-full",style:{marginTop:"75px"}},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full",style:{minHeight:"300px"}})))),(0,n.createElement)("section",{className:"gv-product-table gv-features-table gv-products-1 gv-area-table"},(0,n.createElement)("div",{className:"gv-table-container"},(0,n.createElement)("div",{className:"gv-table",role:"table"},(0,n.createElement)("div",{className:"gv-table-header",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-product gv-p-0 oc-border-none",role:"columnheader"},(0,n.createElement)("div",{className:"gv-content"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-sm"}),(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"70%"}})),(0,n.createElement)("div",{className:"gv-bottom"},(0,n.createElement)("div",{className:"gv-price-container"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"120px",height:"32px"}})),(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mt-md"}))))),(0,n.createElement)("div",{className:"gv-section oc-left-border-0",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-section-header gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md",style:{width:"150px"}}))),[...Array(3)].map((e,t)=>(0,n.createElement)("div",{className:"gv-table-row",role:"row",key:t},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-w-full"})))))))),(0,n.createElement)("div",{className:"gv-area-details gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-stack-space-md"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-md",style:{width:"180px"}}),(0,n.createElement)("ul",{className:"gv-list-items gv-list-check gv-mode-condensed"},[...Array(3)].map((e,t)=>(0,n.createElement)("li",{key:t},(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"})))))),(0,n.createElement)("div",{className:"gv-area-content gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-text-sm gv-stack-space-md"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-md",style:{width:"250px"}}),(0,n.createElement)("div",{className:"gv-grid gv-gap-lg gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3"},[...Array(3)].map((e,t)=>(0,n.createElement)("div",{className:"gv-item gv-stack-space-sm",key:t},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-xs"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"}))))))));return r?(0,i.createPortal)(e,document.body):e}if(!e)return null;(0,n.useEffect)(()=>{window.scrollTo(0,0)},[e]),(0,n.useEffect)(()=>{v(t=>t.visible&&t.pluginSlug===e.slug?t:{visible:!1,type:null,pluginSlug:null}),y(t=>t.visible&&t.pluginSlug===e.slug?t:{visible:!1,type:null,pluginSlug:null})},[e.slug,v,y]),(0,n.useEffect)(()=>{const e=()=>{v({visible:!1,type:null,pluginSlug:null}),y({visible:!1,type:null,pluginSlug:null})};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[v,y]),void 0!==window.onecomWpVars&&window.onecomWpVars,e.thumbnail;const w=e.bannerUrl||e.image||e.thumbnail||"https://gravity.group.one/guide-images/product-image@2x.png",k=e.name||"Product",S=e.i18n?.description||e.i18n?.subtitle||e.description||e.shortDescription||"No description available.",x=e.i18n?.subtitle,C="free"===e.licenseType,E=e.i18n?.freeTrialText||"",I=E&&""!==E.trim(),O=e.i18n?.freeTrialPeriod||"",N=O&&""!==O.trim(),A=N||I?f?.headings?.freeTrial||"Free trial*":(0,l.M)(e,f?.labels?.free||"Free",f),R=A===(f?.labels?.freeUntilRenewal||"Free until renewal"),M=(0,l.Tc)(e),T=(0,l.Dn)(e),P=(e,t)=>{if(!e||"object"!=typeof e)return[];const r=[];let n=1;for(;e[`${t}${n}`];){const i=e[`${t}${n}`];i&&""!==i.trim()&&r.push(i),n++}return r},L=P(e.i18n,"keyBenefitContent"),D=P(e.i18n,"keyFeatureContent"),F=[];if(e.i18n&&"object"==typeof e.i18n){let t=1;for(;e.i18n[`coreFeatureTitle${t}`]||e.i18n[`coreFeatureContent${t}`];){const r=e.i18n[`coreFeatureTitle${t}`],n=e.i18n[`coreFeatureContent${t}`];r&&""!==r.trim()&&n&&""!==n.trim()&&F.push({name:r,desc:n}),t++}}const U=D,j=L,B=F,$=(0,n.createElement)("div",{className:"gv-surface-dim"},(0,n.createElement)("article",{className:"gv-layout-product gv-p-0 gv-product-single gv-w-max-container gv-mx-auto gv-p-fluid"},(0,n.createElement)("nav",{className:"gv-breadcrumbs gv-area-nav gv-flex-col gv-items-start"},(0,n.createElement)("a",{href:"#",onClick:r=>{if(r.preventDefault(),!d[e.slug])if("undefined"!=typeof window&&window.history&&window.history.length>1)try{window.history.back()}catch(e){t&&t()}else t&&t()},className:"gv-flex gv-items-center gv-gap-xs",role:"button","aria-label":"Go back",style:{opacity:d[e.slug]?.5:1,pointerEvents:d[e.slug]?"none":"auto",cursor:d[e.slug]?"not-allowed":"pointer"},"aria-disabled":d[e.slug]?"true":"false"},(0,n.createElement)("img",{style:{minWidth:"24px"},className:"gv-tile",src:`${_}arrow_back.svg`,alt:"Back to plugins"}),(0,n.createElement)("span",null,f.backButton)),(0,n.createElement)(s.A,{plugin:e}),(0,n.createElement)(a.A,{plugin:e})),(0,n.createElement)("header",{className:"gv-product-header gv-area-header"},(0,n.createElement)("div",{className:"gv-content gv-stack-space-md gv-text-sm"},(0,n.createElement)("h3",{className:"gv-title gv-header-lg"},k),(0,n.createElement)("p",{className:"gv-text-sm"},S)),(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("picture",null,(0,n.createElement)("source",{media:"(min-width: 600px)",srcSet:`${w} 1x, ${w} 2x`}),(0,n.createElement)("img",{src:w,srcSet:`${w} 1x, ${w} 2x`,alt:`${k} image`})))),(0,n.createElement)("section",{className:"gv-product-table gv-features-table gv-products-1 gv-area-table"},(0,n.createElement)("div",{className:"gv-table-container"},(0,n.createElement)("div",{className:"gv-table",role:"table"},(0,n.createElement)("div",{className:"gv-table-header",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-product gv-p-0 oc-border-none",role:"columnheader"},(0,n.createElement)("div",{className:"gv-content"},(0,n.createElement)("h3",{className:"gv-title"},k),(0,n.createElement)("p",null,x)),(0,n.createElement)("div",{className:"gv-bottom"},(0,n.createElement)("div",{className:"gv-price-container"},(0,n.createElement)("div",{className:"gv-price"},N||I?(0,n.createElement)("span",{className:"gv-price-text"},A):(0,n.createElement)(n.Fragment,null,(0,n.createElement)("span",{className:"gv-price-text"},"premium"===e.licenseType&&null!==T?null!==T?T:M:A),!C&&!R&&A&&(0,n.createElement)("span",{className:"gv-period"},"/",f?.labels?.timeMonth))),N||I?(0,n.createElement)("div",{className:"gv-price-info"},(0,n.createElement)("div",{className:"gv-info"},E)):!C&&A&&M&&null!==T&&(0,n.createElement)("div",{className:"gv-price-info"},(0,n.createElement)("div",{className:"gv-info"},f.labels.untilRenewal," [",T,"]/",f?.labels?.timeMonth),(0,n.createElement)("div",{className:"gv-info"},f.labels.afterThat," [",M,"]/",f?.labels?.timeMonth))),h?(0,n.createElement)(o.A,{plugin:e}):e.download&&(0,n.createElement)("a",{href:e.download,download:!0,className:"gv-button gv-button-secondary"},"Download"))))),U.length>0&&(0,n.createElement)("div",{className:"gv-section oc-left-border-0",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-section-header gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("h4",{className:"gv-title"},f?.keyFeatureHeading||e.i18n?.keyFeatureHeading))),U.map((e,t)=>(0,n.createElement)("div",{className:"gv-table-row",role:"row",key:t},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("span",{className:"gv-cell-text"},e)))))))),(0,n.createElement)("div",{className:"gv-area-details gv-grid gv-gap-fluid"},j.length>0&&(0,n.createElement)("section",{className:"gv-stack-space-md"},(0,n.createElement)("h2",{className:"gv-title gv-text-bold gv-text-lg"},f?.benefitHeading||e.i18n?.benefitHeading||"Key benefits"),(0,n.createElement)("ul",{className:"gv-list-items gv-list-check gv-mode-condensed"},j.map((e,t)=>(0,n.createElement)("li",{key:t},e))))),B.length>0&&(0,n.createElement)("div",{className:"gv-area-content gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-text-sm gv-stack-space-md"},(0,n.createElement)("h2",{className:"gv-title gv-text-bold gv-text-lg"},f?.featureOverviewHeading||e.i18n?.featureOverviewHeading||"Core features overview"),(0,n.createElement)("div",{className:"gv-grid gv-gap-lg gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3"},B.map((e,t)=>(0,n.createElement)("div",{className:"gv-item gv-stack-space-sm",key:t},(0,n.createElement)("h3",{className:"gv-title gv-text-bold gv-text-lg"},e.name),(0,n.createElement)("p",{className:"gv-text-sm"},e.desc))))))));return r?(0,i.createPortal)($,document.body):$}},4677:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(1609),i=r(7979);function o({plugin:e}){const{assetsBaseUrl:t,errorState:r,setErrorState:o,uiI18n:s,plugins:a}=(0,i.D)(),c=e||a.find(e=>e.slug===r.pluginSlug),l=r&&r.visible&&r.pluginSlug===c?.slug;if((0,n.useEffect)(()=>{if(l){const e=setTimeout(()=>{h()},5e3);return()=>clearTimeout(e)}},[l]),!l)return null;const u=t||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",p=u?`${u}assets/`:"",h=()=>{o({visible:!1,type:null,pluginSlug:null})},d="activate"===r.type,f="deactivate"===r.type,g="install"===r.type,m="delete"===r.type,v=(e,t)=>e?e.replace("{0}",t||""):"",y=c?.name||"";return(0,n.createElement)("div",{className:"gv-toast-container"},(0,n.createElement)("div",{className:"gv-toast gv-toast-alert gv-visible"},(0,n.createElement)("gv-icon",{className:"gv-notice-icon","aria-hidden":"true",src:`${p}icons/error.svg`}),(0,n.createElement)("div",{className:"gv-toast-content"},d&&v(s?.notifications?.pluginActivationFailed||"Couldn't activate plugin.",y),f&&v(s?.notifications?.pluginDeactivationFailed||"Couldn't deactivate plugin.",y),g&&v(s?.notifications?.pluginInstallationFailed||"Couldn't install plugin.",y),m&&v(s?.notifications?.pluginDeletionFailed||"Couldn't delete plugin.",y)),(0,n.createElement)("button",{type:"button",className:"gv-toast-close","aria-label":"Close",onClick:h},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${p}icons/close.svg`}))))}},4811:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Actualiser la page","ui.notifications.couldNotLoad":"Impossible de charger la page","ui.notifications.refreshPage":"Veuillez rafraîchir la page et contact notre support si le problème persiste."}')},4814:(e,t,r)=>{"use strict";r(1609),r(3804),r(9454),r(7565)},4889:(e,t,r)=>{"use strict";r.d(t,{A:()=>f});var n=r(1609),i=r.n(n),o=r(4103),s=(r(6530),r(8291)),a=r(4598),c=r(9962),l=r(1755),u=r(1174),p=r(7979),h=r(488),d=r(7008);function f(){const{apiBaseUrl:e,useWPHandlers:t,wpConfig:r,enableDefaultStyles:f,assetsBaseUrl:g,pluginInAction:m,setPluginInAction:v,fetchSubscriptionStatus:y,isOnecomBrand:b,plugins:_,setPlugins:w,uiI18n:k,setUiI18n:S,handlePluginAction:x,allPluginsActivated:C,setAllPluginsActivated:E,catalogError:I,setCatalogError:O,catalogLoading:N,setCatalogLoading:A,shouldShowProvision:R,isSpecialPlugin:M,shouldShowPlugin:T,isWpVersionSupported:P}=(0,p.D)(),[L,D]=("undefined"!=typeof window&&window.marketplaceConfig?.activePlugins&&window.marketplaceConfig.activePlugins,"undefined"!=typeof window&&window.marketplaceConfig?.activeThemeAuthor&&window.marketplaceConfig.activeThemeAuthor,(0,n.useState)({})),[F,U]=(0,n.useState)(null),j=(0,n.useRef)(!1),B=(0,n.useRef)(!1),$=(0,n.useRef)(null),z=(0,n.useRef)(null),q=(0,n.useRef)(null),V=(0,n.useRef)(!1),W=g||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",H=W?`${W}assets/icons/`:"",G="undefined"!=typeof window?new URLSearchParams(window.location.search).get("plugin"):null,K=()=>{if("undefined"==typeof window)return"";const e=new URL(window.location.href);return e.searchParams.delete("plugin"),e.toString()};(0,n.useEffect)(()=>{if(G&&_.length){const e=_.find(e=>e.slug===G);e&&U(e)}else G||U(null)},[G,_]),(0,n.useEffect)(()=>{const e=()=>{const e=new URLSearchParams(window.location.search).get("plugin");if(e){if(_.length){const t=_.find(t=>t.slug===e);t&&U(t)}}else U(null)};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[_]);const{t:J}=(0,s.Bd)();(0,n.useEffect)(()=>{j.current||async function(){try{j.current=!0;const t=await fetch(`${e}`),r=await t.json();if(z.current=Date.now(),V.current=r.is_cached||!1,r&&!1===r.success)return(0,d.oe)({category:"marketplace_home",isContentRendered:!1}),O(!0),void A(!1);if(!r||!r.data||!r.data.catalog||Array.isArray(r.data.catalog)&&0===r.data.catalog.length)return console.error("API returned empty or blank response"),(0,d.oe)({category:"marketplace_home",isContentRendered:!1}),O(!0),void A(!1);const{plugins:n,uiI18n:i}=(0,o.i)(r);w(n),S(i),b&&n.filter(e=>M(e.slug)).forEach(e=>{y(e.slug)})}catch(e){(0,d.oe)({category:"marketplace_home",isContentRendered:!1}),O(!0)}finally{A(!1)}}()},[e,b,y,w]);const Y=i().useMemo(()=>{if(!_.length)return[];const e=new Map,t=!0===_.find(e=>"seo-by-rank-math"===e.slug)?.activated,r=!0===_.find(e=>"seo-by-rank-math-pro"===e.slug)?.activated;return _.forEach(n=>{e.has(n.slug)||!0===n.activated||("seo-by-rank-math"!==n.slug?"seo-by-rank-math-pro"!==n.slug?T(n)&&e.set(n.slug,n):t&&T(n)&&e.set(n.slug,n):t||r||!T(n)||e.set(n.slug,n))}),Array.from(e.values())},[_,T]);(0,n.useEffect)(()=>{if(_.length>0){const e=0===Y.length;E(e)}},[_,Y,E]),(0,n.useEffect)(()=>{N||I||!(_.length>0)||G||B.current||(q.current=Date.now(),"true"===sessionStorage.getItem("mp_skip_page_view")?sessionStorage.removeItem("mp_skip_page_view"):(0,d.Yk)(z.current,q.current,V.current),B.current=!0)},[N,I,_.length,G]),(0,n.useEffect)(()=>{F&&G&&$.current!==F.slug&&(q.current=Date.now(),"true"===sessionStorage.getItem("mp_skip_page_view")?sessionStorage.removeItem("mp_skip_page_view"):(0,d.$B)(F,z.current,q.current,V.current),$.current=F.slug),G||($.current=null)},[F,G]);const Z=e=>{if(!e)return!1;const t="onecom"===("undefined"!=typeof window&&window.marketplaceConfig?.brand),r="seo-by-rank-math-pro"===e.slug||"seo-by-rank-math"===e.slug;return t&&r};if(N){if(G){const e="onecom"!==("undefined"!=typeof window&&window.marketplaceConfig?.brand)||"seo-by-rank-math-pro"!==G&&"seo-by-rank-math"!==G?a.A:c.A;return(0,n.createElement)(e,{plugin:null,onClose:()=>{},usePortal:!1,loading:!0})}return(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col gv-flex-wrap gv-gap-lg"},(0,n.createElement)("section",{className:"category-section"},(0,n.createElement)("div",{className:"gv-skeleton gv-mb-sm",style:{width:"160px"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-sm",style:{width:"400px"}}),(0,n.createElement)("div",{className:"product-grid gv-grid gv-gap-lg gv-mob-grid-cols-1 gv-tab-grid-cols-2 gv-mb-md gv-desk-lg-grid-cols-3 gv-mt-md"},[...Array(3)].map((e,t)=>(0,n.createElement)("div",{key:t,className:"gv-card gv-gap-md gv-content-container gv-p-lg gv-grid gv-grid-cols-12 gv-radius"},(0,n.createElement)("div",{className:"gv-desk-span-2 gv-span-3 gv-tab-span-3"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"48px",height:"48px"}})),(0,n.createElement)("div",{className:"gv-desk-span-8 gv-tab-span-7 gv-span-7"},(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm",style:{width:"80px"}})),(0,n.createElement)("div",{className:"gv-span-2 gv-content-center gv-text-right"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"24px"}}))))),(0,n.createElement)("div",{className:"gv-skeleton gv-mb-sm",style:{width:"160px"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-sm",style:{width:"400px"}}),(0,n.createElement)("div",{className:"product-grid gv-grid gv-gap-lg gv-mob-grid-cols-1 gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3 gv-mt-md"},[...Array(3)].map((e,t)=>(0,n.createElement)("div",{key:t+3,className:"gv-card gv-gap-md gv-content-container gv-p-lg gv-grid gv-grid-cols-12 gv-radius"},(0,n.createElement)("div",{className:"gv-desk-span-2 gv-span-3 gv-tab-span-3"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"48px",height:"48px"}})),(0,n.createElement)("div",{className:"gv-desk-span-8 gv-tab-span-7 gv-span-7"},(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm",style:{width:"80px"}})),(0,n.createElement)("div",{className:"gv-span-2 gv-content-center gv-text-right"},(0,n.createElement)("div",{className:"gv-skeleton",style:{width:"24px"}})))))))}if(I)return(0,n.createElement)(l.A,null);if(!P("6.2"))return(0,n.createElement)(u.A,null);if(F&&G){const e=Z(F)?c.A:a.A;return(0,n.createElement)(e,{plugin:F,onClose:()=>{if(U(null),"undefined"!=typeof window&&window.history&&window.history.length>1)window.history.back();else{const e=new URL(window.location.href);e.searchParams.delete("plugin"),window.history.replaceState({},"",e.toString())}},usePortal:!1,loading:N})}const X=new Map;Y.forEach(e=>{const t=Array.isArray(e.categories)&&e.categories.length?"object"==typeof e.categories[0]?e.categories[0]:{slug:String(e.categories[0]),title:String(e.categories[0]),description:null}:{slug:"Others",title:"Others",description:null},r=t.slug||t.title||"Others";X.has(r)||X.set(r,{info:t,plugins:[]}),X.get(r).plugins.push(e)});const Q=Array.from(X.entries()).filter(([e,{plugins:t}])=>t.length>0);return C?(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col gv-flex-wrap gv-gap-lg gv-items-center gv-justify-center gv-p-fluid"},(0,n.createElement)("div",{className:"gv-text-center"},(0,n.createElement)("h5",{className:"gv-header-md gv-mb-sm"},k?.notifications?.allPluginsOwned),(0,n.createElement)("p",{className:"gv-text-md gv-mb-lg"},k?.text?.managePlugins),(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary buttons-min-width",onClick:()=>{window.location.href="/wp-admin/plugins.php"}},(0,n.createElement)("span",null,k.viewProductsButton),(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${H}/arrow_right.svg`})))):(0,n.createElement)("div",{className:"marketplace-container gv-flex gv-flex-col gv-flex-wrap gv-gap-lg"},Q.map(([e,{info:t,plugins:r}])=>(0,n.createElement)("section",{key:e,className:"category-section"},(0,n.createElement)("p",{className:"gv-text-bold gv-text-lg gv-mb-xs"},t.title||e),t.description&&(0,n.createElement)("p",{className:"gv-text-sm"},t.description),(0,n.createElement)("div",{className:"product-grid gv-grid gv-gap-lg gv-mob-grid-cols-1 gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3 gv-mt-md"},r.map(e=>{R(e);const t=e.i18n.freeTrialPeriod&&""!==e.i18n.freeTrialPeriod.trim()?e.i18n.freeTrialPeriod:k?.labels?.free||"Free",r=(0,h.M)(e,t,k),i=(0,h.Tc)(e),o=(0,h.Dn)(e);return(0,n.createElement)("div",{key:e.slug,className:"gv-card gv-gap-md gv-content-container gv-p-lg gv-grid gv-grid-cols-12 gv-radius ocmp-plugin-cards"},(0,n.createElement)("div",{className:"gv-desk-span-2 gv-span-3 gv-tab-span-3"},(0,n.createElement)("img",{className:"gv-icon-tile",src:e.iconUrl||`${H}add_box.svg`,alt:e.name})),(0,n.createElement)("div",{className:"gv-desk-span-8 gv-tab-span-7 gv-span-7"},(0,n.createElement)("div",{className:"gv-flex gv-flex-col gv-justify-between gv-h-full"},(0,n.createElement)("p",{className:"gv-text-sm gv-text-bold gv-mb-xs"},e.name),(0,n.createElement)("p",{className:"oc-card-content gv-text-on-alternative gv-mb-sm gv-text-sm gv-flex-1"}," ",e.i18n.listingDescription||e.i18n.subtitle," "),(0,n.createElement)("span",{className:"gv-caption-lg gv-text-bold"},(0,n.createElement)(n.Fragment,null,"premium"===e.licenseType&&o>0?null!==o?o:i:r,"free"!==e.licenseType&&r&&r!==t&&r!==(k?.labels?.freeUntilRenewal||"Free until renewal")&&(0,n.createElement)("span",{className:"gv-period"},"/",k?.labels?.timeMonth))))),(0,n.createElement)("div",{className:"gv-span-2 gv-content-center gv-text-right"},(0,n.createElement)("a",{href:`${K()}&plugin=${e.slug}`,className:"gv-reset-button",style:{display:"inline-block"},"aria-label":`View details for ${e.name}`,onClick:t=>{t.preventDefault(),U(e);const r=new URL(window.location.href);r.searchParams.set("plugin",e.slug),window.history.pushState({},"",r.toString())}},(0,n.createElement)("img",{className:"gv-tile",src:`${H}arrow_forward.svg`,alt:`View ${e.name} details`,style:{minWidth:"24px"}}))))})))),F&&!G&&(()=>{const e=Z(F)?c.A:a.A;return(0,n.createElement)(e,{plugin:F,onClose:()=>U(null),loading:N})})())}},4915:e=>{e.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},5036:(e,t,r)=>{"use strict";var n=r(2635),i=r(8291),o=r(7823),s=r(8491),a=r(5205),c=r(3591),l=r(3461),u=r(4811),p=r(7529),h=r(1199),d=r(333);const f={en_GB:{translation:o},da_DK:{translation:s},de_DE:{translation:a},es_ES:{translation:c},fi_FI:{translation:l},fr_FR:{translation:u},it_IT:{translation:p},nl_NL:{translation:h},no_NO:{translation:d},nb_NO:{translation:d},pt_PT:{translation:r(5383)},sv_SE:{translation:r(8300)},fi:{translation:l}};n.default.use(i.r9).init({resources:f,lng:"en_GB",fallbackLng:"en_GB",interpolation:{escapeValue:!1}})},5205:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Seite aktualisieren","ui.notifications.couldNotLoad":"Die Seite konnte nicht geladen werden","ui.notifications.refreshPage":"Bitte aktualisieren Sie die Seite und Kontakt Sie unser Support, falls das Problem weiterhin besteht."}')},5383:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Atualizar página","ui.notifications.couldNotLoad":"Não foi possível carregar a página","ui.notifications.refreshPage":"Atualize a página e contacte a nossa equipa de suporte se o problema persistir."}')},5771:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(1609),i=r(4889),o=r(6027),s=r(3258),a=r(3526),c=r(7979);const l=()=>{const{allPluginsActivated:e,catalogError:t,catalogLoading:r,isWpVersionSupported:l}=(0,c.D)(),u=l("6.2"),[p,h]=(0,n.useState)("undefined"!=typeof window&&new URLSearchParams(window.location.search).get("plugin"));return(0,n.useEffect)(()=>{const e=()=>{const e="undefined"!=typeof window&&new URLSearchParams(window.location.search).get("plugin");h(!!e)};window.addEventListener("popstate",e);const t=window.history.pushState;window.history.pushState=function(...r){t.apply(this,r),e()};const r=window.history.replaceState;return window.history.replaceState=function(...t){r.apply(this,t),e()},()=>{window.removeEventListener("popstate",e),window.history.pushState=t,window.history.replaceState=r}},[]),(0,n.createElement)(n.Fragment,null,(0,n.createElement)(a.A,null),(0,n.createElement)("div",{className:"gv-activated"},(0,n.createElement)("div",{className:"marketplace-container gv-layout-product gv-surface-dim gv-w-max-container gv-mx-auto gv-p-fluid "},!p&&!t&&u&&(0,n.createElement)(o.A,{loading:r}),!p&&!e&&u&&(0,n.createElement)(s.A,{loading:r}),(0,n.createElement)(i.A,null))))},u=({apiBaseUrl:e,useWPHandlers:t,wpConfig:r,enableDefaultStyles:i,assetsBaseUrl:o})=>(0,n.createElement)(c.t,{apiBaseUrl:e,useWPHandlers:t,wpConfig:r,enableDefaultStyles:i,assetsBaseUrl:o},(0,n.createElement)(l,null))},5795:e=>{"use strict";e.exports=window.ReactDOM},6027:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(1609),i=r(7979);const o=({loading:e=!1})=>{const{assetsBaseUrl:t,uiI18n:r}=(0,i.D)(),o="https://wpaddon-static.group-cdn.one/images/wp/marketplace/banners/top-header-left-banner.png",s="https://wpaddon-static.group-cdn.one/images/wp/marketplace/banners/top-header-right-banner.png";return(0,n.createElement)("header",{className:"gv-product-header gv-product-banner gv-pt-fluid gv-items-stretch gv-justify-between gv-gap-lg gv-max-mob-pt-md"},(0,n.createElement)("div",{className:"gv-left-banner "+(e?"gv-h-full gv-w-full":"")},e?(0,n.createElement)("div",{className:"gv-card-image gv-h-full"},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full"})):(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("picture",null,(0,n.createElement)("source",{media:"(min-width: 600px)",srcSet:o}),(0,n.createElement)("img",{src:o,alt:"Left banner"})))),(0,n.createElement)("div",{className:"gv-content gv-banner-content gv-max-mob-pt-0 gv-max-mob-pb-0 gv-desk-lg-text-center gv-tab-text-left gv-flex gv-flex-col gv-align-center gv-justify-center gv-pt-0"},e?(0,n.createElement)(n.Fragment,null,(0,n.createElement)("div",{className:"gv-skeleton gv-heading-lg gv-mt-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-heading-lg gv-mt-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-mt-sm"}),(0,n.createElement)("div",{className:"gv-skeleton gv-mt-sm"})):(0,n.createElement)(n.Fragment,null,(0,n.createElement)("h2",{className:"gv-banner-title"},r?.headings?.pageTitle),(0,n.createElement)("p",{className:"gv-banner-text gv-text-sm gv-mt-sm"},r?.text?.pageContent))),(0,n.createElement)("div",{className:"gv-right-banner gv-max-mob-pl-md "+(e?"gv-h-full gv-mt-0 gv-w-full":""),...e?{style:{transform:"translate(70px,5px)"}}:{}},e?(0,n.createElement)("div",{className:"gv-card-image gv-h-full"},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full"})):(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("picture",null,(0,n.createElement)("source",{media:"(min-width: 600px)",srcSet:s}),(0,n.createElement)("img",{src:s,alt:"Product image"})))))}},6530:()=>{var e=Object.defineProperty,t=(t,r,n)=>(((t,r,n)=>{r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n})(t,"symbol"!=typeof r?r+"":r,n),n);const r={};async function n(e){if(r.hasOwnProperty(e))return r[e];let t;return t=e.startsWith("data:")||!("caches"in self)?fetch(e).then(e=>e.text()):caches.open("gravity").then(async t=>{let r=await t.match(e);return r||(r=await fetch(e),r.ok&&await t.put(e,r.clone())),r.text()}),r[e]=t,t}class i extends HTMLElement{static get observedAttributes(){return["src"]}fetchFlag(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchFlag(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchFlag(r)}}t(i,"TAG_NAME","gv-flag");class o extends HTMLElement{static get observedAttributes(){return["src"]}fetchIcon(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchIcon(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchIcon(r)}}t(o,"TAG_NAME","gv-icon");class s extends HTMLElement{static get observedAttributes(){return["src"]}fetchIllustration(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchIllustration(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchIllustration(r)}}t(s,"TAG_NAME","gv-illustration");class a extends HTMLElement{static get observedAttributes(){return["src"]}fetchIndicator(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchIndicator(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchIndicator(r)}}t(a,"TAG_NAME","gv-indicator");class c extends HTMLElement{static get observedAttributes(){return["src"]}fetchLoader(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchLoader(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchLoader(r)}}t(c,"TAG_NAME","gv-loader");class l extends HTMLElement{static get observedAttributes(){return["src"]}fetchLogo(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchLogo(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchLogo(r)}}t(l,"TAG_NAME","gv-logo");class u extends HTMLElement{static get observedAttributes(){return["src"]}fetchPayIcon(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchPayIcon(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchPayIcon(r)}}t(u,"TAG_NAME","gv-pay-icon");class p extends HTMLElement{static get observedAttributes(){return["src"]}fetchTile(e){e&&n(e).then(e=>this.innerHTML=e)}connectedCallback(){this.fetchTile(this.getAttribute("src"))}attributeChangedCallback(e,t,r){"src"===e&&t!==r&&this.fetchTile(r)}}function h(e,t){customElements.get(e)||customElements.define(e,t)}t(p,"TAG_NAME","gv-tile"),h(i.TAG_NAME,i),h(o.TAG_NAME,o),h(s.TAG_NAME,s),h(a.TAG_NAME,a),h(c.TAG_NAME,c),h(l.TAG_NAME,l),h(u.TAG_NAME,u),h(p.TAG_NAME,p)},6751:(e,t,r)=>{"use strict";var n;if(r.d(t,{A:()=>Hd}),"undefined"==typeof window){var i={hostname:""};n={crypto:{randomUUID:function(){throw Error("unsupported")}},navigator:{userAgent:"",onLine:!0},document:{createElement:function(){return{}},location:i,referrer:""},screen:{width:0,height:0},location:i,addEventListener:function(){},removeEventListener:function(){}}}else n=window;function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(i[r]=e[r]);return i}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function m(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function v(e){var t="function"==typeof Map?new Map:void 0;return v=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return c(e,arguments,p(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),g(n,e)},v(e)}function y(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(y=function(){return!!e})()}function b(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e))||t){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _(e,t){var r,n,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,n=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}var k,S=Object.defineProperty,x=function(e,t,r){return function(e,t,r){return t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r}(e,"symbol"!==(void 0===t?"undefined":m(t))?t+"":t,r)},C=Object.defineProperty,E=function(e,t,r){return function(e,t,r){return t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r}(e,"symbol"!==(void 0===t?"undefined":m(t))?t+"":t,r)},I=function(e){return e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e}(I||{}),O={Node:["childNodes","parentNode","parentElement","textContent"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},N={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},A={};function R(e){if(A[e])return A[e];var t=globalThis[e],r=t.prototype,n=e in O?O[e]:void 0,i=Boolean(n&&n.every(function(e){var t,n;return Boolean(null==(n=null==(t=Object.getOwnPropertyDescriptor(r,e))?void 0:t.get)?void 0:n.toString().includes("[native code]"))})),o=e in N?N[e]:void 0,s=Boolean(o&&o.every(function(e){var t;return"function"==typeof r[e]&&(null==(t=r[e])?void 0:t.toString().includes("[native code]"))}));if(i&&s&&!globalThis.Zone)return A[e]=t.prototype,t.prototype;try{var a=document.createElement("iframe");document.body.appendChild(a);var c=a.contentWindow;if(!c)return t.prototype;var l=c[e].prototype;return document.body.removeChild(a),l?A[e]=l:r}catch(e){return r}}var M={};function T(e,t,r){var n,i=e+"."+String(r);if(M[i])return M[i].call(t);var o=R(e),s=null==(n=Object.getOwnPropertyDescriptor(o,r))?void 0:n.get;return s?(M[i]=s,s.call(t)):t[r]}var P=function(e){return T("Node",e,"childNodes")},L=function(e){return T("Node",e,"parentNode")},D=function(e){return T("Node",e,"parentElement")},F=function(e){return T("Node",e,"textContent")},U=function(e){return e&&"host"in e?T("ShadowRoot",e,"host"):null},j=function(e){return e&&"shadowRoot"in e?T("Element",e,"shadowRoot"):null};function B(e){return e.nodeType===e.ELEMENT_NODE}function $(e){var t=e&&"host"in e&&"mode"in e&&U(e)||null;return Boolean(t&&"shadowRoot"in t&&j(t)===e)}function z(e){return"[object ShadowRoot]"===Object.prototype.toString.call(e)}function q(e){try{var t=e.rules||e.cssRules;if(!t)return null;var r=e.href;return!r&&e.ownerNode&&e.ownerNode.ownerDocument&&(r=e.ownerNode.ownerDocument.location.href),(n=Array.from(t,function(e){return V(e,r)}).join("")).includes(" background-clip: text;")&&!n.includes(" -webkit-background-clip: text;")&&(n=n.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),n}catch(e){return null}var n}function V(e,t){if(function(e){return"styleSheet"in e}(e)){var r;try{r=q(e.styleSheet)||function(e){var t=e.cssText;if(t.split('"').length<3)return t;var r=["@import","url("+JSON.stringify(e.href)+")"];return""===e.layerName?r.push("layer"):e.layerName&&r.push("layer("+e.layerName+")"),e.supportsText&&r.push("supports("+e.supportsText+")"),e.media.length&&r.push(e.media.mediaText),r.join(" ")+";"}(e)}catch(t){r=e.cssText}return e.styleSheet.href?te(r,e.styleSheet.href):r}var n,i=e.cssText;return function(e){return"selectorText"in e}(e)&&e.selectorText.includes(":")&&(n=/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm,i=i.replace(n,"$1\\$2")),t?te(i,t):i}var W=function(){function e(){E(this,"idNodeMap",new Map),E(this,"nodeMetaMap",new WeakMap)}var t=e.prototype;return t.getId=function(e){var t;if(!e)return-1;var r=null==(t=this.getMeta(e))?void 0:t.id;return null!=r?r:-1},t.getNode=function(e){return this.idNodeMap.get(e)||null},t.getIds=function(){return Array.from(this.idNodeMap.keys())},t.getMeta=function(e){return this.nodeMetaMap.get(e)||null},t.removeNodeFromMap=function(e){var t=this,r=this.getId(e);this.idNodeMap.delete(r),e.childNodes&&e.childNodes.forEach(function(e){return t.removeNodeFromMap(e)})},t.has=function(e){return this.idNodeMap.has(e)},t.hasNode=function(e){return this.nodeMetaMap.has(e)},t.add=function(e,t){var r=t.id;this.idNodeMap.set(r,e),this.nodeMetaMap.set(e,t)},t.replace=function(e,t){var r=this.getNode(e);if(r){var n=this.nodeMetaMap.get(r);n&&this.nodeMetaMap.set(t,n)}this.idNodeMap.set(e,t)},t.reset=function(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap},e}();function H(e){var t=e.element,r=e.maskInputOptions,n=e.tagName,i=e.type,o=e.value,s=e.maskInputFn,a=o||"",c=i&&G(i);return(r[n.toLowerCase()]||c&&r[c])&&(a=s?s(a,t):"*".repeat(a.length)),a}function G(e){return e.toLowerCase()}var K="__rrweb_original__";function J(e){var t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?G(t):null}function Y(e,t){var r;try{r=new URL(e,null!=t?t:window.location.href)}catch(e){return null}var n,i=r.pathname.match(/\.([0-9a-z]+)(?:$)/i);return null!=(n=null==i?void 0:i[1])?n:null}var Z=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,X=/^(?:[a-z+]+:)?\/\//i,Q=/^www\..*/i,ee=/^(data:)([^,]*),(.*)/i;function te(e,t){return(e||"").replace(Z,function(e,r,n,i,o,s){var a,c=n||o||s,l=r||i||"";if(!c)return e;if(X.test(c)||Q.test(c))return"url("+l+c+l+")";if(ee.test(c))return"url("+l+c+l+")";if("/"===c[0])return"url("+l+(((a=t).indexOf("//")>-1?a.split("/").slice(0,3).join("/"):a.split("/")[0]).split("?")[0]+c)+l+")";var u=t.split("/"),p=c.split("/");u.pop();for(var h,d=b(p);!(h=d()).done;){var f=h.value;"."!==f&&(".."===f?u.pop():u.push(f))}return"url("+l+u.join("/")+l+")"})}function re(e,t){return void 0===t&&(t=!1),t?e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,""):e.replace(/(\/\*[^*]*\*\/)|[\s;]/g,"").replace(/0px/g,"0")}var ne,ie,oe=1,se=new RegExp("[^a-z0-9-_:]");function ae(){return oe++}var ce=/^[^ \t\n\r\u000c]+/,le=/^[, \t\n\r\u000c]+/,ue=new WeakMap;function pe(e,t){return t&&""!==t.trim()?he(e,t):t}function he(e,t){var r=ue.get(e);if(r||(r=e.createElement("a"),ue.set(e,r)),t){if(t.startsWith("blob:")||t.startsWith("data:"))return t}else t="";return r.setAttribute("href",t),r.href}function de(e,t,r,n){return n?"src"===r||"href"===r&&("use"!==t||"#"!==n[0])||"xlink:href"===r&&"#"!==n[0]?pe(e,n):"background"!==r||"table"!==t&&"td"!==t&&"th"!==t?"srcset"===r?function(e,t){if(""===t.trim())return t;var r=0;function n(e){var n,i=e.exec(t.substring(r));return i?(n=i[0],r+=n.length,n):""}for(var i=[];n(le),!(r>=t.length);){var o=n(ce);if(","===o.slice(-1))o=pe(e,o.substring(0,o.length-1)),i.push(o);else{var s="";o=pe(e,o);for(var a=!1;;){var c=t.charAt(r);if(""===c){i.push((o+s).trim());break}if(a)")"===c&&(a=!1);else{if(","===c){r+=1,i.push((o+s).trim());break}"("===c&&(a=!0)}s+=c,r+=1}}}return i.join(", ")}(e,n):"style"===r?te(n,he(e)):"object"===t&&"data"===r?pe(e,n):n:pe(e,n):n}function fe(e,t,r){return("video"===e||"audio"===e)&&"autoplay"===t}function ge(e,t,r){if(!e)return!1;if(e.nodeType!==e.ELEMENT_NODE)return!!r&&ge(L(e),t,r);for(var n=e.classList.length;n--;){var i=e.classList[n];if(t.test(i))return!0}return!!r&&ge(L(e),t,r)}function me(e,t,r,n){var i;if(B(e)){if(!P(i=e).length)return!1}else{if(null===D(e))return!1;i=D(e)}try{if("string"==typeof t){if(n){if(i.closest("."+t))return!0}else if(i.classList.contains(t))return!0}else if(ge(i,t,n))return!0;if(r)if(n){if(i.closest(r))return!0}else if(i.matches(r))return!0}catch(e){}return!1}function ve(e,t){var r=t.doc,n=t.mirror,i=t.blockClass,o=t.blockSelector,s=t.needsMask,a=t.inlineStylesheet,c=t.maskInputOptions,l=void 0===c?{}:c,u=t.maskTextFn,p=t.maskInputFn,h=t.dataURLOptions,f=void 0===h?{}:h,g=t.inlineImages,m=t.recordCanvas,v=t.keepIframeSrcFn,y=t.newlyAddedElement,b=void 0!==y&&y,_=t.cssCaptured,w=void 0!==_&&_,k=function(e,t){if(t.hasNode(e)){var r=t.getId(e);return 1===r?void 0:r}}(r,n);switch(e.nodeType){case e.DOCUMENT_NODE:return"CSS1Compat"!==e.compatMode?{type:I.Document,childNodes:[],compatMode:e.compatMode}:{type:I.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:I.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:k};case e.ELEMENT_NODE:return function(e,t){for(var r,n=t.doc,i=t.inlineStylesheet,o=t.maskInputOptions,s=void 0===o?{}:o,a=t.maskInputFn,c=t.dataURLOptions,l=void 0===c?{}:c,u=t.inlineImages,p=t.recordCanvas,h=t.keepIframeSrcFn,f=t.newlyAddedElement,g=void 0!==f&&f,m=t.rootId,v=function(e,t,r){try{if("string"==typeof t){if(e.classList.contains(t))return!0}else for(var n=e.classList.length;n--;){var i=e.classList[n];if(t.test(i))return!0}if(r)return e.matches(r)}catch(e){}return!1}(e,t.blockClass,t.blockSelector),y=function(e){if(d(e,HTMLFormElement))return"form";var t=G(e.tagName);return se.test(t)?"div":t}(e),b={},_=e.attributes.length,w=0;w<_;w++){var k=e.attributes[w];fe(y,k.name,k.value)||(b[k.name]=de(n,y,G(k.name),k.value))}if("link"===y&&i){var S=Array.from(n.styleSheets).find(function(t){return t.href===e.href}),x=null;S&&(x=q(S)),x&&(delete b.rel,delete b.href,b._cssText=x)}if("style"===y&&e.sheet){var C=q(e.sheet);C&&(e.childNodes.length>1&&(C=function(e,t){return function(e,t,r){void 0===r&&(r=!1);var n=Array.from(t.childNodes),i=[],o=0;if(n.length>1&&e&&"string"==typeof e)for(var s=re(e,r),a=s.length/e.length,c=1;c2&&""===h[0]&&""!==n[c-1].textContent)d=s.indexOf(p,1);else if(1===h.length){if(p=p.substring(0,p.length-1),(h=s.split(p)).length<=1)return i.push(e),i;u=101}else u===l.length-1&&(d=s.indexOf(p));if(h.length>=2&&u>100){var f=n[c-1].textContent;if(f&&"string"==typeof f){var g=re(f).length;d=s.indexOf(p,g)}-1===d&&(d=h[0].length)}if(-1!==d){for(var m=Math.floor(d/a);m>0&&m50*n.length)return i.push(e),i;var v=re(e.substring(0,m),r);if(v.length===d){i.push(e.substring(0,m)),e=e.substring(m),s=s.substring(d);break}v.length",T=R.crossOrigin,P=function(){R.removeEventListener("load",P);try{ne.width=R.naturalWidth,ne.height=R.naturalHeight,ie.drawImage(R,0,0),b.rr_dataURL=ne.toDataURL(l.type,l.quality)}catch(e){if("anonymous"!==R.crossOrigin)return R.crossOrigin="anonymous",void(R.complete&&0!==R.naturalWidth?P():R.addEventListener("load",P));console.warn("Cannot inline img src="+M+"! Error: "+e)}"anonymous"===R.crossOrigin&&(T?b.crossOrigin=T:R.removeAttribute("crossorigin"))};R.complete&&0!==R.naturalWidth?P():R.addEventListener("load",P)}if("audio"===y||"video"===y){var L=b;L.rr_mediaState=e.paused?"paused":"played",L.rr_mediaCurrentTime=e.currentTime,L.rr_mediaPlaybackRate=e.playbackRate,L.rr_mediaMuted=e.muted,L.rr_mediaLoop=e.loop,L.rr_mediaVolume=e.volume}if(g||(e.scrollLeft&&(b.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(b.rr_scrollTop=e.scrollTop)),v){var D=e.getBoundingClientRect(),F=D.width,U=D.height;b={class:b.class,rr_width:F+"px",rr_height:U+"px"}}"iframe"!==y||h(b.src)||(e.contentDocument||(b.rr_src=b.src),delete b.src);try{customElements.get(y)&&(r=!0)}catch(e){}return{type:I.Element,tagName:y,attributes:b,childNodes:[],isSVG:(j=e,Boolean("svg"===j.tagName||j.ownerSVGElement)||void 0),needBlock:v,rootId:m,isCustom:r};var j}(e,{doc:r,blockClass:i,blockSelector:o,inlineStylesheet:a,maskInputOptions:l,maskInputFn:p,dataURLOptions:f,inlineImages:g,recordCanvas:m,keepIframeSrcFn:v,newlyAddedElement:b,rootId:k});case e.TEXT_NODE:return function(e,t){var r=t.needsMask,n=t.maskTextFn,i=t.rootId,o=t.cssCaptured,s=L(e),a=s&&s.tagName,c="",l="STYLE"===a||void 0,u="SCRIPT"===a||void 0;return u?c="SCRIPT_PLACEHOLDER":o||(c=F(e),l&&c&&(c=te(c,he(t.doc)))),!l&&!u&&c&&r&&(c=n?n(c,D(e)):c.replace(/[\S]/g,"*")),{type:I.Text,textContent:c||"",rootId:i}}(e,{doc:r,needsMask:s,maskTextFn:u,rootId:k,cssCaptured:w});case e.CDATA_SECTION_NODE:return{type:I.CDATA,textContent:"",rootId:k};case e.COMMENT_NODE:return{type:I.Comment,textContent:F(e)||"",rootId:k};default:return!1}}function ye(e){return null==e?"":e.toLowerCase()}function be(e,t){var r=t.doc,n=t.mirror,i=t.blockClass,o=t.blockSelector,s=t.maskTextClass,a=t.maskTextSelector,c=t.skipChild,l=void 0!==c&&c,u=t.inlineStylesheet,p=void 0===u||u,h=t.maskInputOptions,d=void 0===h?{}:h,f=t.maskTextFn,g=t.maskInputFn,m=t.slimDOMOptions,v=t.dataURLOptions,y=void 0===v?{}:v,_=t.inlineImages,w=void 0!==_&&_,k=t.recordCanvas,S=void 0!==k&&k,x=t.onSerialize,C=t.onIframeLoad,E=t.iframeLoadTimeout,O=void 0===E?5e3:E,N=t.onStylesheetLoad,A=t.stylesheetLoadTimeout,R=void 0===A?5e3:A,M=t.keepIframeSrcFn,T=void 0===M?function(){return!1}:M,D=t.newlyAddedElement,F=void 0!==D&&D,U=t.cssCaptured,q=void 0!==U&&U,V=t.needsMask,W=t.preserveWhiteSpace,H=void 0===W||W;V||(V=me(e,s,a,void 0===V));var G,K=ve(e,{doc:r,mirror:n,blockClass:i,blockSelector:o,needsMask:V,inlineStylesheet:p,maskInputOptions:d,maskTextFn:f,maskInputFn:g,dataURLOptions:y,inlineImages:w,recordCanvas:S,keepIframeSrcFn:T,newlyAddedElement:F,cssCaptured:q});if(!K)return console.warn(e,"not serialized"),null;G=n.hasNode(e)?n.getId(e):function(e,t){if(t.comment&&e.type===I.Comment)return!0;if(e.type===I.Element){if(t.script&&("script"===e.tagName||"link"===e.tagName&&("preload"===e.attributes.rel&&"script"===e.attributes.as||"modulepreload"===e.attributes.rel)||"link"===e.tagName&&"prefetch"===e.attributes.rel&&"string"==typeof e.attributes.href&&"js"===Y(e.attributes.href)))return!0;if(t.headFavicon&&("link"===e.tagName&&"shortcut icon"===e.attributes.rel||"meta"===e.tagName&&(ye(e.attributes.name).match(/^msapplication-tile(image|color)$/)||"application-name"===ye(e.attributes.name)||"icon"===ye(e.attributes.rel)||"apple-touch-icon"===ye(e.attributes.rel)||"shortcut icon"===ye(e.attributes.rel))))return!0;if("meta"===e.tagName){if(t.headMetaDescKeywords&&ye(e.attributes.name).match(/^description|keywords$/))return!0;if(t.headMetaSocial&&(ye(e.attributes.property).match(/^(og|twitter|fb):/)||ye(e.attributes.name).match(/^(og|twitter):/)||"pinterest"===ye(e.attributes.name)))return!0;if(t.headMetaRobots&&("robots"===ye(e.attributes.name)||"googlebot"===ye(e.attributes.name)||"bingbot"===ye(e.attributes.name)))return!0;if(t.headMetaHttpEquiv&&void 0!==e.attributes["http-equiv"])return!0;if(t.headMetaAuthorship&&("author"===ye(e.attributes.name)||"generator"===ye(e.attributes.name)||"framework"===ye(e.attributes.name)||"publisher"===ye(e.attributes.name)||"progid"===ye(e.attributes.name)||ye(e.attributes.property).match(/^article:/)||ye(e.attributes.property).match(/^product:/)))return!0;if(t.headMetaVerification&&("google-site-verification"===ye(e.attributes.name)||"yandex-verification"===ye(e.attributes.name)||"csrf-token"===ye(e.attributes.name)||"p:domain_verify"===ye(e.attributes.name)||"verify-v1"===ye(e.attributes.name)||"verification"===ye(e.attributes.name)||"shopify-checkout-api-token"===ye(e.attributes.name)))return!0}}return!1}(K,m)||!H&&K.type===I.Text&&!K.textContent.replace(/^\s+|\s+$/gm,"").length?-2:ae();var J=Object.assign(K,{id:G});if(n.add(e,J),-2===G)return null;x&&x(e);var Z=!l;if(J.type===I.Element){Z=Z&&!J.needBlock,delete J.needBlock;var X=j(e);X&&z(X)&&(J.isShadowHost=!0)}if((J.type===I.Document||J.type===I.Element)&&Z){m.headWhitespace&&J.type===I.Element&&"head"===J.tagName&&(H=!1);var Q={doc:r,mirror:n,blockClass:i,blockSelector:o,needsMask:V,maskTextClass:s,maskTextSelector:a,skipChild:l,inlineStylesheet:p,maskInputOptions:d,maskTextFn:f,maskInputFn:g,slimDOMOptions:m,dataURLOptions:y,inlineImages:w,recordCanvas:S,preserveWhiteSpace:H,onSerialize:x,onIframeLoad:C,iframeLoadTimeout:O,onStylesheetLoad:N,stylesheetLoadTimeout:R,keepIframeSrcFn:T,cssCaptured:!1};if(J.type===I.Element&&"textarea"===J.tagName&&void 0!==J.attributes.value);else{J.type===I.Element&&void 0!==J.attributes._cssText&&"string"==typeof J.attributes._cssText&&(Q.cssCaptured=!0);for(var ee,te=b(Array.from(P(e)));!(ee=te()).done;){var re=be(ee.value,Q);re&&J.childNodes.push(re)}}var ne=null;if(B(e)&&(ne=j(e)))for(var ie,oe=b(Array.from(P(ne)));!(ie=oe()).done;){var se=be(ie.value,Q);se&&(z(ne)&&(se.isShadow=!0),J.childNodes.push(se))}}var ce=L(e);return ce&&$(ce)&&z(ce)&&(J.isShadow=!0),J.type===I.Element&&"iframe"===J.tagName&&function(e,t,r){var n=e.contentWindow;if(n){var i,o=!1;try{i=n.document.readyState}catch(e){return}if("complete"===i){var s="about:blank";if(n.location.href!==s||e.src===s||""===e.src)return setTimeout(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}else{var a=setTimeout(function(){o||(t(),o=!0)},r);e.addEventListener("load",function(){clearTimeout(a),o=!0,t()})}}}(e,function(){var t=e.contentDocument;if(t&&C){var r=be(t,{doc:t,mirror:n,blockClass:i,blockSelector:o,needsMask:V,maskTextClass:s,maskTextSelector:a,skipChild:!1,inlineStylesheet:p,maskInputOptions:d,maskTextFn:f,maskInputFn:g,slimDOMOptions:m,dataURLOptions:y,inlineImages:w,recordCanvas:S,preserveWhiteSpace:H,onSerialize:x,onIframeLoad:C,iframeLoadTimeout:O,onStylesheetLoad:N,stylesheetLoadTimeout:R,keepIframeSrcFn:T});r&&C(e,r)}},O),J.type===I.Element&&"link"===J.tagName&&"string"==typeof J.attributes.rel&&("stylesheet"===J.attributes.rel||"preload"===J.attributes.rel&&"string"==typeof J.attributes.href&&"css"===Y(J.attributes.href))&&function(e,t,r){var n,i=!1;try{n=e.sheet}catch(e){return}if(!n){var o=setTimeout(function(){i||(t(),i=!0)},r);e.addEventListener("load",function(){clearTimeout(o),i=!0,t()})}}(e,function(){if(N){var t=be(e,{doc:r,mirror:n,blockClass:i,blockSelector:o,needsMask:V,maskTextClass:s,maskTextSelector:a,skipChild:!1,inlineStylesheet:p,maskInputOptions:d,maskTextFn:f,maskInputFn:g,slimDOMOptions:m,dataURLOptions:y,inlineImages:w,recordCanvas:S,preserveWhiteSpace:H,onSerialize:x,onIframeLoad:C,iframeLoadTimeout:O,onStylesheetLoad:N,stylesheetLoadTimeout:R,keepIframeSrcFn:T});t&&N(e,t)}},R),J}function _e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function we(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return d(this,e)?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}),r}var ke={exports:{}},Se=String,xe=function(){return{isColorSupported:!1,reset:Se,bold:Se,dim:Se,italic:Se,underline:Se,inverse:Se,hidden:Se,strikethrough:Se,black:Se,red:Se,green:Se,yellow:Se,blue:Se,magenta:Se,cyan:Se,white:Se,gray:Se,bgBlack:Se,bgRed:Se,bgGreen:Se,bgYellow:Se,bgBlue:Se,bgMagenta:Se,bgCyan:Se,bgWhite:Se}};ke.exports=xe(),ke.exports.createColors=xe;var Ce=ke.exports,Ee=we(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"}))),Ie=Ce,Oe=Ee,Ne=function(e){function t(r,n,i,o,s,a){var c;return(c=e.call(this,r)||this).name="CssSyntaxError",c.reason=r,s&&(c.file=s),o&&(c.source=o),a&&(c.plugin=a),void 0!==n&&void 0!==i&&("number"==typeof n?(c.line=n,c.column=i):(c.line=n.line,c.column=n.column,c.endLine=i.line,c.endColumn=i.column)),c.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(c,t),c}h(t,e);var r=t.prototype;return r.setMessage=function(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason},r.showSourceCode=function(e){var t=this;if(!this.source)return"";var r=this.source;null==e&&(e=Ie.isColorSupported),Oe&&e&&(r=Oe(r));var n,i,o=r.split(/\r?\n/),s=Math.max(this.line-3,0),a=Math.min(this.line+2,o.length),c=String(a).length;if(e){var l=Ie.createColors(!0),u=l.bold,p=l.gray,h=l.red;n=function(e){return u(h(e))},i=function(e){return p(e)}}else n=i=function(e){return e};return o.slice(s,a).map(function(e,r){var o=s+1+r,a=" "+(" "+o).slice(-c)+" | ";if(o===t.line){var l=i(a.replace(/\d/g," "))+e.slice(0,t.column-1).replace(/[^\t]/g," ");return n(">")+i(a)+e+"\n "+l+n("^")}return" "+i(a)+e}).join("\n")},r.toString=function(){var e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e},t}(v(Error)),Ae=Ne;Ne.default=Ne;var Re={};Re.isClean=Symbol("isClean"),Re.my=Symbol("my");var Me={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1},Te=function(){function e(e){this.builder=e}var t=e.prototype;return t.atrule=function(e,t){var r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{var i=(e.raws.between||"")+(t?";":"");this.builder(r+n+i,e)}},t.beforeAfter=function(e,t){var r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");for(var n=e.parent,i=0;n&&"root"!==n.type;)i+=1,n=n.parent;if(r.includes("\n")){var o=this.raw(e,null,"indent");if(o.length)for(var s=0;s0&&"comment"===e.nodes[t].type;)t-=1;for(var r=this.raw(e,"semicolon"),n=0;n0&&void 0!==e.raws.after)return(t=e.raws.after).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t},t.rawBeforeComment=function(e,t){var r;return e.walkComments(function(e){if(void 0!==e.raws.before)return(r=e.raws.before).includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r},t.rawBeforeDecl=function(e,t){var r;return e.walkDecls(function(e){if(void 0!==e.raws.before)return(r=e.raws.before).includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r},t.rawBeforeOpen=function(e){var t;return e.walk(function(e){if("decl"!==e.type&&void 0!==(t=e.raws.between))return!1}),t},t.rawBeforeRule=function(e){var t;return e.walk(function(r){if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return(t=r.raws.before).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t},t.rawColon=function(e){var t;return e.walkDecls(function(e){if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1}),t},t.rawEmptyBody=function(e){var t;return e.walk(function(e){if(e.nodes&&0===e.nodes.length&&void 0!==(t=e.raws.after))return!1}),t},t.rawIndent=function(e){return e.raws.indent?e.raws.indent:(e.walk(function(r){var n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){var i=r.raws.before.split("\n");return t=(t=i[i.length-1]).replace(/\S/g,""),!1}}),t);var t},t.rawSemicolon=function(e){var t;return e.walk(function(e){if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&void 0!==(t=e.raws.semicolon))return!1}),t},t.rawValue=function(e,t){var r=e[t],n=e.raws[t];return n&&n.value===r?n.raw:r},t.root=function(e){this.body(e),e.raws.after&&this.builder(e.raws.after)},t.rule=function(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")},t.stringify=function(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)},e}(),Pe=Te;Te.default=Te;var Le=Pe;function De(e,t){new Le(t).stringify(e)}var Fe=De;De.default=De;var Ue=Re.isClean,je=Re.my,Be=Ae,$e=Pe,ze=Fe;function qe(e,t){var r=new e.constructor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&"proxyCache"!==n){var i=e[n],o=void 0===i?"undefined":m(i);"parent"===n&&"object"===o?t&&(r[n]=t):"source"===n?r[n]=i:Array.isArray(i)?r[n]=i.map(function(e){return qe(e,r)}):("object"===o&&null!==i&&(i=qe(i)),r[n]=i)}return r}var Ve=function(){function e(e){for(var t in void 0===e&&(e={}),this.raws={},this[Ue]=!1,this[je]=!0,e)if("nodes"===t){this.nodes=[];for(var r,n=b(e[t]);!(r=n()).done;){var i=r.value;"function"==typeof i.clone?this.append(i.clone()):this.append(i)}}else this[t]=e[t]}var t=e.prototype;return t.addToError=function(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){var t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,"$&"+t.input.from+":"+t.start.line+":"+t.start.column+"$&")}return e},t.after=function(e){return this.parent.insertAfter(this,e),this},t.assign=function(e){for(var t in void 0===e&&(e={}),e)this[t]=e[t];return this},t.before=function(e){return this.parent.insertBefore(this,e),this},t.cleanRaws=function(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between},t.clone=function(e){void 0===e&&(e={});var t=qe(this);for(var r in e)t[r]=e[r];return t},t.cloneAfter=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertAfter(this,t),t},t.cloneBefore=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertBefore(this,t),t},t.error=function(e,t){if(void 0===t&&(t={}),this.source){var r=this.rangeBy(t),n=r.end,i=r.start;return this.source.input.error(e,{column:i.column,line:i.line},{column:n.column,line:n.line},t)}return new Be(e)},t.getProxyProcessor=function(){return{get:function(e,t){return"proxyOf"===t?e:"root"===t?function(){return e.root().toProxy()}:e[t]},set:function(e,t,r){return e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0}}},t.markDirty=function(){if(this[Ue]){this[Ue]=!1;for(var e=this;e=e.parent;)e[Ue]=!1}},t.next=function(){if(this.parent){var e=this.parent.index(this);return this.parent.nodes[e+1]}},t.positionBy=function(e,t){var r=this.source.start;if(e.index)r=this.positionInside(e.index,t);else if(e.word){var n=(t=this.toString()).indexOf(e.word);-1!==n&&(r=this.positionInside(n,t))}return r},t.positionInside=function(e,t){for(var r=t||this.toString(),n=this.source.start.column,i=this.source.start.line,o=0;o-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,n)))}},t.loadFile=function(e){if(this.root=Xe(e),Ye(e))return this.mapFile=e,Ze(e,"utf-8").toString().trim()},t.loadMap=function(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(d(t,Ke))return Je.fromSourceMap(t).toString();if(d(t,Je))return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}var r=t(e);if(r){var n=this.loadFile(r);if(!n)throw new Error("Unable to load previous source map: "+r.toString());return n}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){var i=this.annotation;return e&&(i=Qe(Xe(e),i)),this.loadFile(i)}}},t.startWith=function(e,t){return!!e&&e.substr(0,t.length)===t},t.withContent=function(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)},e}(),tt=et;et.default=et;var rt=Ee.SourceMapConsumer,nt=Ee.SourceMapGenerator,it=Ee.fileURLToPath,ot=Ee.pathToFileURL,st=Ee.isAbsolute,at=Ee.resolve,ct=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},lt=Ee,ut=Ae,pt=tt,ht=Symbol("fromOffsetCache"),dt=Boolean(rt&&nt),ft=Boolean(at&&st),gt=function(){function e(e,t){if(void 0===t&&(t={}),null==e||"object"===(void 0===e?"undefined":m(e))&&!e.toString)throw new Error("PostCSS received "+e+" instead of CSS string");if(this.css=e.toString(),"\ufeff"===this.css[0]||""===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!ft||/^\w+:\/\//.test(t.from)||st(t.from)?this.file=t.from:this.file=at(t.from)),ft&&dt){var r=new pt(this.css,t);if(r.text){this.map=r;var n=r.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=" "),this.map&&(this.map.file=this.from)}var t=e.prototype;return t.error=function(e,t,r,n){var i,o,s;if(void 0===n&&(n={}),t&&"object"===(void 0===t?"undefined":m(t))){var a=t,c=r;if("number"==typeof a.offset){var l=this.fromOffset(a.offset);t=l.line,r=l.col}else t=a.line,r=a.column;if("number"==typeof c.offset){var u=this.fromOffset(c.offset);o=u.line,s=u.col}else o=c.line,s=c.column}else if(!r){var p=this.fromOffset(t);t=p.line,r=p.col}var h=this.origin(t,r,o,s);return(i=h?new ut(e,void 0===h.endLine?h.line:{column:h.column,line:h.line},void 0===h.endLine?h.column:{column:h.endColumn,line:h.endLine},h.source,h.file,n.plugin):new ut(e,void 0===o?t:{column:r,line:t},void 0===o?r:{column:s,line:o},this.css,this.file,n.plugin)).input={column:r,endColumn:s,endLine:o,line:t,source:this.css},this.file&&(ot&&(i.input.url=ot(this.file).toString()),i.input.file=this.file),i},t.fromOffset=function(e){var t;if(this[ht])t=this[ht];else{var r=this.css.split("\n");t=new Array(r.length);for(var n=0,i=0,o=r.length;i=t[t.length-1])s=t.length-1;else for(var a,c=t.length-2;s>1)])c=a-1;else{if(!(e>=t[a+1])){s=a;break}s=a+1}return{col:e-t[s]+1,line:s+1}},t.mapResolve=function(e){return/^\w+:\/\//.test(e)?e:at(this.map.consumer().sourceRoot||this.map.root||".",e)},t.origin=function(e,t,r,n){if(!this.map)return!1;var i,o,s=this.map.consumer(),a=s.originalPositionFor({column:t,line:e});if(!a.source)return!1;"number"==typeof r&&(i=s.originalPositionFor({column:n,line:r})),o=st(a.source)?ot(a.source):new URL(a.source,this.map.consumer().sourceRoot||ot(this.map.mapFile));var c={column:a.column,endColumn:i&&i.column,endLine:i&&i.line,line:a.line,url:o.toString()};if("file:"===o.protocol){if(!it)throw new Error("file: protocol is not available in this PostCSS build");c.file=it(o)}var l=s.sourceContentFor(a.source);return l&&(c.source=l),c},t.toJSON=function(){for(var e={},t=0,r=["hasBOM","css","file","id"];t=0;t--)"comment"===(e=this.root.nodes[t]).type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t);else this.css&&(this.css=this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm,""))},t.generate=function(){if(this.clearAnnotation(),Et&&Ct&&this.isMap())return this.generateMap();var e="";return this.stringify(this.root,function(t){e+=t}),[e]},t.generateMap=function(){if(this.root)this.generateString();else if(1===this.previous().length){var e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=yt.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new yt({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]},t.generateString=function(){var e=this;this.css="",this.map=new yt({file:this.outputFile(),ignoreInvalidMapping:!0});var t,r,n=1,i=1,o="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,function(a,c,l){if(e.css+=a,c&&"end"!==l&&(s.generated.line=n,s.generated.column=i-1,c.source&&c.source.start?(s.source=e.sourcePath(c),s.original.line=c.source.start.line,s.original.column=c.source.start.column-1,e.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,e.map.addMapping(s))),(t=a.match(/\n/g))?(n+=t.length,r=a.lastIndexOf("\n"),i=a.length-r):i+=a.length,c&&"start"!==l){var u=c.parent||{raws:{}};("decl"===c.type||"atrule"===c.type&&!c.nodes)&&c===u.last&&!u.raws.semicolon||(c.source&&c.source.end?(s.source=e.sourcePath(c),s.original.line=c.source.end.line,s.original.column=c.source.end.column-1,s.generated.line=n,s.generated.column=i-2,e.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,s.generated.line=n,s.generated.column=i-1,e.map.addMapping(s)))}})},t.isAnnotation=function(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some(function(e){return e.annotation}))},t.isInline=function(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;var e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some(function(e){return e.inline}))},t.isMap=function(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0},t.isSourcesContent=function(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some(function(e){return e.withContent()})},t.outputFile=function(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"},t.path=function(e){if(this.mapOpts.absolute)return e;if(60===e.charCodeAt(0))return e;if(/^\w+:\/\//.test(e))return e;var t=this.memoizedPaths.get(e);if(t)return t;var r=this.opts.to?bt(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(r=bt(wt(r,this.mapOpts.annotation)));var n=_t(r,e);return this.memoizedPaths.set(e,n),n},t.previous=function(){var e=this;if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(function(t){if(t.source&&t.source.input.map){var r=t.source.input.map;e.previousMaps.includes(r)||e.previousMaps.push(r)}});else{var t=new xt(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps},t.setSourcesContent=function(){var e=this,t={};if(this.root)this.root.walk(function(r){if(r.source){var n=r.source.input.from;if(n&&!t[n]){t[n]=!0;var i=e.usesFileUrls?e.toFileUrl(n):e.toUrl(e.path(n));e.map.setSourceContent(i,r.source.input.css)}}});else if(this.css){var r=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(r,this.css)}},t.sourcePath=function(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))},t.toBase64=function(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))},t.toFileUrl=function(e){var t=this.memoizedFileURLs.get(e);if(t)return t;if(St){var r=St(e).toString();return this.memoizedFileURLs.set(e,r),r}throw new Error("`map.absolute` option is not available in this PostCSS build")},t.toUrl=function(e){var t=this.memoizedURLs.get(e);if(t)return t;"\\"===kt&&(e=e.replace(/\\/g,"/"));var r=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,r),r},e}(),Ot=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="comment",r}return h(t,e),t}(We),Nt=Ot;Ot.default=Ot;var At,Rt,Mt,Tt,Pt=Re.isClean,Lt=Re.my,Dt=Ge,Ft=Nt;function Ut(e){return e.map(function(e){return e.nodes&&(e.nodes=Ut(e.nodes)),delete e.source,e})}function jt(e){if(e[Pt]=!1,e.proxyOf.nodes)for(var t,r=b(e.proxyOf.nodes);!(t=r()).done;)jt(t.value)}var Bt=function(e){function t(){return e.apply(this,arguments)||this}h(t,e);var r=t.prototype;return r.append=function(){for(var e=arguments.length,t=new Array(e),r=0;r1?t-1:0),i=1;i=e&&(this.indexes[r]=t-1);return this.markDirty(),this},r.replaceValues=function(e,t,r){return r||(r=t,t={}),this.walkDecls(function(n){t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))}),this.markDirty(),this},r.some=function(e){return this.nodes.some(e)},r.walk=function(e){return this.each(function(t,r){var n;try{n=e(t,r)}catch(e){throw t.addToError(e)}return!1!==n&&t.walk&&(n=t.walk(e)),n})},r.walkAtRules=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("atrule"===r.type&&e.test(r.name))return t(r,n)}):this.walk(function(r,n){if("atrule"===r.type&&r.name===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("atrule"===e.type)return t(e,r)}))},r.walkComments=function(e){return this.walk(function(t,r){if("comment"===t.type)return e(t,r)})},r.walkDecls=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("decl"===r.type&&e.test(r.prop))return t(r,n)}):this.walk(function(r,n){if("decl"===r.type&&r.prop===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("decl"===e.type)return t(e,r)}))},r.walkRules=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("rule"===r.type&&e.test(r.selector))return t(r,n)}):this.walk(function(r,n){if("rule"===r.type&&r.selector===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("rule"===e.type)return t(e,r)}))},l(t,[{key:"first",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}},{key:"last",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}}]),t}(We);Bt.registerParse=function(e){At=e},Bt.registerRule=function(e){Rt=e},Bt.registerAtRule=function(e){Mt=e},Bt.registerRoot=function(e){Tt=e};var $t=Bt;Bt.default=Bt,Bt.rebuild=function(e){"atrule"===e.type?Object.setPrototypeOf(e,Mt.prototype):"rule"===e.type?Object.setPrototypeOf(e,Rt.prototype):"decl"===e.type?Object.setPrototypeOf(e,Dt.prototype):"comment"===e.type?Object.setPrototypeOf(e,Ft.prototype):"root"===e.type&&Object.setPrototypeOf(e,Tt.prototype),e[Lt]=!0,e.nodes&&e.nodes.forEach(function(e){Bt.rebuild(e)})};var zt,qt,Vt=function(e){function t(t){var r;return(r=e.call(this,u({type:"document"},t))||this).nodes||(r.nodes=[]),r}return h(t,e),t.prototype.toResult=function(e){return void 0===e&&(e={}),new zt(new qt,this,e).stringify()},t}($t);Vt.registerLazyResult=function(e){zt=e},Vt.registerProcessor=function(e){qt=e};var Wt=Vt;Vt.default=Vt;var Ht=function(){function e(e,t){if(void 0===t&&(t={}),this.type="warning",this.text=e,t.node&&t.node.source){var r=t.node.rangeBy(t);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(var n in t)this[n]=t[n]}return e.prototype.toString=function(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text},e}(),Gt=Ht;Ht.default=Ht;var Kt=Gt,Jt=function(){function e(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}var t=e.prototype;return t.toString=function(){return this.css},t.warn=function(e,t){void 0===t&&(t={}),t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);var r=new Kt(e,t);return this.messages.push(r),r},t.warnings=function(){return this.messages.filter(function(e){return"warning"===e.type})},l(e,[{key:"content",get:function(){return this.css}}]),e}(),Yt=Jt;Jt.default=Jt;var Zt="'".charCodeAt(0),Xt='"'.charCodeAt(0),Qt="\\".charCodeAt(0),er="/".charCodeAt(0),tr="\n".charCodeAt(0),rr=" ".charCodeAt(0),nr="\f".charCodeAt(0),ir="\t".charCodeAt(0),or="\r".charCodeAt(0),sr="[".charCodeAt(0),ar="]".charCodeAt(0),cr="(".charCodeAt(0),lr=")".charCodeAt(0),ur="{".charCodeAt(0),pr="}".charCodeAt(0),hr=";".charCodeAt(0),dr="*".charCodeAt(0),fr=":".charCodeAt(0),gr="@".charCodeAt(0),mr=/[\t\n\f\r "#'()/;[\\\]{}]/g,vr=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,yr=/.[\r\n"'(/\\]/,br=/[\da-f]/i,_r=$t,wr=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="atrule",r}h(t,e);var r=t.prototype;return r.append=function(){for(var t=arguments.length,r=new Array(t),n=0;n1?r.raws.before=this.nodes[1].raws.before:delete r.raws.before;else if(this.first!==r)for(var o,s=b(i);!(o=s()).done;)o.value.raws.before=r.raws.before;return i},r.removeChild=function(t,r){var n=this.index(t);return!r&&0===n&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),e.prototype.removeChild.call(this,t)},r.toResult=function(e){return void 0===e&&(e={}),new Sr(new xr,this,e).stringify()},t}(Cr);Er.registerLazyResult=function(e){Sr=e},Er.registerProcessor=function(e){xr=e};var Ir=Er;Er.default=Er,Cr.registerRoot(Er);var Or={comma:function(e){return Or.split(e,[","],!0)},space:function(e){return Or.split(e,[" ","\n","\t"])},split:function(e,t,r){for(var n,i=[],o="",s=!1,a=0,c=!1,l="",u=!1,p=b(e);!(n=p()).done;){var h=n.value;u?u=!1:"\\"===h?u=!0:c?h===l&&(c=!1):'"'===h||"'"===h?(c=!0,l=h):"("===h?a+=1:")"===h?a>0&&(a-=1):0===a&&t.includes(h)&&(s=!0),s?(""!==o&&i.push(o.trim()),o="",s=!1):o+=h}return(r||""!==o)&&i.push(o.trim()),i}},Nr=Or;Or.default=Or;var Ar=$t,Rr=Nr,Mr=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="rule",r.nodes||(r.nodes=[]),r}return h(t,e),l(t,[{key:"selectors",get:function(){return Rr.comma(this.selector)},set:function(e){var t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}}]),t}(Ar),Tr=Mr;Mr.default=Mr,Ar.registerRule(Mr);var Pr=Ge,Lr=Nt,Dr=kr,Fr=Ir,Ur=Tr,jr={empty:!0,space:!0},Br=function(){function e(e){this.input=e,this.root=new Fr,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}var t=e.prototype;return t.atrule=function(e){var t,r,n,i=new Dr;i.name=e[1].slice(1),""===i.name&&this.unnamedAtrule(i,e),this.init(i,e[2]);for(var o=!1,s=!1,a=[],c=[];!this.tokenizer.endOfFile();){if("("===(t=(e=this.tokenizer.nextToken())[0])||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){i.source.end=this.getPosition(e[2]),i.source.end.offset++,this.semicolon=!0;break}if("{"===t){s=!0;break}if("}"===t){if(a.length>0){for(r=a[n=a.length-1];r&&"space"===r[0];)r=a[--n];r&&(i.source.end=this.getPosition(r[3]||r[2]),i.source.end.offset++)}this.end(e);break}a.push(e)}else a.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(i.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(i,"params",a),o&&(e=a[a.length-1],i.source.end=this.getPosition(e[3]||e[2]),i.source.end.offset++,this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),s&&(i.nodes=[],this.current=i)},t.checkMissedSemicolon=function(e){var t=this.colon(e);if(!1!==t){for(var r,n=0,i=t-1;i>=0&&("space"===(r=e[i])[0]||2!==(n+=1));i--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}},t.colon=function(e){for(var t,r,n,i,o=0,s=b(e.entries());!(i=s()).done;){var a=i.value,c=a[0];if("("===(r=(t=a[1])[0])&&(o+=1),")"===r&&(o-=1),0===o&&":"===r){if(n){if("word"===n[0]&&"progid"===n[1])continue;return c}this.doubleColon(t)}n=t}return!1},t.comment=function(e){var t=new Lr;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;var r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{var n=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}},t.createTokenizer=function(){this.tokenizer=function(e,t){void 0===t&&(t={});var r,n,i,o,s,a,c,l,u,p,h=e.css.valueOf(),d=t.ignoreErrors,f=h.length,g=0,m=[],v=[];function y(t){throw e.error("Unclosed "+t,g)}return{back:function(e){v.push(e)},endOfFile:function(){return 0===v.length&&g>=f},nextToken:function(e){if(v.length)return v.pop();if(!(g>=f)){var t=!!e&&e.ignoreUnclosed;switch(r=h.charCodeAt(g)){case tr:case rr:case ir:case or:case nr:n=g;do{n+=1,r=h.charCodeAt(n)}while(r===rr||r===tr||r===ir||r===or||r===nr);p=["space",h.slice(g,n)],g=n-1;break;case sr:case ar:case ur:case pr:case fr:case hr:case lr:var b=String.fromCharCode(r);p=[b,b,g];break;case cr:if(l=m.length?m.pop()[1]:"",u=h.charCodeAt(g+1),"url"===l&&u!==Zt&&u!==Xt&&u!==rr&&u!==tr&&u!==ir&&u!==nr&&u!==or){n=g;do{if(a=!1,-1===(n=h.indexOf(")",n+1))){if(d||t){n=g;break}y("bracket")}for(c=n;h.charCodeAt(c-1)===Qt;)c-=1,a=!a}while(a);p=["brackets",h.slice(g,n+1),g,n],g=n}else n=h.indexOf(")",g+1),o=h.slice(g,n+1),-1===n||yr.test(o)?p=["(","(",g]:(p=["brackets",o,g,n],g=n);break;case Zt:case Xt:i=r===Zt?"'":'"',n=g;do{if(a=!1,-1===(n=h.indexOf(i,n+1))){if(d||t){n=g+1;break}y("string")}for(c=n;h.charCodeAt(c-1)===Qt;)c-=1,a=!a}while(a);p=["string",h.slice(g,n+1),g,n],g=n;break;case gr:mr.lastIndex=g+1,mr.test(h),n=0===mr.lastIndex?h.length-1:mr.lastIndex-2,p=["at-word",h.slice(g,n+1),g,n],g=n;break;case Qt:for(n=g,s=!0;h.charCodeAt(n+1)===Qt;)n+=1,s=!s;if(r=h.charCodeAt(n+1),s&&r!==er&&r!==rr&&r!==tr&&r!==ir&&r!==or&&r!==nr&&(n+=1,br.test(h.charAt(n)))){for(;br.test(h.charAt(n+1));)n+=1;h.charCodeAt(n+1)===rr&&(n+=1)}p=["word",h.slice(g,n+1),g,n],g=n;break;default:r===er&&h.charCodeAt(g+1)===dr?(0===(n=h.indexOf("*/",g+2)+1)&&(d||t?n=h.length:y("comment")),p=["comment",h.slice(g,n+1),g,n],g=n):(vr.lastIndex=g+1,vr.test(h),n=0===vr.lastIndex?h.length-1:vr.lastIndex-2,p=["word",h.slice(g,n+1),g,n],m.push(p),g=n)}return g++,p}},position:function(){return g}}}(this.input)},t.decl=function(e,t){var r=new Pr;this.init(r,e[0][2]);var n,i=e[e.length-1];for(";"===i[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(i[3]||i[2]||function(e){for(var t=e.length-1;t>=0;t--){var r=e[t],n=r[3]||r[2];if(n)return n}}(e)),r.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){var o=e[0][0];if(":"===o||"space"===o||"comment"===o)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(":"===(n=e.shift())[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));for(var s,a=[];e.length&&("space"===(s=e[0][0])||"comment"===s);)a.push(e.shift());this.precheckMissedSemicolon(e);for(var c=e.length-1;c>=0;c--){if("!important"===(n=e[c])[1].toLowerCase()){r.important=!0;var l=this.stringFrom(e,c);" !important"!==(l=this.spacesFromEnd(e)+l)&&(r.raws.important=l);break}if("important"===n[1].toLowerCase()){for(var u=e.slice(0),p="",h=c;h>0;h--){var d=u[h][0];if(0===p.trim().indexOf("!")&&"space"!==d)break;p=u.pop()[1]+p}0===p.trim().indexOf("!")&&(r.important=!0,r.raws.important=p,e=u)}if("space"!==n[0]&&"comment"!==n[0])break}var f=e.some(function(e){return"space"!==e[0]&&"comment"!==e[0]});f&&(r.raws.between+=a.map(function(e){return e[1]}).join(""),a=[]),this.raw(r,"value",a.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)},t.doubleColon=function(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})},t.emptyRule=function(e){var t=new Ur;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t},t.end=function(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)},t.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())},t.freeSemicolon=function(e){if(this.spaces+=e[1],this.current.nodes){var t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}},t.getPosition=function(e){var t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}},t.init=function(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)},t.other=function(e){for(var t=!1,r=null,n=!1,i=null,o=[],s=e[1].startsWith("--"),a=[],c=e;c;){if(r=c[0],a.push(c),"("===r||"["===r)i||(i=c),o.push("("===r?")":"]");else if(s&&n&&"{"===r)i||(i=c),o.push("}");else if(0===o.length){if(";"===r){if(n)return void this.decl(a,s);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),t=!0;break}":"===r&&(n=!0)}else r===o[o.length-1]&&(o.pop(),0===o.length&&(i=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),o.length>0&&this.unclosedBracket(i),t&&n){if(!s)for(;a.length&&("space"===(c=a[a.length-1][0])||"comment"===c);)this.tokenizer.back(a.pop());this.decl(a,s)}else this.unknownWord(a)},t.parse=function(){for(var e;!this.tokenizer.endOfFile();)switch((e=this.tokenizer.nextToken())[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()},t.precheckMissedSemicolon=function(){},t.raw=function(e,t,r,n){for(var i,o,s,a,c=r.length,l="",u=!0,p=0;p0},t.runAsync=function(){var e=this;return a(function(){var t,r,n,i,o,s,a,c,l,u,p,h;return _(this,function(d){switch(d.label){case 0:e.plugin=0,t=0,d.label=1;case 1:if(!(t0))return[3,13];if(!on(a=e.visitTick(s)))return[3,12];d.label=9;case 9:return d.trys.push([9,11,,12]),[4,a];case 10:return d.sent(),[3,12];case 11:throw c=d.sent(),l=s[s.length-1].node,e.handleError(c,l);case 12:return[3,8];case 13:return[3,7];case 14:if(!e.listeners.OnceExit)return[3,18];u=function(){var t,r,n,i,s;return _(this,function(a){switch(a.label){case 0:t=h.value,r=t[0],n=t[1],e.result.lastPlugin=r,a.label=1;case 1:return a.trys.push([1,6,,7]),"document"!==o.type?[3,3]:(i=o.nodes.map(function(t){return n(t,e.helpers)}),[4,Promise.all(i)]);case 2:return a.sent(),[3,5];case 3:return[4,n(o,e.helpers)];case 4:a.sent(),a.label=5;case 5:return[3,7];case 6:throw s=a.sent(),e.handleError(s);case 7:return[2]}})},p=b(e.listeners.OnceExit),d.label=15;case 15:return(h=p()).done?[3,18]:[5,w(u())];case 16:d.sent(),d.label=17;case 17:return[3,15];case 18:return e.processed=!0,[2,e.stringify()]}})})()},t.runOnRoot=function(e){var t=this;this.result.lastPlugin=e;try{if("object"===(void 0===e?"undefined":m(e))&&e.Once){if("document"===this.result.root.type){var r=this.result.root.nodes.map(function(r){return e.Once(r,t.helpers)});return on(r[0])?Promise.all(r):r}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}},t.stringify=function(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();var e=this.result.opts,t=Jr;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);var r=new Kr(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result},t.sync=function(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(var e,t=b(this.plugins);!(e=t()).done;){var r=e.value;if(on(this.runOnRoot(r)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){for(var n=this.result.root;!n[Hr];)n[Hr]=!0,this.walkSync(n);if(this.listeners.OnceExit)if("document"===n.type)for(var i,o=b(n.nodes);!(i=o()).done;){var s=i.value;this.visitSync(this.listeners.OnceExit,s)}else this.visitSync(this.listeners.OnceExit,n)}return this.result},t.then=function(e,t){return this.async().then(e,t)},t.toString=function(){return this.css},t.visitSync=function(e,t){for(var r,n=b(e);!(r=n()).done;){var i=r.value,o=i[0],s=i[1];this.result.lastPlugin=o;var a=void 0;try{a=s(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(on(a))throw this.getAsyncError()}},t.visitTick=function(e){var t=e[e.length-1],r=t.node,n=t.visitors;if("root"===r.type||"document"===r.type||r.parent){if(n.length>0&&t.visitorIndex",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason},r.showSourceCode=function(e){var t=this;if(!this.source)return"";var r=this.source;null==e&&(e=ui.isColorSupported),pi&&e&&(r=pi(r));var n,i,o=r.split(/\r?\n/),s=Math.max(this.line-3,0),a=Math.min(this.line+2,o.length),c=String(a).length;if(e){var l=ui.createColors(!0),u=l.bold,p=l.gray,h=l.red;n=function(e){return u(h(e))},i=function(e){return p(e)}}else n=i=function(e){return e};return o.slice(s,a).map(function(e,r){var o=s+1+r,a=" "+(" "+o).slice(-c)+" | ";if(o===t.line){var l=i(a.replace(/\d/g," "))+e.slice(0,t.column-1).replace(/[^\t]/g," ");return n(">")+i(a)+e+"\n "+l+n("^")}return" "+i(a)+e}).join("\n")},r.toString=function(){var e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e},t}(v(Error)),di=hi;hi.default=hi;var fi={};fi.isClean=Symbol("isClean"),fi.my=Symbol("my");var gi={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1},mi=function(){function e(e){this.builder=e}var t=e.prototype;return t.atrule=function(e,t){var r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{var i=(e.raws.between||"")+(t?";":"");this.builder(r+n+i,e)}},t.beforeAfter=function(e,t){var r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");for(var n=e.parent,i=0;n&&"root"!==n.type;)i+=1,n=n.parent;if(r.includes("\n")){var o=this.raw(e,null,"indent");if(o.length)for(var s=0;s0&&"comment"===e.nodes[t].type;)t-=1;for(var r=this.raw(e,"semicolon"),n=0;n0&&void 0!==e.raws.after)return(t=e.raws.after).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t},t.rawBeforeComment=function(e,t){var r;return e.walkComments(function(e){if(void 0!==e.raws.before)return(r=e.raws.before).includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r},t.rawBeforeDecl=function(e,t){var r;return e.walkDecls(function(e){if(void 0!==e.raws.before)return(r=e.raws.before).includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1}),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r},t.rawBeforeOpen=function(e){var t;return e.walk(function(e){if("decl"!==e.type&&void 0!==(t=e.raws.between))return!1}),t},t.rawBeforeRule=function(e){var t;return e.walk(function(r){if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return(t=r.raws.before).includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t},t.rawColon=function(e){var t;return e.walkDecls(function(e){if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1}),t},t.rawEmptyBody=function(e){var t;return e.walk(function(e){if(e.nodes&&0===e.nodes.length&&void 0!==(t=e.raws.after))return!1}),t},t.rawIndent=function(e){return e.raws.indent?e.raws.indent:(e.walk(function(r){var n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&void 0!==r.raws.before){var i=r.raws.before.split("\n");return t=(t=i[i.length-1]).replace(/\S/g,""),!1}}),t);var t},t.rawSemicolon=function(e){var t;return e.walk(function(e){if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&void 0!==(t=e.raws.semicolon))return!1}),t},t.rawValue=function(e,t){var r=e[t],n=e.raws[t];return n&&n.value===r?n.raw:r},t.root=function(e){this.body(e),e.raws.after&&this.builder(e.raws.after)},t.rule=function(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")},t.stringify=function(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)},e}(),vi=mi;mi.default=mi;var yi=vi;function bi(e,t){new yi(t).stringify(e)}var _i=bi;bi.default=bi;var wi=fi.isClean,ki=fi.my,Si=di,xi=vi,Ci=_i;function Ei(e,t){var r=new e.constructor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&"proxyCache"!==n){var i=e[n],o=void 0===i?"undefined":m(i);"parent"===n&&"object"===o?t&&(r[n]=t):"source"===n?r[n]=i:Array.isArray(i)?r[n]=i.map(function(e){return Ei(e,r)}):("object"===o&&null!==i&&(i=Ei(i)),r[n]=i)}return r}var Ii=function(){function e(e){for(var t in void 0===e&&(e={}),this.raws={},this[wi]=!1,this[ki]=!0,e)if("nodes"===t){this.nodes=[];for(var r,n=b(e[t]);!(r=n()).done;){var i=r.value;"function"==typeof i.clone?this.append(i.clone()):this.append(i)}}else this[t]=e[t]}var t=e.prototype;return t.addToError=function(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){var t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,"$&"+t.input.from+":"+t.start.line+":"+t.start.column+"$&")}return e},t.after=function(e){return this.parent.insertAfter(this,e),this},t.assign=function(e){for(var t in void 0===e&&(e={}),e)this[t]=e[t];return this},t.before=function(e){return this.parent.insertBefore(this,e),this},t.cleanRaws=function(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between},t.clone=function(e){void 0===e&&(e={});var t=Ei(this);for(var r in e)t[r]=e[r];return t},t.cloneAfter=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertAfter(this,t),t},t.cloneBefore=function(e){void 0===e&&(e={});var t=this.clone(e);return this.parent.insertBefore(this,t),t},t.error=function(e,t){if(void 0===t&&(t={}),this.source){var r=this.rangeBy(t),n=r.end,i=r.start;return this.source.input.error(e,{column:i.column,line:i.line},{column:n.column,line:n.line},t)}return new Si(e)},t.getProxyProcessor=function(){return{get:function(e,t){return"proxyOf"===t?e:"root"===t?function(){return e.root().toProxy()}:e[t]},set:function(e,t,r){return e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0}}},t.markDirty=function(){if(this[wi]){this[wi]=!1;for(var e=this;e=e.parent;)e[wi]=!1}},t.next=function(){if(this.parent){var e=this.parent.index(this);return this.parent.nodes[e+1]}},t.positionBy=function(e,t){var r=this.source.start;if(e.index)r=this.positionInside(e.index,t);else if(e.word){var n=(t=this.toString()).indexOf(e.word);-1!==n&&(r=this.positionInside(n,t))}return r},t.positionInside=function(e,t){for(var r=t||this.toString(),n=this.source.start.column,i=this.source.start.line,o=0;o-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,n)))}},t.loadFile=function(e){if(this.root=Li(e),Ti(e))return this.mapFile=e,Pi(e,"utf-8").toString().trim()},t.loadMap=function(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(d(t,Ri))return Mi.fromSourceMap(t).toString();if(d(t,Mi))return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}var r=t(e);if(r){var n=this.loadFile(r);if(!n)throw new Error("Unable to load previous source map: "+r.toString());return n}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){var i=this.annotation;return e&&(i=Di(Li(e),i)),this.loadFile(i)}}},t.startWith=function(e,t){return!!e&&e.substr(0,t.length)===t},t.withContent=function(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)},e}(),Ui=Fi;Fi.default=Fi;var ji=li.SourceMapConsumer,Bi=li.SourceMapGenerator,$i=li.fileURLToPath,zi=li.pathToFileURL,qi=li.isAbsolute,Vi=li.resolve,Wi=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},Hi=li,Gi=di,Ki=Ui,Ji=Symbol("fromOffsetCache"),Yi=Boolean(ji&&Bi),Zi=Boolean(Vi&&qi),Xi=function(){function e(e,t){if(void 0===t&&(t={}),null==e||"object"===(void 0===e?"undefined":m(e))&&!e.toString)throw new Error("PostCSS received "+e+" instead of CSS string");if(this.css=e.toString(),"\ufeff"===this.css[0]||""===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!Zi||/^\w+:\/\//.test(t.from)||qi(t.from)?this.file=t.from:this.file=Vi(t.from)),Zi&&Yi){var r=new Ki(this.css,t);if(r.text){this.map=r;var n=r.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=" "),this.map&&(this.map.file=this.from)}var t=e.prototype;return t.error=function(e,t,r,n){var i,o,s;if(void 0===n&&(n={}),t&&"object"===(void 0===t?"undefined":m(t))){var a=t,c=r;if("number"==typeof a.offset){var l=this.fromOffset(a.offset);t=l.line,r=l.col}else t=a.line,r=a.column;if("number"==typeof c.offset){var u=this.fromOffset(c.offset);o=u.line,s=u.col}else o=c.line,s=c.column}else if(!r){var p=this.fromOffset(t);t=p.line,r=p.col}var h=this.origin(t,r,o,s);return(i=h?new Gi(e,void 0===h.endLine?h.line:{column:h.column,line:h.line},void 0===h.endLine?h.column:{column:h.endColumn,line:h.endLine},h.source,h.file,n.plugin):new Gi(e,void 0===o?t:{column:r,line:t},void 0===o?r:{column:s,line:o},this.css,this.file,n.plugin)).input={column:r,endColumn:s,endLine:o,line:t,source:this.css},this.file&&(zi&&(i.input.url=zi(this.file).toString()),i.input.file=this.file),i},t.fromOffset=function(e){var t;if(this[Ji])t=this[Ji];else{var r=this.css.split("\n");t=new Array(r.length);for(var n=0,i=0,o=r.length;i=t[t.length-1])s=t.length-1;else for(var a,c=t.length-2;s>1)])c=a-1;else{if(!(e>=t[a+1])){s=a;break}s=a+1}return{col:e-t[s]+1,line:s+1}},t.mapResolve=function(e){return/^\w+:\/\//.test(e)?e:Vi(this.map.consumer().sourceRoot||this.map.root||".",e)},t.origin=function(e,t,r,n){if(!this.map)return!1;var i,o,s=this.map.consumer(),a=s.originalPositionFor({column:t,line:e});if(!a.source)return!1;"number"==typeof r&&(i=s.originalPositionFor({column:n,line:r})),o=qi(a.source)?zi(a.source):new URL(a.source,this.map.consumer().sourceRoot||zi(this.map.mapFile));var c={column:a.column,endColumn:i&&i.column,endLine:i&&i.line,line:a.line,url:o.toString()};if("file:"===o.protocol){if(!$i)throw new Error("file: protocol is not available in this PostCSS build");c.file=$i(o)}var l=s.sourceContentFor(a.source);return l&&(c.source=l),c},t.toJSON=function(){for(var e={},t=0,r=["hasBOM","css","file","id"];t=0;t--)"comment"===(e=this.root.nodes[t]).type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t);else this.css&&(this.css=this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm,""))},t.generate=function(){if(this.clearAnnotation(),lo&&co&&this.isMap())return this.generateMap();var e="";return this.stringify(this.root,function(t){e+=t}),[e]},t.generateMap=function(){if(this.root)this.generateString();else if(1===this.previous().length){var e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=to.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new to({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]},t.generateString=function(){var e=this;this.css="",this.map=new to({file:this.outputFile(),ignoreInvalidMapping:!0});var t,r,n=1,i=1,o="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,function(a,c,l){if(e.css+=a,c&&"end"!==l&&(s.generated.line=n,s.generated.column=i-1,c.source&&c.source.start?(s.source=e.sourcePath(c),s.original.line=c.source.start.line,s.original.column=c.source.start.column-1,e.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,e.map.addMapping(s))),(t=a.match(/\n/g))?(n+=t.length,r=a.lastIndexOf("\n"),i=a.length-r):i+=a.length,c&&"start"!==l){var u=c.parent||{raws:{}};("decl"===c.type||"atrule"===c.type&&!c.nodes)&&c===u.last&&!u.raws.semicolon||(c.source&&c.source.end?(s.source=e.sourcePath(c),s.original.line=c.source.end.line,s.original.column=c.source.end.column-1,s.generated.line=n,s.generated.column=i-2,e.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,s.generated.line=n,s.generated.column=i-1,e.map.addMapping(s)))}})},t.isAnnotation=function(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some(function(e){return e.annotation}))},t.isInline=function(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;var e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some(function(e){return e.inline}))},t.isMap=function(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0},t.isSourcesContent=function(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some(function(e){return e.withContent()})},t.outputFile=function(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"},t.path=function(e){if(this.mapOpts.absolute)return e;if(60===e.charCodeAt(0))return e;if(/^\w+:\/\//.test(e))return e;var t=this.memoizedPaths.get(e);if(t)return t;var r=this.opts.to?ro(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(r=ro(io(r,this.mapOpts.annotation)));var n=no(r,e);return this.memoizedPaths.set(e,n),n},t.previous=function(){var e=this;if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(function(t){if(t.source&&t.source.input.map){var r=t.source.input.map;e.previousMaps.includes(r)||e.previousMaps.push(r)}});else{var t=new ao(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps},t.setSourcesContent=function(){var e=this,t={};if(this.root)this.root.walk(function(r){if(r.source){var n=r.source.input.from;if(n&&!t[n]){t[n]=!0;var i=e.usesFileUrls?e.toFileUrl(n):e.toUrl(e.path(n));e.map.setSourceContent(i,r.source.input.css)}}});else if(this.css){var r=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(r,this.css)}},t.sourcePath=function(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))},t.toBase64=function(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))},t.toFileUrl=function(e){var t=this.memoizedFileURLs.get(e);if(t)return t;if(so){var r=so(e).toString();return this.memoizedFileURLs.set(e,r),r}throw new Error("`map.absolute` option is not available in this PostCSS build")},t.toUrl=function(e){var t=this.memoizedURLs.get(e);if(t)return t;"\\"===oo&&(e=e.replace(/\\/g,"/"));var r=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,r),r},e}(),po=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="comment",r}return h(t,e),t}(Oi),ho=po;po.default=po;var fo,go,mo,vo,yo=fi.isClean,bo=fi.my,_o=Ai,wo=ho;function ko(e){return e.map(function(e){return e.nodes&&(e.nodes=ko(e.nodes)),delete e.source,e})}function So(e){if(e[yo]=!1,e.proxyOf.nodes)for(var t,r=b(e.proxyOf.nodes);!(t=r()).done;)So(t.value)}var xo=function(e){function t(){return e.apply(this,arguments)||this}h(t,e);var r=t.prototype;return r.append=function(){for(var e=arguments.length,t=new Array(e),r=0;r1?t-1:0),i=1;i=e&&(this.indexes[r]=t-1);return this.markDirty(),this},r.replaceValues=function(e,t,r){return r||(r=t,t={}),this.walkDecls(function(n){t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))}),this.markDirty(),this},r.some=function(e){return this.nodes.some(e)},r.walk=function(e){return this.each(function(t,r){var n;try{n=e(t,r)}catch(e){throw t.addToError(e)}return!1!==n&&t.walk&&(n=t.walk(e)),n})},r.walkAtRules=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("atrule"===r.type&&e.test(r.name))return t(r,n)}):this.walk(function(r,n){if("atrule"===r.type&&r.name===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("atrule"===e.type)return t(e,r)}))},r.walkComments=function(e){return this.walk(function(t,r){if("comment"===t.type)return e(t,r)})},r.walkDecls=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("decl"===r.type&&e.test(r.prop))return t(r,n)}):this.walk(function(r,n){if("decl"===r.type&&r.prop===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("decl"===e.type)return t(e,r)}))},r.walkRules=function(e,t){return t?d(e,RegExp)?this.walk(function(r,n){if("rule"===r.type&&e.test(r.selector))return t(r,n)}):this.walk(function(r,n){if("rule"===r.type&&r.selector===e)return t(r,n)}):(t=e,this.walk(function(e,r){if("rule"===e.type)return t(e,r)}))},l(t,[{key:"first",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}},{key:"last",get:function(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}}]),t}(Oi);xo.registerParse=function(e){fo=e},xo.registerRule=function(e){go=e},xo.registerAtRule=function(e){mo=e},xo.registerRoot=function(e){vo=e};var Co=xo;xo.default=xo,xo.rebuild=function(e){"atrule"===e.type?Object.setPrototypeOf(e,mo.prototype):"rule"===e.type?Object.setPrototypeOf(e,go.prototype):"decl"===e.type?Object.setPrototypeOf(e,_o.prototype):"comment"===e.type?Object.setPrototypeOf(e,wo.prototype):"root"===e.type&&Object.setPrototypeOf(e,vo.prototype),e[bo]=!0,e.nodes&&e.nodes.forEach(function(e){xo.rebuild(e)})};var Eo,Io,Oo=function(e){function t(t){var r;return(r=e.call(this,u({type:"document"},t))||this).nodes||(r.nodes=[]),r}return h(t,e),t.prototype.toResult=function(e){return void 0===e&&(e={}),new Eo(new Io,this,e).stringify()},t}(Co);Oo.registerLazyResult=function(e){Eo=e},Oo.registerProcessor=function(e){Io=e};var No=Oo;Oo.default=Oo;var Ao=function(){function e(e,t){if(void 0===t&&(t={}),this.type="warning",this.text=e,t.node&&t.node.source){var r=t.node.rangeBy(t);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(var n in t)this[n]=t[n]}return e.prototype.toString=function(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text},e}(),Ro=Ao;Ao.default=Ao;var Mo=Ro,To=function(){function e(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}var t=e.prototype;return t.toString=function(){return this.css},t.warn=function(e,t){void 0===t&&(t={}),t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);var r=new Mo(e,t);return this.messages.push(r),r},t.warnings=function(){return this.messages.filter(function(e){return"warning"===e.type})},l(e,[{key:"content",get:function(){return this.css}}]),e}(),Po=To;To.default=To;var Lo="'".charCodeAt(0),Do='"'.charCodeAt(0),Fo="\\".charCodeAt(0),Uo="/".charCodeAt(0),jo="\n".charCodeAt(0),Bo=" ".charCodeAt(0),$o="\f".charCodeAt(0),zo="\t".charCodeAt(0),qo="\r".charCodeAt(0),Vo="[".charCodeAt(0),Wo="]".charCodeAt(0),Ho="(".charCodeAt(0),Go=")".charCodeAt(0),Ko="{".charCodeAt(0),Jo="}".charCodeAt(0),Yo=";".charCodeAt(0),Zo="*".charCodeAt(0),Xo=":".charCodeAt(0),Qo="@".charCodeAt(0),es=/[\t\n\f\r "#'()/;[\\\]{}]/g,ts=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,rs=/.[\r\n"'(/\\]/,ns=/[\da-f]/i,is=Co,os=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="atrule",r}h(t,e);var r=t.prototype;return r.append=function(){for(var t=arguments.length,r=new Array(t),n=0;n1?r.raws.before=this.nodes[1].raws.before:delete r.raws.before;else if(this.first!==r)for(var o,s=b(i);!(o=s()).done;)o.value.raws.before=r.raws.before;return i},r.removeChild=function(t,r){var n=this.index(t);return!r&&0===n&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),e.prototype.removeChild.call(this,t)},r.toResult=function(e){return void 0===e&&(e={}),new as(new cs,this,e).stringify()},t}(ls);us.registerLazyResult=function(e){as=e},us.registerProcessor=function(e){cs=e};var ps=us;us.default=us,ls.registerRoot(us);var hs={comma:function(e){return hs.split(e,[","],!0)},space:function(e){return hs.split(e,[" ","\n","\t"])},split:function(e,t,r){for(var n,i=[],o="",s=!1,a=0,c=!1,l="",u=!1,p=b(e);!(n=p()).done;){var h=n.value;u?u=!1:"\\"===h?u=!0:c?h===l&&(c=!1):'"'===h||"'"===h?(c=!0,l=h):"("===h?a+=1:")"===h?a>0&&(a-=1):0===a&&t.includes(h)&&(s=!0),s?(""!==o&&i.push(o.trim()),o="",s=!1):o+=h}return(r||""!==o)&&i.push(o.trim()),i}},ds=hs;hs.default=hs;var fs=Co,gs=ds,ms=function(e){function t(t){var r;return(r=e.call(this,t)||this).type="rule",r.nodes||(r.nodes=[]),r}return h(t,e),l(t,[{key:"selectors",get:function(){return gs.comma(this.selector)},set:function(e){var t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}}]),t}(fs),vs=ms;ms.default=ms,fs.registerRule(ms);var ys=Ai,bs=ho,_s=ss,ws=ps,ks=vs,Ss={empty:!0,space:!0},xs=function(){function e(e){this.input=e,this.root=new ws,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}var t=e.prototype;return t.atrule=function(e){var t,r,n,i=new _s;i.name=e[1].slice(1),""===i.name&&this.unnamedAtrule(i,e),this.init(i,e[2]);for(var o=!1,s=!1,a=[],c=[];!this.tokenizer.endOfFile();){if("("===(t=(e=this.tokenizer.nextToken())[0])||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){i.source.end=this.getPosition(e[2]),i.source.end.offset++,this.semicolon=!0;break}if("{"===t){s=!0;break}if("}"===t){if(a.length>0){for(r=a[n=a.length-1];r&&"space"===r[0];)r=a[--n];r&&(i.source.end=this.getPosition(r[3]||r[2]),i.source.end.offset++)}this.end(e);break}a.push(e)}else a.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(i.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(i,"params",a),o&&(e=a[a.length-1],i.source.end=this.getPosition(e[3]||e[2]),i.source.end.offset++,this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),s&&(i.nodes=[],this.current=i)},t.checkMissedSemicolon=function(e){var t=this.colon(e);if(!1!==t){for(var r,n=0,i=t-1;i>=0&&("space"===(r=e[i])[0]||2!==(n+=1));i--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}},t.colon=function(e){for(var t,r,n,i,o=0,s=b(e.entries());!(i=s()).done;){var a=i.value,c=a[0];if("("===(r=(t=a[1])[0])&&(o+=1),")"===r&&(o-=1),0===o&&":"===r){if(n){if("word"===n[0]&&"progid"===n[1])continue;return c}this.doubleColon(t)}n=t}return!1},t.comment=function(e){var t=new bs;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;var r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{var n=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}},t.createTokenizer=function(){this.tokenizer=function(e,t){void 0===t&&(t={});var r,n,i,o,s,a,c,l,u,p,h=e.css.valueOf(),d=t.ignoreErrors,f=h.length,g=0,m=[],v=[];function y(t){throw e.error("Unclosed "+t,g)}return{back:function(e){v.push(e)},endOfFile:function(){return 0===v.length&&g>=f},nextToken:function(e){if(v.length)return v.pop();if(!(g>=f)){var t=!!e&&e.ignoreUnclosed;switch(r=h.charCodeAt(g)){case jo:case Bo:case zo:case qo:case $o:n=g;do{n+=1,r=h.charCodeAt(n)}while(r===Bo||r===jo||r===zo||r===qo||r===$o);p=["space",h.slice(g,n)],g=n-1;break;case Vo:case Wo:case Ko:case Jo:case Xo:case Yo:case Go:var b=String.fromCharCode(r);p=[b,b,g];break;case Ho:if(l=m.length?m.pop()[1]:"",u=h.charCodeAt(g+1),"url"===l&&u!==Lo&&u!==Do&&u!==Bo&&u!==jo&&u!==zo&&u!==$o&&u!==qo){n=g;do{if(a=!1,-1===(n=h.indexOf(")",n+1))){if(d||t){n=g;break}y("bracket")}for(c=n;h.charCodeAt(c-1)===Fo;)c-=1,a=!a}while(a);p=["brackets",h.slice(g,n+1),g,n],g=n}else n=h.indexOf(")",g+1),o=h.slice(g,n+1),-1===n||rs.test(o)?p=["(","(",g]:(p=["brackets",o,g,n],g=n);break;case Lo:case Do:i=r===Lo?"'":'"',n=g;do{if(a=!1,-1===(n=h.indexOf(i,n+1))){if(d||t){n=g+1;break}y("string")}for(c=n;h.charCodeAt(c-1)===Fo;)c-=1,a=!a}while(a);p=["string",h.slice(g,n+1),g,n],g=n;break;case Qo:es.lastIndex=g+1,es.test(h),n=0===es.lastIndex?h.length-1:es.lastIndex-2,p=["at-word",h.slice(g,n+1),g,n],g=n;break;case Fo:for(n=g,s=!0;h.charCodeAt(n+1)===Fo;)n+=1,s=!s;if(r=h.charCodeAt(n+1),s&&r!==Uo&&r!==Bo&&r!==jo&&r!==zo&&r!==qo&&r!==$o&&(n+=1,ns.test(h.charAt(n)))){for(;ns.test(h.charAt(n+1));)n+=1;h.charCodeAt(n+1)===Bo&&(n+=1)}p=["word",h.slice(g,n+1),g,n],g=n;break;default:r===Uo&&h.charCodeAt(g+1)===Zo?(0===(n=h.indexOf("*/",g+2)+1)&&(d||t?n=h.length:y("comment")),p=["comment",h.slice(g,n+1),g,n],g=n):(ts.lastIndex=g+1,ts.test(h),n=0===ts.lastIndex?h.length-1:ts.lastIndex-2,p=["word",h.slice(g,n+1),g,n],m.push(p),g=n)}return g++,p}},position:function(){return g}}}(this.input)},t.decl=function(e,t){var r=new ys;this.init(r,e[0][2]);var n,i=e[e.length-1];for(";"===i[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(i[3]||i[2]||function(e){for(var t=e.length-1;t>=0;t--){var r=e[t],n=r[3]||r[2];if(n)return n}}(e)),r.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){var o=e[0][0];if(":"===o||"space"===o||"comment"===o)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(":"===(n=e.shift())[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));for(var s,a=[];e.length&&("space"===(s=e[0][0])||"comment"===s);)a.push(e.shift());this.precheckMissedSemicolon(e);for(var c=e.length-1;c>=0;c--){if("!important"===(n=e[c])[1].toLowerCase()){r.important=!0;var l=this.stringFrom(e,c);" !important"!==(l=this.spacesFromEnd(e)+l)&&(r.raws.important=l);break}if("important"===n[1].toLowerCase()){for(var u=e.slice(0),p="",h=c;h>0;h--){var d=u[h][0];if(0===p.trim().indexOf("!")&&"space"!==d)break;p=u.pop()[1]+p}0===p.trim().indexOf("!")&&(r.important=!0,r.raws.important=p,e=u)}if("space"!==n[0]&&"comment"!==n[0])break}var f=e.some(function(e){return"space"!==e[0]&&"comment"!==e[0]});f&&(r.raws.between+=a.map(function(e){return e[1]}).join(""),a=[]),this.raw(r,"value",a.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)},t.doubleColon=function(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})},t.emptyRule=function(e){var t=new ks;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t},t.end=function(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)},t.endFile=function(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())},t.freeSemicolon=function(e){if(this.spaces+=e[1],this.current.nodes){var t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}},t.getPosition=function(e){var t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}},t.init=function(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)},t.other=function(e){for(var t=!1,r=null,n=!1,i=null,o=[],s=e[1].startsWith("--"),a=[],c=e;c;){if(r=c[0],a.push(c),"("===r||"["===r)i||(i=c),o.push("("===r?")":"]");else if(s&&n&&"{"===r)i||(i=c),o.push("}");else if(0===o.length){if(";"===r){if(n)return void this.decl(a,s);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),t=!0;break}":"===r&&(n=!0)}else r===o[o.length-1]&&(o.pop(),0===o.length&&(i=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),o.length>0&&this.unclosedBracket(i),t&&n){if(!s)for(;a.length&&("space"===(c=a[a.length-1][0])||"comment"===c);)this.tokenizer.back(a.pop());this.decl(a,s)}else this.unknownWord(a)},t.parse=function(){for(var e;!this.tokenizer.endOfFile();)switch((e=this.tokenizer.nextToken())[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()},t.precheckMissedSemicolon=function(){},t.raw=function(e,t,r,n){for(var i,o,s,a,c=r.length,l="",u=!0,p=0;p0},t.runAsync=function(){var e=this;return a(function(){var t,r,n,i,o,s,a,c,l,u,p,h;return _(this,function(d){switch(d.label){case 0:e.plugin=0,t=0,d.label=1;case 1:if(!(t0))return[3,13];if(!zs(a=e.visitTick(s)))return[3,12];d.label=9;case 9:return d.trys.push([9,11,,12]),[4,a];case 10:return d.sent(),[3,12];case 11:throw c=d.sent(),l=s[s.length-1].node,e.handleError(c,l);case 12:return[3,8];case 13:return[3,7];case 14:if(!e.listeners.OnceExit)return[3,18];u=function(){var t,r,n,i,s;return _(this,function(a){switch(a.label){case 0:t=h.value,r=t[0],n=t[1],e.result.lastPlugin=r,a.label=1;case 1:return a.trys.push([1,6,,7]),"document"!==o.type?[3,3]:(i=o.nodes.map(function(t){return n(t,e.helpers)}),[4,Promise.all(i)]);case 2:return a.sent(),[3,5];case 3:return[4,n(o,e.helpers)];case 4:a.sent(),a.label=5;case 5:return[3,7];case 6:throw s=a.sent(),e.handleError(s);case 7:return[2]}})},p=b(e.listeners.OnceExit),d.label=15;case 15:return(h=p()).done?[3,18]:[5,w(u())];case 16:d.sent(),d.label=17;case 17:return[3,15];case 18:return e.processed=!0,[2,e.stringify()]}})})()},t.runOnRoot=function(e){var t=this;this.result.lastPlugin=e;try{if("object"===(void 0===e?"undefined":m(e))&&e.Once){if("document"===this.result.root.type){var r=this.result.root.nodes.map(function(r){return e.Once(r,t.helpers)});return zs(r[0])?Promise.all(r):r}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}},t.stringify=function(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();var e=this.result.opts,t=Ts;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);var r=new Ms(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result},t.sync=function(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(var e,t=b(this.plugins);!(e=t()).done;){var r=e.value;if(zs(this.runOnRoot(r)))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){for(var n=this.result.root;!n[As];)n[As]=!0,this.walkSync(n);if(this.listeners.OnceExit)if("document"===n.type)for(var i,o=b(n.nodes);!(i=o()).done;){var s=i.value;this.visitSync(this.listeners.OnceExit,s)}else this.visitSync(this.listeners.OnceExit,n)}return this.result},t.then=function(e,t){return this.async().then(e,t)},t.toString=function(){return this.css},t.visitSync=function(e,t){for(var r,n=b(e);!(r=n()).done;){var i=r.value,o=i[0],s=i[1];this.result.lastPlugin=o;var a=void 0;try{a=s(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(zs(a))throw this.getAsyncError()}},t.visitTick=function(e){var t=e[e.length-1],r=t.node,n=t.visitors;if("root"===r.type||"document"===r.type||r.parent){if(n.length>0&&t.visitorIndext?(n&&(clearTimeout(n),n=null),i=c,e.apply(u,s)):n||!1===r.trailing||(n=setTimeout(function(){i=!1===r.leading?0:Date.now(),n=null,e.apply(u,s)},l))}}function sc(e,t,r,n,i){void 0===i&&(i=window);var o=i.Object.getOwnPropertyDescriptor(e,t);return i.Object.defineProperty(e,t,n?r:{set:function(e){var t=this;setTimeout(function(){r.set.call(t,e)},0),o&&o.set&&o.set.call(this,e)}}),function(){return sc(e,t,o||{},!0)}}"undefined"!=typeof window&&window.Proxy&&window.Reflect&&(ic=new Proxy(ic,{get:function(e,t,r){return"map"===t&&console.error(nc),Reflect.get(e,t,r)}}));var ac=Date.now;function cc(e){var t,r,n,i,o=e.document;return{left:o.scrollingElement?o.scrollingElement.scrollLeft:void 0!==e.pageXOffset?e.pageXOffset:o.documentElement.scrollLeft||(null==o?void 0:o.body)&&(null==(t=Ya(o.body))?void 0:t.scrollLeft)||(null==(r=null==o?void 0:o.body)?void 0:r.scrollLeft)||0,top:o.scrollingElement?o.scrollingElement.scrollTop:void 0!==e.pageYOffset?e.pageYOffset:(null==o?void 0:o.documentElement.scrollTop)||(null==o?void 0:o.body)&&(null==(n=Ya(o.body))?void 0:n.scrollTop)||(null==(i=null==o?void 0:o.body)?void 0:i.scrollTop)||0}}function lc(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function uc(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function pc(e){return e?e.nodeType===e.ELEMENT_NODE?e:Ya(e):null}function hc(e,t,r,n){if(!e)return!1;var i=pc(e);if(!i)return!1;try{if("string"==typeof t){if(i.classList.contains(t))return!0;if(n&&null!==i.closest("."+t))return!0}else if(ge(i,t,n))return!0}catch(e){}if(r){if(i.matches(r))return!0;if(n&&null!==i.closest(r))return!0}return!1}function dc(e,t,r){return!("TITLE"!==e.tagName||!r.headTitleMutations)||-2===t.getId(e)}function fc(e,t){if($(e))return!1;var r=t.getId(e);if(!t.has(r))return!0;var n=Ja(e);return(!n||n.nodeType!==e.DOCUMENT_NODE)&&(!n||fc(n,t))}function gc(e){return Boolean(e.changedTouches)}function mc(e,t){return Boolean("IFRAME"===e.nodeName&&t.getMeta(e))}function vc(e,t){return Boolean("LINK"===e.nodeName&&e.nodeType===e.ELEMENT_NODE&&e.getAttribute&&"stylesheet"===e.getAttribute("rel")&&t.getMeta(e))}function yc(e){return!!e&&(d(e,Fa)&&"shadowRoot"in e?Boolean(e.shadowRoot):Boolean(tc(e)))}/[1-9][0-9]{12}/.test(Date.now().toString())||(ac=function(){return(new Date).getTime()});var bc=function(){function e(){x(this,"id",1),x(this,"styleIDMap",new WeakMap),x(this,"idStyleMap",new Map)}var t=e.prototype;return t.getId=function(e){var t;return null!=(t=this.styleIDMap.get(e))?t:-1},t.has=function(e){return this.styleIDMap.has(e)},t.add=function(e,t){return this.has(e)?this.getId(e):(r=void 0===t?this.id++:t,this.styleIDMap.set(e,r),this.idStyleMap.set(r,e),r);var r},t.getStyle=function(e){return this.idStyleMap.get(e)||null},t.reset=function(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1},t.generateId=function(){return this.id++},e}();function _c(e){var t,r=null;return"getRootNode"in e&&(null==(t=Qa(e))?void 0:t.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&ec(Qa(e))&&(r=ec(Qa(e))),r}function wc(e){var t=e.ownerDocument;return!!t&&(Xa(t,e)||function(e){var t=e.ownerDocument;if(!t)return!1;var r=function(e){for(var t,r=e;t=_c(r);)r=t;return r}(e);return Xa(t,r)}(e))}var kc=function(e){return e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e}(kc||{}),Sc=function(e){return e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e}(Sc||{}),xc=function(e){return e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e}(xc||{}),Cc=function(e){return e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e}(Cc||{}),Ec=function(e){return e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e}(Ec||{}),Ic=function(e){return e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e}(Ic||{}),Oc=function(e){return e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e}(Oc||{});function Nc(e){return"__ln"in e}var Ac,Rc=function(){function e(){x(this,"length",0),x(this,"head",null),x(this,"tail",null)}var t=e.prototype;return t.get=function(e){if(e>=this.length)throw new Error("Position outside of list range");for(var t=this.head,r=0;r0&&this.stylesheetManager.adoptStyleSheets(e.contentDocument.adoptedStyleSheets,this.mirror.getId(e.contentDocument))},t.handleMessage=function(e){var t=e;if("rrweb"===t.data.type&&t.origin===t.data.origin&&e.source){var r=this.crossOriginIframeMap.get(e.source);if(r){var n=this.transformCrossOriginEvent(r,t.data.event);n&&this.wrappedEmit(n,t.data.isCheckout)}}},t.transformCrossOriginEvent=function(e,t){var r,n=this;switch(t.type){case kc.FullSnapshot:this.crossOriginIframeMirror.reset(e),this.crossOriginIframeStyleMirror.reset(e),this.replaceIdOnNode(t.data.node,e);var i=t.data.node.id;return this.crossOriginIframeRootIdMap.set(e,i),this.patchRootIdOnNode(t.data.node,i),{timestamp:t.timestamp,type:kc.IncrementalSnapshot,data:{source:Sc.Mutation,adds:[{parentId:this.mirror.getId(e),nextId:null,node:t.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}};case kc.Meta:case kc.Load:case kc.DomContentLoaded:return!1;case kc.Plugin:return t;case kc.Custom:return this.replaceIds(t.data.payload,e,["id","parentId","previousId","nextId"]),t;case kc.IncrementalSnapshot:switch(t.data.source){case Sc.Mutation:return t.data.adds.forEach(function(t){n.replaceIds(t,e,["parentId","nextId","previousId"]),n.replaceIdOnNode(t.node,e);var r=n.crossOriginIframeRootIdMap.get(e);r&&n.patchRootIdOnNode(t.node,r)}),t.data.removes.forEach(function(t){n.replaceIds(t,e,["parentId","id"])}),t.data.attributes.forEach(function(t){n.replaceIds(t,e,["id"])}),t.data.texts.forEach(function(t){n.replaceIds(t,e,["id"])}),t;case Sc.Drag:case Sc.TouchMove:case Sc.MouseMove:return t.data.positions.forEach(function(t){n.replaceIds(t,e,["id"])}),t;case Sc.ViewportResize:return!1;case Sc.MediaInteraction:case Sc.MouseInteraction:case Sc.Scroll:case Sc.CanvasMutation:case Sc.Input:return this.replaceIds(t.data,e,["id"]),t;case Sc.StyleSheetRule:case Sc.StyleDeclaration:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleId"]),t;case Sc.Font:return t;case Sc.Selection:return t.data.ranges.forEach(function(t){n.replaceIds(t,e,["start","end"])}),t;case Sc.AdoptedStyleSheet:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleIds"]),null==(r=t.data.styles)||r.forEach(function(t){n.replaceStyleIds(t,e,["styleId"])}),t}}return!1},t.replace=function(e,t,r,n){for(var i,o=b(n);!(i=o()).done;){var s=i.value;(Array.isArray(t[s])||"number"==typeof t[s])&&(Array.isArray(t[s])?t[s]=e.getIds(r,t[s]):t[s]=e.getId(r,t[s]))}return t},t.replaceIds=function(e,t,r){return this.replace(this.crossOriginIframeMirror,e,t,r)},t.replaceStyleIds=function(e,t,r){return this.replace(this.crossOriginIframeStyleMirror,e,t,r)},t.replaceIdOnNode=function(e,t){var r=this;this.replaceIds(e,t,["id","rootId"]),"childNodes"in e&&e.childNodes.forEach(function(e){r.replaceIdOnNode(e,t)})},t.patchRootIdOnNode=function(e,t){var r=this;e.type===Oc.Document||e.rootId||(e.rootId=t),"childNodes"in e&&e.childNodes.forEach(function(e){r.patchRootIdOnNode(e,t)})},e}(),Qc=function(){function e(e){x(this,"shadowDoms",new WeakSet),x(this,"mutationCb"),x(this,"scrollCb"),x(this,"bypassOptions"),x(this,"mirror"),x(this,"restoreHandlers",[]),this.mutationCb=e.mutationCb,this.scrollCb=e.scrollCb,this.bypassOptions=e.bypassOptions,this.mirror=e.mirror,this.init()}var t=e.prototype;return t.init=function(){this.reset(),this.patchAttachShadow(Element,document)},t.addShadowRoot=function(e,t){var r=this;if(z(e)&&!this.shadowDoms.has(e)){this.shadowDoms.add(e);var n=$c(u({},this.bypassOptions,{doc:t,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this}),e);this.restoreHandlers.push(function(){return n.disconnect()}),this.restoreHandlers.push(zc(u({},this.bypassOptions,{scrollCb:this.scrollCb,doc:e,mirror:this.mirror}))),setTimeout(function(){e.adoptedStyleSheets&&e.adoptedStyleSheets.length>0&&r.bypassOptions.stylesheetManager.adoptStyleSheets(e.adoptedStyleSheets,r.mirror.getId(ec(e))),r.restoreHandlers.push(Gc({mirror:r.mirror,stylesheetManager:r.bypassOptions.stylesheetManager},e))},0)}},t.observeAttachShadow=function(e){e.contentWindow&&e.contentDocument&&this.patchAttachShadow(e.contentWindow.Element,e.contentDocument)},t.patchAttachShadow=function(e,t){var r=this;this.restoreHandlers.push(Ga(e.prototype,"attachShadow",function(e){return function(n){var i=e.call(this,n),o=tc(this);return o&&wc(this)&&r.addShadowRoot(o,t),i}}))},t.reset=function(){this.restoreHandlers.forEach(function(e){try{e()}catch(e){}}),this.restoreHandlers=[],this.shadowDoms=new WeakSet},e}(),el="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tl="undefined"==typeof Uint8Array?[]:new Uint8Array(256),rl=0;rl<64;rl++)tl[el.charCodeAt(rl)]=rl;var nl=new Map,il=function(e,t,r){if(e&&(al(e,t)||"object"===(void 0===e?"undefined":m(e)))){var n=function(e,t){var r=nl.get(e);return r||(r=new Map,nl.set(e,r)),r.has(t)||r.set(t,[]),r.get(t)}(r,e.constructor.name),i=n.indexOf(e);return-1===i&&(i=n.length,n.push(e)),i}};function ol(e,t,r){return d(e,Array)?e.map(function(e){return ol(e,t,r)}):null===e?e:d(e,Float32Array)||d(e,Float64Array)||d(e,Int32Array)||d(e,Uint32Array)||d(e,Uint8Array)||d(e,Uint16Array)||d(e,Int16Array)||d(e,Int8Array)||d(e,Uint8ClampedArray)?{rr_type:e.constructor.name,args:[Object.values(e)]}:d(e,ArrayBuffer)?{rr_type:e.constructor.name,base64:function(e){var t,r=new Uint8Array(e),n=r.length,i="";for(t=0;t>2],i+=el[(3&r[t])<<4|r[t+1]>>4],i+=el[(15&r[t+1])<<2|r[t+2]>>6],i+=el[63&r[t+2]];return n%3==2?i=i.substring(0,i.length-1)+"=":n%3==1&&(i=i.substring(0,i.length-2)+"=="),i}(e)}:d(e,DataView)?{rr_type:e.constructor.name,args:[ol(e.buffer,t,r),e.byteOffset,e.byteLength]}:d(e,HTMLImageElement)?{rr_type:e.constructor.name,src:e.src}:d(e,HTMLCanvasElement)?{rr_type:"HTMLImageElement",src:e.toDataURL()}:d(e,ImageData)?{rr_type:e.constructor.name,args:[ol(e.data,t,r),e.width,e.height]}:al(e,t)||"object"===(void 0===e?"undefined":m(e))?{rr_type:e.constructor.name,index:il(e,t,r)}:e}var sl=function(e,t,r){return e.map(function(e){return ol(e,t,r)})},al=function(e,t){var r=["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter(function(e){return"function"==typeof t[e]});return Boolean(r.find(function(r){return d(e,t[r])}))};function cl(e,t,r,n){var i=[];try{var o=Ga(e.HTMLCanvasElement.prototype,"getContext",function(e){return function(i){for(var o=arguments.length,s=new Array(o>1?o-1:0),a=1;a0&&(o.styles=s),this.adoptedStyleSheetCb(o)}},t.reset=function(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet},t.trackStylesheetInLinkElement=function(e){},e}(),bl=function(){function e(){x(this,"nodeMap",new WeakMap),x(this,"active",!1)}var t=e.prototype;return t.inOtherBuffer=function(e,t){var r=this.nodeMap.get(e);return r&&Array.from(r).some(function(e){return e!==t})},t.add=function(e,t){var r=this;this.active||(this.active=!0,requestAnimationFrame(function(){r.nodeMap=new WeakMap,r.active=!1})),this.nodeMap.set(e,(this.nodeMap.get(e)||new Set).add(t))},t.destroy=function(){},e}(),_l=!1;try{if(2!==Array.from([1],function(e){return 2*e})[0]){var wl=document.createElement("iframe");document.body.appendChild(wl),Array.from=(null==(k=wl.contentWindow)?void 0:k.Array.from)||Array.from,document.body.removeChild(wl)}}catch(e){console.debug("Unable to override Array.from",e)}var kl,Sl,xl=new W;function Cl(e){void 0===e&&(e={});var t=e.emit,r=e.checkoutEveryNms,n=e.checkoutEveryNth,i=e.blockClass,o=void 0===i?"rr-block":i,s=e.blockSelector,a=void 0===s?null:s,c=e.ignoreClass,l=void 0===c?"rr-ignore":c,p=e.ignoreSelector,h=void 0===p?null:p,d=e.maskTextClass,f=void 0===d?"rr-mask":d,g=e.maskTextSelector,m=void 0===g?null:g,v=e.inlineStylesheet,y=void 0===v||v,_=e.maskAllInputs,w=e.maskInputOptions,k=e.slimDOMOptions,S=e.maskInputFn,x=e.maskTextFn,C=e.hooks,E=e.packFn,I=e.sampling,O=void 0===I?{}:I,N=e.dataURLOptions,A=void 0===N?{}:N,R=e.mousemoveWait,M=e.recordDOM,T=void 0===M||M,P=e.recordCanvas,L=void 0!==P&&P,D=e.recordCrossOriginIframes,F=void 0!==D&&D,U=e.recordAfter,j=void 0===U?"DOMContentLoaded"===e.recordAfter?e.recordAfter:"load":U,B=e.userTriggeredOnInput,$=void 0!==B&&B,z=e.collectFonts,q=void 0!==z&&z,V=e.inlineImages,H=void 0!==V&&V,G=e.plugins,K=e.keepIframeSrcFn,J=void 0===K?function(){return!1}:K,Y=e.ignoreCSSAttributes,Z=void 0===Y?new Set([]):Y,X=e.errorHandler;Ac=X;var Q=!F||window.parent===window,ee=!1;if(!Q)try{window.parent.document&&(ee=!1)}catch(e){ee=!0}if(Q&&!t)throw new Error("emit function is required");if(!Q&&!ee)return function(){};void 0!==R&&void 0===O.mousemove&&(O.mousemove=R),xl.reset();var te,re=!0===_?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0,hidden:!0}:void 0!==w?w:{password:!0},ne=!0===k||"all"===k?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:"all"===k,headMetaDescKeywords:"all"===k,headTitleMutations:"all"===k}:k||{};!function(e){void 0===e&&(e=window),"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach)}();var ie=0,oe=function(e){for(var t,r=b(G||[]);!(t=r()).done;){var n=t.value;n.eventProcessor&&(e=n.eventProcessor(e))}return E&&!ee&&(e=E(e)),e};fl=function(e,i){var o,s=e;if(s.timestamp=ac(),!(null==(o=jc[0])?void 0:o.isFrozen())||s.type===kc.FullSnapshot||s.type===kc.IncrementalSnapshot&&s.data.source===Sc.Mutation||jc.forEach(function(e){return e.unfreeze()}),Q)null==t||t(oe(s),i);else if(ee){var a={type:"rrweb",event:oe(s),origin:window.location.origin,isCheckout:i};window.parent.postMessage(a,"*")}if(s.type===kc.FullSnapshot)te=s,ie=0;else if(s.type===kc.IncrementalSnapshot){if(s.data.source===Sc.Mutation&&s.data.isAttachIframe)return;ie++;var c=n&&ie>=n,l=r&&s.timestamp-te.timestamp>r;(c||l)&&gl(!0)}};for(var se,ae=function(e){fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Mutation},e)})},ce=function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Scroll},e)})},le=function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.CanvasMutation},e)})},ue=new yl({mutationCb:ae,adoptedStyleSheetCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.AdoptedStyleSheet},e)})}}),pe=new Xc({mirror:xl,mutationCb:ae,stylesheetManager:ue,recordCrossOriginIframes:F,wrappedEmit:fl}),he=b(G||[]);!(se=he()).done;){var de=se.value;de.getMirror&&de.getMirror({nodeMirror:xl,crossOriginIframeMirror:pe.crossOriginIframeMirror,crossOriginIframeStyleMirror:pe.crossOriginIframeStyleMirror})}var fe=new bl;ml=new vl({recordCanvas:L,mutationCb:le,win:window,blockClass:o,blockSelector:a,mirror:xl,sampling:O.canvas,dataURLOptions:A});var ge=new Qc({mutationCb:ae,scrollCb:ce,bypassOptions:{blockClass:o,blockSelector:a,maskTextClass:f,maskTextSelector:m,inlineStylesheet:y,maskInputOptions:re,dataURLOptions:A,maskTextFn:x,maskInputFn:S,recordCanvas:L,inlineImages:H,sampling:O,slimDOMOptions:ne,iframeManager:pe,stylesheetManager:ue,canvasManager:ml,keepIframeSrcFn:J,processedNodeManager:fe},mirror:xl});gl=function(e){if(void 0===e&&(e=!1),T){fl({type:kc.Meta,data:{href:window.location.href,width:uc(),height:lc()}},e),ue.reset(),ge.init(),jc.forEach(function(e){return e.lock()});var t=function(e,t){var r=t||{},n=r.mirror,i=void 0===n?new W:n,o=r.blockClass,s=r.blockSelector,a=r.maskTextClass,c=r.maskTextSelector,l=r.inlineStylesheet,u=r.inlineImages,p=r.recordCanvas,h=r.maskAllInputs,d=void 0!==h&&h,f=r.slimDOM,g=void 0!==f&&f,m=r.keepIframeSrcFn;return be(e,{doc:e,mirror:i,blockClass:void 0===o?"rr-block":o,blockSelector:void 0===s?null:s,maskTextClass:void 0===a?"rr-mask":a,maskTextSelector:void 0===c?null:c,skipChild:!1,inlineStylesheet:void 0===l||l,maskInputOptions:!0===d?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0,hidden:!0}:!1===d?{password:!0}:d,maskTextFn:r.maskTextFn,maskInputFn:r.maskInputFn,slimDOMOptions:!0===g||"all"===g?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:"all"===g,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:!1===g?{}:g,dataURLOptions:r.dataURLOptions,inlineImages:void 0!==u&&u,recordCanvas:void 0!==p&&p,preserveWhiteSpace:r.preserveWhiteSpace,onSerialize:r.onSerialize,onIframeLoad:r.onIframeLoad,iframeLoadTimeout:r.iframeLoadTimeout,onStylesheetLoad:r.onStylesheetLoad,stylesheetLoadTimeout:r.stylesheetLoadTimeout,keepIframeSrcFn:void 0===m?function(){return!1}:m,newlyAddedElement:!1})}(document,{mirror:xl,blockClass:o,blockSelector:a,maskTextClass:f,maskTextSelector:m,inlineStylesheet:y,maskAllInputs:re,maskTextFn:x,maskInputFn:S,slimDOM:ne,dataURLOptions:A,recordCanvas:L,inlineImages:H,onSerialize:function(e){mc(e,xl)&&pe.addIframe(e),vc(e,xl)&&ue.trackLinkElement(e),yc(e)&&ge.addShadowRoot(tc(e),document)},onIframeLoad:function(e,t){pe.attachIframe(e,t),ge.observeAttachShadow(e)},onStylesheetLoad:function(e,t){ue.attachLinkElement(e,t)},keepIframeSrcFn:J});if(!t)return console.warn("Failed to snapshot the document");fl({type:kc.FullSnapshot,data:{node:t,initialOffset:cc(window)}},e),jc.forEach(function(e){return e.unlock()}),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&ue.adoptStyleSheets(document.adoptedStyleSheets,xl.getId(document))}};try{var me=[],ve=function(e){var t;return Uc(Kc)({mutationCb:ae,mousemoveCb:function(e,t){return fl({type:kc.IncrementalSnapshot,data:{source:t,positions:e}})},mouseInteractionCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.MouseInteraction},e)})},scrollCb:ce,viewportResizeCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.ViewportResize},e)})},inputCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Input},e)})},mediaInteractionCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.MediaInteraction},e)})},styleSheetRuleCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.StyleSheetRule},e)})},styleDeclarationCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.StyleDeclaration},e)})},canvasMutationCb:le,fontCb:function(e){return fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Font},e)})},selectionCb:function(e){fl({type:kc.IncrementalSnapshot,data:u({source:Sc.Selection},e)})},customElementCb:function(e){fl({type:kc.IncrementalSnapshot,data:u({source:Sc.CustomElement},e)})},blockClass:o,ignoreClass:l,ignoreSelector:h,maskTextClass:f,maskTextSelector:m,maskInputOptions:re,inlineStylesheet:y,sampling:O,recordDOM:T,recordCanvas:L,inlineImages:H,userTriggeredOnInput:$,collectFonts:q,doc:e,maskInputFn:S,maskTextFn:x,keepIframeSrcFn:J,blockSelector:a,slimDOMOptions:ne,dataURLOptions:A,mirror:xl,iframeManager:pe,stylesheetManager:ue,shadowDomManager:ge,processedNodeManager:fe,canvasManager:ml,ignoreCSSAttributes:Z,plugins:(null==(t=null==G?void 0:G.filter(function(e){return e.observer}))?void 0:t.map(function(e){return{observer:e.observer,options:e.options,callback:function(t){return fl({type:kc.Plugin,data:{plugin:e.name,payload:t}})}}}))||[]},C)};pe.addLoadListener(function(e){try{me.push(ve(e.contentDocument))}catch(e){console.warn(e)}});var ye=function(){gl(),me.push(ve(document)),_l=!0};return"interactive"===document.readyState||"complete"===document.readyState?ye():(me.push(rc("DOMContentLoaded",function(){fl({type:kc.DomContentLoaded,data:{}}),"DOMContentLoaded"===j&&ye()})),me.push(rc("load",function(){fl({type:kc.Load,data:{}}),"load"===j&&ye()},window))),function(){me.forEach(function(e){try{e()}catch(e){String(e).toLowerCase().includes("cross-origin")||console.warn(e)}}),fe.destroy(),_l=!1,Ac=void 0}}catch(e){console.warn(e)}}Cl.addCustomEvent=function(e,t){if(!_l)throw new Error("please add custom event after start recording");fl({type:kc.Custom,data:{tag:e,payload:t}})},Cl.freezePage=function(){jc.forEach(function(e){return e.freeze()})},Cl.takeFullSnapshot=function(e){if(!_l)throw new Error("please take full snapshot after start recording");gl(e)},Cl.mirror=xl,(Sl=kl||(kl={}))[Sl.NotStarted=0]="NotStarted",Sl[Sl.Running=1]="Running",Sl[Sl.Stopped=2]="Stopped",Cl.addCustomEvent,Cl.freezePage,Cl.takeFullSnapshot;var El=Object.defineProperty,Il=function(e,t,r){return function(e,t,r){return t in e?El(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r}(e,"symbol"!==(void 0===t?"undefined":m(t))?t+"":t,r)},Ol=function(){function e(e){Il(this,"fileName"),Il(this,"functionName"),Il(this,"lineNumber"),Il(this,"columnNumber"),this.fileName=e.fileName||"",this.functionName=e.functionName||"",this.lineNumber=e.lineNumber,this.columnNumber=e.columnNumber}return e.prototype.toString=function(){var e=this.lineNumber||"",t=this.columnNumber||"";return this.functionName?this.functionName+" ("+this.fileName+":"+e+":"+t+")":this.fileName+":"+e+":"+t},e}(),Nl=/(^|@)\S+:\d+/,Al=/^\s*at .*(\S+:\d+|\(native\))/m,Rl=/^(eval@)?(\[native code])?$/,Ml={parse:function(e){return e?void 0!==e.stacktrace||void 0!==e["opera#sourceloc"]?this.parseOpera(e):e.stack&&e.stack.match(Al)?this.parseV8OrIE(e):e.stack?this.parseFFOrSafari(e):(console.warn("[console-record-plugin]: Failed to parse error object:",e),[]):[]},extractLocation:function(e){if(-1===e.indexOf(":"))return[e];var t=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,""));if(!t)throw new Error("Cannot parse given url: "+e);return[t[1],t[2]||void 0,t[3]||void 0]},parseV8OrIE:function(e){return e.stack.split("\n").filter(function(e){return!!e.match(Al)},this).map(function(e){e.indexOf("(eval ")>-1&&(e=e.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var t=e.replace(/^\s+/,"").replace(/\(eval code/g,"("),r=t.match(/ (\((.+):(\d+):(\d+)\)$)/),n=(t=r?t.replace(r[0],""):t).split(/\s+/).slice(1),i=this.extractLocation(r?r[1]:n.pop()),o=n.join(" ")||void 0,s=["eval",""].indexOf(i[0])>-1?void 0:i[0];return new Ol({functionName:o,fileName:s,lineNumber:i[1],columnNumber:i[2]})},this)},parseFFOrSafari:function(e){return e.stack.split("\n").filter(function(e){return!e.match(Rl)},this).map(function(e){if(e.indexOf(" > eval")>-1&&(e=e.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===e.indexOf("@")&&-1===e.indexOf(":"))return new Ol({functionName:e});var t=/((.*".+"[^@]*)?[^@]*)(?:@)/,r=e.match(t),n=r&&r[1]?r[1]:void 0,i=this.extractLocation(e.replace(t,""));return new Ol({functionName:n,fileName:i[0],lineNumber:i[1],columnNumber:i[2]})},this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf("\n")>-1&&e.message.split("\n").length>e.stacktrace.split("\n").length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){for(var t=/Line (\d+).*script (?:in )?(\S+)/i,r=e.message.split("\n"),n=[],i=2,o=r.length;i/,"$2").replace(/\([^)]*\)/g,"")||void 0;return new Ol({functionName:n,fileName:r[0],lineNumber:r[1],columnNumber:r[2]})},this)}};function Tl(e){if(!e||!e.outerHTML)return"";for(var t="";e.parentElement;){var r=e.localName;if(!r)break;r=r.toLowerCase();var n=e.parentElement,i=[];if(n.children&&n.children.length>0)for(var o=0;o1&&(r+=":eq("+i.indexOf(e)+")"),t=r+(t?">"+t:""),e=n}return t}function Pl(e){return"[object Object]"===Object.prototype.toString.call(e)}function Ll(e,t){if(0===t)return!0;for(var r,n=b(Object.keys(e));!(r=n()).done;){var i=r.value;if(Pl(e[i])&&Ll(e[i],t-1))return!0}return!1}function Dl(e,t){var r={numOfKeysLimit:50,depthOfLimit:4};Object.assign(r,t);var n=[],i=[];return JSON.stringify(e,function(e,t){if(n.length>0){var o=n.indexOf(this);~o?n.splice(o+1):n.push(this),~o?i.splice(o,1/0,e):i.push(e),~n.indexOf(t)&&(t=n[0]===t?"[Circular ~]":"[Circular ~."+i.slice(0,n.indexOf(t)).join(".")+"]")}else n.push(t);if(null===t)return t;if(void 0===t)return"undefined";if(Pl(s=t)&&Object.keys(s).length>r.numOfKeysLimit||"function"==typeof s||Pl(s)&&Ll(s,r.depthOfLimit))return function(e){var t=e.toString();return r.stringLengthLimit&&t.length>r.stringLengthLimit&&(t=t.slice(0,r.stringLengthLimit)+"..."),t}(t);var s;if("bigint"===(void 0===t?"undefined":m(t)))return t.toString()+"n";if(d(t,Event)){var a={};for(var c in t){var l=t[c];Array.isArray(l)?a[c]=Tl(l.length?l[0]:null):a[c]=l}return a}return d(t,Node)?d(t,HTMLElement)?t?t.outerHTML:"":t.nodeName:d(t,Error)?t.stack?t.stack+"\nEnd of stack for Error object":t.name+": "+t.message:t})}var Fl={level:["assert","clear","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],lengthThreshold:1e3,logger:"console"};function Ul(e,t,r){var n,i=r?Object.assign({},Fl,r):Fl,o=i.logger;if(!o)return function(){};n="string"==typeof o?t[o]:o;var s=0,a=!1,c=[];if(i.level.includes("error")){var l=function(t){var r=t.message,n=t.error,o=Ml.parse(n).map(function(e){return e.toString()}),s=[Dl(r,i.stringifyOptions)];e({level:"error",trace:o,payload:s})};t.addEventListener("error",l),c.push(function(){t.removeEventListener("error",l)});var u=function(t){var r,n;d(t.reason,Error)?n=[Dl("Uncaught (in promise) "+(r=t.reason).name+": "+r.message,i.stringifyOptions)]:(r=new Error,n=[Dl("Uncaught (in promise)",i.stringifyOptions),Dl(t.reason,i.stringifyOptions)]);var o=Ml.parse(r).map(function(e){return e.toString()});e({level:"error",trace:o,payload:n})};t.addEventListener("unhandledrejection",u),c.push(function(){t.removeEventListener("unhandledrejection",u)})}for(var p,h=b(i.level);!(p=h()).done;){var f=p.value;c.push(g(n,f))}return function(){c.forEach(function(e){return e()})};function g(t,r){var n=this;return t[r]?function(t,o){try{if(!(o in t))return function(){};var c=t[o],l=function(t){var o=n;return function(){for(var n=arguments.length,c=new Array(n),l=0;l0&&Wl(Gl,r))}catch(e){Yl.call(new Xl(r),e)}}}function Yl(e){var t=this;t.triggered||(t.triggered=!0,t.def&&(t=t.def),t.msg=e,t.state=2,t.chain.length>0&&Wl(Gl,t))}function Zl(e,t,r,n){for(var i=0;i0&&(t[r]=e)}),t},Tu.truncate=function(e,t){var r;return"string"==typeof e?r=e.slice(0,t):Tu.isArray(e)?(r=[],Tu.each(e,function(e){r.push(Tu.truncate(e,t))})):Tu.isObject(e)?(r={},Tu.each(e,function(e,n){r[n]=Tu.truncate(e,t)})):r=e,r},Tu.JSONEncode=function(e){var t=function(e){var t=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,r={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return t.lastIndex=0,t.test(e)?'"'+e.replace(t,function(e){var t=r[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'},r=function(e,n){var i="",o=0,s="",a="",c=0,l=i,u=[],p=n[e];switch(p&&"object"==typeof p&&"function"==typeof p.toJSON&&(p=p.toJSON(e)),typeof p){case"string":return t(p);case"number":return isFinite(p)?String(p):"null";case"boolean":case"null":return String(p);case"object":if(!p)return"null";if(i+=" ",u=[],"[object Array]"===bu.apply(p)){for(c=p.length,o=0;o="0"&&iu<="9";)t+=iu,lu();if("."===iu)for(t+=".";lu()&&iu>="0"&&iu<="9";)t+=iu;if("e"===iu||"E"===iu)for(t+=iu,lu(),"-"!==iu&&"+"!==iu||(t+=iu,lu());iu>="0"&&iu<="9";)t+=iu,lu();if(e=+t,isFinite(e))return e;cu("Bad number")},pu=function(){var e,t,r,n="";if('"'===iu)for(;lu();){if('"'===iu)return lu(),n;if("\\"===iu)if(lu(),"u"===iu){for(r=0,t=0;t<4&&(e=parseInt(lu(),16),isFinite(e));t+=1)r=16*r+e;n+=String.fromCharCode(r)}else{if("string"!=typeof au[iu])break;n+=au[iu]}else n+=iu}cu("Bad string")},hu=function(){for(;iu&&iu<=" ";)lu()},su=function(){switch(hu(),iu){case"{":return function(){var e,t={};if("{"===iu){if(lu("{"),hu(),"}"===iu)return lu("}"),t;for(;iu;){if(e=pu(),hu(),lu(":"),Object.hasOwnProperty.call(t,e)&&cu('Duplicate key "'+e+'"'),t[e]=su(),hu(),"}"===iu)return lu("}"),t;lu(","),hu()}}cu("Bad object")}();case"[":return function(){var e=[];if("["===iu){if(lu("["),hu(),"]"===iu)return lu("]"),e;for(;iu;){if(e.push(su()),hu(),"]"===iu)return lu("]"),e;lu(","),hu()}}cu("Bad array")}();case'"':return pu();case"-":return uu();default:return iu>="0"&&iu<="9"?uu():function(){switch(iu){case"t":return lu("t"),lu("r"),lu("u"),lu("e"),!0;case"f":return lu("f"),lu("a"),lu("l"),lu("s"),lu("e"),!1;case"n":return lu("n"),lu("u"),lu("l"),lu("l"),null}cu('Unexpected "'+iu+'"')}()}},function(e){var t;return ou=e,nu=0,iu=" ",t=su(),hu(),iu&&cu("Syntax error"),t}),Tu.base64Encode=function(e){var t,r,n,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a=0,c=0,l="",u=[];if(!e)return e;e=Tu.utf8Encode(e);do{t=(o=e.charCodeAt(a++)<<16|e.charCodeAt(a++)<<8|e.charCodeAt(a++))>>18&63,r=o>>12&63,n=o>>6&63,i=63&o,u[c++]=s.charAt(t)+s.charAt(r)+s.charAt(n)+s.charAt(i)}while(a127&&s<2048?String.fromCharCode(s>>6|192,63&s|128):String.fromCharCode(s>>12|224,s>>6&63|128,63&s|128),null!==a&&(r>t&&(o+=e.substring(t,r)),o+=a,t=r=i+1)}return r>t&&(o+=e.substring(t,e.length)),o},Tu.UUID=function(){try{return n.crypto.randomUUID()}catch(r){for(var e=new Array(36),t=0;t<36;t++)e[t]=Math.floor(16*Math.random());return e[14]=4,e[19]=e[19]&=-5,e[19]=e[19]|=8,e[8]=e[13]=e[18]=e[23]="-",Tu.map(e,function(e){return e.toString(16)}).join("")}};var ju=["ahrefsbot","ahrefssiteaudit","amazonbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","facebookexternal","petalbot","pinterest","screaming frog","yahoo! slurp","yandex","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleweblight","mediapartners-google","storebot-google"];Tu.isBlockedUA=function(e){var t;for(e=e.toLowerCase(),t=0;t=0}function n(t){if(!Su.getElementsByTagName)return[];var n,i,o,s,a,c,l,u,p,h,d=t.split(" "),f=[Su];for(c=0;c-1){o=(i=n.split("#"))[0];var g=i[1],m=Su.getElementById(g);if(!m||o&&m.nodeName.toLowerCase()!=o)return[];f=[m]}else if(n.indexOf(".")>-1){o=(i=n.split("."))[0];var v=i[1];for(o||(o="*"),s=[],a=0,l=0;l-1};break;default:b=function(e){return e.getAttribute(_)}}for(f=[],h=0,l=0;l=3?t[2]:""},currentUrl:function(){return n.location.href},properties:function(e){return"object"!=typeof e&&(e={}),Tu.extend(Tu.strip_empty_properties({$os:Tu.info.os(),$browser:Tu.info.browser(Eu,ku.vendor,xu),$referrer:Su.referrer,$referring_domain:Tu.info.referringDomain(Su.referrer),$device:Tu.info.device(Eu)}),{$current_url:Tu.info.currentUrl(),$browser_version:Tu.info.browserVersion(Eu,ku.vendor,xu),$screen_height:Cu.height,$screen_width:Cu.width,mp_lib:"web",$lib_version:du.LIB_VERSION,$insert_id:Ku(),time:Tu.timestamp()/1e3},Tu.strip_empty_properties(e))},people_properties:function(){return Tu.extend(Tu.strip_empty_properties({$os:Tu.info.os(),$browser:Tu.info.browser(Eu,ku.vendor,xu)}),{$browser_version:Tu.info.browserVersion(Eu,ku.vendor,xu)})},mpPageViewProperties:function(){return Tu.strip_empty_properties({current_page_title:Su.title,current_domain:n.location.hostname,current_url_path:n.location.pathname,current_url_protocol:n.location.protocol,current_url_search:n.location.search})}};var Ku=function(e){var t=Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10);return e?t.substring(0,e):t},Ju=/[a-z0-9][a-z0-9-]*\.[a-z]+$/i,Yu=/[a-z0-9][a-z0-9-]+\.[a-z.]{2,6}$/i,Zu=function(e){var t=Yu,r=e.split("."),n=r[r.length-1];(n.length>4||"com"===n||"org"===n)&&(t=Ju);var i=e.match(t);return i?i[0]:""},Xu=function(){},Qu=null,ep=null;"undefined"!=typeof JSON&&(Qu=JSON.stringify,ep=JSON.parse),Qu=Qu||Tu.JSONEncode,ep=ep||Tu.JSONDecode,Tu.info=Tu.info,Tu.info.browser=Tu.info.browser,Tu.info.browserVersion=Tu.info.browserVersion,Tu.info.device=Tu.info.device,Tu.info.properties=Tu.info.properties,Tu.isBlockedUA=Tu.isBlockedUA,Tu.isEmptyObject=Tu.isEmptyObject,Tu.isObject=Tu.isObject,Tu.JSONDecode=Tu.JSONDecode,Tu.JSONEncode=Tu.JSONEncode,Tu.toArray=Tu.toArray,Tu.NPO=eu;var tp="mixpanelRecordingEvents",rp="mixpanelRecordingRegistry",np=[tp,rp],ip=function(e){this.dbPromise=null,this.storeName=e};function op(e,t){mp(!0,e,t)}function sp(e,t){mp(!1,e,t)}function ap(e,t){return"1"===gp(e,t)}function cp(e,t){if(function(e){if(e&&e.ignoreDnt)return!1;var t=e&&e.window||n,r=t.navigator||{},i=!1;return Tu.each([r.doNotTrack,r.msDoNotTrack,t.doNotTrack],function(e){Tu.includes([!0,1,"1","yes"],e)&&(i=!0)}),i}(t))return Pu.warn('This browser has "Do Not Track" enabled. This will prevent the Mixpanel SDK from sending any data. To ignore the "Do Not Track" browser setting, initialize the Mixpanel instance with the config "ignore_dnt: true"'),!0;var r="0"===gp(e,t);return r&&Pu.warn("You are opted out of Mixpanel tracking. This will prevent the Mixpanel SDK from sending any data."),r}function lp(e){return vp(e,function(e){return this.get_config(e)})}function up(e){return vp(e,function(e){return this._get_config(e)})}function pp(e){return vp(e,function(e){return this._get_config(e)})}function hp(e,t){dp(t=t||{}).remove(fp(e,t),!!t.crossSubdomainCookie,t.cookieDomain)}function dp(e){return"localStorage"===(e=e||{}).persistenceType?Tu.localStorage:Tu.cookie}function fp(e,t){return((t=t||{}).persistencePrefix||"__mp_opt_in_out_")+e}function gp(e,t){return dp(t).get(fp(e,t))}function mp(e,t,r){Tu.isString(t)&&t.length?(dp(r=r||{}).set(fp(t,r),e?1:0,Tu.isNumber(r.cookieExpiration)?r.cookieExpiration:null,!!r.crossSubdomainCookie,!!r.secureCookie,!!r.crossSiteCookie,r.cookieDomain),r.track&&e&&r.track(r.trackEventName||"$opt_in",r.trackProperties,{send_immediately:!0})):Pu.error("gdpr."+(e?"optIn":"optOut")+" called with an invalid token")}function vp(e,t){return function(){var r=!1;try{var n=t.call(this,"token"),i=t.call(this,"ignore_dnt"),o=t.call(this,"opt_out_tracking_persistence_type"),s=t.call(this,"opt_out_tracking_cookie_prefix"),a=t.call(this,"window");n&&(r=cp(n,{ignoreDnt:i,persistenceType:o,persistencePrefix:s,window:a}))}catch(e){Pu.error("Unexpected error when checking tracking opt-out status: "+e)}if(!r)return e.apply(this,arguments);var c=arguments[arguments.length-1];"function"==typeof c&&c(0)}}ip.prototype._openDb=function(){return new tu(function(e,t){var r=n.indexedDB.open("mixpanelBrowserDb",1);r.onerror=function(){t(r.error)},r.onsuccess=function(){e(r.result)},r.onupgradeneeded=function(e){var t=e.target.result;np.forEach(function(e){t.createObjectStore(e)})}})},ip.prototype.init=function(){return n.indexedDB?(this.dbPromise||(this.dbPromise=this._openDb()),this.dbPromise.then(function(e){return e instanceof n.IDBDatabase?tu.resolve():tu.reject(e)})):tu.reject("indexedDB is not supported in this browser")},ip.prototype.isInitialized=function(){return!!this.dbPromise},ip.prototype.makeTransaction=function(e,t){var r=this.storeName,n=function(n){return new tu(function(i,o){var s=n.transaction(r,e);s.oncomplete=function(){i(s)},s.onabort=s.onerror=function(){o(s.error)},t(s.objectStore(r))})};return this.dbPromise.then(n).catch(function(e){return e&&"InvalidStateError"===e.name?(this.dbPromise=this._openDb(),this.dbPromise.then(n)):tu.reject(e)}.bind(this))},ip.prototype.setItem=function(e,t){return this.makeTransaction("readwrite",function(r){r.put(t,e)})},ip.prototype.getItem=function(e){var t;return this.makeTransaction("readonly",function(r){t=r.get(e)}).then(function(){return t.result})},ip.prototype.removeItem=function(e){return this.makeTransaction("readwrite",function(t){t.delete(e)})},ip.prototype.getAll=function(){var e;return this.makeTransaction("readonly",function(t){e=t.getAll()}).then(function(){return e.result})};var yp=Du("lock"),bp=function(e,t){t=t||{},this.storageKey=e,this.storage=t.storage||n.localStorage,this.pollIntervalMS=t.pollIntervalMS||100,this.timeoutMS=t.timeoutMS||2e3,this.promiseImpl=t.promiseImpl||tu};bp.prototype.withLock=function(e,t){return new(0,this.promiseImpl)(Tu.bind(function(r,n){var i=t||(new Date).getTime()+"|"+Math.random(),o=(new Date).getTime(),s=this.storageKey,a=this.pollIntervalMS,c=this.timeoutMS,l=this.storage,u=s+":X",p=s+":Y",h=s+":Z",d=function(e){if((new Date).getTime()-o>c)return yp.error("Timeout waiting for mutex on "+s+"; clearing lock. ["+i+"]"),l.removeItem(h),l.removeItem(p),void m();setTimeout(function(){try{e()}catch(e){n(e)}},a*(Math.random()+.1))},f=function(e,t){e()?t():d(function(){f(e,t)})},g=function(){var e=l.getItem(p);return!(e&&e!==i||(l.setItem(p,i),l.getItem(p)!==i&&(zu(l,!0)||n(new Error("localStorage support dropped while acquiring lock")),1)))},m=function(){l.setItem(u,i),f(g,function(){l.getItem(u)!==i?d(function(){l.getItem(p)===i?f(function(){return!l.getItem(h)},v):m()}):v()})},v=function(){l.setItem(h,"1");var t=function(){l.removeItem(h),l.getItem(p)===i&&l.removeItem(p),l.getItem(u)===i&&l.removeItem(u)};e().then(function(e){t(),r(e)}).catch(function(e){t(),n(e)})};try{if(!zu(l,!0))throw new Error("localStorage support check failed");m()}catch(e){n(e)}},this))};var _p=function(e){this.storage=e||n.localStorage};_p.prototype.init=function(){return tu.resolve()},_p.prototype.isInitialized=function(){return!0},_p.prototype.setItem=function(e,t){return new tu(Tu.bind(function(r,n){try{this.storage.setItem(e,Qu(t))}catch(e){n(e)}r()},this))},_p.prototype.getItem=function(e){return new tu(Tu.bind(function(t,r){var n;try{n=ep(this.storage.getItem(e))}catch(e){r(e)}t(n)},this))},_p.prototype.removeItem=function(e){return new tu(Tu.bind(function(t,r){try{this.storage.removeItem(e)}catch(e){r(e)}t()},this))};var wp=Du("batch"),kp=function(e,t){var r,i,o,s;t=t||{},this.storageKey=e,this.usePersistence=t.usePersistence,this.usePersistence&&(this.queueStorage=t.queueStorage||new _p,this.lock=new bp(e,{storage:t.sharedLockStorage||n.localStorage,timeoutMS:t.sharedLockTimeoutMS})),this.reportError=t.errorReporter||Tu.bind(wp.error,wp),this.pid=t.pid||null,this.memQueue=[],this.initialized=!1,t.enqueueThrottleMs?this.enqueuePersisted=(r=Tu.bind(this._enqueuePersisted,this),i=t.enqueueThrottleMs,o=null,s=[],function(e){var t=this;return s.push(e),o||(o=new tu(function(e){setTimeout(function(){var n=r.apply(t,[s]);o=null,s=[],e(n)},i)})),o}):this.enqueuePersisted=Tu.bind(function(e){return this._enqueuePersisted([e])},this)};kp.prototype.ensureInit=function(){return this.initialized||!this.usePersistence?tu.resolve():this.queueStorage.init().then(Tu.bind(function(){this.initialized=!0},this)).catch(Tu.bind(function(e){this.reportError("Error initializing queue persistence. Disabling persistence",e),this.initialized=!0,this.usePersistence=!1},this))},kp.prototype.enqueue=function(e,t){var r={id:Ku(),flushAfter:(new Date).getTime()+2*t,payload:e};return this.usePersistence?this.enqueuePersisted(r):(this.memQueue.push(r),tu.resolve(!0))},kp.prototype._enqueuePersisted=function(e){var t=Tu.bind(function(){return this.ensureInit().then(Tu.bind(function(){return this.readFromStorage()},this)).then(Tu.bind(function(t){return this.saveToStorage(t.concat(e))},this)).then(Tu.bind(function(t){return t&&(this.memQueue=this.memQueue.concat(e)),t},this)).catch(Tu.bind(function(t){return this.reportError("Error enqueueing items",t,e),!1},this))},this);return this.lock.withLock(t,this.pid).catch(Tu.bind(function(e){return this.reportError("Error acquiring storage lock",e),!1},this))},kp.prototype.fillBatch=function(e){var t=this.memQueue.slice(0,e);return this.usePersistence&&t.lengtho.flushAfter&&!n[o.id]&&(o.orphaned=!0,t.push(o),t.length>=e))break}}return t},this)):tu.resolve(t)};var Sp=function(e,t){var r=[];return Tu.each(e,function(e){e.id&&!t[e.id]&&r.push(e)}),r};kp.prototype.removeItemsByID=function(e){var t={};if(Tu.each(e,function(e){t[e]=!0}),this.memQueue=Sp(this.memQueue,t),this.usePersistence){var r=Tu.bind(function(){return this.ensureInit().then(Tu.bind(function(){return this.readFromStorage()},this)).then(Tu.bind(function(e){return e=Sp(e,t),this.saveToStorage(e)},this)).then(Tu.bind(function(){return this.readFromStorage()},this)).then(Tu.bind(function(e){for(var r=0;r5&&(this.reportError("[dupe] item ID sent too many times, not sending",{item:e,batchSize:o.length,timesSent:this.itemIdsSentSuccessfully[n]}),r=!1):this.reportError("[dupe] found item with no ID",{item:e}),r&&a.push(t)}c[e.id]=t},this),a.length<1)return this.requestInProgress=!1,this.resetFlush(),tu.resolve();var l=Tu.bind(function(){return this.queue.removeItemsByID(Tu.map(o,function(e){return e.id})).then(Tu.bind(function(e){return Tu.each(o,Tu.bind(function(e){var t=e.id;t?(this.itemIdsSentSuccessfully[t]=this.itemIdsSentSuccessfully[t]||0,this.itemIdsSentSuccessfully[t]++,this.itemIdsSentSuccessfully[t]>5&&this.reportError("[dupe] item ID sent too many times",{item:e,batchSize:o.length,timesSent:this.itemIdsSentSuccessfully[t]})):this.reportError("[dupe] found item with no ID while removing",{item:e})},this)),e?(this.consecutiveRemovalFailures=0,this.flushOnlyOnInterval&&!s?(this.resetFlush(),tu.resolve()):this.flush()):(++this.consecutiveRemovalFailures>5?(this.reportError("Too many queue failures; disabling batching system."),this.stopAllBatching()):this.resetFlush(),tu.resolve())},this))},this),u=Tu.bind(function(s){this.requestInProgress=!1;try{if(e.unloading)return this.queue.updatePayloads(c);if(Tu.isObject(s)&&"timeout"===s.error&&(new Date).getTime()-r>=t)return this.reportError("Network timeout; retrying"),this.flush();if(Tu.isObject(s)&&(s.httpStatusCode>=500||429===s.httpStatusCode||s.httpStatusCode<=0&&(p=n.navigator.onLine,!Tu.isUndefined(p)&&!p)||"timeout"===s.error)){var a=2*this.flushInterval;return s.retryAfter&&(a=1e3*parseInt(s.retryAfter,10)||a),a=Math.min(6e5,a),this.reportError("Error; retry in "+a+" ms"),this.scheduleFlush(a),tu.resolve()}if(Tu.isObject(s)&&413===s.httpStatusCode){if(o.length>1){var u=Math.max(1,Math.floor(i/2));return this.batchSize=Math.min(this.batchSize,u,o.length-1),this.reportError("413 response; reducing batch size to "+this.batchSize),this.resetFlush(),tu.resolve()}return this.reportError("Single-event request too large; dropping",o),this.resetBatchSize(),l()}return l()}catch(e){this.reportError("Error handling API response",e),this.resetFlush()}var p},this),p={method:"POST",verbose:!0,ignore_json_errors:!0,timeout_ms:t};return e.unloading&&(p.transport="sendBeacon"),Cp.log("MIXPANEL REQUEST:",a),this.sendRequestPromise(a,p).then(u)},this)).catch(Tu.bind(function(e){this.reportError("Error flushing request queue",e),this.resetFlush()},this))},Ep.prototype.reportError=function(e,t){if(Cp.error.apply(Cp.error,arguments),this.errorReporter)try{t instanceof Error||(t=new Error(e)),this.errorReporter(e,t)}catch(t){Cp.error(t)}};var Ip=function(e){var t=Date.now();return!e||t>e.maxExpires||t>e.idleExpires},Op=Du("recorder"),Np=n.CompressionStream,Ap={batch_size:1e3,batch_flush_interval_ms:1e4,batch_request_timeout_ms:9e4,batch_autostart:!0},Rp=new Set([Sc.MouseMove,Sc.MouseInteraction,Sc.Scroll,Sc.ViewportResize,Sc.Input,Sc.TouchMove,Sc.MediaInteraction,Sc.Drag,Sc.Selection]),Mp=function(e){this._mixpanel=e.mixpanelInstance,this._onIdleTimeout=e.onIdleTimeout||Xu,this._onMaxLengthReached=e.onMaxLengthReached||Xu,this._onBatchSent=e.onBatchSent||Xu,this._rrwebRecord=e.rrwebRecord||null,this._stopRecording=null,this.replayId=e.replayId,this.batchStartUrl=e.batchStartUrl||null,this.replayStartUrl=e.replayStartUrl||null,this.idleExpires=e.idleExpires||null,this.maxExpires=e.maxExpires||null,this.replayStartTime=e.replayStartTime||null,this.lastEventTimestamp=e.lastEventTimestamp||null,this.seqNo=e.seqNo||0,this.idleTimeoutId=null,this.maxTimeoutId=null,this.recordMaxMs=fu,this.recordMinMs=0;var t=zu(e.sharedLockStorage,!0)&&!this.getConfig("disable_persistence");this.batcherKey="__mprec_"+this.getConfig("name")+"_"+this.getConfig("token")+"_"+this.replayId,this.queueStorage=new ip(tp),this.batcher=new Ep(this.batcherKey,{errorReporter:this.reportError.bind(this),flushOnlyOnInterval:!0,libConfig:Ap,sendRequestFunc:this.flushEventsWithOptOut.bind(this),queueStorage:this.queueStorage,sharedLockStorage:e.sharedLockStorage,usePersistence:t,stopAllBatchingFunc:this.stopRecording.bind(this),enqueueThrottleMs:250,sharedLockTimeoutMS:1e4})};Mp.prototype.getUserIdInfo=function(){if(this.finalFlushUserIdInfo)return this.finalFlushUserIdInfo;var e={distinct_id:String(this._mixpanel.get_distinct_id())},t=this._mixpanel.get_property("$device_id");t&&(e.$device_id=t);var r=this._mixpanel.get_property("$user_id");return r&&(e.$user_id=r),e},Mp.prototype.unloadPersistedData=function(){return this.batcher.stop(),this.queueStorage.init().catch(function(){this.reportError("Error initializing IndexedDB storage for unloading persisted data.")}.bind(this)).then(function(){return this.getDurationMs()fu&&(this.recordMaxMs=fu,Op.critical("record_max_ms cannot be greater than "+fu+"ms. Capping value.")),this.maxExpires||(this.maxExpires=(new Date).getTime()+this.recordMaxMs),this.recordMinMs=this._getRecordMinMs(),this.replayStartTime||(this.replayStartTime=(new Date).getTime(),this.batchStartUrl=Tu.info.currentUrl(),this.replayStartUrl=Tu.info.currentUrl()),e||this.recordMinMs>0?this.batcher.stop():this.batcher.start();var t=function(){clearTimeout(this.idleTimeoutId);var e=this.getConfig("record_idle_timeout_ms");this.idleTimeoutId=setTimeout(this._onIdleTimeout,e),this.idleExpires=(new Date).getTime()+e}.bind(this);t();var r,n=this.getConfig("record_block_selector");""!==n&&null!==n||(n=void 0);try{this._stopRecording=this._rrwebRecord({emit:function(e){this.idleExpires&&this.idleExpires=this.recordMinMs&&this.batcher.start(),t()),this.__enqueuePromise=this.batcher.enqueue(e),(null===this.lastEventTimestamp||e.timestamp>this.lastEventTimestamp)&&(this.lastEventTimestamp=e.timestamp))}.bind(this),blockClass:this.getConfig("record_block_class"),blockSelector:n,collectFonts:this.getConfig("record_collect_fonts"),dataURLOptions:{type:"image/webp",quality:.6},maskAllInputs:!0,maskTextClass:this.getConfig("record_mask_text_class"),maskTextSelector:this.getConfig("record_mask_text_selector"),recordCanvas:this.getConfig("record_canvas"),sampling:{canvas:15},plugins:this.getConfig("record_console")?[(r={stringifyOptions:{stringLengthLimit:1e3,numOfKeysLimit:50,depthOfLimit:2}},{name:"rrweb/console@1",observer:Ul,options:r})]:[]})}catch(e){this.reportError("Unexpected error when starting rrweb recording.",e)}if("function"!=typeof this._stopRecording)return this.reportError("rrweb failed to start, skipping this recording."),this._stopRecording=null,void this.stopRecording();var i=this.maxExpires-(new Date).getTime();this.maxTimeoutId=setTimeout(this._onMaxLengthReached.bind(this),i)}else Op.log("Recording already in progress, skipping startRecording.");else this.reportError("rrweb record function not provided. ")},Mp.prototype.stopRecording=function(e){if(this.finalFlushUserIdInfo=this.getUserIdInfo(),!this.isRrwebStopped()){try{this._stopRecording()}catch(e){this.reportError("Error with rrweb stopRecording",e)}this._stopRecording=null}var t;return this.batcher.stopped?t=this.batcher.clear():e||(t=this.batcher.flush()),this.batcher.stop(),clearTimeout(this.idleTimeoutId),clearTimeout(this.maxTimeoutId),t},Mp.prototype.isRrwebStopped=function(){return null===this._stopRecording},Mp.prototype.flushEventsWithOptOut=function(e,t,r){var n=function(e){0===e&&(this.stopRecording(),r({error:"Tracking has been opted out, stopping recording."}))}.bind(this);this._flushEvents(e,t,r,n)},Mp.prototype.serialize=function(){var e;try{e=this._mixpanel.get_tab_id()}catch(t){this.reportError("Error getting tab ID for serialization ",t),e=null}return{replayId:this.replayId,seqNo:this.seqNo,replayStartTime:this.replayStartTime,batchStartUrl:this.batchStartUrl,replayStartUrl:this.replayStartUrl,lastEventTimestamp:this.lastEventTimestamp,idleExpires:this.idleExpires,maxExpires:this.maxExpires,tabId:e}},Mp.deserialize=function(e,t){return new Mp(Tu.extend({},t,{replayId:e.replayId,batchStartUrl:e.batchStartUrl,replayStartUrl:e.replayStartUrl,idleExpires:e.idleExpires,maxExpires:e.maxExpires,replayStartTime:e.replayStartTime,lastEventTimestamp:e.lastEventTimestamp,seqNo:e.seqNo,sharedLockStorage:t.sharedLockStorage}))},Mp.prototype._sendRequest=function(e,t,r,i){var o=function(t,r){200===t.status&&this.replayId===e&&(this.seqNo++,this.batchStartUrl=Tu.info.currentUrl()),this._onBatchSent(),i({status:0,httpStatusCode:t.status,responseBody:r,retryAfter:t.headers.get("Retry-After")})}.bind(this),s=this._mixpanel.get_api_host&&this._mixpanel.get_api_host("record")||this.getConfig("api_host");n.fetch(s+"/"+this.getConfig("api_routes").record+"?"+new URLSearchParams(t),{method:"POST",headers:{Authorization:"Basic "+btoa(this.getConfig("token")+":"),"Content-Type":"application/octet-stream"},body:r}).then(function(e){e.json().then(function(t){o(e,t)}).catch(function(e){i({error:e})})}).catch(function(e){i({error:e,httpStatusCode:0})})},Mp.prototype._flushEvents=lp(function(e,t,r){var i=e.length;if(i>0){for(var o=this.replayId,s=1/0,a=-1/0,c=!1,l=0;l=16.4&&o<16.6)}(Eu,ku.vendor,xu)){var d=new Blob([h],{type:"application/json"}).stream().pipeThrough(new Np("gzip"));new Response(d).blob().then(function(e){p.format="gzip",this._sendRequest(o,p,e,r)}.bind(this))}else p.format="body",this._sendRequest(o,p,h,r)}}),Mp.prototype.reportError=function(e,t){Op.error.apply(Op.error,arguments);try{t||e instanceof Error||(e=new Error(e)),this.getConfig("error_reporter")(e,t)}catch(t){Op.error(t)}},Mp.prototype.getDurationMs=function(){return null===this.replayStartTime?0:null===this.lastEventTimestamp?(new Date).getTime()-this.replayStartTime:this.lastEventTimestamp-this.replayStartTime},Mp.prototype._getRecordMinMs=function(){var e=this.getConfig("record_min_ms");return e>8e3?(Op.critical("record_min_ms cannot be greater than 8000ms. Capping value."),8e3):e};var Tp=function(e){this.idb=new ip(rp),this.errorReporter=e.errorReporter,this.mixpanelInstance=e.mixpanelInstance,this.sharedLockStorage=e.sharedLockStorage};Tp.prototype.isPersistenceEnabled=function(){return!this.mixpanelInstance.get_config("disable_persistence")},Tp.prototype.handleError=function(e){this.errorReporter("IndexedDB error: ",e)},Tp.prototype.setActiveRecording=function(e){if(!this.isPersistenceEnabled())return tu.resolve();var t=e.tabId;return t?this.idb.init().then(function(){return this.idb.setItem(t,e)}.bind(this)).catch(this.handleError.bind(this)):(console.warn("No tab ID is set, cannot persist recording metadata."),tu.resolve())},Tp.prototype.getActiveRecording=function(){return this.isPersistenceEnabled()?this.idb.init().then(function(){return this.idb.getItem(this.mixpanelInstance.get_tab_id())}.bind(this)).then(function(e){return Ip(e)?null:e}.bind(this)).catch(this.handleError.bind(this)):tu.resolve(null)},Tp.prototype.clearActiveRecording=function(){return this.isPersistenceEnabled()?this.markActiveRecordingExpired():this.deleteActiveRecording()},Tp.prototype.markActiveRecordingExpired=function(){return this.getActiveRecording().then(function(e){if(e)return e.maxExpires=0,this.setActiveRecording(e)}.bind(this)).catch(this.handleError.bind(this))},Tp.prototype.deleteActiveRecording=function(){return this.idb.isInitialized()?this.idb.removeItem(this.mixpanelInstance.get_tab_id()).catch(this.handleError.bind(this)):tu.resolve()},Tp.prototype.flushInactiveRecordings=function(){return this.isPersistenceEnabled()?this.idb.init().then(function(){return this.idb.getAll()}.bind(this)).then(function(e){var t=e.filter(function(e){return Ip(e)}).map(function(e){return Mp.deserialize(e,{mixpanelInstance:this.mixpanelInstance,sharedLockStorage:this.sharedLockStorage}).unloadPersistedData().then(function(){return this.idb.removeItem(e.tabId)}.bind(this)).catch(this.handleError.bind(this))}.bind(this));return tu.all(t)}.bind(this)).catch(this.handleError.bind(this)):tu.resolve([])};var Pp=Du("recorder"),Lp=function(e,t,r){this.mixpanelInstance=e,this.rrwebRecord=t||Cl,this.sharedLockStorage=r,this.recordingRegistry=new Tp({mixpanelInstance:this.mixpanelInstance,errorReporter:Pp.error,sharedLockStorage:r}),this._flushInactivePromise=this.recordingRegistry.flushInactiveRecordings(),this.activeRecording=null,this.stopRecordingInProgress=!1};Lp.prototype.startRecording=function(e){if(e=e||{},!this.activeRecording||this.activeRecording.isRrwebStopped()){var t=function(){Pp.log("Idle timeout reached, restarting recording."),this.resetRecording()}.bind(this),r=function(){Pp.log("Max recording length reached, stopping recording."),this.resetRecording()}.bind(this),n=function(){this.recordingRegistry.setActiveRecording(this.activeRecording.serialize()),this.__flushPromise=this.activeRecording.batcher._flushPromise}.bind(this),i={mixpanelInstance:this.mixpanelInstance,onBatchSent:n,onIdleTimeout:t,onMaxLengthReached:r,replayId:Tu.UUID(),rrwebRecord:this.rrwebRecord,sharedLockStorage:this.sharedLockStorage};return e.activeSerializedRecording?this.activeRecording=Mp.deserialize(e.activeSerializedRecording,i):this.activeRecording=new Mp(i),this.activeRecording.startRecording(e.shouldStopBatcher),this.recordingRegistry.setActiveRecording(this.activeRecording.serialize())}Pp.log("Recording already in progress, skipping startRecording.")},Lp.prototype.stopRecording=function(){return this.stopRecordingInProgress=!0,this._stopCurrentRecording(!1,!0).then(function(){return this.recordingRegistry.clearActiveRecording()}.bind(this)).then(function(){this.stopRecordingInProgress=!1}.bind(this))},Lp.prototype.pauseRecording=function(){return this._stopCurrentRecording(!1)},Lp.prototype._stopCurrentRecording=function(e,t){if(this.activeRecording){var r=this.activeRecording.stopRecording(e);return t&&(this.activeRecording=null),r}return tu.resolve()},Lp.prototype.resumeRecording=function(e){return this.activeRecording&&this.activeRecording.isRrwebStopped()?(this.activeRecording.startRecording(!1),tu.resolve(null)):this.recordingRegistry.getActiveRecording().then(function(t){return t&&!this.stopRecordingInProgress?this.startRecording({activeSerializedRecording:t}):e?this.startRecording({shouldStopBatcher:!1}):(Pp.log("No resumable recording found."),null)}.bind(this))},Lp.prototype.resetRecording=function(){this.stopRecording(),this.startRecording({shouldStopBatcher:!0})},Lp.prototype.getActiveReplayId=function(){return this.activeRecording&&!this.activeRecording.isRrwebStopped()?this.activeRecording.replayId:null},Object.defineProperty(Lp.prototype,"replayId",{get:function(){return this.getActiveReplayId()}}),n.__mp_recorder=Lp;var Dp="change",Fp="click",Up="hashchange",jp="load",Bp="mp_locationchange",$p="popstate",zp="scrollend",qp="scroll",Vp="submit",Wp="visibilitychange",Hp=["clientX","clientY","offsetX","offsetY","pageX","pageY","screenX","screenY","x","y"],Gp=["mp-include"],Kp=["mp-no-track"],Jp=Kp.concat(["mp-sensitive"]),Yp=["aria-label","aria-labelledby","aria-describedby","href","name","role","title","type"],Zp={button:!0,checkbox:!0,combobox:!0,grid:!0,link:!0,listbox:!0,menu:!0,menubar:!0,menuitem:!0,menuitemcheckbox:!0,menuitemradio:!0,navigation:!0,option:!0,radio:!0,radiogroup:!0,searchbox:!0,slider:!0,spinbutton:!0,switch:!0,tab:!0,tablist:!0,textbox:!0,tree:!0,treegrid:!0,treeitem:!0},Xp={base:!0,head:!0,html:!0,link:!0,meta:!0,script:!0,style:!0,title:!0,br:!0,hr:!0,wbr:!0,noscript:!0,picture:!0,source:!0,template:!0,track:!0},Qp={article:!0,div:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,p:!0,section:!0,span:!0},eh=["onclick","onmousedown","onmouseup","onpointerdown","onpointerup","ontouchend","ontouchstart"],th=Du("autocapture");function rh(e){for(var t={},r=nh(e).split(" "),n=0;n0?t[0]:e.target||e.srcElement}function bh(){this.clicks=[]}function _h(e,t){this.changeCallback=e||function(){},this.observerConfig=t,this.observedShadowRoots=null,this.shadowObservers=[]}bh.prototype.isRageClick=function(e,t){var r=(t=t||{}).threshold_px||30,n=t.timeout_ms||1e3,i=t.click_count||4;if(t.interactive_elements_only){var o=yh(e);if(!o||mh(o))return!1}var s=Date.now(),a=e.pageX,c=e.pageY,l=this.clicks[this.clicks.length-1];if(l&&s-l.timestamp=i)return this.clicks=[],!0}else this.clicks=[{x:a,y:c,timestamp:s}];return!1},_h.prototype.getEventTarget=function(e){if(this.observedShadowRoots)return yh(e)},_h.prototype.observeFromEvent=function(e){if(this.observedShadowRoots)for(var t=vh(e),r=0;r=t?this.hasChangesAfter(s.timestamp)||i.push(s):this.pendingClicks.push(s)}return i},Ch.prototype.hasChangesAfter=function(e){return this.lastChangeEventTimestamp>=e-100},Ch.prototype.recordChangeEvent=function(){this.lastChangeEventTimestamp=Date.now()},Ch.prototype.triggerProcessing=function(e){this.processingActive||(this.processingActive=!0,this.processRecursively(e))},Ch.prototype.processRecursively=function(e){if(this.isTracking&&this.onDeadClickCallback){var t=e.timeout_ms,r=this;this.processingTimeout=setTimeout(function(){if(r.processingActive){for(var t=r.getDeadClicks(e),n=0;n0?r.processRecursively(e):r.processingActive=!1}},t)}else this.processingActive=!1},Ch.prototype.startTracking=function(){if(!this.isTracking){this.isTracking=!0;var e=this;wh.forEach(function(t){var r=function(){e.recordChangeEvent()};document.addEventListener(t,r,{capture:!0,passive:!0}),e.eventListeners.push({target:document,event:t,handler:r,options:{capture:!0,passive:!0}})}),Sh.forEach(function(t){var r=function(){e.recordChangeEvent()};window.addEventListener(t,r),e.eventListeners.push({target:window,event:t,handler:r})}),kh.forEach(function(t){var r=function(){e.recordChangeEvent()};window.addEventListener(t,r,{passive:!0}),e.eventListeners.push({target:window,event:t,handler:r,options:{passive:!0}})});var t=function(){e.recordChangeEvent()};if(document.addEventListener("selectionchange",t),e.eventListeners.push({target:document,event:"selectionchange",handler:t}),window.MutationObserver)try{this.mutationObserver=new window.MutationObserver(function(){e.recordChangeEvent()}),this.mutationObserver.observe(document.body||document.documentElement,xh)}catch(e){th.critical("Error while setting up mutation observer",e)}if(window.customElements)try{this.shadowDOMObserver=new _h(function(){e.recordChangeEvent()},xh),this.shadowDOMObserver.start()}catch(e){th.critical("Error while setting up shadow DOM observer",e),this.shadowDOMObserver=null}}},Ch.prototype.stopTracking=function(){if(this.isTracking){this.isTracking=!1,this.pendingClicks=[],this.lastChangeEventTimestamp=0,this.processingActive=!1,this.processingTimeout&&(clearTimeout(this.processingTimeout),this.processingTimeout=null);for(var e=0;ethis.maxScrollViewDepth&&(this.maxScrollViewDepth=e),this.previousScrollHeight=Su.body.scrollHeight}}.bind(this));this.listenerScrollDepth=e.listener,n.addEventListener(e.eventType,this.listenerScrollDepth)}},Zh.prototype.initClickTracking=function(){n.removeEventListener(Fp,this.listenerClick),(this.getConfig(Uh)||this.mp.get_config("record_heatmap_data"))&&(th.log("Initializing click tracking"),this.listenerClick=function(e){(this.getConfig(Uh)||this.mp.is_recording_heatmap_data())&&this.trackDomEvent(e,Kh)}.bind(this),n.addEventListener(Fp,this.listenerClick))},Zh.prototype.initDeadClickTracking=function(){this._getClickTrackingConfig(jh)||this.mp.get_config("record_heatmap_data")?(th.log("Initializing dead click tracking"),this._deadClickTracker||(this._deadClickTracker=new Ch(function(e){this.trackDomEvent(e,Jh)}.bind(this)),this._deadClickTracker.startTracking()),this.listenerDeadClick||(this.listenerDeadClick=function(e){var t=this._getClickTrackingConfig(jh);if((t||this.mp.is_recording_heatmap_data())&&!this.currentUrlBlocked()){var r=t||{};r.timeout_ms||(r.timeout_ms=500),this._deadClickTracker.trackClick(e,r)}}.bind(this),n.addEventListener(Fp,this.listenerDeadClick))):this.stopDeadClickTracking()},Zh.prototype.initInputTracking=function(){n.removeEventListener(Dp,this.listenerChange),this.getConfig(Bh)&&(th.log("Initializing input tracking"),this.listenerChange=function(e){this.getConfig(Bh)&&this.trackDomEvent(e,"$mp_input_change")}.bind(this),n.addEventListener(Dp,this.listenerChange))},Zh.prototype.initPageviewTracking=function(){if(n.removeEventListener(Bp,this.listenerLocationchange),this.pageviewTrackingConfig()){th.log("Initializing pageview tracking");var e="",t=!1;this.currentUrlBlocked()||(t=this.mp.track_pageview(Gh)),t&&(e=Tu.info.currentUrl()),this.listenerLocationchange=Fu(function(){if(!this.currentUrlBlocked()){var t=Tu.info.currentUrl(),r=!1,n=t.split("#")[0].split("?")[0]!==e.split("#")[0].split("?")[0],i=this.pageviewTrackingConfig();i===Ih?r=t!==e:"url-with-path-and-query-string"===i?r=t.split("#")[0]!==e.split("#")[0]:"url-with-path"===i&&(r=n),r&&(this.mp.track_pageview(Gh)&&(e=t),n&&(this.lastScrollCheckpoint=0,th.log("Path change: re-initializing scroll depth checkpoints")))}}.bind(this)),n.addEventListener(Bp,this.listenerLocationchange)}},Zh.prototype.initRageClickTracking=function(){n.removeEventListener(Fp,this.listenerRageClick),(this._getClickTrackingConfig(zh)||this.mp.get_config("record_heatmap_data"))&&(th.log("Initializing rage click tracking"),this._rageClickTracker||(this._rageClickTracker=new bh),this.listenerRageClick=function(e){var t=this._getClickTrackingConfig(zh);(t||this.mp.is_recording_heatmap_data())&&(this.currentUrlBlocked()||this._rageClickTracker.isRageClick(e,t)&&this.trackDomEvent(e,Yh))}.bind(this),n.addEventListener(Fp,this.listenerRageClick))},Zh.prototype.initScrollTracking=function(){if(n.removeEventListener(zp,this.listenerScroll),n.removeEventListener(qp,this.listenerScroll),this.getConfig(qh)){th.log("Initializing scroll tracking"),this.lastScrollCheckpoint=0;var e=fh(function(){if(this.getConfig(qh)&&!this.currentUrlBlocked()){var e=this.getConfig(Dh),t=(this.getConfig(Fh)||[]).slice().sort(function(e,t){return e-t}),r=n.scrollY,i=Tu.extend({$scroll_top:r},Gh);try{var o=Su.body.scrollHeight,s=Math.round(r/(o-n.innerHeight)*100);if(i.$scroll_height=o,i.$scroll_percentage=s,s>this.lastScrollCheckpoint)for(var a=0;a=c&&this.lastScrollCheckpoint=0;p--)c=this._mixpanel.persistence.load_queue(ud),l=c.pop(),a._mixpanel.persistence.save(),Tu.isEmptyObject(l)||a.append(l,u);var h=this._mixpanel.persistence.load_queue(hd);if(!Tu.isUndefined(h)&&Tu.isArray(h)&&h.length)for(var d,f=function(e,t){0===e&&a._mixpanel.persistence._add_to_people_queue(hd,d),Tu.isUndefined(s)||s(e,t)},g=h.length-1;g>=0;g--)h=this._mixpanel.persistence.load_queue(hd),d=h.pop(),a._mixpanel.persistence.save(),Tu.isEmptyObject(d)||a.remove(d,f)},gd.prototype._is_reserved_property=function(e){return"$distinct_id"===e||"$token"===e||"$device_id"===e||"$user_id"===e||"$had_persisted_distinct_id"===e},gd.prototype.set=gd.prototype.set,gd.prototype.set_once=gd.prototype.set_once,gd.prototype.unset=gd.prototype.unset,gd.prototype.increment=gd.prototype.increment,gd.prototype.append=gd.prototype.append,gd.prototype.remove=gd.prototype.remove,gd.prototype.union=gd.prototype.union,gd.prototype.track_charge=gd.prototype.track_charge,gd.prototype.clear_charges=gd.prototype.clear_charges,gd.prototype.delete_user=gd.prototype.delete_user,gd.prototype.toString=gd.prototype.toString;var md,vd="__mps",yd="__mpso",bd="__mpus",_d="__mpa",wd="__mpap",kd="__mpr",Sd="__mpu",xd="$people_distinct_id",Cd="__alias",Ed="__timers",Id=[vd,yd,bd,_d,wd,kd,Sd,xd,Cd,Ed],Od=function(e){this.props={},this.campaign_params_saved=!1,e.persistence_name?this.name="mp_"+e.persistence_name:this.name="mp_"+e.token+"_mixpanel";var t=e.persistence;"cookie"!==t&&"localStorage"!==t&&(Pu.critical("Unknown persistence type "+t+"; falling back to cookie"),t=e.persistence="cookie"),"localStorage"===t&&Tu.localStorage.is_supported()?this.storage=Tu.localStorage:this.storage=Tu.cookie,this.load(),this.update_config(e),this.upgrade(),this.save()};Od.prototype.properties=function(){var e={};return this.load(),Tu.each(this.props,function(t,r){Tu.include(Id,r)||(e[r]=t)}),e},Od.prototype.load=function(){if(!this.disabled){var e=this.storage.parse(this.name);e&&(this.props=Tu.extend({},e))}},Od.prototype.upgrade=function(){var e,t;this.storage===Tu.localStorage?(e=Tu.cookie.parse(this.name),Tu.cookie.remove(this.name),Tu.cookie.remove(this.name,!0),e&&this.register_once(e)):this.storage===Tu.cookie&&(t=Tu.localStorage.parse(this.name),Tu.localStorage.remove(this.name),t&&this.register_once(t))},Od.prototype.save=function(){this.disabled||this.storage.set(this.name,Qu(this.props),this.expire_days,this.cross_subdomain,this.secure,this.cross_site,this.cookie_domain)},Od.prototype.load_prop=function(e){return this.load(),this.props[e]},Od.prototype.remove=function(){this.storage.remove(this.name,!1,this.cookie_domain),this.storage.remove(this.name,!0,this.cookie_domain)},Od.prototype.clear=function(){this.remove(),this.props={}},Od.prototype.register_once=function(e,t,r){return!!Tu.isObject(e)&&(void 0===t&&(t="None"),this.expire_days=void 0===r?this.default_expiry:r,this.load(),Tu.each(e,function(e,r){this.props.hasOwnProperty(r)&&this.props[r]!==t||(this.props[r]=e)},this),this.save(),!0)},Od.prototype.register=function(e,t){return!!Tu.isObject(e)&&(this.expire_days=void 0===t?this.default_expiry:t,this.load(),Tu.extend(this.props,e),this.save(),!0)},Od.prototype.unregister=function(e){this.load(),e in this.props&&(delete this.props[e],this.save())},Od.prototype.update_search_keyword=function(e){this.register(Tu.info.searchInfo(e))},Od.prototype.update_referrer_info=function(e){this.register_once({$initial_referrer:e||"$direct",$initial_referring_domain:Tu.info.referringDomain(e)||"$direct"},"")},Od.prototype.get_referrer_info=function(){return Tu.strip_empty_properties({$initial_referrer:this.props.$initial_referrer,$initial_referring_domain:this.props.$initial_referring_domain})},Od.prototype.update_config=function(e){this.default_expiry=this.expire_days=e.cookie_expiration,this.set_disabled(e.disable_persistence),this.set_cookie_domain(e.cookie_domain),this.set_cross_site(e.cross_site_cookie),this.set_cross_subdomain(e.cross_subdomain_cookie),this.set_secure(e.secure_cookie)},Od.prototype.set_disabled=function(e){this.disabled=e,this.disabled?this.remove():this.save()},Od.prototype.set_cookie_domain=function(e){e!==this.cookie_domain&&(this.remove(),this.cookie_domain=e,this.save())},Od.prototype.set_cross_site=function(e){e!==this.cross_site&&(this.cross_site=e,this.remove(),this.save())},Od.prototype.set_cross_subdomain=function(e){e!==this.cross_subdomain&&(this.cross_subdomain=e,this.remove(),this.save())},Od.prototype.get_cross_subdomain=function(){return this.cross_subdomain},Od.prototype.set_secure=function(e){e!==this.secure&&(this.secure=!!e,this.remove(),this.save())},Od.prototype._add_to_people_queue=function(e,t){var r=this._get_queue_key(e),n=t[e],i=this._get_or_create_queue(sd),o=this._get_or_create_queue(ad),s=this._get_or_create_queue(cd),a=this._get_or_create_queue(ld),c=this._get_or_create_queue(pd),l=this._get_or_create_queue(hd,[]),u=this._get_or_create_queue(ud,[]);r===vd?(Tu.extend(i,n),this._pop_from_people_queue(ld,n),this._pop_from_people_queue(pd,n),this._pop_from_people_queue(cd,n)):r===yd?(Tu.each(n,function(e,t){t in o||(o[t]=e)}),this._pop_from_people_queue(cd,n)):r===bd?Tu.each(n,function(e){Tu.each([i,o,a,c],function(t){e in t&&delete t[e]}),Tu.each(u,function(t){e in t&&delete t[e]}),s[e]=!0}):r===_d?(Tu.each(n,function(e,t){t in i?i[t]+=e:(t in a||(a[t]=0),a[t]+=e)},this),this._pop_from_people_queue(cd,n)):r===Sd?(Tu.each(n,function(e,t){Tu.isArray(e)&&(t in c||(c[t]=[]),Tu.each(e,function(e){Tu.include(c[t],e)||c[t].push(e)}))}),this._pop_from_people_queue(cd,n)):r===kd?(l.push(n),this._pop_from_people_queue(ud,n)):r===wd&&(u.push(n),this._pop_from_people_queue(cd,n)),Pu.log("MIXPANEL PEOPLE REQUEST (QUEUED, PENDING IDENTIFY):"),Pu.log(t),this.save()},Od.prototype._pop_from_people_queue=function(e,t){var r=this.props[this._get_queue_key(e)];Tu.isUndefined(r)||Tu.each(t,function(t,n){e===ud||e===hd?Tu.each(r,function(e){e[n]===t&&delete e[n]}):delete r[n]},this)},Od.prototype.load_queue=function(e){return this.load_prop(this._get_queue_key(e))},Od.prototype._get_queue_key=function(e){return e===sd?vd:e===ad?yd:e===cd?bd:e===ld?_d:e===ud?wd:e===hd?kd:e===pd?Sd:void Pu.error("Invalid queue:",e)},Od.prototype._get_or_create_queue=function(e,t){var r=this._get_queue_key(e);return t=Tu.isUndefined(t)?{}:t,this.props[r]||(this.props[r]=t)},Od.prototype.set_event_timer=function(e,t){var r=this.load_prop(Ed)||{};r[e]=t,this.props[Ed]=r,this.save()},Od.prototype.remove_event_timer=function(e){var t=(this.load_prop(Ed)||{})[e];return Tu.isUndefined(t)||(delete this.props[Ed][e],this.save()),t};var Nd,Ad=function(e,t){throw new Error(e+" not available in this build.")},Rd=function(e){return e},Md="mixpanel",Td="base64",Pd="$device:",Ld=n.XMLHttpRequest&&"withCredentials"in new XMLHttpRequest,Dd=!Ld&&-1===Eu.indexOf("MSIE")&&-1===Eu.indexOf("Mozilla"),Fd=null;ku.sendBeacon&&(Fd=function(){return ku.sendBeacon.apply(ku,arguments)});var Ud={track:"track/",engage:"engage/",groups:"groups/",record:"record/",flags:"flags/"},jd={api_host:"https://api-js.mixpanel.com",api_hosts:{},api_routes:Ud,api_extra_query_params:{},api_method:"POST",api_transport:"XHR",api_payload_format:Td,app_host:"https://mixpanel.com",autocapture:!1,cdn:"https://cdn.mxpnl.com",cross_site_cookie:!1,cross_subdomain_cookie:!0,error_reporter:Xu,flags:!1,persistence:"cookie",persistence_name:"",cookie_domain:"",cookie_name:"",loaded:Xu,mp_loader:null,track_marketing:!0,track_pageview:!1,skip_first_touch_marketing:!1,store_google:!0,stop_utm_persistence:!1,save_referrer:!0,test:!1,verbose:!1,img:!1,debug:!1,track_links_timeout:300,cookie_expiration:365,upgrade:!1,disable_persistence:!1,disable_cookie:!1,secure_cookie:!1,ip:!0,opt_out_tracking_by_default:!1,opt_out_persistence_by_default:!1,opt_out_tracking_persistence_type:"localStorage",opt_out_tracking_cookie_prefix:null,property_blacklist:[],xhr_headers:{},ignore_dnt:!1,batch_requests:!0,batch_size:50,batch_flush_interval_ms:5e3,batch_request_timeout_ms:9e4,batch_autostart:!0,hooks:{},record_block_class:new RegExp("^(mp-block|fs-exclude|amp-block|rr-block|ph-no-capture)$"),record_block_selector:"img, video, audio",record_canvas:!1,record_collect_fonts:!1,record_console:!0,record_heatmap_data:!1,record_idle_timeout_ms:18e5,record_mask_text_class:new RegExp("^(mp-mask|fs-mask|amp-mask|rr-mask|ph-mask)$"),record_mask_text_selector:"*",record_max_ms:fu,record_min_ms:0,record_sessions_percent:0,recorder_src:"https://cdn.mxpnl.com/libs/mixpanel-recorder.min.js"},Bd=!1,$d=function(){},zd=function(e,t,r){var n,i=r===Md?Nd:Nd[r];if(i&&0===md)n=i;else{if(i&&!Tu.isArray(i))return void Pu.error("You have already initialized "+r);n=new $d}if(n._cached_groups={},n._init(e,t,r),n.people=new gd,n.people._init(n),!n.get_config("skip_first_touch_marketing")){var o=Tu.info.campaignParams(null),s={},a=!1;Tu.each(o,function(e,t){s["initial_"+t]=e,e&&(a=!0)}),a&&n.people.set_once(s)}return du.DEBUG=du.DEBUG||n.get_config("debug"),!Tu.isUndefined(i)&&Tu.isArray(i)&&(n._execute_array.call(n.people,i.people),n._execute_array(i)),n};$d.prototype.init=function(e,t,r){if(Tu.isUndefined(r))this.report_error("You must name your new library: init(token, config, name)");else{if(r!==Md){var n=zd(e,t,r);return Nd[r]=n,n._loaded(),n}this.report_error("You must initialize the main mixpanel object right after you include the Mixpanel js snippet")}},$d.prototype._init=function(e,t,r){t=t||{},this.__loaded=!0,this.config={};var i={};if("api_payload_format"in t||(t.api_host||jd.api_host).match(/\.mixpanel\.com/)&&(i.api_payload_format="json"),this.set_config(Tu.extend({},jd,i,t,{name:r,token:e,callback_fn:(r===Md?r:Md+"."+r)+"._jsc"})),this._jsc=Xu,this.__dom_loaded_queue=[],this.__request_queue=[],this.__disabled_events=[],this._flags={disable_all_events:!1,identify_called:!1},this.request_batchers={},this._batch_requests=this.get_config("batch_requests"),this._batch_requests)if(Tu.localStorage.is_supported(!0)&&Ld){if(this.init_batchers(),Fd&&n.addEventListener){var o=Tu.bind(function(){this.request_batchers.events.stopped||this.request_batchers.events.flush({unloading:!0})},this);n.addEventListener("pagehide",function(e){e.persisted&&o()}),n.addEventListener("visibilitychange",function(){"hidden"===Su.visibilityState&&o()})}}else this._batch_requests=!1,Pu.log("Turning off Mixpanel request-queueing; needs XHR and localStorage support"),Tu.each(this.get_batcher_configs(),function(e){Pu.log("Clearing batch queue "+e.queue_key),Tu.localStorage.remove(e.queue_key)});this.persistence=this.cookie=new Od(this.config),this.unpersisted_superprops={},this._gdpr_init();var s=Tu.UUID();this.get_distinct_id()||this.register_once({distinct_id:Pd+s,$device_id:s},""),this.flags=new rd({getFullApiRoute:Tu.bind(function(){return this.get_api_host("flags")+"/"+this.get_config("api_routes").flags},this),getConfigFunc:Tu.bind(this.get_config,this),setConfigFunc:Tu.bind(this.set_config,this),getPropertyFunc:Tu.bind(this.get_property,this),trackingFunc:Tu.bind(this.track,this)}),this.flags.init(),this.flags=this.flags,this.autocapture=new Zh(this),this.autocapture.init(),this._init_tab_id(),this._check_and_start_session_recording()},$d.prototype._init_tab_id=function(){if(this.get_config("disable_persistence"))Pu.log("Tab ID initialization skipped due to disable_persistence config");else if(Tu.sessionStorage.is_supported())try{var e=this.get_config("name")+"_"+this.get_config("token"),t="mp_tab_id_"+e,r="mp_gen_new_tab_id_"+e;!Tu.sessionStorage.get(r)&&Tu.sessionStorage.get(t)||Tu.sessionStorage.set(t,"$tab-"+Tu.UUID()),Tu.sessionStorage.set(r,"1"),this.tab_id=Tu.sessionStorage.get(t),n.addEventListener("beforeunload",function(){Tu.sessionStorage.remove(r)})}catch(e){this.report_error("Error initializing tab id",e)}else this.report_error("Session storage is not supported, cannot keep track of unique tab ID.")},$d.prototype.get_tab_id=function(){return this.tab_id||null},$d.prototype._should_load_recorder=function(){if(this.get_config("disable_persistence"))return Pu.log("Load recorder check skipped due to disable_persistence config"),Promise.resolve(!1);var e=new ip(rp),t=this.get_tab_id();return e.init().then(function(){return e.getAll()}).then(function(e){for(var r=0;r0&&100*Math.random()<=this.get_config("record_sessions_percent");e||r?t(!0):this._should_load_recorder().then(function(e){e&&t(!1)})}else Pu.critical("Browser does not support MutationObserver; skipping session recording")}),$d.prototype.start_session_recording=function(){this._check_and_start_session_recording(!0)},$d.prototype.stop_session_recording=function(){return this._recorder?this._recorder.stopRecording():Promise.resolve()},$d.prototype.pause_session_recording=function(){return this._recorder?this._recorder.pauseRecording():Promise.resolve()},$d.prototype.resume_session_recording=function(){return this._recorder?this._recorder.resumeRecording():Promise.resolve()},$d.prototype.is_recording_heatmap_data=function(){return this._get_session_replay_id()&&this.get_config("record_heatmap_data")},$d.prototype.get_session_recording_properties=function(){var e={},t=this._get_session_replay_id();return t&&(e.$mp_replay_id=t),e},$d.prototype.get_session_replay_url=function(){var e=null,t=this._get_session_replay_id();return t&&(e="https://mixpanel.com/projects/replay-redirect?"+Tu.HTTPBuildQuery({replay_id:t,distinct_id:this.get_distinct_id(),token:this.get_config("token")})),e},$d.prototype._get_session_replay_id=function(){var e=null;return this._recorder&&(e=this._recorder.replayId),e||null},$d.prototype.__get_recorder=function(){return this._recorder},$d.prototype._loaded=function(){if(this.get_config("loaded")(this),this._set_default_superprops(),this.people.set_once(this.persistence.get_referrer_info()),this.get_config("store_google")&&this.get_config("stop_utm_persistence")){var e=Tu.info.campaignParams(null);Tu.each(e,function(e,t){this.unregister(t)}.bind(this))}},$d.prototype._set_default_superprops=function(){this.persistence.update_search_keyword(Su.referrer),this.get_config("store_google")&&!this.get_config("stop_utm_persistence")&&this.register(Tu.info.campaignParams()),this.get_config("save_referrer")&&this.persistence.update_referrer_info(Su.referrer)},$d.prototype._dom_loaded=function(){Tu.each(this.__dom_loaded_queue,function(e){this._track_dom.apply(this,e)},this),this.has_opted_out_tracking()||Tu.each(this.__request_queue,function(e){this._send_request.apply(this,e)},this),delete this.__dom_loaded_queue,delete this.__request_queue},$d.prototype._track_dom=function(e,t){if(this.get_config("img"))return this.report_error("You can't use DOM tracking functions with img = true."),!1;if(!Bd)return this.__dom_loaded_queue.push([e,t]),!1;var r=(new e).init(this);return r.track.apply(r,t)},$d.prototype._prepare_callback=function(e,t){if(Tu.isUndefined(e))return null;if(Ld)return function(r){e(r,t)};var r=this._jsc,n=""+Math.floor(1e8*Math.random()),i=this.get_config("callback_fn")+"["+n+"]";return r[n]=function(i){delete r[n],e(i,t)},i},$d.prototype._send_request=function(e,t,r,n){var i=!0;if(Dd)return this.__request_queue.push(arguments),i;var o={method:this.get_config("api_method"),transport:this.get_config("api_transport"),verbose:this.get_config("verbose")},s=null;n||!Tu.isFunction(r)&&"string"!=typeof r||(n=r,r=null),r=Tu.extend(o,r||{}),Ld||(r.method="GET");var a="POST"===r.method,c=Fd&&a&&"sendbeacon"===r.transport.toLowerCase(),l=r.verbose;t.verbose&&(l=!0),this.get_config("test")&&(t.test=1),l&&(t.verbose=1),this.get_config("img")&&(t.img=1),Ld||(n?t.callback=n:(l||this.get_config("test"))&&(t.callback="(function(){})")),t.ip=this.get_config("ip")?1:0,t._=(new Date).getTime().toString(),a&&(s="data="+encodeURIComponent(t.data),delete t.data),Tu.extend(t,this.get_config("api_extra_query_params")),e+="?"+Tu.HTTPBuildQuery(t);var u=this;if("img"in t){var p=Su.createElement("img");p.src=e,Su.body.appendChild(p)}else if(c){try{i=Fd(e,s)}catch(e){u.report_error(e),i=!1}try{n&&n(i?1:0)}catch(e){u.report_error(e)}}else if(Ld)try{var h=new XMLHttpRequest;h.open(r.method,e,!0);var d=this.get_config("xhr_headers");if(a&&(d["Content-Type"]="application/x-www-form-urlencoded"),Tu.each(d,function(e,t){h.setRequestHeader(t,e)}),r.timeout_ms&&void 0!==h.timeout){h.timeout=r.timeout_ms;var f=(new Date).getTime()}h.withCredentials=!0,h.onreadystatechange=function(){var e;if(4===h.readyState)if(200===h.status){if(n)if(l){var t;try{t=Tu.JSONDecode(h.responseText)}catch(e){if(u.report_error(e),!r.ignore_json_errors)return;t=h.responseText}n(t)}else n(Number(h.responseText))}else if(e=h.timeout&&!h.status&&(new Date).getTime()-f>=h.timeout?"timeout":"Bad HTTP status: "+h.status+" "+h.statusText,u.report_error(e),n)if(l){var i=h.responseHeaders||{};n({status:0,httpStatusCode:h.status,error:e,retryAfter:i["Retry-After"]})}else n(0)},h.send(s)}catch(e){u.report_error(e),i=!1}else{var g=Su.createElement("script");g.type="text/javascript",g.async=!0,g.defer=!0,g.src=e;var m=Su.getElementsByTagName("script")[0];m.parentNode.insertBefore(g,m)}return i},$d.prototype._execute_array=function(e){var t,r=[],n=[],i=[];Tu.each(e,function(e){e&&(t=e[0],Tu.isArray(t)?i.push(e):"function"==typeof e?e.call(this):Tu.isArray(e)&&"alias"===t?r.push(e):Tu.isArray(e)&&-1!==t.indexOf("track")&&"function"==typeof this[t]?i.push(e):n.push(e))},this);var o=function(e,t){Tu.each(e,function(e){if(Tu.isArray(e[0])){var r=t;Tu.each(e,function(e){r=r[e[0]].apply(r,e.slice(1))})}else this[e[0]].apply(this,e.slice(1))},t)};o(r,this),o(n,this),o(i,this)},$d.prototype.are_batchers_initialized=function(){return!!this.request_batchers.events},$d.prototype.get_batcher_configs=function(){var e="__mpq_"+this.get_config("token");return this._batcher_configs=this._batcher_configs||{events:{type:"events",api_name:"track",queue_key:e+"_ev"},people:{type:"people",api_name:"engage",queue_key:e+"_pp"},groups:{type:"groups",api_name:"groups",queue_key:e+"_gr"}},this._batcher_configs},$d.prototype.init_batchers=function(){if(!this.are_batchers_initialized()){var e=Tu.bind(function(e){return new Ep(e.queue_key,{libConfig:this.config,errorReporter:this.get_config("error_reporter"),sendRequestFunc:Tu.bind(function(t,r,n){var i=this.get_config("api_routes");this._send_request(this.get_api_host(e.api_name)+"/"+i[e.api_name],this._encode_data_for_request(t),r,this._prepare_callback(n,t))},this),beforeSendHook:Tu.bind(function(t){return this._run_hook("before_send_"+e.type,t)},this),stopAllBatchingFunc:Tu.bind(this.stop_batch_senders,this),usePersistence:!0})},this),t=this.get_batcher_configs();this.request_batchers={events:e(t.events),people:e(t.people),groups:e(t.groups)}}this.get_config("batch_autostart")&&this.start_batch_senders()},$d.prototype.start_batch_senders=function(){this._batchers_were_started=!0,this.are_batchers_initialized()&&(this._batch_requests=!0,Tu.each(this.request_batchers,function(e){e.start()}))},$d.prototype.stop_batch_senders=function(){this._batch_requests=!1,Tu.each(this.request_batchers,function(e){e.stop(),e.clear()})},$d.prototype.push=function(e){this._execute_array([e])},$d.prototype.disable=function(e){void 0===e?this._flags.disable_all_events=!0:this.__disabled_events=this.__disabled_events.concat(e)},$d.prototype._encode_data_for_request=function(e){var t=Qu(e);return this.get_config("api_payload_format")===Td&&(t=Tu.base64Encode(t)),{data:t}},$d.prototype._track_or_batch=function(e,t){var r=Tu.truncate(e.data,255),n=e.endpoint,i=e.batcher,o=e.should_send_immediately,s=e.send_request_options||{};t=t||Xu;var a=!0,c=Tu.bind(function(){return s.skip_hooks||(r=this._run_hook("before_send_"+e.type,r)),r?(Pu.log("MIXPANEL REQUEST:"),Pu.log(r),this._send_request(n,this._encode_data_for_request(r),s,this._prepare_callback(t,r))):null},this);return this._batch_requests&&!o?i.enqueue(r).then(function(e){e?t(1,r):c()}):a=c(),a&&r},$d.prototype.track=lp(function(e,t,r,n){n||"function"!=typeof r||(n=r,r=null);var i=(r=r||{}).transport;i&&(r.transport=i);var o=r.send_immediately;if("function"!=typeof n&&(n=Xu),Tu.isUndefined(e))this.report_error("No event name provided to mixpanel.track");else{if(!this._event_is_disabled(e)){(t=Tu.extend({},t)).token=this.get_config("token");var s=this.persistence.remove_event_timer(e);if(!Tu.isUndefined(s)){var a=(new Date).getTime()-s;t.$duration=parseFloat((a/1e3).toFixed(3))}this._set_default_superprops();var c=this.get_config("track_marketing")?Tu.info.marketingParams():{};t=Tu.extend({},Tu.info.properties({mp_loader:this.get_config("mp_loader")}),c,this.persistence.properties(),this.unpersisted_superprops,this.get_session_recording_properties(),t);var l=this.get_config("property_blacklist");Tu.isArray(l)?Tu.each(l,function(e){delete t[e]}):this.report_error("Invalid value for property_blacklist config: "+l);var u={event:e,properties:t};return this._track_or_batch({type:"events",data:u,endpoint:this.get_api_host("events")+"/"+this.get_config("api_routes").track,batcher:this.request_batchers.events,should_send_immediately:o,send_request_options:r},n)}n(0)}}),$d.prototype.set_group=lp(function(e,t,r){Tu.isArray(t)||(t=[t]);var n={};return n[e]=t,this.register(n),this.people.set(e,t,r)}),$d.prototype.add_group=lp(function(e,t,r){var n=this.get_property(e),i={};return void 0===n?(i[e]=[t],this.register(i)):-1===n.indexOf(t)&&(n.push(t),i[e]=n,this.register(i)),this.people.union(e,t,r)}),$d.prototype.remove_group=lp(function(e,t,r){var n=this.get_property(e);if(void 0!==n){var i=n.indexOf(t);i>-1&&(n.splice(i,1),this.register({group_key:n})),0===n.length&&this.unregister(e)}return this.people.remove(e,t,r)}),$d.prototype.track_with_groups=lp(function(e,t,r,n){var i=Tu.extend({},t||{});return Tu.each(r,function(e,t){null!=e&&(i[t]=e)}),this.track(e,i,n)}),$d.prototype._create_map_key=function(e,t){return e+"_"+JSON.stringify(t)},$d.prototype._remove_group_from_cache=function(e,t){delete this._cached_groups[this._create_map_key(e,t)]},$d.prototype.get_group=function(e,t){var r=this._create_map_key(e,t),n=this._cached_groups[r];return void 0!==n&&n._group_key===e&&n._group_id===t||((n=new fd)._init(this,e,t),this._cached_groups[r]=n),n},$d.prototype.track_pageview=lp(function(e,t){"object"!=typeof e&&(e={});var r=(t=t||{}).event_name||"$mp_web_page_view",n=Tu.extend(Tu.info.mpPageViewProperties(),Tu.info.campaignParams(),Tu.info.clickParams()),i=Tu.extend({},n,e);return this.track(r,i)}),$d.prototype.track_links=function(){return this._track_dom.call(this,id,arguments)},$d.prototype.track_forms=function(){return this._track_dom.call(this,od,arguments)},$d.prototype.time_event=function(e){Tu.isUndefined(e)?this.report_error("No event name provided to mixpanel.time_event"):this._event_is_disabled(e)||this.persistence.set_event_timer(e,(new Date).getTime())};var qd={persistent:!0},Vd=function(e){var t;return t=Tu.isObject(e)?e:Tu.isUndefined(e)?{}:{days:e},Tu.extend({},qd,t)};$d.prototype.register=function(e,t){var r=Vd(t);r.persistent?this.persistence.register(e,r.days):Tu.extend(this.unpersisted_superprops,e)},$d.prototype.register_once=function(e,t,r){var n=Vd(r);n.persistent?this.persistence.register_once(e,t,n.days):(void 0===t&&(t="None"),Tu.each(e,function(e,r){this.unpersisted_superprops.hasOwnProperty(r)&&this.unpersisted_superprops[r]!==t||(this.unpersisted_superprops[r]=e)},this))},$d.prototype.unregister=function(e,t){(t=Vd(t)).persistent?this.persistence.unregister(e):delete this.unpersisted_superprops[e]},$d.prototype._register_single=function(e,t){var r={};r[e]=t,this.register(r)},$d.prototype.identify=function(e,t,r,n,i,o,s,a){var c=this.get_distinct_id();if(e&&c!==e){if("string"==typeof e&&0===e.indexOf(Pd))return this.report_error("distinct_id cannot have $device: prefix"),-1;this.register({$user_id:e})}if(!this.get_property("$device_id")){var l=c;this.register_once({$had_persisted_distinct_id:!0,$device_id:l},"")}e!==c&&e!==this.get_property(Cd)&&(this.unregister(Cd),this.register({distinct_id:e})),this._flags.identify_called=!0,this.people._flush(t,r,n,i,o,s,a),e!==c&&this.track("$identify",{distinct_id:e,$anon_distinct_id:c},{skip_hooks:!0}),e!==c&&this.flags.fetchFlags()},$d.prototype.reset=function(){this.stop_session_recording(),this.persistence.clear(),this._flags.identify_called=!1;var e=Tu.UUID();this.register_once({distinct_id:Pd+e,$device_id:e},""),this._check_and_start_session_recording()},$d.prototype.get_distinct_id=function(){return this.get_property("distinct_id")},$d.prototype.alias=function(e,t){if(e===this.get_property(xd))return this.report_error("Attempting to create alias for existing People user - aborting."),-2;var r=this;return Tu.isUndefined(t)&&(t=this.get_distinct_id()),e!==t?(this._register_single(Cd,e),this.track("$create_alias",{alias:e,distinct_id:t},{skip_hooks:!0},function(){r.identify(e)})):(this.report_error("alias matches current distinct_id - skipping api call."),this.identify(e),-1)},$d.prototype.name_tag=function(e){this._register_single("mp_name_tag",e)},$d.prototype.set_config=function(e){Tu.isObject(e)&&(Tu.extend(this.config,e),e.batch_size&&Tu.each(this.request_batchers,function(e){e.resetBatchSize()}),this.get_config("persistence_name")||(this.config.persistence_name=this.config.cookie_name),this.get_config("disable_persistence")||(this.config.disable_persistence=this.config.disable_cookie),this.persistence&&this.persistence.update_config(this.config),du.DEBUG=du.DEBUG||this.get_config("debug"),("autocapture"in e||"record_heatmap_data"in e)&&this.autocapture&&this.autocapture.init())},$d.prototype.get_config=function(e){return this.config[e]},$d.prototype._run_hook=function(e){var t=(this.config.hooks[e]||Rd).apply(this,yu.call(arguments,1));return void 0===t&&(this.report_error(e+" hook did not return a value"),t=null),t},$d.prototype.get_property=function(e){return this.persistence.load_prop([e])},$d.prototype.get_api_host=function(e){return this.get_config("api_hosts")[e]||this.get_config("api_host")},$d.prototype.toString=function(){var e=this.get_config("name");return e!==Md&&(e=Md+"."+e),e},$d.prototype._event_is_disabled=function(e){return Tu.isBlockedUA(Eu)||this._flags.disable_all_events||Tu.include(this.__disabled_events,e)},$d.prototype._gdpr_init=function(){"localStorage"===this.get_config("opt_out_tracking_persistence_type")&&Tu.localStorage.is_supported()&&(!this.has_opted_in_tracking()&&this.has_opted_in_tracking({persistence_type:"cookie"})&&this.opt_in_tracking({enable_persistence:!1}),!this.has_opted_out_tracking()&&this.has_opted_out_tracking({persistence_type:"cookie"})&&this.opt_out_tracking({clear_persistence:!1}),this.clear_opt_in_out_tracking({persistence_type:"cookie",enable_persistence:!1})),this.has_opted_out_tracking()?this._gdpr_update_persistence({clear_persistence:!0}):this.has_opted_in_tracking()||!this.get_config("opt_out_tracking_by_default")&&!Tu.cookie.get("mp_optout")||(Tu.cookie.remove("mp_optout"),this.opt_out_tracking({clear_persistence:this.get_config("opt_out_persistence_by_default")}))},$d.prototype._gdpr_update_persistence=function(e){var t;if(e&&e.clear_persistence)t=!0;else{if(!e||!e.enable_persistence)return;t=!1}this.get_config("disable_persistence")||this.persistence.disabled===t||this.persistence.set_disabled(t),t?(this.stop_batch_senders(),this.stop_session_recording()):this._batchers_were_started&&this.start_batch_senders()},$d.prototype._gdpr_call_func=function(e,t){return t=Tu.extend({track:Tu.bind(this.track,this),persistence_type:this.get_config("opt_out_tracking_persistence_type"),cookie_prefix:this.get_config("opt_out_tracking_cookie_prefix"),cookie_expiration:this.get_config("cookie_expiration"),cross_site_cookie:this.get_config("cross_site_cookie"),cross_subdomain_cookie:this.get_config("cross_subdomain_cookie"),cookie_domain:this.get_config("cookie_domain"),secure_cookie:this.get_config("secure_cookie"),ignore_dnt:this.get_config("ignore_dnt")},t),Tu.localStorage.is_supported()||(t.persistence_type="cookie"),e(this.get_config("token"),{track:t.track,trackEventName:t.track_event_name,trackProperties:t.track_properties,persistenceType:t.persistence_type,persistencePrefix:t.cookie_prefix,cookieDomain:t.cookie_domain,cookieExpiration:t.cookie_expiration,crossSiteCookie:t.cross_site_cookie,crossSubdomainCookie:t.cross_subdomain_cookie,secureCookie:t.secure_cookie,ignoreDnt:t.ignore_dnt})},$d.prototype.opt_in_tracking=function(e){e=Tu.extend({enable_persistence:!0},e),this._gdpr_call_func(op,e),this._gdpr_update_persistence(e)},$d.prototype.opt_out_tracking=function(e){(e=Tu.extend({clear_persistence:!0,delete_user:!0},e)).delete_user&&this.people&&this.people._identify_called()&&(this.people.delete_user(),this.people.clear_charges()),this._gdpr_call_func(sp,e),this._gdpr_update_persistence(e)},$d.prototype.has_opted_in_tracking=function(e){return this._gdpr_call_func(ap,e)},$d.prototype.has_opted_out_tracking=function(e){return this._gdpr_call_func(cp,e)},$d.prototype.clear_opt_in_out_tracking=function(e){e=Tu.extend({enable_persistence:!0},e),this._gdpr_call_func(hp,e),this._gdpr_update_persistence(e)},$d.prototype.report_error=function(e,t){Pu.error.apply(Pu.error,arguments);try{t||e instanceof Error||(e=new Error(e)),this.get_config("error_reporter")(e,t)}catch(t){Pu.error(t)}},$d.prototype.init=$d.prototype.init,$d.prototype.reset=$d.prototype.reset,$d.prototype.disable=$d.prototype.disable,$d.prototype.time_event=$d.prototype.time_event,$d.prototype.track=$d.prototype.track,$d.prototype.track_links=$d.prototype.track_links,$d.prototype.track_forms=$d.prototype.track_forms,$d.prototype.track_pageview=$d.prototype.track_pageview,$d.prototype.register=$d.prototype.register,$d.prototype.register_once=$d.prototype.register_once,$d.prototype.unregister=$d.prototype.unregister,$d.prototype.identify=$d.prototype.identify,$d.prototype.alias=$d.prototype.alias,$d.prototype.name_tag=$d.prototype.name_tag,$d.prototype.set_config=$d.prototype.set_config,$d.prototype.get_config=$d.prototype.get_config,$d.prototype.get_api_host=$d.prototype.get_api_host,$d.prototype.get_property=$d.prototype.get_property,$d.prototype.get_distinct_id=$d.prototype.get_distinct_id,$d.prototype.toString=$d.prototype.toString,$d.prototype.opt_out_tracking=$d.prototype.opt_out_tracking,$d.prototype.opt_in_tracking=$d.prototype.opt_in_tracking,$d.prototype.has_opted_out_tracking=$d.prototype.has_opted_out_tracking,$d.prototype.has_opted_in_tracking=$d.prototype.has_opted_in_tracking,$d.prototype.clear_opt_in_out_tracking=$d.prototype.clear_opt_in_out_tracking,$d.prototype.get_group=$d.prototype.get_group,$d.prototype.set_group=$d.prototype.set_group,$d.prototype.add_group=$d.prototype.add_group,$d.prototype.remove_group=$d.prototype.remove_group,$d.prototype.track_with_groups=$d.prototype.track_with_groups,$d.prototype.start_batch_senders=$d.prototype.start_batch_senders,$d.prototype.stop_batch_senders=$d.prototype.stop_batch_senders,$d.prototype.start_session_recording=$d.prototype.start_session_recording,$d.prototype.stop_session_recording=$d.prototype.stop_session_recording,$d.prototype.pause_session_recording=$d.prototype.pause_session_recording,$d.prototype.resume_session_recording=$d.prototype.resume_session_recording,$d.prototype.get_session_recording_properties=$d.prototype.get_session_recording_properties,$d.prototype.get_session_replay_url=$d.prototype.get_session_replay_url,$d.prototype.get_tab_id=$d.prototype.get_tab_id,$d.prototype.DEFAULT_API_ROUTES=Ud,$d.prototype.__get_recorder=$d.prototype.__get_recorder,Od.prototype.properties=Od.prototype.properties,Od.prototype.update_search_keyword=Od.prototype.update_search_keyword,Od.prototype.update_referrer_info=Od.prototype.update_referrer_info,Od.prototype.get_cross_subdomain=Od.prototype.get_cross_subdomain,Od.prototype.clear=Od.prototype.clear;var Wd={},Hd=(Ad=function(e,t){t()},md=0,(Nd=new $d).init=function(e,t,r){if(r)return Nd[r]||(Nd[r]=Wd[r]=zd(e,t,r),Nd[r]._loaded()),Nd[r];var i=Nd;Wd[Md]?i=Wd[Md]:e&&((i=zd(e,t,Md))._loaded(),Wd[Md]=i),Nd=i,1===md&&(n[Md]=Nd),Tu.each(Wd,function(e,t){t!==Md&&(Nd[t]=e)}),Nd._=Tu},Nd.init(),function(){function e(){e.done||(e.done=!0,Bd=!0,Dd=!1,Tu.each(Wd,function(e){e._dom_loaded()}))}if(Su.addEventListener)"complete"===Su.readyState?e():Su.addEventListener("DOMContentLoaded",e,!1);else if(Su.attachEvent){Su.attachEvent("onreadystatechange",e);var t=!1;try{t=null===n.frameElement}catch(e){}Su.documentElement.doScroll&&t&&function t(){try{Su.documentElement.doScroll("left")}catch(e){return void setTimeout(t,1)}e()}()}Tu.register_event(n,"load",e,!0)}(),Nd)},7008:(e,t,r)=>{"use strict";r.d(t,{$B:()=>d,Mh:()=>p,Yk:()=>h,bi:()=>s,lL:()=>o,oe:()=>u,qt:()=>a});var n=r(6751);let i=!1;const o=()=>{try{if("undefined"==typeof window)return!1;if(i)return!0;const e=window.marketplaceConfig||{};if(!e.data_consent_status)return!1;const t=e.mixpanel||{},r=t.token;if(!r||""===r)return!1;n.A.init(r,{debug:t.debug||!1,track_pageview:!1,persistence:"localStorage",property_blacklist:["$initial_referrer","$initial_referring_domain","$current_url","$referrer","$referring_domain","mp_lib","$lib_version","$browser","$browser_version","$device","$screen_height","$screen_width","$os","$search_engine"]});const o=t.distinctId;return o&&""!==o&&n.A.identify(o),i=!0,!0}catch(e){return!1}},s=()=>{try{i&&void 0!==n.A&&(n.A.reset(),i=!1)}catch(e){console.error("[MixpanelTracking] Error disabling Mixpanel:",e)}},a=()=>{try{if("undefined"==typeof window)return!1;const e=((window.marketplaceConfig||{}).mixpanel||{}).token;return!(!e||""===e)&&(i=!1,o())}catch(e){return console.error("[MixpanelTracking] Error enabling Mixpanel:",e),!1}},c=()=>{try{if("undefined"==typeof window)return{};const e=((window.marketplaceConfig||{}).mixpanel||{}).globalProperties||{},t=new URLSearchParams(window.location.search).get("page")||"",r={...e,hit_type:"event",page:t||window.location.pathname,path:window.location.pathname+window.location.search,referrer:document.referrer.split("/").filter(Boolean).pop()||""};return Object.fromEntries(Object.entries(r).filter(([e,t])=>""!==t&&null!=t&&(!Array.isArray(t)||0!==t.length)))}catch(e){return{}}},l=(e,t={})=>{try{if(!(()=>{try{return i&&void 0!==n.A}catch(e){return!1}})())return;const r={...c(),...t};n.A.track(e,r)}catch(t){console.error("[MixpanelTracking] Error tracking event:",e,t)}},u=({pluginSlug:e,pluginName:t,category:r,itemName:n,isContentRendered:i=!0,contentReceivedAt:o=null,contentRenderedAt:s=null,isCached:a=!1}={})=>{try{const c=Date.now(),u={content_received_at:o||c,is_content_rendered:i,is_cached:a};i&&(u.content_rendered_at=s||c),n?u.item_name=n:e&&(u.item_name=e),e&&(u.product_slug=e),t&&(u.product_name=t),r&&(u.item_category=r),l("Page Viewed",u)}catch(e){console.error("[MixpanelTracking] Error tracking page view:",e)}},p=({buttonName:e,buttonAction:t,plugin:r=null,context:n={}}={})=>{try{const i={button_name:e||"",button_action:t||"",item_name:e||"",timestamp:Date.now()};r&&Object.assign(i,(e=>{if(!e)return{};const t={product_slug:e.slug||"",product_name:e.name||""};if(e.categories&&e.categories.length>0){const r="object"==typeof e.categories[0]?e.categories[0].slug||e.categories[0].title:e.categories[0];t.item_category=r}return e.licenseType&&(t.license_type=e.licenseType),void 0!==e.priceAmount&&(t.price_amount=e.priceAmount),e.priceCurrency&&(t.price_currency=e.priceCurrency),t})(r)),Object.assign(i,n),l("Button Clicked",i)}catch(e){console.error("[MixpanelTracking] Error tracking button click:",e)}},h=(e=null,t=null,r=!1)=>{try{u({category:"marketplace_home",itemName:"Catalog Page",contentReceivedAt:e,contentRenderedAt:t,isCached:r})}catch(e){console.error("[MixpanelTracking] Error tracking marketplace visit:",e)}},d=(e,t=null,r=null,n=!1)=>{try{if(!e)return void console.warn("[MixpanelTracking] Plugin object required for tracking detail visit");const i=e.categories&&e.categories.length>0?"object"==typeof e.categories[0]?e.categories[0].slug||e.categories[0].title:e.categories[0]:"";u({pluginSlug:e.slug,pluginName:e.name,category:i,itemName:"Product Page",contentReceivedAt:t,contentRenderedAt:r,isCached:n})}catch(e){console.error("[MixpanelTracking] Error tracking plugin detail visit:",e)}}},7529:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Aggiorna pagina","ui.notifications.couldNotLoad":"Impossibile caricare la pagina","ui.notifications.refreshPage":"Aggiorna la pagina e contatta il nostro supporto se il problema persiste."}')},7565:(e,t,r)=>{"use strict";r.d(t,{P:()=>i,r:()=>o});let n={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:r(2875).x};const i=(e={})=>{n={...n,...e}},o=()=>n},7674:(e,t,r)=>{"use strict";r(1609),r(1352)},7823:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Refresh page","ui.notifications.couldNotLoad":"Couldn’t load the page","ui.notifications.refreshPage":"Please refresh the page and contact our support if the issue persists."}')},7829:(e,t,r)=>{"use strict";r(1609),r(4814),r(1352)},7979:(e,t,r)=>{"use strict";r.d(t,{D:()=>c,t:()=>a});var n=r(1609),i=r(7008),o=r(108);const s=(0,n.createContext)(null),a=({children:e,apiBaseUrl:t,useWPHandlers:r,wpConfig:a,enableDefaultStyles:c,assetsBaseUrl:l})=>{const[u,p]=(0,n.useState)({}),[h,d]=(0,n.useState)({}),[f,g]=(0,n.useState)({}),[m,v]=(0,n.useState)([]),[y,b]=(0,n.useState)({}),[_,w]=(0,n.useState)(""),[k,S]=(0,n.useState)(""),[x,C]=(0,n.useState)({visible:!1,type:null,pluginSlug:null}),[E,I]=(0,n.useState)({visible:!1,type:null,pluginSlug:null}),[O,N]=(0,n.useState)({visible:!1,type:null,pluginSlug:null}),[A,R]=(0,n.useState)(!1),[M,T]=(0,n.useState)(!1),[P,L]=(0,n.useState)(!0),[D,F]=(0,n.useState)(()=>{const e="undefined"!=typeof window&&window.marketplaceConfig?.data_consent_status;return!0===e||"true"===e||"1"===e||1===e}),U=((0,n.useRef)({}),(0,n.useRef)(null)),j="onecom"===("undefined"!=typeof window&&window.marketplaceConfig?.brand),B="undefined"!=typeof window&&window.marketplaceConfig?.activePlugins?window.marketplaceConfig.activePlugins:[],$="undefined"!=typeof window&&window.marketplaceConfig?.activeThemeAuthor?window.marketplaceConfig.activeThemeAuthor:"",z="undefined"!=typeof window&&window.marketplaceConfig?.wpVersion?window.marketplaceConfig.wpVersion:"";(0,n.useEffect)(()=>{const e=sessionStorage.getItem("mp_success_notice");if(e)try{const t=JSON.parse(e);C({visible:t.visible,type:t.type,pluginSlug:t.pluginSlug}),N({visible:t.visible,type:t.successType,pluginSlug:t.pluginSlug}),setTimeout(()=>{sessionStorage.removeItem("mp_success_notice")},100)}catch(e){console.error("Error parsing persisted success notice",e)}},[]),(0,n.useEffect)(()=>{!0===D&&(0,i.lL)();const e=e=>{const t=void 0!==e.detail?.data_consent_status&&e.detail.data_consent_status;F(t),!0===t?("undefined"!=typeof window&&window.marketplaceConfig&&(window.marketplaceConfig.data_consent_status=!0),(0,i.qt)()):("undefined"!=typeof window&&window.marketplaceConfig&&(window.marketplaceConfig.data_consent_status=!1),(0,i.bi)())};window.addEventListener("onConsentStatusChanged",e);const t=t=>{if("onecom_data_consent_status"===t.key){const r="1"===t.newValue;e({detail:{data_consent_status:r}})}};return window.addEventListener("storage",t),()=>{window.removeEventListener("onConsentStatusChanged",e),window.removeEventListener("storage",t)}},[]);const q=(0,n.useCallback)(async e=>{if(j&&W(e)){g(t=>({...t,[e]:!0}));try{const t=void 0!==window.marketplaceConfig&&window.marketplaceConfig?.wpConfig?.ajaxUrl;if(!t)return void g(t=>({...t,[e]:!1}));const r=new FormData;r.append("action","get_addon_purchase_status"),r.append("addon_purchase_check","true"),r.append("addon_slug",e);const n=await fetch(t,{method:"POST",body:r}),i=await n.json();d(t=>({...t,[e]:i.is_purchased}))}catch(t){d(t=>({...t,[e]:!1}))}finally{g(t=>({...t,[e]:!1}))}}},[j]),V=(0,n.useCallback)(()=>{U.current&&(clearTimeout(U.current),U.current=null),sessionStorage.removeItem("mp_success_notice")},[]),W=(0,n.useCallback)(e=>"wp-rocket"===e||"seo-by-rank-math-pro"===e,[]),H=(0,n.useCallback)(e=>(0,o.u)(z,e),[z]),G=(0,n.useCallback)(e=>!(!e||!j)&&W(e.slug)&&!e.installed&&!0===h[e.slug],[j,h,W]),K=(0,n.useCallback)(e=>{if(!e.rules)return!0;if(e.rules.mustHavePlugins&&Array.isArray(e.rules.mustHavePlugins)){if(0===e.rules.mustHavePlugins.length)return!0;if(!e.rules.mustHavePlugins.some(e=>B.includes(e)))return!1}if(e.rules.mustHaveThemesByAuthor&&"string"==typeof e.rules.mustHaveThemesByAuthor){const t=e.rules.mustHaveThemesByAuthor;if($!==t)return!1}return!0},[B,$]),J=(0,n.useCallback)(async(e,n,o="")=>{const s="activate"===e&&"imagify"===n.slug;p(e=>({...e,[n.slug]:!0}));let c=!1;const l=n.name||n.slug;let u="";if(u="activate"===e?(y?.notifications?.activating||"Activating {0}").replace("{0}",l)+"...":"deactivate"===e?(y?.notifications?.deactivating||"Deactivating {0}").replace("{0}",l)+"...":"install"===e?(y?.notifications?.installing||"Installing {0}").replace("{0}",l)+"...":"delete"===e?(y?.notifications?.deleting||"Deleting {0}").replace("{0}",l)+"...":`${e.charAt(0).toUpperCase()+(e.endsWith("e")?e.slice(1,-1):e.slice(1))+"ing"} ${l}`,w(u),S(""),s){let s=`${t}${e}/${n.slug}`;const l=`download_url=${encodeURIComponent(n.download||"")}`;return s=r?`${a.ajaxUrl}?action=marketplace_${e}_plugin&_wpnonce=${a.nonce}&nonce=${a.nonce}&slug=${n.slug}&${l}`:s+(s.includes("?")?"&":"?")+l,void setTimeout(async()=>{try{await fetch(s,{method:"POST"})}catch(e){console.log("Imagify activation request initiated")}let r=0;const a=async()=>{try{const r=`${t}active/${n.slug}`,s=await fetch(r),a=await s.json();if(a&&a.activated)return(0,i.Mh)({buttonName:"Activate",buttonAction:"product_activate",plugin:n,context:{action:e,result:"success",special_case:"imagify_redirect"}}),void("product_detail"===o?(sessionStorage.setItem("mp_skip_page_view","true"),sessionStorage.setItem("mp_success_notice",JSON.stringify({visible:!0,type:"activated",pluginSlug:n.slug,successType:"activate"})),U.current=setTimeout(()=>{window.location.reload()},500)):(N({visible:!0,type:"activate",pluginSlug:n.slug}),U.current=setTimeout(()=>{sessionStorage.setItem("mp_skip_page_view","true"),window.location.reload()},3e3),w(""),S(""),c=!0))}catch(e){console.error("Error checking activation status",e)}r++,r<6?setTimeout(a,1e3):(I({visible:!0,type:"activate",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Activate",buttonAction:"product_activate",plugin:n,context:{action:e,result:"error",error_message:"Imagify activation timeout after polling"}}),w(""),S(""),p(e=>({...e,[n.slug]:!1})))};setTimeout(a,1e3)},100)}try{let s=`${t}/${e}/${n.slug}`;const l=`download_url=${encodeURIComponent(n.download||"")}`;s=r?`${a.ajaxUrl}?action=marketplace_${e}_plugin&_wpnonce=${a.nonce}&nonce=${a.nonce}&slug=${n.slug}&${l}`:s+(s.includes("?")?"&":"?")+l;const u=await fetch(s,{method:"POST"}),p=await u.json();if(p.success)if(v(t=>t.map(t=>t.slug===n.slug?{...t,installed:p.data.installed,activated:p.data.activated}:"deactivate"===e&&"seo-by-rank-math"===n.slug&&"seo-by-rank-math-pro"===t.slug?{...t,activated:!1}:"activate"===e&&"seo-by-rank-math-pro"===n.slug&&"seo-by-rank-math"===t.slug?{...t,activated:!0}:t)),"install"===e&&p.data.installed)C({visible:!0,type:"installed",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Install",buttonAction:"product_install",plugin:n,context:{action:e,result:"success"}});else if("delete"!==e||p.data.installed){if("activate"===e&&p.data.activated)return c=!0,(0,i.Mh)({buttonName:"Activate",buttonAction:"product_activate",plugin:n,context:{action:e,result:"success"}}),void("product_detail"===o?(sessionStorage.setItem("mp_skip_page_view","true"),sessionStorage.setItem("mp_success_notice",JSON.stringify({visible:!0,type:"activated",pluginSlug:n.slug,successType:"activate"})),U.current=setTimeout(()=>{window.location.reload()},500)):(N({visible:!0,type:"activate",pluginSlug:n.slug}),U.current=setTimeout(()=>{sessionStorage.setItem("mp_skip_page_view","true"),window.location.reload()},3e3),w(""),S("")));if("deactivate"===e&&!p.data.activated)return c=!0,N({visible:!0,type:"deactivate",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Deactivate",buttonAction:"product_deactivate",plugin:n,context:{action:e,result:"success"}}),U.current=setTimeout(()=>{sessionStorage.setItem("mp_skip_page_view","true"),window.location.reload()},3e3),w(""),void S("")}else C({visible:!0,type:"deleted",pluginSlug:n.slug}),N({visible:!0,type:"delete",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Delete",buttonAction:"product_delete",plugin:n,context:{action:e,result:"success"}});else"activate"===e?(I({visible:!0,type:"activate",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Activate",buttonAction:"product_activate",plugin:n,context:{action:e,result:"error",error_message:p.data?.message||y?.notifications?.pluginActivationFailed||"Activation failed"}})):"deactivate"===e?(I({visible:!0,type:"deactivate",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Deactivate",buttonAction:"product_deactivate",plugin:n,context:{action:e,result:"error",error_message:p.data?.message||y?.notifications?.pluginDeactivationFailed||"Deactivation failed"}})):"install"===e?(I({visible:!0,type:"install",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Install",buttonAction:"product_install",plugin:n,context:{action:e,result:"error",error_message:p.data?.message||"Installation failed"}})):"delete"===e?(I({visible:!0,type:"delete",pluginSlug:n.slug}),(0,i.Mh)({buttonName:"Delete",buttonAction:"product_delete",plugin:n,context:{action:e,result:"error",error_message:p.data?.message||y?.notifications?.pluginDeletionFailed||"Deletion failed"}})):alert(p.data?.message||"Failed to perform action")}catch(t){console.error("Plugin action failed",t),"activate"!==e&&"install"!==e&&"delete"!==e||(0,i.Mh)({buttonName:"activate"===e?"Activate":"install"===e?"Install":"Delete",buttonAction:"activate"===e?"product_activate":"install"===e?"product_install":"product_delete",plugin:n,context:{action:e,result:"error",error_message:t.message||"Network error"}})}finally{c||p(e=>({...e,[n.slug]:!1})),w(""),S("")}},[t,r,a,y]),Y={apiBaseUrl:t,useWPHandlers:r,wpConfig:a,enableDefaultStyles:c,assetsBaseUrl:l,pluginInAction:u,setPluginInAction:p,subscriptionStatus:h,isCheckingSubscription:f,fetchSubscriptionStatus:q,isOnecomBrand:j,plugins:m,setPlugins:v,uiI18n:y,setUiI18n:b,handlePluginAction:J,cancelReload:V,loadingAction:_,loadingPlugin:k,noticeState:x,setNoticeState:C,errorState:E,setErrorState:I,successState:O,setSuccessState:N,allPluginsActivated:A,setAllPluginsActivated:R,catalogError:M,setCatalogError:T,catalogLoading:P,setCatalogLoading:L,shouldShowProvision:G,isSpecialPlugin:W,shouldShowPlugin:K,isWpVersionSupported:H,wpVersion:z,activePlugins:B,activeThemeAuthor:$};return(0,n.createElement)(s.Provider,{value:Y},e)},c=()=>{const e=(0,n.useContext)(s);if(!e)throw new Error("useMarketplace must be used within MarketplaceProvider");return e}},8291:(e,t,r)=>{"use strict";r.d(t,{Bd:()=>n.B,r9:()=>i.r}),r(7829),r(4814);var n=r(8437),i=(r(2648),r(2176),r(3273),r(3227),r(7674),r(1831));r(7565),r(1352)},8300:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Uppdatera sidan","ui.notifications.couldNotLoad":"Det gick inte att ladda sidan","ui.notifications.refreshPage":"Uppdatera sidan och kontakta vår support om problemet kvarstår."}')},8437:(e,t,r)=>{"use strict";r.d(t,{B:()=>a});var n=r(1609),i=r(1352),o=r(9454);const s=(e,t,r,n)=>e.getFixedT(t,r,n),a=(e,t={})=>{const{i18n:r}=t,{i18n:a,defaultNS:c}=(0,n.useContext)(i.gJ)||{},l=r||a||(0,i.TO)();if(l&&!l.reportNamespaces&&(l.reportNamespaces=new i.hz),!l){(0,o.mc)(l,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const e=(e,t)=>(0,o.Kg)(t)?t:(0,o.Gv)(t)&&(0,o.Kg)(t.defaultValue)?t.defaultValue:Array.isArray(e)?e[e.length-1]:e,t=[e,{},!1];return t.t=e,t.i18n={},t.ready=!1,t}l.options.react?.wait&&(0,o.mc)(l,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const u={...(0,i.rV)(),...l.options.react,...t},{useSuspense:p,keyPrefix:h}=u;let d=e||c||l.options?.defaultNS;d=(0,o.Kg)(d)?[d]:d||["translation"],l.reportNamespaces.addUsedNamespaces?.(d);const f=(l.isInitialized||l.initializedStoreOnce)&&d.every(e=>(0,o.NM)(e,l,u)),g=((e,t,r,i)=>(0,n.useCallback)(s(e,t,r,i),[e,t,r,i]))(l,t.lng||null,"fallback"===u.nsMode?d:d[0],h),m=()=>g,v=()=>s(l,t.lng||null,"fallback"===u.nsMode?d:d[0],h),[y,b]=(0,n.useState)(m);let _=d.join();t.lng&&(_=`${t.lng}${_}`);const w=((e,t)=>{const r=(0,n.useRef)();return(0,n.useEffect)(()=>{r.current=e},[e,t]),r.current})(_),k=(0,n.useRef)(!0);(0,n.useEffect)(()=>{const{bindI18n:e,bindI18nStore:r}=u;k.current=!0,f||p||(t.lng?(0,o.GA)(l,t.lng,d,()=>{k.current&&b(v)}):(0,o.dM)(l,d,()=>{k.current&&b(v)})),f&&w&&w!==_&&k.current&&b(v);const n=()=>{k.current&&b(v)};return e&&l?.on(e,n),r&&l?.store.on(r,n),()=>{k.current=!1,l&&e&&e?.split(" ").forEach(e=>l.off(e,n)),r&&l&&r.split(" ").forEach(e=>l.store.off(e,n))}},[l,_]),(0,n.useEffect)(()=>{k.current&&f&&b(m)},[l,h,f]);const S=[y,l,f];if(S.t=y,S.i18n=l,S.ready=f,f)return S;if(!f&&!p)return S;throw new Promise(e=>{t.lng?(0,o.GA)(l,t.lng,d,()=>e()):(0,o.dM)(l,d,()=>e())})}},8484:(e,t,r)=>{"use strict";let n;r.d(t,{T:()=>o,V:()=>i});const i=e=>{n=e},o=()=>n},8491:e=>{"use strict";e.exports=JSON.parse('{"ui.button.refreshPage":"Genindlæs side","ui.notifications.couldNotLoad":"Kunne ikke indlæse siden","ui.notifications.refreshPage":"Opdater venligst siden og kontakt vores support, hvis problemet fortsætter."}')},9454:(e,t,r)=>{"use strict";r.d(t,{GA:()=>a,Gv:()=>u,Kg:()=>l,NM:()=>c,dM:()=>s,mc:()=>i});const n={},i=(e,t,r,i)=>{l(r)&&n[r]||(l(r)&&(n[r]=new Date),((e,t,r,n)=>{const i=[r,{code:t,...n||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,"warn","react-i18next::",!0);l(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)})(e,t,r,i))},o=(e,t)=>()=>{if(e.isInitialized)t();else{const r=()=>{setTimeout(()=>{e.off("initialized",r)},0),t()};e.on("initialized",r)}},s=(e,t,r)=>{e.loadNamespaces(t,o(e,r))},a=(e,t,r,n)=>{if(l(r)&&(r=[r]),e.options.preload&&e.options.preload.indexOf(t)>-1)return s(e,r,n);r.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,o(e,n))},c=(e,t,r={})=>t.languages&&t.languages.length?t.hasLoadedNamespace(e,{lng:r.lng,precheck:(t,n)=>{if(r.bindI18n&&r.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!n(t.isLanguageChangingTo,e))return!1}}):(i(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0),l=e=>"string"==typeof e,u=e=>"object"==typeof e&&null!==e},9962:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(1609),i=r(5795),o=r(1338),s=r(4469),a=r(4677),c=r(7979),l=r(488);function u({plugin:e,onClose:t,usePortal:r=!0,loading:u=!1}){const{assetsBaseUrl:p,useWPHandlers:h,pluginInAction:d,plugins:f,uiI18n:g,subscriptionStatus:m,isCheckingSubscription:v,noticeState:y,setNoticeState:b,setErrorState:_}=(0,c.D)(),w=f.find(e=>"seo-by-rank-math"===e.slug)||null,k=f.find(e=>"seo-by-rank-math-pro"===e.slug)||null,S=p||void 0!==window.marketplaceConfig&&window.marketplaceConfig?.assetsBaseUrl||"",x=S?`${S}assets/icons/`:"";if(u){const e=(0,n.createElement)("div",{className:"gv-surface-dim"},(0,n.createElement)("article",{className:"gv-w-max-container gv-mx-auto"},(0,n.createElement)("nav",{className:"gv-breadcrumbs gv-area-nav gv-mb-lg"},(0,n.createElement)("a",{href:"#",onClick:e=>{if(e.preventDefault(),"undefined"!=typeof window&&window.history&&window.history.length>1)try{window.history.back()}catch(e){t&&t()}else t&&t()}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${x}arrow_back.svg`}),(0,n.createElement)("span",null,g.backButton))),(0,n.createElement)("header",{className:"gv-area-header"},(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("div",{className:"gv-card-image gv-h-full"},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full",style:{minHeight:"300px"}})))),(0,n.createElement)("header",{className:"gv-area-header gv-mt-fluid gv-mb-fluid"},(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("div",{className:"gv-card-image gv-h-full"},(0,n.createElement)("div",{className:"gv-skeleton gv-radius-0 gv-h-full",style:{minHeight:"300px"}})))),(0,n.createElement)("div",{className:"gv-area-details gv-grid gv-gap-fluid gv-mb-fluid"},(0,n.createElement)("section",{className:"gv-stack-space-md"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-md",style:{width:"160px"}}),(0,n.createElement)("ul",{className:""},[...Array(3)].map((e,t)=>(0,n.createElement)("li",{key:t},(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"})))))),(0,n.createElement)("div",{className:"gv-area-content gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-text-sm gv-stack-space-md"},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md",style:{width:"160px",marginBottom:"28px"}}),(0,n.createElement)("div",{className:"gv-grid gv-gap-lg gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3"},[...Array(3)].map((e,t)=>(0,n.createElement)("div",{className:"gv-item gv-stack-space-sm",key:t},(0,n.createElement)("div",{className:"gv-skeleton gv-heading-md gv-mb-sm",style:{width:"160px"}}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm gv-mb-xs"}),(0,n.createElement)("div",{className:"gv-skeleton gv-text-sm"}))))))));return r?(0,i.createPortal)(e,document.body):e}if(!e)return null;const C=(0,n.useRef)(null),E=(0,n.useRef)(null),I=(0,n.useRef)(null),O=(0,n.useRef)(null),N=(0,n.useRef)(null),[A,R]=((0,n.useRef)([]),(0,n.useState)(0));(0,n.useEffect)(()=>{window.scrollTo(0,0)},[e]),(0,n.useEffect)(()=>{b(e=>!e.visible||e.pluginSlug!==w?.slug&&e.pluginSlug!==k?.slug?{visible:!1,type:null,pluginSlug:null}:e),_(e=>!e.visible||e.pluginSlug!==w?.slug&&e.pluginSlug!==k?.slug?{visible:!1,type:null,pluginSlug:null}:e)},[w?.slug,k?.slug,b,_]),(0,n.useEffect)(()=>{const e=()=>{b({visible:!1,type:null,pluginSlug:null}),_({visible:!1,type:null,pluginSlug:null})};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[b,_]),(0,n.useEffect)(()=>{const e=C.current,t=E.current,r=I.current,n=O.current,i=N.current;if(!(e&&t&&r&&n&&i))return;const o=t.querySelector(".gv-previous"),s=t.querySelector(".gv-next");let a=!1,c="top",l=!1,u=!1,p=!1,h=null,d=!1;const f=()=>{const t=e.scrollLeft,r=e.offsetWidth,n=Math.round(t/r);R(n),o&&(0===n?o.classList.add("gv-disabled"):o.classList.remove("gv-disabled")),s&&(n>=Math.round(e.scrollWidth/r)-1?s.classList.add("gv-disabled"):s.classList.remove("gv-disabled"))},g=()=>{const e=parseFloat(getComputedStyle(r).paddingTop)||0,i=n.offsetHeight/2,o=i+e,s=window.innerHeight/2-o,a=2*i;return t.style.transform=`translateY(${o}px)`,t.style.top=`${s}px`,t.style.bottom=`${a}px`,{bottomValue:a,halfHeaderHeight:i}},m=e=>{const n=r.getBoundingClientRect(),i=window.innerHeight-e,o=n.bottom<=i;o!==a&&(a=o,a?t.classList.add("gv-state-bottom"):t.classList.remove("gv-state-bottom"))},v=()=>{if(p)return;let e;e=l?l&&!u?"overlay":"bottom":"top",e!==c&&(p=!0,c=e,"top"===c?(i.classList.add("gv-state-top"),i.classList.remove("gv-state-overlay")):"overlay"===c?(i.classList.remove("gv-state-top"),i.classList.add("gv-state-overlay")):(i.classList.remove("gv-state-top"),i.classList.remove("gv-state-overlay")),requestAnimationFrame(()=>{setTimeout(()=>{p=!1},50)}))},{bottomValue:y}=g();e.addEventListener("scroll",f);const b=new IntersectionObserver(e=>{e.forEach(e=>{!e.isIntersecting&&e.boundingClientRect.top<0?l=!0:(e.isIntersecting||e.boundingClientRect.top>=0)&&(l=!1),v()})},{threshold:[0,1],rootMargin:"0px"}),_=document.createElement("div");_.style.position="absolute",_.style.bottom="0",_.style.left="0",_.style.width="1px",_.style.height="1px",_.style.pointerEvents="none",r.style.position="relative",r.appendChild(_);const w=new IntersectionObserver(e=>{e.forEach(e=>{u=e.isIntersecting,v()})},{threshold:[0],rootMargin:"-100px 0px 0px 0px"});b.observe(i),w.observe(_);const k=()=>{d||(d=!0,requestAnimationFrame(()=>{m(y)}),h=setTimeout(()=>{d=!1},100))},S=()=>{const{bottomValue:e}=g();m(e)};return window.addEventListener("scroll",k),window.addEventListener("resize",S),f(),m(y),v(),()=>{h&&clearTimeout(h),e.removeEventListener("scroll",f),window.removeEventListener("scroll",k),window.removeEventListener("resize",S),b.disconnect(),w.disconnect(),_&&_.parentNode&&_.parentNode.removeChild(_)}},[]),void 0!==window.onecomWpVars&&window.onecomWpVars,e.thumbnail;const M=e.bannerUrl||e.image||e.thumbnail||"https://gravity.group.one/guide-images/product-image@2x.png",T=w?.name||e.name||"Product",P=w?.i18n?.description||w?.i18n?.subtitle,L=w?.i18n?.subtitle,D=k?.name||"Rank Math Pro",F=k?.i18n?.subtitle||k?.i18n?.description,U=k?(0,l.M)(k,g?.labels?.free||"Free",g):"",j=U===(g?.labels?.freeUntilRenewal||"Free until renewal"),B=(0,l.Tc)(k),$=(e,t)=>{if(!e||"object"!=typeof e)return[];const r=[];let n=1;for(;e[`${t}${n}`];){const i=e[`${t}${n}`];i&&""!==i.trim()&&r.push(i),n++}return r},z=w?.i18n||e.i18n,q=$(z,"keyBenefitContent"),V=$(w?.i18n,"keyFeatureContent"),W=$(k?.i18n,"keyFeatureContent"),H=Math.max(V.length,W.length),G=[];if(z&&"object"==typeof z){let e=1;for(;z[`coreFeatureTitle${e}`]||z[`coreFeatureContent${e}`];){const t=z[`coreFeatureTitle${e}`],r=z[`coreFeatureContent${e}`];t&&""!==t.trim()&&r&&""!==r.trim()&&G.push({name:t,desc:r}),e++}}const K=q,J=G,Y=(0,n.createElement)("div",{className:"gv-surface-dim"},(0,n.createElement)("article",{className:"gv-layout-product gv-w-max-container gv-mx-auto gv-p-fluid gv-p-0"},(0,n.createElement)("nav",{className:"gv-breadcrumbs gv-area-nav"},(0,n.createElement)("a",{href:"#",onClick:r=>{if(r.preventDefault(),!d[e.slug])if("undefined"!=typeof window&&window.history&&window.history.length>1)try{window.history.back()}catch(e){t&&t()}else t&&t()},className:"gv-flex gv-items-center gv-gap-xs",role:"button","aria-label":"Go back",style:{opacity:d[e.slug]?.5:1,pointerEvents:d[e.slug]?"none":"auto",cursor:d[e.slug]?"not-allowed":"pointer"},"aria-disabled":d[e.slug]?"true":"false"},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${x}arrow_back.svg`}),(0,n.createElement)("span",null,g.backButton)),(0,n.createElement)(s.A,{plugin:y?.pluginSlug===k?.slug?k:w}),(0,n.createElement)(a.A,{plugin:w}),(0,n.createElement)(a.A,{plugin:k})),(0,n.createElement)("header",{className:"gv-product-header gv-area-header"},(0,n.createElement)("div",{className:"gv-content gv-stack-space-md gv-text-sm"},(0,n.createElement)("h3",{className:"gv-title gv-header-lg"},"Rank Math"),(0,n.createElement)("p",{className:"gv-text-sm"},P)),(0,n.createElement)("div",{className:"gv-image"},(0,n.createElement)("picture",null,(0,n.createElement)("source",{media:"(min-width: 600px)",srcSet:`${M} 2x, ${M} 1x`}),(0,n.createElement)("img",{src:M,srcSet:`${M} 2x, ${M} 1x`,alt:"Product image"})))),(0,n.createElement)("section",{className:"gv-product-table gv-features-table gv-products-2 gv-recommended-2 gv-area-table"},(0,n.createElement)("div",{className:"gv-dots-scroll-area"},(0,n.createElement)("div",{className:"gv-table-container"},(0,n.createElement)("div",{className:"gv-slider-nav",ref:E},(0,n.createElement)("button",{type:"button",className:"gv-nav-button gv-previous gv-disabled",onClick:()=>{const e=C.current;if(!e)return;const t=e.offsetWidth;e.scrollTo({left:e.scrollLeft-t,behavior:"smooth"})}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${x}chevron_left.svg`})),(0,n.createElement)("button",{type:"button",className:"gv-nav-button gv-next",onClick:()=>{const e=C.current;if(!e)return;const t=e.offsetWidth;e.scrollTo({left:e.scrollLeft+t,behavior:"smooth"})}},(0,n.createElement)("gv-icon",{"aria-hidden":"true",src:`${x}chevron_right.svg`}))),(0,n.createElement)("div",{className:"gv-table-slider",ref:C},(0,n.createElement)("div",{className:"gv-table",role:"table",ref:I},(0,n.createElement)("div",{className:"gv-table-header",role:"rowgroup",ref:O},(0,n.createElement)("div",{className:"gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-product gv-p-0",role:"columnheader"},(0,n.createElement)("div",{className:"gv-content"},(0,n.createElement)("h3",{className:"gv-title"},`${T} free`),(0,n.createElement)("p",null,L)),(0,n.createElement)("div",{className:"gv-bottom"},(0,n.createElement)("div",{className:"gv-price-container"},(0,n.createElement)("div",{className:"gv-price"},(0,n.createElement)("span",{className:"gv-price-text"},g?.labels?.free||"Free"))),h&&w?(0,n.createElement)(o.A,{plugin:w}):w?.download&&(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-secondary"},g?.installButton||w?.i18n?.installButton||"Install"))),(0,n.createElement)("div",{className:"gv-product gv-p-0",role:"columnheader"},(0,n.createElement)("div",{className:"gv-recommended-label"},"Recommended"),(0,n.createElement)("div",{className:"gv-content"},(0,n.createElement)("h3",{className:"gv-title"},D),(0,n.createElement)("p",null,F.substring(0,120),F.length>120?"…":"")),(0,n.createElement)("div",{className:"gv-bottom"},(0,n.createElement)("div",{className:"gv-price-container"},(0,n.createElement)("div",{className:"gv-price"},(0,n.createElement)("span",{className:"gv-price-text"},U,U&&!j&&",-"),U&&!j&&(0,n.createElement)("span",{className:"gv-period"},"/",g?.labels?.timeMonth)),U&&(0,n.createElement)("div",{className:"gv-price-info"},(0,n.createElement)("div",{className:"gv-info"},g.labels.afterThat," [",B,"]/",g?.labels?.timeMonth))),h&&k?(0,n.createElement)(o.A,{plugin:k}):(0,n.createElement)("button",{type:"button",className:"gv-button gv-button-primary"},"Select"))))),H>0&&(0,n.createElement)("div",{className:"gv-section",role:"rowgroup"},(0,n.createElement)("div",{className:"gv-section-header gv-table-row",role:"row"},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("h4",{className:"gv-title"},g?.keyFeatureHeading||w?.i18n?.keyFeatureHeading||"Key features")),(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("h4",{className:"gv-title"},g?.keyFeatureHeading||k?.i18n?.keyFeatureHeading||"Key features"))),Array.from({length:H}).map((e,t)=>(0,n.createElement)("div",{className:"gv-table-row",role:"row",key:t},(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("span",{className:"gv-cell-text"},V[t]||"")),(0,n.createElement)("div",{className:"gv-cell",role:"cell"},(0,n.createElement)("span",{className:"gv-cell-text"},W[t]||"")))))))),(0,n.createElement)("div",{className:"gv-slider-pagination gv-state-top",ref:N},(0,n.createElement)("div",{className:"gv-dots",role:"tablist"},[0,1].map(e=>(0,n.createElement)("span",{key:e,className:"gv-dot "+(A===e?"gv-active":""),role:"tab","aria-selected":A===e?"true":"false","aria-label":`Go to slide ${e+1}`,onClick:()=>(e=>{const t=C.current;if(!t)return;const r=t.offsetWidth;t.scrollTo({left:r*e,behavior:"smooth"})})(e),style:{cursor:"pointer"}})))))),(0,n.createElement)("div",{className:"gv-area-details gv-grid gv-gap-fluid"},K.length>0&&(0,n.createElement)("section",{className:"gv-stack-space-md"},(0,n.createElement)("h2",{className:"gv-title gv-text-bold gv-text-lg"},g?.benefitHeading||e.i18n?.benefitHeading||"Key benefits"),(0,n.createElement)("ul",{className:"gv-list-items gv-list-check gv-mode-condensed"},K.map((e,t)=>(0,n.createElement)("li",{key:t},e))))),J.length>0&&(0,n.createElement)("div",{className:"gv-area-content gv-grid gv-gap-fluid"},(0,n.createElement)("section",{className:"gv-text-sm gv-stack-space-md"},(0,n.createElement)("h2",{className:"gv-title gv-text-bold gv-text-lg"},g?.featureOverviewHeading||e.i18n?.featureOverviewHeading||"Core features overview"),(0,n.createElement)("div",{className:"gv-grid gv-gap-lg gv-tab-grid-cols-2 gv-desk-lg-grid-cols-3"},J.map((e,t)=>(0,n.createElement)("div",{className:"gv-item gv-stack-space-sm",key:t},(0,n.createElement)("h3",{className:"gv-title gv-text-bold gv-text-lg"},e.name),(0,n.createElement)("p",{className:"gv-text-sm"},e.desc))))))));return r?(0,i.createPortal)(Y,document.body):Y}}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";r.r(n);var e=r(1609),t=r(5795),i=r.n(t),o=r(5771),s=(r(5036),r(108));document.addEventListener("DOMContentLoaded",()=>{const t=document.getElementById("marketplace-root");if(t){const n=window.marketplaceConfig||{};n.locale&&Promise.resolve().then(r.bind(r,2635)).then(({default:e})=>{e.changeLanguage(n.locale)});const a=(0,s.u)(n.wpVersion,"6.2");"function"==typeof i().createRoot&&a?i().createRoot(t).render((0,e.createElement)(o.A,{...n})):i().render((0,e.createElement)(o.A,{...n}),t)}})})(),window.MarketPlaceWP=n})();
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/frontend/build/index.js.map b/frontend/build/index.js.map
deleted file mode 100644
index 9dd08b6..0000000
--- a/frontend/build/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","mappings":"yDAAO,MAAMA,EAAuBA,CAACC,EAASC,KAC1C,IAAKD,EAAS,OAAO,EACrB,MAAME,EAAKC,OAAOH,GAASI,MAAM,KAC3BC,EAAKF,OAAOF,GAAYG,MAAM,KACpC,IAAK,IAAIE,EAAI,EAAGA,EAAIC,KAAKC,IAAIN,EAAGO,OAAQJ,EAAGI,QAASH,IAAK,CACrD,MAAMI,EAAOC,SAAST,EAAGI,IAAM,EAAG,IAC5BM,EAAOD,SAASN,EAAGC,IAAM,EAAG,IAClC,GAAII,EAAOE,EAAM,OAAO,EACxB,GAAIF,EAAOE,EAAM,OAAO,CAC5B,CACA,OAAO,E,qTCPX,MAAMC,EAAmB,CACrB,IAAO,IACP,IAAO,IACP,IAAO,IACN,IAAO,KACP,IAAO,KACP,IAAO,MASNC,EAA8B,CAAC,MAAO,MAAO,OAO7CC,EAAqBC,GAChBH,EAAiBG,IAAiBA,EAUvCC,EAAwBA,CAACC,EAAQC,EAAQH,IACvCF,EAA4BM,SAASJ,GAC9B,GAAGE,KAAUC,IAEjB,GAAGA,KAAUD,IAQXG,EAAgBC,IACzB,GAAIA,EAAOC,QAAUC,MAAMC,QAAQH,EAAOC,SAAWD,EAAOC,OAAOd,OAAS,EAAG,CAC3E,MAAMiB,EAAYJ,EAAOC,OAAOI,KAAKC,GAAqB,SAAhBA,EAAEC,WAC5C,GAAIH,GAAaA,EAAUR,QAAUQ,EAAUI,SAAU,CACrD,MAAMX,EAASJ,EAAkBW,EAAUI,UACrCC,EAAkBC,OAAON,EAAUR,QAAQe,QAAQ,GACzD,OAAOhB,EAAsBc,EAAiBZ,EAAQO,EAAUI,SACpE,CACJ,CACA,OAAO,MAQEI,EAAkBZ,IAC3B,GAAIA,EAAOC,QAAUC,MAAMC,QAAQH,EAAOC,SAAWD,EAAOC,OAAOd,OAAS,EAAG,CAC3E,MAAM0B,EAAcb,EAAOC,OAAOI,KAAKC,GAAqB,WAAhBA,EAAEC,WAC9C,GAAIM,QAAsCC,IAAvBD,EAAYjB,QAA+C,OAAvBiB,EAAYjB,QAAmBiB,EAAYL,SAAU,CACxG,MAAMX,EAASJ,EAAkBoB,EAAYL,UACvCC,EAAkBC,OAAOG,EAAYjB,QAAQe,QAAQ,GAC3D,OAAOhB,EAAsBc,EAAiBZ,EAAQgB,EAAYL,SACtE,CACJ,CACA,OAAO,MAUEO,EAAoBA,CAACf,EAAQgB,EAAY,OAAQC,EAAS,QAGnE,GAFsC,SAAvBjB,EAAOkB,YAGlB,OAAOF,EAIX,GAAIhB,EAAOC,QAAUC,MAAMC,QAAQH,EAAOC,SAAWD,EAAOC,OAAOd,OAAS,EAAG,CAE3E,MAAM0B,EAAcb,EAAOC,OAAOI,KAAKc,GAA6B,WAApBA,EAAMZ,WAEtD,GAAIM,GAAsC,YAAvBb,EAAOkB,YAA2B,CAEjD,GAA2B,IAAvBL,EAAYjB,OACZ,OAAOqB,GAAQG,QAAQC,kBAAoB,qBAG/C,GAAIR,EAAYjB,QAAUiB,EAAYL,SAAU,CAC5C,MAAMX,EAASJ,EAAkBoB,EAAYL,UACvCC,EAAkBC,OAAOG,EAAYjB,QAAQe,QAAQ,GAE3D,MAAO,GADiBhB,EAAsBc,EAAiBZ,EAAQgB,EAAYL,YAEvF,CACJ,CAGA,IAAIc,EAAatB,EAAOC,OAAOI,KAAKc,GAA6B,SAApBA,EAAMZ,aAA4C,IAAnBY,EAAMI,eAAwCT,IAAnBK,EAAMI,WAY7G,GATKD,IACDA,EAAatB,EAAOC,OAAOI,KAAKc,IAA4B,IAAnBA,EAAMI,WAI9CD,IACDA,EAAatB,EAAOC,OAAO,IAG3BqB,GAAcA,EAAW1B,QAAU0B,EAAWd,SAAU,CACxD,MAAMX,EAASJ,EAAkB6B,EAAWd,UAEtCC,EAAkBC,OAAOY,EAAW1B,QAAQe,QAAQ,GAC1D,OAAOhB,EAAsBc,EAAiBZ,EAAQyB,EAAWd,SACrE,CACJ,CAGA,GAAIR,EAAOwB,eAAiBxB,EAAOyB,YAAa,CAC5C,MAAM5B,EAASJ,EAAkBO,EAAOwB,eAElCf,EAAkBC,OAAOV,EAAOyB,aAAad,QAAQ,GAC3D,OAAOhB,EAAsBc,EAAiBZ,EAAQG,EAAOwB,cACjE,CAGA,MAAO,G,uECzII,SAASE,IACpB,MAAM,OAAET,IAAWU,EAAAA,EAAAA,KAQbC,EAAcX,GAAQY,eAAeC,cAAeC,QAAQ,MAAO,OAEzE,OACIC,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kHACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,mBACXD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,yBACThB,GAAQY,eAAeK,gBAE5BF,EAAAA,EAAAA,eAAA,KAAGC,UAAU,uBACRL,IAELI,EAAAA,EAAAA,eAAA,UACIG,KAAK,SACLF,UAAU,gDACVG,QApBUC,KACtBC,OAAOC,SAASC,KAAyB,oBAAXF,QAA0BA,OAAOG,mBAAmBC,UAAUC,SACtF,GAAGL,OAAOG,kBAAkBC,SAASC,0BACrC,+BAmBMX,EAAAA,EAAAA,eAAA,YAAOf,GAAQ2B,kBAKnC,C,+XC5Be,SAASC,GAAc,OAAE7C,IACpC,MAAM,cACF8C,EAAa,eACbC,EAAc,mBACdC,EAAkB,uBAClBC,EAAsB,cACtBC,EAAa,mBACbC,EAAkB,OAClBlC,EAAM,gBACNmC,IACAzB,EAAAA,EAAAA,KAGE0B,EAA2BL,EAAmBhD,EAAOsD,MACrDC,EAA+BN,EAAuBjD,EAAOsD,MAC7DE,EAAYV,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAAmBK,eAAkB,GAC7HW,EAAWD,EAAY,GAAGA,WAAqB,GAC/CE,EAAeC,IAEjB,MAAMC,GAAkB5D,EAAO6D,UAE/B,GAAIX,GAAiBE,EAAgBpD,EAAOsD,OAASM,GAA6B,YAAXD,EAAsB,EAEzFG,EAAAA,EAAAA,IAAiB,CACbC,WAAY,UACZC,aAAc,kBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,eAKhB,MAAMC,EAAQ,IAAIC,YAAY,0BAA2B,CACrDC,OAAQ,CACJf,KAAMtD,EAAOsD,MAEjBgB,SAAS,EACTC,YAAY,EACZC,UAAU,IAId,YADAC,SAASC,cAAcP,EAE3B,CAGAhB,EAAmBQ,EAAQ3D,EAAQ,mBAuCjC2E,EAAgBA,CAACC,EAASC,IACvBD,EACEA,EAAQ7C,QAAQ,MAAO8C,GAAc,IADvB,GAInBA,EAAa7E,GAAQ8E,MAAQ,GAG7BC,EAAyB7B,GAAiBE,EAAgBpD,EAAOsD,QAAUtD,EAAO6D,YAA0C,IAA7BR,EAI/F2B,EAAqB9B,GAAiBE,EAAgBpD,EAAOsD,QAAUtD,EAAO6D,YAC/EN,QAA6DzC,IAA7BuC,GAErC,OACIrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,2BACV+C,GACGhD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8BACf8C,GACA/C,EAAAA,EAAAA,eAAA,UACIG,KAAK,SACLF,UAAU,8BACVG,QA3DU6C,MAEtBnB,EAAAA,EAAAA,IAAiB,CACbC,WAAY,SACZC,aAAc,kBACdhE,OAAQA,IAIZ,MAAMmE,EAAQ,IAAIC,YAAY,yBAA0B,CACpDC,OAAQ,CAAEf,KAAMtD,EAAOsD,MACvBgB,SAAS,EACTC,YAAY,EACZC,UAAU,IAEdC,SAASC,cAAcP,IA6CXe,SAAU3B,GACb,UAGDvD,EAAO6D,UACP7D,EAAOmF,WACHnD,EAAAA,EAAAA,eAAA,UACIG,KAAK,SACLF,UAAU,8BACVG,QAnDCgD,MAEjBtB,EAAAA,EAAAA,IAAiB,CACbC,WAAY,SACZC,aAAc,iBACdC,QAAS,CACLoB,aAAcrF,EAAOsD,KACrBgC,aAActF,EAAO8E,KACrBS,oBAAqBvF,EAAOwF,aAA6C,KAA9BxF,EAAOwF,YAAYC,QAC9DC,sBAAuB1F,EAAO2F,eAAiD,KAAhC3F,EAAO2F,cAAcF,WAI5E,MAAMD,GAAcI,EAAAA,EAAAA,GAAqB5F,GAAQ,IACjD6F,EAAAA,EAAAA,GAAoBL,MAuCLxD,EAAAA,EAAAA,eAAA,YAAOf,GAAQG,QAAQ0E,QAAU,WAChC9D,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,6BAGxCzB,EAAAA,EAAAA,eAAA,UACIC,UAAU,8BACViD,SAAUnC,EAAe/C,EAAOsD,MAChClB,QAASA,IAAMsB,EAAY,aAE1BX,EAAe/C,EAAOsD,MACjBqB,EAAc1D,GAAQY,eAAemE,YAAc,iBAAkBnB,GACpE5D,GAAQgF,gBAAkBjG,EAAOkG,MAAMD,gBAAkB,aAIxEjE,EAAAA,EAAAA,eAAA,UACIC,UAAW,cAA6B,qBAAhBjC,EAAOsD,KAA8B,sBAAwB,qBACrF4B,SAAUnC,EAAe/C,EAAOsD,MAChClB,QAASA,IAAMsB,EAAY,YAE1BX,EAAe/C,EAAOsD,MACjBqB,EAAc1D,GAAQY,eAAesE,YAAc,iBAAkBtB,GACpE5D,GAAQmF,eAAiBpG,EAAOkG,MAAME,eAAiB,WAKlF,C,yHCrJO,MAAMC,GAAc,IAAAC,iBACpB,MAAMC,EACX,WAAAC,GACEC,KAAKC,eAAiB,CAAC,CACzB,CACA,iBAAAC,CAAkBC,GAChBA,EAAWC,QAAQC,IACZL,KAAKC,eAAeI,KAAKL,KAAKC,eAAeI,IAAM,IAE5D,CACA,iBAAAC,GACE,OAAOC,OAAOC,KAAKR,KAAKC,eAC1B,E,wBCjBFQ,EAAOC,QAAU7E,OAAc,K,iFCIhB,SAAS8E,IACpB,MAAM,cAAEtE,IAAkBnB,EAAAA,EAAAA,MACpB,IAAQ0F,EAAAA,EAAAA,MASd,OAPkBvE,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAQ1FT,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kHACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,mBACXD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,yBAAyBqF,EAAE,mCACzCtF,EAAAA,EAAAA,eAAA,KAAGC,UAAU,uBAAuBqF,EAAE,kCACtCtF,EAAAA,EAAAA,eAAA,UACIG,KAAK,SACLF,UAAU,gDACVG,QAZMmF,KAClBjF,OAAOC,SAASiF,YAaJxF,EAAAA,EAAAA,eAAA,YAAOsF,EAAE,4BAK7B,C,uEC5BO,MAAMG,EAAmB,CAC9BtF,KAAM,WACN,IAAAuF,CAAKC,IACH,OAAYA,EAASC,QAAQC,QAC7B,OAAQF,EACV,E,kXCPF,MAAMG,EAAWC,GAAsB,iBAARA,EACzBC,EAAQ,KACZ,IAAIC,EACAC,EACJ,MAAMC,EAAU,IAAIC,QAAQ,CAACC,EAASC,KACpCL,EAAMI,EACNH,EAAMI,IAIR,OAFAH,EAAQE,QAAUJ,EAClBE,EAAQG,OAASJ,EACVC,GAEHI,EAAaC,GACH,MAAVA,EAAuB,GACpB,GAAKA,EAORC,EAA4B,OAC5BC,EAAWC,GAAOA,GAAOA,EAAIC,QAAQ,QAAU,EAAID,EAAI5G,QAAQ0G,EAA2B,KAAOE,EACjGE,EAAuBL,IAAWA,GAAUV,EAASU,GACrDM,EAAgB,CAACN,EAAQO,EAAMC,KACnC,MAAMC,EAASnB,EAASiB,GAAeA,EAAKjK,MAAM,KAAlBiK,EAChC,IAAIG,EAAa,EACjB,KAAOA,EAAaD,EAAM9J,OAAS,GAAG,CACpC,GAAI0J,EAAqBL,GAAS,MAAO,CAAC,EAC1C,MAAMG,EAAMD,EAASO,EAAMC,KACtBV,EAAOG,IAAQK,IAAOR,EAAOG,GAAO,IAAIK,GAE3CR,EADExB,OAAOmC,UAAUC,eAAeC,KAAKb,EAAQG,GACtCH,EAAOG,GAEP,CAAC,IAEVO,CACJ,CACA,OAAIL,EAAqBL,GAAgB,CAAC,EACnC,CACLT,IAAKS,EACLc,EAAGZ,EAASO,EAAMC,MAGhBK,EAAU,CAACf,EAAQO,EAAMS,KAC7B,MAAM,IACJzB,EAAG,EACHuB,GACER,EAAcN,EAAQO,EAAM/B,QAChC,QAAYlG,IAARiH,GAAqC,IAAhBgB,EAAK5J,OAE5B,YADA4I,EAAIuB,GAAKE,GAGX,IAAIC,EAAIV,EAAKA,EAAK5J,OAAS,GACvBmB,EAAIyI,EAAKW,MAAM,EAAGX,EAAK5J,OAAS,GAChCwK,EAAOb,EAAcN,EAAQlI,EAAG0G,QACpC,UAAoBlG,IAAb6I,EAAK5B,KAAqBzH,EAAEnB,QACjCsK,EAAI,GAAGnJ,EAAEA,EAAEnB,OAAS,MAAMsK,IAC1BnJ,EAAIA,EAAEoJ,MAAM,EAAGpJ,EAAEnB,OAAS,GAC1BwK,EAAOb,EAAcN,EAAQlI,EAAG0G,QAC5B2C,GAAM5B,UAA6C,IAA/B4B,EAAK5B,IAAI,GAAG4B,EAAKL,KAAKG,OAC5CE,EAAK5B,SAAMjH,GAGf6I,EAAK5B,IAAI,GAAG4B,EAAKL,KAAKG,KAAOD,GAUzBI,EAAU,CAACpB,EAAQO,KACvB,MAAM,IACJhB,EAAG,EACHuB,GACER,EAAcN,EAAQO,GAC1B,GAAKhB,GACAf,OAAOmC,UAAUC,eAAeC,KAAKtB,EAAKuB,GAC/C,OAAOvB,EAAIuB,IASPO,EAAa,CAACC,EAAQC,EAAQC,KAClC,IAAK,MAAMC,KAAQF,EACJ,cAATE,GAAiC,gBAATA,IACtBA,KAAQH,EACNhC,EAASgC,EAAOG,KAAUH,EAAOG,aAAiBpL,QAAUiJ,EAASiC,EAAOE,KAAUF,EAAOE,aAAiBpL,OAC5GmL,IAAWF,EAAOG,GAAQF,EAAOE,IAErCJ,EAAWC,EAAOG,GAAOF,EAAOE,GAAOD,GAGzCF,EAAOG,GAAQF,EAAOE,IAI5B,OAAOH,GAEHI,EAAcC,GAAOA,EAAIpI,QAAQ,sCAAuC,QAC9E,IAAIqI,EAAa,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,UAEP,MAAMC,EAASC,GACTxC,EAASwC,GACJA,EAAKvI,QAAQ,aAAcwI,GAAKH,EAAWG,IAE7CD,EAsBHE,EAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,KAC7BC,EAAiC,IArBvC,MACE,WAAAjE,CAAYkE,GACVjE,KAAKiE,SAAWA,EAChBjE,KAAKkE,UAAY,IAAIC,IACrBnE,KAAKoE,YAAc,EACrB,CACA,SAAAC,CAAUC,GACR,MAAMC,EAAkBvE,KAAKkE,UAAUM,IAAIF,GAC3C,QAAwBjK,IAApBkK,EACF,OAAOA,EAET,MAAME,EAAY,IAAIC,OAAOJ,GAM7B,OALItE,KAAKoE,YAAY1L,SAAWsH,KAAKiE,UACnCjE,KAAKkE,UAAUS,OAAO3E,KAAKoE,YAAYQ,SAEzC5E,KAAKkE,UAAUW,IAAIP,EAASG,GAC5BzE,KAAKoE,YAAYU,KAAKR,GACfG,CACT,GAGqD,IAgBjDM,EAAW,CAACzD,EAAKgB,EAAM0C,EAAe,OAC1C,IAAK1D,EAAK,OACV,GAAIA,EAAIgB,GAAO,CACb,IAAK/B,OAAOmC,UAAUC,eAAeC,KAAKtB,EAAKgB,GAAO,OACtD,OAAOhB,EAAIgB,EACb,CACA,MAAM2C,EAAS3C,EAAKjK,MAAM2M,GAC1B,IAAIE,EAAU5D,EACd,IAAK,IAAI/I,EAAI,EAAGA,EAAI0M,EAAOvM,QAAS,CAClC,IAAKwM,GAA8B,iBAAZA,EACrB,OAEF,IAAIC,EACAC,EAAW,GACf,IAAK,IAAIC,EAAI9M,EAAG8M,EAAIJ,EAAOvM,SAAU2M,EAMnC,GALIA,IAAM9M,IACR6M,GAAYJ,GAEdI,GAAYH,EAAOI,GACnBF,EAAOD,EAAQE,QACF/K,IAAT8K,EAAoB,CACtB,GAAI,CAAC,SAAU,SAAU,WAAWhD,eAAegD,IAAS,GAAKE,EAAIJ,EAAOvM,OAAS,EACnF,SAEFH,GAAK8M,EAAI9M,EAAI,EACb,KACF,CAEF2M,EAAUC,CACZ,CACA,OAAOD,GAEHI,EAAiBC,GAAQA,GAAMjK,QAAQ,IAAK,KAE5CkK,EAAgB,CACpB9J,KAAM,SACN,GAAA+J,CAAIC,GACF1F,KAAK2F,OAAO,MAAOD,EACrB,EACA,IAAAE,CAAKF,GACH1F,KAAK2F,OAAO,OAAQD,EACtB,EACA,KAAAG,CAAMH,GACJ1F,KAAK2F,OAAO,QAASD,EACvB,EACA,MAAAC,CAAOjK,EAAMgK,GACXI,UAAUpK,IAAOqK,QAAQD,QAASJ,EACpC,GAEF,MAAMM,EACJ,WAAAjG,CAAYkG,EAAgB9E,EAAU,CAAC,GACrCnB,KAAKiB,KAAKgF,EAAgB9E,EAC5B,CACA,IAAAF,CAAKgF,EAAgB9E,EAAU,CAAC,GAC9BnB,KAAKkG,OAAS/E,EAAQ+E,QAAU,WAChClG,KAAKmG,OAASF,GAAkBT,EAChCxF,KAAKmB,QAAUA,EACfnB,KAAKoG,MAAQjF,EAAQiF,KACvB,CACA,GAAAX,IAAOC,GACL,OAAO1F,KAAKqG,QAAQX,EAAM,MAAO,IAAI,EACvC,CACA,IAAAE,IAAQF,GACN,OAAO1F,KAAKqG,QAAQX,EAAM,OAAQ,IAAI,EACxC,CACA,KAAAG,IAASH,GACP,OAAO1F,KAAKqG,QAAQX,EAAM,QAAS,GACrC,CACA,SAAAY,IAAaZ,GACX,OAAO1F,KAAKqG,QAAQX,EAAM,OAAQ,wBAAwB,EAC5D,CACA,OAAAW,CAAQX,EAAMa,EAAKL,EAAQM,GACzB,OAAIA,IAAcxG,KAAKoG,MAAc,MACjC/E,EAASqE,EAAK,MAAKA,EAAK,GAAK,GAAGQ,IAASlG,KAAKkG,UAAUR,EAAK,MAC1D1F,KAAKmG,OAAOI,GAAKb,GAC1B,CACA,MAAAe,CAAOC,GACL,OAAO,IAAIV,EAAOhG,KAAKmG,OAAQ,CAE3BD,OAAQ,GAAGlG,KAAKkG,UAAUQ,QAEzB1G,KAAKmB,SAEZ,CACA,KAAAwF,CAAMxF,GAGJ,OAFAA,EAAUA,GAAWnB,KAAKmB,SAClB+E,OAAS/E,EAAQ+E,QAAUlG,KAAKkG,OACjC,IAAIF,EAAOhG,KAAKmG,OAAQhF,EACjC,EAEF,IAAIyF,EAAa,IAAIZ,EAErB,MAAMa,EACJ,WAAA9G,GACEC,KAAK8G,UAAY,CAAC,CACpB,CACA,EAAAC,CAAGC,EAAQC,GAMT,OALAD,EAAO3O,MAAM,KAAK+H,QAAQ1C,IACnBsC,KAAK8G,UAAUpJ,KAAQsC,KAAK8G,UAAUpJ,GAAS,IAAIyG,KACxD,MAAM+C,EAAelH,KAAK8G,UAAUpJ,GAAO8G,IAAIyC,IAAa,EAC5DjH,KAAK8G,UAAUpJ,GAAOmH,IAAIoC,EAAUC,EAAe,KAE9ClH,IACT,CACA,GAAAmH,CAAIzJ,EAAOuJ,GACJjH,KAAK8G,UAAUpJ,KACfuJ,EAILjH,KAAK8G,UAAUpJ,GAAOiH,OAAOsC,UAHpBjH,KAAK8G,UAAUpJ,GAI1B,CACA,IAAA0J,CAAK1J,KAAUgI,GACT1F,KAAK8G,UAAUpJ,IACFjE,MAAM4N,KAAKrH,KAAK8G,UAAUpJ,GAAO4J,WACzClH,QAAQ,EAAEmH,EAAUC,MACzB,IAAK,IAAIjP,EAAI,EAAGA,EAAIiP,EAAejP,IACjCgP,KAAY7B,KAId1F,KAAK8G,UAAU,MACFrN,MAAM4N,KAAKrH,KAAK8G,UAAU,KAAKQ,WACvClH,QAAQ,EAAEmH,EAAUC,MACzB,IAAK,IAAIjP,EAAI,EAAGA,EAAIiP,EAAejP,IACjCgP,EAASxB,MAAMwB,EAAU,CAAC7J,KAAUgI,KAI5C,EAGF,MAAM+B,UAAsBZ,EAC1B,WAAA9G,CAAY8D,EAAM1C,EAAU,CAC1Bd,GAAI,CAAC,eACLqH,UAAW,gBAEXC,QACA3H,KAAK6D,KAAOA,GAAQ,CAAC,EACrB7D,KAAKmB,QAAUA,OACmB9G,IAA9B2F,KAAKmB,QAAQ6D,eACfhF,KAAKmB,QAAQ6D,aAAe,UAEW3K,IAArC2F,KAAKmB,QAAQyG,sBACf5H,KAAKmB,QAAQyG,qBAAsB,EAEvC,CACA,aAAAC,CAAcxH,GACRL,KAAKmB,QAAQd,GAAG8B,QAAQ9B,GAAM,GAChCL,KAAKmB,QAAQd,GAAGyE,KAAKzE,EAEzB,CACA,gBAAAyH,CAAiBzH,GACf,MAAM0H,EAAQ/H,KAAKmB,QAAQd,GAAG8B,QAAQ9B,GAClC0H,GAAS,GACX/H,KAAKmB,QAAQd,GAAG2H,OAAOD,EAAO,EAElC,CACA,WAAAE,CAAYC,EAAK7H,EAAI6B,EAAKf,EAAU,CAAC,GACnC,MAAM6D,OAAwC3K,IAAzB8G,EAAQ6D,aAA6B7D,EAAQ6D,aAAehF,KAAKmB,QAAQ6D,aACxF4C,OAAsDvN,IAAhC8G,EAAQyG,oBAAoCzG,EAAQyG,oBAAsB5H,KAAKmB,QAAQyG,oBACnH,IAAItF,EACA4F,EAAI/F,QAAQ,MAAQ,EACtBG,EAAO4F,EAAI7P,MAAM,MAEjBiK,EAAO,CAAC4F,EAAK7H,GACT6B,IACEzI,MAAMC,QAAQwI,GAChBI,EAAKwC,QAAQ5C,GACJb,EAASa,IAAQ8C,EAC1B1C,EAAKwC,QAAQ5C,EAAI7J,MAAM2M,IAEvB1C,EAAKwC,KAAK5C,KAIhB,MAAMzE,EAAS0F,EAAQnD,KAAK6D,KAAMvB,GAMlC,OALK7E,IAAW4C,IAAO6B,GAAOgG,EAAI/F,QAAQ,MAAQ,IAChD+F,EAAM5F,EAAK,GACXjC,EAAKiC,EAAK,GACVJ,EAAMI,EAAKW,MAAM,GAAGkF,KAAK,OAEvB1K,GAAWmK,GAAwBvG,EAASa,GACzC6C,EAAS/E,KAAK6D,OAAOqE,KAAO7H,GAAK6B,EAAK8C,GADgBvH,CAE/D,CACA,WAAA2K,CAAYF,EAAK7H,EAAI6B,EAAKmG,EAAOlH,EAAU,CACzCmH,QAAQ,IAER,MAAMtD,OAAwC3K,IAAzB8G,EAAQ6D,aAA6B7D,EAAQ6D,aAAehF,KAAKmB,QAAQ6D,aAC9F,IAAI1C,EAAO,CAAC4F,EAAK7H,GACb6B,IAAKI,EAAOA,EAAKiG,OAAOvD,EAAe9C,EAAI7J,MAAM2M,GAAgB9C,IACjEgG,EAAI/F,QAAQ,MAAQ,IACtBG,EAAO4F,EAAI7P,MAAM,KACjBgQ,EAAQhI,EACRA,EAAKiC,EAAK,IAEZtC,KAAK6H,cAAcxH,GACnByC,EAAQ9C,KAAK6D,KAAMvB,EAAM+F,GACpBlH,EAAQmH,QAAQtI,KAAKoH,KAAK,QAASc,EAAK7H,EAAI6B,EAAKmG,EACxD,CACA,YAAAG,CAAaN,EAAK7H,EAAIoI,EAAWtH,EAAU,CACzCmH,QAAQ,IAER,IAAK,MAAMI,KAAKD,GACVpH,EAASoH,EAAUC,KAAOjP,MAAMC,QAAQ+O,EAAUC,MAAK1I,KAAKoI,YAAYF,EAAK7H,EAAIqI,EAAGD,EAAUC,GAAI,CACpGJ,QAAQ,IAGPnH,EAAQmH,QAAQtI,KAAKoH,KAAK,QAASc,EAAK7H,EAAIoI,EACnD,CACA,iBAAAE,CAAkBT,EAAK7H,EAAIoI,EAAWG,EAAMrF,EAAWpC,EAAU,CAC/DmH,QAAQ,EACRO,UAAU,IAEV,IAAIvG,EAAO,CAAC4F,EAAK7H,GACb6H,EAAI/F,QAAQ,MAAQ,IACtBG,EAAO4F,EAAI7P,MAAM,KACjBuQ,EAAOH,EACPA,EAAYpI,EACZA,EAAKiC,EAAK,IAEZtC,KAAK6H,cAAcxH,GACnB,IAAIyI,EAAO3F,EAAQnD,KAAK6D,KAAMvB,IAAS,CAAC,EACnCnB,EAAQ0H,WAAUJ,EAAYM,KAAKC,MAAMD,KAAKE,UAAUR,KACzDG,EACFxF,EAAW0F,EAAML,EAAWlF,GAE5BuF,EAAO,IACFA,KACAL,GAGP3F,EAAQ9C,KAAK6D,KAAMvB,EAAMwG,GACpB3H,EAAQmH,QAAQtI,KAAKoH,KAAK,QAASc,EAAK7H,EAAIoI,EACnD,CACA,oBAAAS,CAAqBhB,EAAK7H,GACpBL,KAAKmJ,kBAAkBjB,EAAK7H,WACvBL,KAAK6D,KAAKqE,GAAK7H,GAExBL,KAAK8H,iBAAiBzH,GACtBL,KAAKoH,KAAK,UAAWc,EAAK7H,EAC5B,CACA,iBAAA8I,CAAkBjB,EAAK7H,GACrB,YAAqChG,IAA9B2F,KAAKiI,YAAYC,EAAK7H,EAC/B,CACA,iBAAA+I,CAAkBlB,EAAK7H,GAErB,OADKA,IAAIA,EAAKL,KAAKmB,QAAQuG,WACpB1H,KAAKiI,YAAYC,EAAK7H,EAC/B,CACA,iBAAAgJ,CAAkBnB,GAChB,OAAOlI,KAAK6D,KAAKqE,EACnB,CACA,2BAAAoB,CAA4BpB,GAC1B,MAAMrE,EAAO7D,KAAKqJ,kBAAkBnB,GAEpC,SADUrE,GAAQtD,OAAOC,KAAKqD,IAAS,IAC5BjK,KAAK2P,GAAK1F,EAAK0F,IAAMhJ,OAAOC,KAAKqD,EAAK0F,IAAI7Q,OAAS,EAChE,CACA,MAAA8Q,GACE,OAAOxJ,KAAK6D,IACd,EAGF,IAAI4F,EAAgB,CAClBC,WAAY,CAAC,EACb,gBAAAC,CAAiBlJ,GACfT,KAAK0J,WAAWjJ,EAAOpC,MAAQoC,CACjC,EACA,MAAAmJ,CAAOF,EAAYrB,EAAOnG,EAAKf,EAAS0I,GAItC,OAHAH,EAAWtJ,QAAQ0J,IACjBzB,EAAQrI,KAAK0J,WAAWI,IAAYC,QAAQ1B,EAAOnG,EAAKf,EAAS0I,IAAexB,IAE3EA,CACT,GAGF,MAAM2B,EAAWC,OAAO,oBAcxB,SAASC,EAAiBC,EAAUC,GAClC,MACE,CAACJ,GAAW1H,GACV6H,EAhBN,WACE,MAAME,EAAQ,GACRC,EAAU/J,OAAOkG,OAAO,MAC9B,IAAI8D,EAQJ,OAPAD,EAAQ9F,IAAM,CAACnB,EAAQnB,KACrBqI,GAAOC,WACHtI,IAAQ8H,EAAiBK,GAC7BA,EAAMvF,KAAK5C,GACXqI,EAAQE,MAAMC,UAAUrH,EAAQiH,GACzBC,EAAMA,QAERE,MAAMC,UAAUnK,OAAOkG,OAAO,MAAO6D,GAASC,KACvD,CAIeI,IACb,OAAOrI,EAAK6F,KAAKiC,GAAMpF,cAAgB,IACzC,CAEA,MAAM4F,EAAmB,CAAC,EACpBC,EAAuBrJ,IAAQH,EAASG,IAAuB,kBAARA,GAAoC,iBAARA,EACzF,MAAMsJ,UAAmBjE,EACvB,WAAA9G,CAAYgL,EAAU5J,EAAU,CAAC,GAC/BwG,QA1bS,EAACqD,EAAGlH,EAAGjD,KA2bX,CAAC,gBAAiB,gBAAiB,iBAAkB,eAAgB,mBAAoB,aAAc,SA1b5GT,QAAQsI,IACJ5E,EAAE4E,KAAI7H,EAAE6H,GAAK5E,EAAE4E,OAybnBuC,CAAK,EAAiHF,EAAU/K,MAChIA,KAAKmB,QAAUA,OACmB9G,IAA9B2F,KAAKmB,QAAQ6D,eACfhF,KAAKmB,QAAQ6D,aAAe,KAE9BhF,KAAKmG,OAASS,EAAWH,OAAO,aAClC,CACA,cAAAyE,CAAehD,GACTA,IAAKlI,KAAKmL,SAAWjD,EAC3B,CACA,MAAAkD,CAAOlJ,EAAKmJ,EAAI,CACdC,cAAe,CAAC,IAEhB,MAAMC,EAAM,IACPF,GAEL,GAAW,MAAPnJ,EAAa,OAAO,EACxB,MAAMsJ,EAAWxL,KAAK4B,QAAQM,EAAKqJ,GACnC,YAAyBlR,IAAlBmR,GAAUhK,GACnB,CACA,cAAAiK,CAAevJ,EAAKqJ,GAClB,IAAIG,OAAkCrR,IAApBkR,EAAIG,YAA4BH,EAAIG,YAAc1L,KAAKmB,QAAQuK,iBAC7DrR,IAAhBqR,IAA2BA,EAAc,KAC7C,MAAM1G,OAAoC3K,IAArBkR,EAAIvG,aAA6BuG,EAAIvG,aAAehF,KAAKmB,QAAQ6D,aACtF,IAAI7E,EAAaoL,EAAIlL,IAAML,KAAKmB,QAAQuG,WAAa,GACrD,MAAMiE,EAAuBD,GAAexJ,EAAIC,QAAQuJ,IAAgB,EAClEE,IAAwB5L,KAAKmB,QAAQ0K,yBAA4BN,EAAIvG,cAAiBhF,KAAKmB,QAAQ2K,wBAA2BP,EAAIG,aAtVhH,EAACxJ,EAAKwJ,EAAa1G,KAC7C0G,EAAcA,GAAe,GAC7B1G,EAAeA,GAAgB,GAC/B,MAAM+G,EAAgBhI,EAAMiI,OAAOC,GAAKP,EAAYvJ,QAAQ8J,GAAK,GAAKjH,EAAa7C,QAAQ8J,GAAK,GAChG,GAA6B,IAAzBF,EAAcrT,OAAc,OAAO,EACvC,MAAMwT,EAAIlI,EAA+BK,UAAU,IAAI0H,EAAcI,IAAIF,GAAW,MAANA,EAAY,MAAQA,GAAG9D,KAAK,SAC1G,IAAIiE,GAAWF,EAAEG,KAAKnK,GACtB,IAAKkK,EAAS,CACZ,MAAME,EAAKpK,EAAIC,QAAQ6C,GACnBsH,EAAK,IAAMJ,EAAEG,KAAKnK,EAAIqK,UAAU,EAAGD,MACrCF,GAAU,EAEd,CACA,OAAOA,GAyUmJI,CAAoBtK,EAAKwJ,EAAa1G,IAC9L,GAAI2G,IAAyBC,EAAsB,CACjD,MAAMlD,EAAIxG,EAAIuK,MAAMzM,KAAK0M,aAAaC,eACtC,GAAIjE,GAAKA,EAAEhQ,OAAS,EAClB,MAAO,CACLwJ,MACA/B,WAAYkB,EAASlB,GAAc,CAACA,GAAcA,GAGtD,MAAMyM,EAAQ1K,EAAI7J,MAAMqT,IACpBA,IAAgB1G,GAAgB0G,IAAgB1G,GAAgBhF,KAAKmB,QAAQd,GAAG8B,QAAQyK,EAAM,KAAO,KAAGzM,EAAayM,EAAMhI,SAC/H1C,EAAM0K,EAAMzE,KAAKnD,EACnB,CACA,MAAO,CACL9C,MACA/B,WAAYkB,EAASlB,GAAc,CAACA,GAAcA,EAEtD,CACA,SAAA0M,CAAUrM,EAAM6K,EAAGyB,GACjB,IAAIvB,EAAmB,iBAANF,EAAiB,IAC7BA,GACDA,EAQJ,GAPmB,iBAARE,GAAoBvL,KAAKmB,QAAQ4L,mCAC1CxB,EAAMvL,KAAKmB,QAAQ4L,iCAAiCC,YAEnC,iBAARzB,IAAkBA,EAAM,IAC9BA,IAEAA,IAAKA,EAAM,CAAC,GACL,MAAR/K,EAAc,MAAO,GACL,mBAATA,IAAqBA,EAAO0J,EAAiB1J,EAAM,IACzDR,KAAKmB,WACLoK,KAEA9R,MAAMC,QAAQ8G,KAAOA,EAAO,CAACpI,OAAOoI,KACzC,MAAMyM,OAAsC5S,IAAtBkR,EAAI0B,cAA8B1B,EAAI0B,cAAgBjN,KAAKmB,QAAQ8L,cACnFjI,OAAoC3K,IAArBkR,EAAIvG,aAA6BuG,EAAIvG,aAAehF,KAAKmB,QAAQ6D,cAChF,IACJ9C,EAAG,WACH/B,GACEH,KAAKyL,eAAejL,EAAKA,EAAK9H,OAAS,GAAI6S,GACzC2B,EAAY/M,EAAWA,EAAWzH,OAAS,GACjD,IAAIgT,OAAkCrR,IAApBkR,EAAIG,YAA4BH,EAAIG,YAAc1L,KAAKmB,QAAQuK,iBAC7DrR,IAAhBqR,IAA2BA,EAAc,KAC7C,MAAMxD,EAAMqD,EAAIrD,KAAOlI,KAAKmL,SACtBgC,EAA0B5B,EAAI4B,yBAA2BnN,KAAKmB,QAAQgM,wBAC5E,GAA2B,WAAvBjF,GAAKkF,cACP,OAAID,EACEF,EACK,CACLzL,IAAK,GAAG0L,IAAYxB,IAAcxJ,IAClCmL,QAASnL,EACToL,aAAcpL,EACdqL,QAASrF,EACTsF,OAAQN,EACRO,WAAYzN,KAAK0N,qBAAqBnC,IAGnC,GAAG2B,IAAYxB,IAAcxJ,IAElC+K,EACK,CACLzL,IAAKU,EACLmL,QAASnL,EACToL,aAAcpL,EACdqL,QAASrF,EACTsF,OAAQN,EACRO,WAAYzN,KAAK0N,qBAAqBnC,IAGnCrJ,EAET,MAAMsJ,EAAWxL,KAAK4B,QAAQpB,EAAM+K,GACpC,IAAI/J,EAAMgK,GAAUhK,IACpB,MAAMmM,EAAanC,GAAU6B,SAAWnL,EAClC0L,EAAkBpC,GAAU8B,cAAgBpL,EAE5C2L,OAAgCxT,IAAnBkR,EAAIsC,WAA2BtC,EAAIsC,WAAa7N,KAAKmB,QAAQ0M,WAC1EC,GAA8B9N,KAAK+N,YAAc/N,KAAK+N,WAAWC,eACjEC,OAAoC5T,IAAdkR,EAAI2C,QAAwB7M,EAASkK,EAAI2C,OAC/DC,EAAkBrD,EAAWqD,gBAAgB5C,GAC7C6C,EAAqBH,EAAsBjO,KAAKqO,eAAeC,UAAUpG,EAAKqD,EAAI2C,MAAO3C,GAAO,GAChGgD,EAAoChD,EAAIiD,SAAWP,EAAsBjO,KAAKqO,eAAeC,UAAUpG,EAAKqD,EAAI2C,MAAO,CAC3HM,SAAS,IACN,GACCC,EAAwBR,IAAwB1C,EAAIiD,SAAyB,IAAdjD,EAAI2C,MACnEQ,EAAeD,GAAyBlD,EAAI,eAAevL,KAAKmB,QAAQwN,wBAA0BpD,EAAI,eAAe6C,MAAyB7C,EAAI,eAAegD,MAAwChD,EAAImD,aACnN,IAAIE,EAAgBpN,EAChBsM,IAA+BtM,GAAO2M,IACxCS,EAAgBF,GAElB,MAAMV,EAAiBnD,EAAqB+D,GACtCC,EAAUtO,OAAOmC,UAAUoM,SAAS/I,MAAM6I,GAChD,KAAId,GAA8Bc,GAAiBZ,GAjBlC,CAAC,kBAAmB,oBAAqB,mBAiBoB7L,QAAQ0M,GAAW,IAAOxN,EAASwM,IAAepU,MAAMC,QAAQkV,GA8CvI,GAAId,GAA8BzM,EAASwM,IAAepU,MAAMC,QAAQ8H,GAC7EA,EAAMA,EAAI2G,KAAK0F,GACXrM,IAAKA,EAAMxB,KAAK+O,kBAAkBvN,EAAKhB,EAAM+K,EAAKuB,QACjD,CACL,IAAIkC,GAAc,EACd3B,GAAU,GACTrN,KAAKiP,cAAczN,IAAQ2M,IAC9Ba,GAAc,EACdxN,EAAMkN,GAEH1O,KAAKiP,cAAczN,KACtB6L,GAAU,EACV7L,EAAMU,GAER,MACMgN,GADiC3D,EAAI4D,gCAAkCnP,KAAKmB,QAAQgO,iCAClC9B,OAAUhT,EAAYmH,EACxE4N,EAAgBjB,GAAmBO,IAAiBlN,GAAOxB,KAAKmB,QAAQiO,cAC9E,GAAI/B,GAAW2B,GAAeI,EAAe,CAE3C,GADApP,KAAKmG,OAAOV,IAAI2J,EAAgB,YAAc,aAAclH,EAAKgF,EAAWhL,EAAKkN,EAAgBV,EAAelN,GAC5GwD,EAAc,CAChB,MAAMqK,EAAKrP,KAAK4B,QAAQM,EAAK,IACxBqJ,EACHvG,cAAc,IAEZqK,GAAMA,EAAG7N,KAAKxB,KAAKmG,OAAOP,KAAK,kLACrC,CACA,IAAI0J,EAAO,GACX,MAAMC,EAAevP,KAAKwP,cAAcC,iBAAiBzP,KAAKmB,QAAQuO,YAAanE,EAAIrD,KAAOlI,KAAKmL,UACnG,GAAmC,aAA/BnL,KAAKmB,QAAQwO,eAAgCJ,GAAgBA,EAAa,GAC5E,IAAK,IAAIhX,EAAI,EAAGA,EAAIgX,EAAa7W,OAAQH,IACvC+W,EAAKxK,KAAKyK,EAAahX,QAEe,QAA/ByH,KAAKmB,QAAQwO,cACtBL,EAAOtP,KAAKwP,cAAcI,mBAAmBrE,EAAIrD,KAAOlI,KAAKmL,UAE7DmE,EAAKxK,KAAKyG,EAAIrD,KAAOlI,KAAKmL,UAE5B,MAAM0E,EAAO,CAACC,EAAGjN,EAAGkN,KAClB,MAAMC,EAAoB7B,GAAmB4B,IAAyBvO,EAAMuO,EAAuBb,EAC/FlP,KAAKmB,QAAQ8O,kBACfjQ,KAAKmB,QAAQ8O,kBAAkBH,EAAG5C,EAAWrK,EAAGmN,EAAmBZ,EAAe7D,GACzEvL,KAAKkQ,kBAAkBC,aAChCnQ,KAAKkQ,iBAAiBC,YAAYL,EAAG5C,EAAWrK,EAAGmN,EAAmBZ,EAAe7D,GAEvFvL,KAAKoH,KAAK,aAAc0I,EAAG5C,EAAWrK,EAAGrB,IAEvCxB,KAAKmB,QAAQgP,cACXnQ,KAAKmB,QAAQiP,oBAAsBnC,EACrCqB,EAAKlP,QAAQ+K,IACX,MAAMkF,EAAWrQ,KAAKqO,eAAeiC,YAAYnF,EAAUI,GACvDkD,GAAyBlD,EAAI,eAAevL,KAAKmB,QAAQwN,wBAA0B0B,EAASlO,QAAQ,GAAGnC,KAAKmB,QAAQwN,uBAAyB,GAC/I0B,EAASvL,KAAK,GAAG9E,KAAKmB,QAAQwN,uBAEhC0B,EAASjQ,QAAQmQ,IACfV,EAAK,CAAC1E,GAAWjJ,EAAMqO,EAAQhF,EAAI,eAAegF,MAAa7B,OAInEmB,EAAKP,EAAMpN,EAAKwM,GAGtB,CACAlN,EAAMxB,KAAK+O,kBAAkBvN,EAAKhB,EAAM+K,EAAKC,EAAUsB,GACnDO,GAAW7L,IAAQU,GAAOlC,KAAKmB,QAAQqP,8BACzChP,EAAM,GAAG0L,IAAYxB,IAAcxJ,MAEhCmL,GAAW2B,IAAgBhP,KAAKmB,QAAQsP,yBAC3CjP,EAAMxB,KAAKmB,QAAQsP,uBAAuBzQ,KAAKmB,QAAQqP,4BAA8B,GAAGtD,IAAYxB,IAAcxJ,IAAQA,EAAK8M,EAAcxN,OAAMnH,EAAWkR,GAElK,KAnH+J,CAC7J,IAAKA,EAAImF,gBAAkB1Q,KAAKmB,QAAQuP,cAAe,CAChD1Q,KAAKmB,QAAQwP,uBAChB3Q,KAAKmG,OAAOP,KAAK,mEAEnB,MAAMsG,EAAIlM,KAAKmB,QAAQwP,sBAAwB3Q,KAAKmB,QAAQwP,sBAAsBhD,EAAYiB,EAAe,IACxGrD,EACHlL,GAAIF,IACD,QAAQ+B,MAAQlC,KAAKmL,mDAC1B,OAAI8B,GACFzB,EAAShK,IAAM0K,EACfV,EAASiC,WAAazN,KAAK0N,qBAAqBnC,GACzCC,GAEFU,CACT,CACA,GAAIlH,EAAc,CAChB,MAAM4L,EAAiBnX,MAAMC,QAAQkV,GAC/B3D,EAAO2F,EAAiB,GAAK,CAAC,EAC9BC,EAAcD,EAAiBhD,EAAkBD,EACvD,IAAK,MAAMjF,KAAKkG,EACd,GAAIrO,OAAOmC,UAAUC,eAAeC,KAAKgM,EAAelG,GAAI,CAC1D,MAAMoI,EAAU,GAAGD,IAAc7L,IAAe0D,IAE9CuC,EAAKvC,GADHyF,IAAoB3M,EACZxB,KAAK6M,UAAUiE,EAAS,IAC7BvF,EACHmD,aAAc7D,EAAqB6D,GAAgBA,EAAahG,QAAKrO,EAEnEwT,YAAY,EACZxN,GAAIF,IAIEH,KAAK6M,UAAUiE,EAAS,IAC7BvF,EAEDsC,YAAY,EACZxN,GAAIF,IAIN8K,EAAKvC,KAAOoI,IAAS7F,EAAKvC,GAAKkG,EAAclG,GACnD,CAEFlH,EAAMyJ,CACR,CACF,CAsEA,OAAIgC,GACFzB,EAAShK,IAAMA,EACfgK,EAASiC,WAAazN,KAAK0N,qBAAqBnC,GACzCC,GAEFhK,CACT,CACA,iBAAAuN,CAAkBvN,EAAKU,EAAKqJ,EAAKC,EAAUsB,GACzC,GAAI9M,KAAK+N,YAAY/E,MACnBxH,EAAMxB,KAAK+N,WAAW/E,MAAMxH,EAAK,IAC5BxB,KAAKmB,QAAQmK,cAAcyF,oBAC3BxF,GACFA,EAAIrD,KAAOlI,KAAKmL,UAAYK,EAAS+B,QAAS/B,EAASgC,OAAQhC,EAAS6B,QAAS,CAClF7B,kBAEG,IAAKD,EAAIyF,kBAAmB,CAC7BzF,EAAID,eAAetL,KAAK0M,aAAazL,KAAK,IACzCsK,EAEDD,cAAe,IACVtL,KAAKmB,QAAQmK,iBACbC,EAAID,iBAIb,MAAM2F,EAAkB5P,EAASG,UAAiDnH,IAAxCkR,GAAKD,eAAe2F,gBAAgC1F,EAAID,cAAc2F,gBAAkBjR,KAAKmB,QAAQmK,cAAc2F,iBAC7J,IAAIC,EACJ,GAAID,EAAiB,CACnB,MAAME,EAAK3P,EAAIiL,MAAMzM,KAAK0M,aAAaC,eACvCuE,EAAUC,GAAMA,EAAGzY,MACrB,CACA,IAAImL,EAAO0H,EAAIjQ,UAAY+F,EAASkK,EAAIjQ,SAAWiQ,EAAIjQ,QAAUiQ,EAMjE,GALIvL,KAAKmB,QAAQmK,cAAcyF,mBAAkBlN,EAAO,IACnD7D,KAAKmB,QAAQmK,cAAcyF,oBAC3BlN,IAELrC,EAAMxB,KAAK0M,aAAa0E,YAAY5P,EAAKqC,EAAM0H,EAAIrD,KAAOlI,KAAKmL,UAAYK,EAAS+B,QAAShC,GACzF0F,EAAiB,CACnB,MAAMI,EAAK7P,EAAIiL,MAAMzM,KAAK0M,aAAaC,eAEnCuE,GADYG,GAAMA,EAAG3Y,UACF6S,EAAI+F,MAAO,EACpC,EACK/F,EAAIrD,KAAOsD,GAAYA,EAAShK,MAAK+J,EAAIrD,IAAMlI,KAAKmL,UAAYK,EAAS+B,UAC7D,IAAbhC,EAAI+F,OAAgB9P,EAAMxB,KAAK0M,aAAa4E,KAAK9P,EAAK,IAAIkE,IACxDoH,IAAU,KAAOpH,EAAK,IAAO6F,EAAI/N,QAI9BwC,KAAK6M,aAAanH,EAAMxD,IAH7BlC,KAAKmG,OAAOP,KAAK,6CAA6CF,EAAK,cAAcxD,EAAI,MAC9E,MAGRqJ,IACCA,EAAID,eAAetL,KAAK0M,aAAa6E,OAC3C,CACA,MAAMC,EAAcjG,EAAIiG,aAAexR,KAAKmB,QAAQqQ,YAC9CC,EAAqBpQ,EAASmQ,GAAe,CAACA,GAAeA,EAUnE,OATW,MAAPhQ,GAAeiQ,GAAoB/Y,SAAqC,IAA3B6S,EAAImG,qBACnDlQ,EAAMiI,EAAcG,OAAO6H,EAAoBjQ,EAAKU,EAAKlC,KAAKmB,SAAWnB,KAAKmB,QAAQwQ,wBAA0B,CAC9GC,aAAc,IACTpG,EACHiC,WAAYzN,KAAK0N,qBAAqBnC,OAErCA,GACDA,EAAKvL,OAEJwB,CACT,CACA,OAAAI,CAAQpB,EAAM+K,EAAM,CAAC,GACnB,IAAIsG,EACAxE,EACAC,EACAC,EACAC,EAgEJ,OA/DInM,EAASb,KAAOA,EAAO,CAACA,IAC5BA,EAAKJ,QAAQyC,IACX,GAAI7C,KAAKiP,cAAc4C,GAAQ,OAC/B,MAAMC,EAAY9R,KAAKyL,eAAe5I,EAAG0I,GACnCrJ,EAAM4P,EAAU5P,IACtBmL,EAAUnL,EACV,IAAI/B,EAAa2R,EAAU3R,WACvBH,KAAKmB,QAAQ4Q,aAAY5R,EAAaA,EAAWoI,OAAOvI,KAAKmB,QAAQ4Q,aACzE,MAAM9D,OAAoC5T,IAAdkR,EAAI2C,QAAwB7M,EAASkK,EAAI2C,OAC/DO,EAAwBR,IAAwB1C,EAAIiD,SAAyB,IAAdjD,EAAI2C,MACnE8D,OAAuC3X,IAAhBkR,EAAI/N,UAA0B6D,EAASkK,EAAI/N,UAAmC,iBAAhB+N,EAAI/N,UAAyC,KAAhB+N,EAAI/N,QACtHyU,EAAQ1G,EAAI+D,KAAO/D,EAAI+D,KAAOtP,KAAKwP,cAAcI,mBAAmBrE,EAAIrD,KAAOlI,KAAKmL,SAAUI,EAAImE,aACxGvP,EAAWC,QAAQC,IACbL,KAAKiP,cAAc4C,KACvBrE,EAASnN,EACJuK,EAAiB,GAAGqH,EAAM,MAAM5R,OAASL,KAAKkS,OAAOC,oBAAuBnS,KAAKkS,OAAOC,mBAAmB3E,KAC9G5C,EAAiB,GAAGqH,EAAM,MAAM5R,MAAQ,EACxCL,KAAKmG,OAAOP,KAAK,QAAQyH,qBAA2B4E,EAAM9J,KAAK,2CAA2CqF,wBAA8B,6NAE1IyE,EAAM7R,QAAQmF,IACZ,GAAIvF,KAAKiP,cAAc4C,GAAQ,OAC/BtE,EAAUhI,EACV,MAAM6M,EAAY,CAAClQ,GACnB,GAAIlC,KAAK+N,YAAYsE,cACnBrS,KAAK+N,WAAWsE,cAAcD,EAAWlQ,EAAKqD,EAAMlF,EAAIkL,OACnD,CACL,IAAI+G,EACArE,IAAqBqE,EAAetS,KAAKqO,eAAeC,UAAU/I,EAAMgG,EAAI2C,MAAO3C,IACvF,MAAMgH,EAAa,GAAGvS,KAAKmB,QAAQwN,sBAC7B6D,EAAgB,GAAGxS,KAAKmB,QAAQwN,yBAAyB3O,KAAKmB,QAAQwN,kBAU5E,GATIV,IACE1C,EAAIiD,SAAmD,IAAxC8D,EAAanQ,QAAQqQ,IACtCJ,EAAUtN,KAAK5C,EAAMoQ,EAAahX,QAAQkX,EAAexS,KAAKmB,QAAQwN,kBAExEyD,EAAUtN,KAAK5C,EAAMoQ,GACjB7D,GACF2D,EAAUtN,KAAK5C,EAAMqQ,IAGrBP,EAAsB,CACxB,MAAMS,EAAa,GAAGvQ,IAAMlC,KAAKmB,QAAQuR,kBAAoB,MAAMnH,EAAI/N,UACvE4U,EAAUtN,KAAK2N,GACXxE,IACE1C,EAAIiD,SAAmD,IAAxC8D,EAAanQ,QAAQqQ,IACtCJ,EAAUtN,KAAK2N,EAAaH,EAAahX,QAAQkX,EAAexS,KAAKmB,QAAQwN,kBAE/EyD,EAAUtN,KAAK2N,EAAaH,GACxB7D,GACF2D,EAAUtN,KAAK2N,EAAaF,GAGlC,CACF,CACA,IAAII,EACJ,KAAOA,EAAcP,EAAUQ,OACxB5S,KAAKiP,cAAc4C,KACtBvE,EAAeqF,EACfd,EAAQ7R,KAAKiI,YAAY1C,EAAMlF,EAAIsS,EAAapH,WAMnD,CACL/J,IAAKqQ,EACLxE,UACAC,eACAC,UACAC,SAEJ,CACA,aAAAyB,CAAczN,GACZ,aAAenH,IAARmH,IAAwBxB,KAAKmB,QAAQ0R,YAAsB,OAARrR,IAAoBxB,KAAKmB,QAAQ2R,mBAA6B,KAARtR,EAClH,CACA,WAAAyG,CAAY1C,EAAMlF,EAAI6B,EAAKf,EAAU,CAAC,GACpC,OAAInB,KAAK+N,YAAY9F,YAAoBjI,KAAK+N,WAAW9F,YAAY1C,EAAMlF,EAAI6B,EAAKf,GAC7EnB,KAAK+S,cAAc9K,YAAY1C,EAAMlF,EAAI6B,EAAKf,EACvD,CACA,oBAAAuM,CAAqBvM,EAAU,CAAC,GAC9B,MAAM6R,EAAc,CAAC,eAAgB,UAAW,UAAW,UAAW,MAAO,OAAQ,cAAe,KAAM,eAAgB,cAAe,gBAAiB,gBAAiB,aAAc,cAAe,iBAClMC,EAA2B9R,EAAQ7F,UAAY+F,EAASF,EAAQ7F,SACtE,IAAIuI,EAAOoP,EAA2B9R,EAAQ7F,QAAU6F,EAUxD,GATI8R,QAAqD,IAAlB9R,EAAQ+M,QAC7CrK,EAAKqK,MAAQ/M,EAAQ+M,OAEnBlO,KAAKmB,QAAQmK,cAAcyF,mBAC7BlN,EAAO,IACF7D,KAAKmB,QAAQmK,cAAcyF,oBAC3BlN,KAGFoP,EAA0B,CAC7BpP,EAAO,IACFA,GAEL,IAAK,MAAM3B,KAAO8Q,SACTnP,EAAK3B,EAEhB,CACA,OAAO2B,CACT,CACA,sBAAOsK,CAAgBhN,GAErB,IAAK,MAAM+R,KAAU/R,EACnB,GAAIZ,OAAOmC,UAAUC,eAAeC,KAAKzB,EAAS+R,IAFrC,iBAE2DA,EAAO3G,UAAU,EAAGrG,UAAkB7L,IAAc8G,EAAQ+R,GAClI,OAAO,EAGX,OAAO,CACT,EAGF,MAAMC,EACJ,WAAApT,CAAYoB,GACVnB,KAAKmB,QAAUA,EACfnB,KAAKoT,cAAgBpT,KAAKmB,QAAQiS,gBAAiB,EACnDpT,KAAKmG,OAASS,EAAWH,OAAO,gBAClC,CACA,qBAAA4M,CAAsB9N,GAEpB,KADAA,EAAOD,EAAeC,KACTA,EAAKpD,QAAQ,KAAO,EAAG,OAAO,KAC3C,MAAMtI,EAAI0L,EAAKlN,MAAM,KACrB,OAAiB,IAAbwB,EAAEnB,OAAqB,MAC3BmB,EAAE+Y,MACoC,MAAlC/Y,EAAEA,EAAEnB,OAAS,GAAG0U,cAA8B,KAC3CpN,KAAKsT,mBAAmBzZ,EAAEsO,KAAK,MACxC,CACA,uBAAAoL,CAAwBhO,GAEtB,KADAA,EAAOD,EAAeC,KACTA,EAAKpD,QAAQ,KAAO,EAAG,OAAOoD,EAC3C,MAAM1L,EAAI0L,EAAKlN,MAAM,KACrB,OAAO2H,KAAKsT,mBAAmBzZ,EAAE,GACnC,CACA,kBAAAyZ,CAAmB/N,GACjB,GAAIlE,EAASkE,IAASA,EAAKpD,QAAQ,MAAQ,EAAG,CAC5C,IAAIqR,EACJ,IACEA,EAAgBC,KAAKC,oBAAoBnO,GAAM,EACjD,CAAE,MAAOvC,GAAI,CAIb,OAHIwQ,GAAiBxT,KAAKmB,QAAQwS,eAChCH,EAAgBA,EAAcpG,eAE5BoG,IACAxT,KAAKmB,QAAQwS,aACRpO,EAAK6H,cAEP7H,EACT,CACA,OAAOvF,KAAKmB,QAAQyS,WAAa5T,KAAKmB,QAAQwS,aAAepO,EAAK6H,cAAgB7H,CACpF,CACA,eAAAsO,CAAgBtO,GAId,OAH0B,iBAAtBvF,KAAKmB,QAAQ2S,MAA2B9T,KAAKmB,QAAQ4S,4BACvDxO,EAAOvF,KAAKuT,wBAAwBhO,KAE9BvF,KAAKoT,gBAAkBpT,KAAKoT,cAAc1a,QAAUsH,KAAKoT,cAAcjR,QAAQoD,IAAS,CAClG,CACA,qBAAAyO,CAAsB/B,GACpB,IAAKA,EAAO,OAAO,KACnB,IAAIJ,EAsBJ,OArBAI,EAAM7R,QAAQmF,IACZ,GAAIsM,EAAO,OACX,MAAMoC,EAAajU,KAAKsT,mBAAmB/N,GACtCvF,KAAKmB,QAAQiS,gBAAiBpT,KAAK6T,gBAAgBI,KAAapC,EAAQoC,MAE1EpC,GAAS7R,KAAKmB,QAAQiS,eACzBnB,EAAM7R,QAAQmF,IACZ,GAAIsM,EAAO,OACX,MAAMqC,EAAYlU,KAAKqT,sBAAsB9N,GAC7C,GAAIvF,KAAK6T,gBAAgBK,GAAY,OAAOrC,EAAQqC,EACpD,MAAMC,EAAUnU,KAAKuT,wBAAwBhO,GAC7C,GAAIvF,KAAK6T,gBAAgBM,GAAU,OAAOtC,EAAQsC,EAClDtC,EAAQ7R,KAAKmB,QAAQiS,cAAcxZ,KAAKwa,GAClCA,IAAiBD,EAAgBC,EACjCA,EAAajS,QAAQ,KAAO,GAAKgS,EAAQhS,QAAQ,KAAO,OAA5D,EACIiS,EAAajS,QAAQ,KAAO,GAAKgS,EAAQhS,QAAQ,KAAO,GAAKiS,EAAa7H,UAAU,EAAG6H,EAAajS,QAAQ,QAAUgS,GACpF,IAAlCC,EAAajS,QAAQgS,IAAkBA,EAAQzb,OAAS,EAD8E0b,OAC1I,KAIDvC,IAAOA,EAAQ7R,KAAKyP,iBAAiBzP,KAAKmB,QAAQuO,aAAa,IAC7DmC,CACT,CACA,gBAAApC,CAAiB4E,EAAW9O,GAC1B,IAAK8O,EAAW,MAAO,GAGvB,GAFyB,mBAAdA,IAA0BA,EAAYA,EAAU9O,IACvDlE,EAASgT,KAAYA,EAAY,CAACA,IAClC5a,MAAMC,QAAQ2a,GAAY,OAAOA,EACrC,IAAK9O,EAAM,OAAO8O,EAAUC,SAAW,GACvC,IAAIzC,EAAQwC,EAAU9O,GAKtB,OAJKsM,IAAOA,EAAQwC,EAAUrU,KAAKqT,sBAAsB9N,KACpDsM,IAAOA,EAAQwC,EAAUrU,KAAKsT,mBAAmB/N,KACjDsM,IAAOA,EAAQwC,EAAUrU,KAAKuT,wBAAwBhO,KACtDsM,IAAOA,EAAQwC,EAAUC,SACvBzC,GAAS,EAClB,CACA,kBAAAjC,CAAmBrK,EAAMgP,GACvB,MAAMC,EAAgBxU,KAAKyP,mBAAmC,IAAjB8E,EAAyB,GAAKA,IAAiBvU,KAAKmB,QAAQuO,aAAe,GAAInK,GACtH0M,EAAQ,GACRwC,EAAUxI,IACTA,IACDjM,KAAK6T,gBAAgB5H,GACvBgG,EAAMnN,KAAKmH,GAEXjM,KAAKmG,OAAOP,KAAK,uDAAuDqG,OAa5E,OAVI5K,EAASkE,KAAUA,EAAKpD,QAAQ,MAAQ,GAAKoD,EAAKpD,QAAQ,MAAQ,IAC1C,iBAAtBnC,KAAKmB,QAAQ2S,MAAyBW,EAAQzU,KAAKsT,mBAAmB/N,IAChD,iBAAtBvF,KAAKmB,QAAQ2S,MAAiD,gBAAtB9T,KAAKmB,QAAQ2S,MAAwBW,EAAQzU,KAAKqT,sBAAsB9N,IAC1F,gBAAtBvF,KAAKmB,QAAQ2S,MAAwBW,EAAQzU,KAAKuT,wBAAwBhO,KACrElE,EAASkE,IAClBkP,EAAQzU,KAAKsT,mBAAmB/N,IAElCiP,EAAcpU,QAAQsU,IAChBzC,EAAM9P,QAAQuS,GAAM,GAAGD,EAAQzU,KAAKsT,mBAAmBoB,MAEtDzC,CACT,EAGF,MAAM0C,EAAgB,CACpBC,KAAM,EACNC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,MAAO,GAEHC,EAAY,CAChBC,OAAQjH,GAAmB,IAAVA,EAAc,MAAQ,QACvCkH,gBAAiB,KAAM,CACrBC,iBAAkB,CAAC,MAAO,YAG9B,MAAMC,EACJ,WAAAvV,CAAYyP,EAAerO,EAAU,CAAC,GACpCnB,KAAKwP,cAAgBA,EACrBxP,KAAKmB,QAAUA,EACfnB,KAAKmG,OAASS,EAAWH,OAAO,kBAChCzG,KAAKuV,iBAAmB,CAAC,CAC3B,CACA,OAAAC,CAAQtN,EAAK5G,GACXtB,KAAKyV,MAAMvN,GAAO5G,CACpB,CACA,UAAAoU,GACE1V,KAAKuV,iBAAmB,CAAC,CAC3B,CACA,OAAAI,CAAQpQ,EAAMpE,EAAU,CAAC,GACvB,MAAMyU,EAActQ,EAAwB,QAATC,EAAiB,KAAOA,GACrD7J,EAAOyF,EAAQqN,QAAU,UAAY,WACrCqH,EAAW9M,KAAKE,UAAU,CAC9B2M,cACAla,SAEF,GAAIma,KAAY7V,KAAKuV,iBACnB,OAAOvV,KAAKuV,iBAAiBM,GAE/B,IAAIC,EACJ,IACEA,EAAO,IAAIrC,KAAKsC,YAAYH,EAAa,CACvCla,QAEJ,CAAE,MAAOsa,GACP,IAAKvC,KAEH,OADAzT,KAAKmG,OAAON,MAAM,iDACXqP,EAET,IAAK3P,EAAKkH,MAAM,OAAQ,OAAOyI,EAC/B,MAAMe,EAAUjW,KAAKwP,cAAc+D,wBAAwBhO,GAC3DuQ,EAAO9V,KAAK2V,QAAQM,EAAS9U,EAC/B,CAEA,OADAnB,KAAKuV,iBAAiBM,GAAYC,EAC3BA,CACT,CACA,WAAAI,CAAY3Q,EAAMpE,EAAU,CAAC,GAC3B,IAAI2U,EAAO9V,KAAK2V,QAAQpQ,EAAMpE,GAE9B,OADK2U,IAAMA,EAAO9V,KAAK2V,QAAQ,MAAOxU,IAC/B2U,GAAMV,kBAAkBC,iBAAiB3c,OAAS,CAC3D,CACA,mBAAAyd,CAAoB5Q,EAAMrD,EAAKf,EAAU,CAAC,GACxC,OAAOnB,KAAKsQ,YAAY/K,EAAMpE,GAASgL,IAAIoE,GAAU,GAAGrO,IAAMqO,IAChE,CACA,WAAAD,CAAY/K,EAAMpE,EAAU,CAAC,GAC3B,IAAI2U,EAAO9V,KAAK2V,QAAQpQ,EAAMpE,GAE9B,OADK2U,IAAMA,EAAO9V,KAAK2V,QAAQ,MAAOxU,IACjC2U,EACEA,EAAKV,kBAAkBC,iBAAiBe,KAAK,CAACC,EAAiBC,IAAoB3B,EAAc0B,GAAmB1B,EAAc2B,IAAkBnK,IAAIoK,GAAkB,GAAGvW,KAAKmB,QAAQqV,UAAUrV,EAAQqN,QAAU,UAAUxO,KAAKmB,QAAQqV,UAAY,KAAKD,KADnP,EAEpB,CACA,SAAAjI,CAAU/I,EAAM2I,EAAO/M,EAAU,CAAC,GAChC,MAAM2U,EAAO9V,KAAK2V,QAAQpQ,EAAMpE,GAChC,OAAI2U,EACK,GAAG9V,KAAKmB,QAAQqV,UAAUrV,EAAQqN,QAAU,UAAUxO,KAAKmB,QAAQqV,UAAY,KAAKV,EAAKX,OAAOjH,MAEzGlO,KAAKmG,OAAOP,KAAK,6BAA6BL,KACvCvF,KAAKsO,UAAU,MAAOJ,EAAO/M,GACtC,EAGF,MAAMsV,EAAuB,CAAC5S,EAAM6S,EAAaxU,EAAK8C,EAAe,IAAK4C,GAAsB,KAC9F,IAAItF,EAr9BsB,EAACuB,EAAM6S,EAAaxU,KAC9C,MAAMmG,EAAQlF,EAAQU,EAAM3B,GAC5B,YAAc7H,IAAVgO,EACKA,EAEFlF,EAAQuT,EAAaxU,IAg9BjByU,CAAoB9S,EAAM6S,EAAaxU,GAKlD,OAJKI,GAAQsF,GAAuBvG,EAASa,KAC3CI,EAAOyC,EAASlB,EAAM3B,EAAK8C,QACd3K,IAATiI,IAAoBA,EAAOyC,EAAS2R,EAAaxU,EAAK8C,KAErD1C,GAEHsU,EAAYC,GAAOA,EAAIvb,QAAQ,MAAO,QAC5C,MAAMwb,EACJ,WAAA/W,CAAYoB,EAAU,CAAC,GACrBnB,KAAKmG,OAASS,EAAWH,OAAO,gBAChCzG,KAAKmB,QAAUA,EACfnB,KAAK+W,OAAS5V,GAASmK,eAAeyL,QAAU,CAAC1O,GAASA,GAC1DrI,KAAKiB,KAAKE,EACZ,CACA,IAAAF,CAAKE,EAAU,CAAC,GACTA,EAAQmK,gBAAenK,EAAQmK,cAAgB,CAClD0L,aAAa,IAEf,MACEpT,OAAQqT,EAAQ,YAChBD,EAAW,oBACXE,EAAmB,OACnBhR,EAAM,cACNiR,EAAa,OACb5G,EAAM,cACN6G,EAAa,gBACbC,EAAe,eACfC,EAAc,eACdC,EAAc,cACdC,EAAa,qBACbC,EAAoB,cACpBC,EAAa,qBACbC,EAAoB,wBACpBC,EAAuB,YACvBC,EAAW,aACXC,GACE3W,EAAQmK,cACZtL,KAAK4D,YAAsBvJ,IAAb4c,EAAyBA,EAAWrT,EAClD5D,KAAKgX,iBAA8B3c,IAAhB2c,GAA4BA,EAC/ChX,KAAKkX,yBAA8C7c,IAAxB6c,GAAoCA,EAC/DlX,KAAKkG,OAASA,EAASzC,EAAYyC,GAAUiR,GAAiB,KAC9DnX,KAAKuQ,OAASA,EAAS9M,EAAY8M,GAAU6G,GAAiB,KAC9DpX,KAAKqX,gBAAkBA,GAAmB,IAC1CrX,KAAKuX,eAAiBD,EAAiB,GAAKC,GAAkB,IAC9DvX,KAAKsX,eAAiBtX,KAAKuX,eAAiB,GAAKD,GAAkB,GACnEtX,KAAKwX,cAAgBA,EAAgB/T,EAAY+T,GAAiBC,GAAwBhU,EAAY,OACtGzD,KAAK0X,cAAgBA,EAAgBjU,EAAYiU,GAAiBC,GAAwBlU,EAAY,KACtGzD,KAAK4X,wBAA0BA,GAA2B,IAC1D5X,KAAK6X,YAAcA,GAAe,IAClC7X,KAAK8X,kBAAgCzd,IAAjByd,GAA6BA,EACjD9X,KAAK+X,aACP,CACA,KAAAxG,GACMvR,KAAKmB,SAASnB,KAAKiB,KAAKjB,KAAKmB,QACnC,CACA,WAAA4W,GACE,MAAMC,EAAmB,CAACC,EAAgB3T,IACpC2T,GAAgB3U,SAAWgB,GAC7B2T,EAAeC,UAAY,EACpBD,GAEF,IAAIvT,OAAOJ,EAAS,KAE7BtE,KAAKmY,OAASH,EAAiBhY,KAAKmY,OAAQ,GAAGnY,KAAKkG,cAAclG,KAAKuQ,UACvEvQ,KAAKoY,eAAiBJ,EAAiBhY,KAAKoY,eAAgB,GAAGpY,KAAKkG,SAASlG,KAAKuX,sBAAsBvX,KAAKsX,iBAAiBtX,KAAKuQ,UACnIvQ,KAAK2M,cAAgBqL,EAAiBhY,KAAK2M,cAAe,GAAG3M,KAAKwX,iFAAiFxX,KAAK0X,gBAC1J,CACA,WAAAtG,CAAY1N,EAAKG,EAAMqE,EAAK/G,GAC1B,IAAIsL,EACApE,EACAgQ,EACJ,MAAM3B,EAAc1W,KAAKmB,SAAWnB,KAAKmB,QAAQmK,eAAiBtL,KAAKmB,QAAQmK,cAAcyF,kBAAoB,CAAC,EAC5GuH,EAAepW,IACnB,GAAIA,EAAIC,QAAQnC,KAAKqX,iBAAmB,EAAG,CACzC,MAAM/U,EAAOmU,EAAqB5S,EAAM6S,EAAaxU,EAAKlC,KAAKmB,QAAQ6D,aAAchF,KAAKmB,QAAQyG,qBAClG,OAAO5H,KAAK8X,aAAe9X,KAAK+W,OAAOzU,OAAMjI,EAAW6N,EAAK,IACxD/G,KACA0C,EACH0U,iBAAkBrW,IACfI,CACP,CACA,MAAMzI,EAAIqI,EAAI7J,MAAM2H,KAAKqX,iBACnBxU,EAAIhJ,EAAE+K,QAAQ5F,OACdwZ,EAAI3e,EAAEsO,KAAKnI,KAAKqX,iBAAiBrY,OACvC,OAAOgB,KAAK+W,OAAON,EAAqB5S,EAAM6S,EAAa7T,EAAG7C,KAAKmB,QAAQ6D,aAAchF,KAAKmB,QAAQyG,qBAAsB4Q,EAAGtQ,EAAK,IAC/H/G,KACA0C,EACH0U,iBAAkB1V,KAGtB7C,KAAK+X,cACL,MAAMU,EAA8BtX,GAASsX,6BAA+BzY,KAAKmB,QAAQsX,4BACnFxH,OAA8D5W,IAA5C8G,GAASmK,eAAe2F,gBAAgC9P,EAAQmK,cAAc2F,gBAAkBjR,KAAKmB,QAAQmK,cAAc2F,gBA2CnJ,MA1Cc,CAAC,CACbyH,MAAO1Y,KAAKoY,eACZO,UAAW9B,GAAOD,EAAUC,IAC3B,CACD6B,MAAO1Y,KAAKmY,OACZQ,UAAW9B,GAAO7W,KAAKgX,YAAcJ,EAAU5W,KAAK4D,OAAOiT,IAAQD,EAAUC,KAEzEzW,QAAQwY,IAEZ,IADAP,EAAW,EACJ5L,EAAQmM,EAAKF,MAAMG,KAAKnV,IAAM,CACnC,MAAMoV,EAAarM,EAAM,GAAGzN,OAE5B,GADAqJ,EAAQiQ,EAAaQ,QACPze,IAAVgO,EACF,GAA2C,mBAAhCoQ,EAA4C,CACrD,MAAMM,EAAON,EAA4B/U,EAAK+I,EAAOtL,GACrDkH,EAAQhH,EAAS0X,GAAQA,EAAO,EAClC,MAAO,GAAI5X,GAAWZ,OAAOmC,UAAUC,eAAeC,KAAKzB,EAAS2X,GAClEzQ,EAAQ,OACH,IAAI4I,EAAiB,CAC1B5I,EAAQoE,EAAM,GACd,QACF,CACEzM,KAAKmG,OAAOP,KAAK,8BAA8BkT,uBAAgCpV,KAC/E2E,EAAQ,EACV,MACUhH,EAASgH,IAAWrI,KAAKkX,sBACnC7O,EAAQvG,EAAWuG,IAErB,MAAMsQ,EAAYC,EAAKD,UAAUtQ,GASjC,GARA3E,EAAMA,EAAIpI,QAAQmR,EAAM,GAAIkM,GACxB1H,GACF2H,EAAKF,MAAMR,WAAa7P,EAAM3P,OAC9BkgB,EAAKF,MAAMR,WAAazL,EAAM,GAAG/T,QAEjCkgB,EAAKF,MAAMR,UAAY,EAEzBG,IACIA,GAAYrY,KAAK6X,YACnB,KAEJ,IAEKnU,CACT,CACA,IAAA4N,CAAK5N,EAAKgR,EAAIvT,EAAU,CAAC,GACvB,IAAIsL,EACApE,EACA2Q,EACJ,MAAMC,EAAmB,CAAC/W,EAAKgX,KAC7B,MAAMC,EAAMnZ,KAAK4X,wBACjB,GAAI1V,EAAIC,QAAQgX,GAAO,EAAG,OAAOjX,EACjC,MAAM+J,EAAI/J,EAAI7J,MAAM,IAAIqM,OAAO,GAAGyU,WAClC,IAAIC,EAAgB,IAAInN,EAAE,KAC1B/J,EAAM+J,EAAE,GACRmN,EAAgBpZ,KAAKoR,YAAYgI,EAAeJ,GAChD,MAAMK,EAAsBD,EAAc3M,MAAM,MAC1C6M,EAAsBF,EAAc3M,MAAM,QAC3C4M,GAAqB3gB,QAAU,GAAK,GAAM,IAAM4gB,GAAuBA,EAAoB5gB,OAAS,GAAM,KAC7G0gB,EAAgBA,EAAc9d,QAAQ,KAAM,MAE9C,IACE0d,EAAgBjQ,KAAKC,MAAMoQ,GACvBF,IAAkBF,EAAgB,IACjCE,KACAF,GAEP,CAAE,MAAOhW,GAEP,OADAhD,KAAKmG,OAAOP,KAAK,oDAAoD1D,IAAOc,GACrE,GAAGd,IAAMiX,IAAMC,GACxB,CAEA,OADIJ,EAActK,cAAgBsK,EAActK,aAAavM,QAAQnC,KAAKkG,SAAW,UAAU8S,EAActK,aACtGxM,GAET,KAAOuK,EAAQzM,KAAK2M,cAAckM,KAAKnV,IAAM,CAC3C,IAAI6V,EAAa,GACjBP,EAAgB,IACX7X,GAEL6X,EAAgBA,EAAc1d,UAAY+F,EAAS2X,EAAc1d,SAAW0d,EAAc1d,QAAU0d,EACpGA,EAActH,oBAAqB,SAC5BsH,EAActK,aACrB,MAAM8K,EAAc,OAAOnN,KAAKI,EAAM,IAAMA,EAAM,GAAGgN,YAAY,KAAO,EAAIhN,EAAM,GAAGtK,QAAQnC,KAAKqX,iBAMlG,IALqB,IAAjBmC,IACFD,EAAa9M,EAAM,GAAGxJ,MAAMuW,GAAanhB,MAAM2H,KAAKqX,iBAAiBlL,IAAIuN,GAAQA,EAAK1a,QAAQgN,OAAO2N,SACrGlN,EAAM,GAAKA,EAAM,GAAGxJ,MAAM,EAAGuW,IAE/BnR,EAAQqM,EAAGuE,EAAiBrW,KAAK5C,KAAMyM,EAAM,GAAGzN,OAAQga,GAAgBA,GACpE3Q,GAASoE,EAAM,KAAO/I,IAAQrC,EAASgH,GAAQ,OAAOA,EACrDhH,EAASgH,KAAQA,EAAQvG,EAAWuG,IACpCA,IACHrI,KAAKmG,OAAOP,KAAK,qBAAqB6G,EAAM,kBAAkB/I,KAC9D2E,EAAQ,IAENkR,EAAW7gB,SACb2P,EAAQkR,EAAWK,OAAO,CAACrQ,EAAGiP,IAAMxY,KAAK+W,OAAOxN,EAAGiP,EAAGrX,EAAQ+G,IAAK,IAC9D/G,EACHoX,iBAAkB9L,EAAM,GAAGzN,SACzBqJ,EAAMrJ,SAEZ0E,EAAMA,EAAIpI,QAAQmR,EAAM,GAAIpE,GAC5BrI,KAAKmY,OAAOD,UAAY,CAC1B,CACA,OAAOxU,CACT,EAGF,MA+BMmW,EAAwBC,IAC5B,MAAMC,EAAQ,CAAC,EACf,MAAO,CAACxQ,EAAGuG,EAAGzE,KACZ,IAAI2O,EAAc3O,EACdA,GAAKA,EAAEkN,kBAAoBlN,EAAE4O,cAAgB5O,EAAE4O,aAAa5O,EAAEkN,mBAAqBlN,EAAEA,EAAEkN,oBACzFyB,EAAc,IACTA,EACH,CAAC3O,EAAEkN,uBAAmBle,IAG1B,MAAM6H,EAAM4N,EAAI/G,KAAKE,UAAU+Q,GAC/B,IAAIE,EAAMH,EAAM7X,GAKhB,OAJKgY,IACHA,EAAMJ,EAAGxU,EAAewK,GAAIzE,GAC5B0O,EAAM7X,GAAOgY,GAERA,EAAI3Q,KAGT4Q,EAA2BL,GAAM,CAACvQ,EAAGuG,EAAGzE,IAAMyO,EAAGxU,EAAewK,GAAIzE,EAAtByO,CAAyBvQ,GAC7E,MAAM6Q,EACJ,WAAAra,CAAYoB,EAAU,CAAC,GACrBnB,KAAKmG,OAASS,EAAWH,OAAO,aAChCzG,KAAKmB,QAAUA,EACfnB,KAAKiB,KAAKE,EACZ,CACA,IAAAF,CAAK8J,EAAU5J,EAAU,CACvBmK,cAAe,CAAC,IAEhBtL,KAAKqX,gBAAkBlW,EAAQmK,cAAc+L,iBAAmB,IAChE,MAAMgD,EAAKlZ,EAAQmZ,oBAAsBT,EAAwBM,EACjEna,KAAKua,QAAU,CACbC,OAAQH,EAAG,CAACnS,EAAKqD,KACf,MAAMkP,EAAY,IAAIhH,KAAKiH,aAAaxS,EAAK,IACxCqD,IAEL,OAAOsL,GAAO4D,EAAU1D,OAAOF,KAEjC9c,SAAUsgB,EAAG,CAACnS,EAAKqD,KACjB,MAAMkP,EAAY,IAAIhH,KAAKiH,aAAaxS,EAAK,IACxCqD,EACHoP,MAAO,aAET,OAAO9D,GAAO4D,EAAU1D,OAAOF,KAEjC+D,SAAUP,EAAG,CAACnS,EAAKqD,KACjB,MAAMkP,EAAY,IAAIhH,KAAKoH,eAAe3S,EAAK,IAC1CqD,IAEL,OAAOsL,GAAO4D,EAAU1D,OAAOF,KAEjCiE,aAAcT,EAAG,CAACnS,EAAKqD,KACrB,MAAMkP,EAAY,IAAIhH,KAAKsH,mBAAmB7S,EAAK,IAC9CqD,IAEL,OAAOsL,GAAO4D,EAAU1D,OAAOF,EAAKtL,EAAIyP,OAAS,SAEnDC,KAAMZ,EAAG,CAACnS,EAAKqD,KACb,MAAMkP,EAAY,IAAIhH,KAAKyH,WAAWhT,EAAK,IACtCqD,IAEL,OAAOsL,GAAO4D,EAAU1D,OAAOF,KAGrC,CACA,GAAAsE,CAAI9c,EAAMqW,GACR1U,KAAKua,QAAQlc,EAAK+O,cAAcpO,QAAU0V,CAC5C,CACA,SAAA0G,CAAU/c,EAAMqW,GACd1U,KAAKua,QAAQlc,EAAK+O,cAAcpO,QAAU6a,EAAsBnF,EAClE,CACA,MAAAqC,CAAO1O,EAAO0O,EAAQ7O,EAAK/G,EAAU,CAAC,GACpC,MAAMoZ,EAAUxD,EAAO1e,MAAM2H,KAAKqX,iBAClC,GAAIkD,EAAQ7hB,OAAS,GAAK6hB,EAAQ,GAAGpY,QAAQ,KAAO,GAAKoY,EAAQ,GAAGpY,QAAQ,KAAO,GAAKoY,EAAQ3gB,KAAK4e,GAAKA,EAAErW,QAAQ,MAAQ,GAAI,CAC9H,MAAM+V,EAAYqC,EAAQc,UAAU7C,GAAKA,EAAErW,QAAQ,MAAQ,GAC3DoY,EAAQ,GAAK,CAACA,EAAQ,MAAOA,EAAQvS,OAAO,EAAGkQ,IAAY/P,KAAKnI,KAAKqX,gBACvE,CAyBA,OAxBekD,EAAQX,OAAO,CAAC0B,EAAK9C,KAClC,MAAM,WACJ+C,EAAU,cACVC,GA/GeC,KACrB,IAAIF,EAAaE,EAAUrO,cAAcpO,OACzC,MAAMwc,EAAgB,CAAC,EACvB,GAAIC,EAAUtZ,QAAQ,MAAQ,EAAG,CAC/B,MAAMtI,EAAI4hB,EAAUpjB,MAAM,KAC1BkjB,EAAa1hB,EAAE,GAAGuT,cAAcpO,OAChC,MAAM0c,EAAS7hB,EAAE,GAAG0S,UAAU,EAAG1S,EAAE,GAAGnB,OAAS,GAC5B,aAAf6iB,GAA6BG,EAAOvZ,QAAQ,KAAO,EAChDqZ,EAAczhB,WAAUyhB,EAAczhB,SAAW2hB,EAAO1c,QACrC,iBAAfuc,GAAiCG,EAAOvZ,QAAQ,KAAO,EAC3DqZ,EAAcR,QAAOQ,EAAcR,MAAQU,EAAO1c,QAE1C0c,EAAOrjB,MAAM,KACrB+H,QAAQmL,IACX,GAAIA,EAAK,CACP,MAAOrJ,KAAQyZ,GAAQpQ,EAAIlT,MAAM,KAC3Bwe,EAAM8E,EAAKxT,KAAK,KAAKnJ,OAAO1D,QAAQ,WAAY,IAChDsgB,EAAa1Z,EAAIlD,OAClBwc,EAAcI,KAAaJ,EAAcI,GAAc/E,GAChD,UAARA,IAAiB2E,EAAcI,IAAc,GACrC,SAAR/E,IAAgB2E,EAAcI,IAAc,GAC3CC,MAAMhF,KAAM2E,EAAcI,GAAchjB,SAASie,EAAK,IAC7D,GAGN,CACA,MAAO,CACL0E,aACAC,kBAoFMM,CAAetD,GACnB,GAAIxY,KAAKua,QAAQgB,GAAa,CAC5B,IAAIQ,EAAYT,EAChB,IACE,MAAMU,EAAa7a,GAAS8Y,eAAe9Y,EAAQoX,mBAAqB,CAAC,EACnEzI,EAAIkM,EAAWC,QAAUD,EAAW9T,KAAO/G,EAAQ8a,QAAU9a,EAAQ+G,KAAOA,EAClF6T,EAAY/b,KAAKua,QAAQgB,GAAYD,EAAKxL,EAAG,IACxC0L,KACAra,KACA6a,GAEP,CAAE,MAAOnW,GACP7F,KAAKmG,OAAOP,KAAKC,EACnB,CACA,OAAOkW,CACT,CAGA,OAFE/b,KAAKmG,OAAOP,KAAK,oCAAoC2V,KAEhDD,GACNjT,EAEL,EASF,MAAM6T,UAAkBrV,EACtB,WAAA9G,CAAYoc,EAASC,EAAOrR,EAAU5J,EAAU,CAAC,GAC/CwG,QACA3H,KAAKmc,QAAUA,EACfnc,KAAKoc,MAAQA,EACbpc,KAAK+K,SAAWA,EAChB/K,KAAKwP,cAAgBzE,EAASyE,cAC9BxP,KAAKmB,QAAUA,EACfnB,KAAKmG,OAASS,EAAWH,OAAO,oBAChCzG,KAAKqc,aAAe,GACpBrc,KAAKsc,iBAAmBnb,EAAQmb,kBAAoB,GACpDtc,KAAKuc,aAAe,EACpBvc,KAAKwc,WAAarb,EAAQqb,YAAc,EAAIrb,EAAQqb,WAAa,EACjExc,KAAKyc,aAAetb,EAAQsb,cAAgB,EAAItb,EAAQsb,aAAe,IACvEzc,KAAKqK,MAAQ,CAAC,EACdrK,KAAK0c,MAAQ,GACb1c,KAAKmc,SAASlb,OAAO8J,EAAU5J,EAAQgb,QAAShb,EAClD,CACA,SAAAwb,CAAUC,EAAWzc,EAAYgB,EAAS0b,GACxC,MAAMC,EAAS,CAAC,EACVC,EAAU,CAAC,EACXC,EAAkB,CAAC,EACnBC,EAAmB,CAAC,EA4B1B,OA3BAL,EAAUxc,QAAQ8H,IAChB,IAAIgV,GAAmB,EACvB/c,EAAWC,QAAQC,IACjB,MAAMhC,EAAO,GAAG6J,KAAO7H,KAClBc,EAAQJ,QAAUf,KAAKoc,MAAMjT,kBAAkBjB,EAAK7H,GACvDL,KAAKqK,MAAMhM,GAAQ,EACV2B,KAAKqK,MAAMhM,GAAQ,IAAmC,IAArB2B,KAAKqK,MAAMhM,QAC/BhE,IAAlB0iB,EAAQ1e,KAAqB0e,EAAQ1e,IAAQ,IAEjD2B,KAAKqK,MAAMhM,GAAQ,EACnB6e,GAAmB,OACG7iB,IAAlB0iB,EAAQ1e,KAAqB0e,EAAQ1e,IAAQ,QAC5BhE,IAAjByiB,EAAOze,KAAqBye,EAAOze,IAAQ,QAClBhE,IAAzB4iB,EAAiB5c,KAAmB4c,EAAiB5c,IAAM,OAG9D6c,IAAkBF,EAAgB9U,IAAO,MAE5C3H,OAAOC,KAAKsc,GAAQpkB,QAAU6H,OAAOC,KAAKuc,GAASrkB,SACrDsH,KAAK0c,MAAM5X,KAAK,CACdiY,UACAI,aAAc5c,OAAOC,KAAKuc,GAASrkB,OACnC0kB,OAAQ,CAAC,EACTC,OAAQ,GACRR,aAGG,CACLC,OAAQvc,OAAOC,KAAKsc,GACpBC,QAASxc,OAAOC,KAAKuc,GACrBC,gBAAiBzc,OAAOC,KAAKwc,GAC7BC,iBAAkB1c,OAAOC,KAAKyc,GAElC,CACA,MAAAG,CAAO/e,EAAM2X,EAAKnS,GAChB,MAAMC,EAAIzF,EAAKhG,MAAM,KACf6P,EAAMpE,EAAE,GACRzD,EAAKyD,EAAE,GACTkS,GAAKhW,KAAKoH,KAAK,gBAAiBc,EAAK7H,EAAI2V,IACxCA,GAAOnS,GACV7D,KAAKoc,MAAMzT,kBAAkBT,EAAK7H,EAAIwD,OAAMxJ,OAAWA,EAAW,CAChEwO,UAAU,IAGd7I,KAAKqK,MAAMhM,GAAQ2X,GAAO,EAAI,EAC1BA,GAAOnS,IAAM7D,KAAKqK,MAAMhM,GAAQ,GACpC,MAAM+e,EAAS,CAAC,EAChBpd,KAAK0c,MAAMtc,QAAQkd,IAl4CN,EAACvb,EAAQO,EAAMS,KAC9B,MAAM,IACJzB,EAAG,EACHuB,GACER,EAAcN,EAAQO,EAAM/B,QAChCe,EAAIuB,GAAKvB,EAAIuB,IAAM,GACnBvB,EAAIuB,GAAGiC,KAAK/B,IA63CRwa,CAASD,EAAEF,OAAQ,CAAClV,GAAM7H,GA7EV,EAACid,EAAGjf,UACAhE,IAApBijB,EAAEP,QAAQ1e,YACLif,EAAEP,QAAQ1e,GACjBif,EAAEH,iBA2EAK,CAAcF,EAAGjf,GACb2X,GAAKsH,EAAED,OAAOvY,KAAKkR,GACA,IAAnBsH,EAAEH,cAAuBG,EAAEG,OAC7Bld,OAAOC,KAAK8c,EAAEF,QAAQhd,QAAQ0P,IACvBsN,EAAOtN,KAAIsN,EAAOtN,GAAK,CAAC,GAC7B,MAAM4N,EAAaJ,EAAEF,OAAOtN,GACxB4N,EAAWhlB,QACbglB,EAAWtd,QAAQud,SACItjB,IAAjB+iB,EAAOtN,GAAG6N,KAAkBP,EAAOtN,GAAG6N,IAAK,OAIrDL,EAAEG,MAAO,EACLH,EAAED,OAAO3kB,OACX4kB,EAAET,SAASS,EAAED,QAEbC,EAAET,cAIR7c,KAAKoH,KAAK,SAAUgW,GACpBpd,KAAK0c,MAAQ1c,KAAK0c,MAAM1Q,OAAOsR,IAAMA,EAAEG,KACzC,CACA,IAAAG,CAAK1V,EAAK7H,EAAIwd,EAAQC,EAAQ,EAAGC,EAAO/d,KAAKyc,aAAcI,GACzD,IAAK3U,EAAIxP,OAAQ,OAAOmkB,EAAS,KAAM,CAAC,GACxC,GAAI7c,KAAKuc,cAAgBvc,KAAKsc,iBAS5B,YARAtc,KAAKqc,aAAavX,KAAK,CACrBoD,MACA7H,KACAwd,SACAC,QACAC,OACAlB,aAIJ7c,KAAKuc,eACL,MAAMyB,EAAW,CAAChI,EAAKnS,KAErB,GADA7D,KAAKuc,eACDvc,KAAKqc,aAAa3jB,OAAS,EAAG,CAChC,MAAMyM,EAAOnF,KAAKqc,aAAazX,QAC/B5E,KAAK4d,KAAKzY,EAAK+C,IAAK/C,EAAK9E,GAAI8E,EAAK0Y,OAAQ1Y,EAAK2Y,MAAO3Y,EAAK4Y,KAAM5Y,EAAK0X,SACxE,CACI7G,GAAOnS,GAAQia,EAAQ9d,KAAKwc,WAC9ByB,WAAW,KACTje,KAAK4d,KAAKhb,KAAK5C,KAAMkI,EAAK7H,EAAIwd,EAAQC,EAAQ,EAAU,EAAPC,EAAUlB,IAC1DkB,GAGLlB,EAAS7G,EAAKnS,IAEV6Q,EAAK1U,KAAKmc,QAAQ0B,GAAQK,KAAKle,KAAKmc,SAC1C,GAAkB,IAAdzH,EAAGhc,OAaP,OAAOgc,EAAGxM,EAAK7H,EAAI2d,GAZjB,IACE,MAAM9R,EAAIwI,EAAGxM,EAAK7H,GACd6L,GAAuB,mBAAXA,EAAEiS,KAChBjS,EAAEiS,KAAKta,GAAQma,EAAS,KAAMna,IAAOua,MAAMJ,GAE3CA,EAAS,KAAM9R,EAEnB,CAAE,MAAO8J,GACPgI,EAAShI,EACX,CAIJ,CACA,cAAAqI,CAAezB,EAAWzc,EAAYgB,EAAU,CAAC,EAAG0b,GAClD,IAAK7c,KAAKmc,QAER,OADAnc,KAAKmG,OAAOP,KAAK,kEACViX,GAAYA,IAEjBxb,EAASub,KAAYA,EAAY5c,KAAKwP,cAAcI,mBAAmBgN,IACvEvb,EAASlB,KAAaA,EAAa,CAACA,IACxC,MAAM2c,EAAS9c,KAAK2c,UAAUC,EAAWzc,EAAYgB,EAAS0b,GAC9D,IAAKC,EAAOA,OAAOpkB,OAEjB,OADKokB,EAAOC,QAAQrkB,QAAQmkB,IACrB,KAETC,EAAOA,OAAO1c,QAAQ/B,IACpB2B,KAAKse,QAAQjgB,IAEjB,CACA,IAAAyV,CAAK8I,EAAWzc,EAAY0c,GAC1B7c,KAAKqe,eAAezB,EAAWzc,EAAY,CAAC,EAAG0c,EACjD,CACA,MAAA9b,CAAO6b,EAAWzc,EAAY0c,GAC5B7c,KAAKqe,eAAezB,EAAWzc,EAAY,CACzCY,QAAQ,GACP8b,EACL,CACA,OAAAyB,CAAQjgB,EAAM6H,EAAS,IACrB,MAAMpC,EAAIzF,EAAKhG,MAAM,KACf6P,EAAMpE,EAAE,GACRzD,EAAKyD,EAAE,GACb9D,KAAK4d,KAAK1V,EAAK7H,EAAI,YAAQhG,OAAWA,EAAW,CAAC2b,EAAKnS,KACjDmS,GAAKhW,KAAKmG,OAAOP,KAAK,GAAGM,sBAA2B7F,kBAAmB6H,WAAc8N,IACpFA,GAAOnS,GAAM7D,KAAKmG,OAAOV,IAAI,GAAGS,qBAA0B7F,kBAAmB6H,IAAOrE,GACzF7D,KAAKod,OAAO/e,EAAM2X,EAAKnS,IAE3B,CACA,WAAAsM,CAAYyM,EAAW1P,EAAWhL,EAAKqc,EAAeC,EAAUrd,EAAU,CAAC,EAAGsd,EAAM,QAClF,IAAIze,KAAK+K,UAAUmH,OAAOC,oBAAuBnS,KAAK+K,UAAUmH,OAAOC,mBAAmBjF,IAI1F,GAAIhL,SAA6C,KAARA,EAAzC,CACA,GAAIlC,KAAKmc,SAAS1V,OAAQ,CACxB,MAAM2D,EAAO,IACRjJ,EACHqd,YAEI9J,EAAK1U,KAAKmc,QAAQ1V,OAAOyX,KAAKle,KAAKmc,SACzC,GAAIzH,EAAGhc,OAAS,EACd,IACE,IAAIwT,EAEFA,EADgB,IAAdwI,EAAGhc,OACDgc,EAAGkI,EAAW1P,EAAWhL,EAAKqc,EAAenU,GAE7CsK,EAAGkI,EAAW1P,EAAWhL,EAAKqc,GAEhCrS,GAAuB,mBAAXA,EAAEiS,KAChBjS,EAAEiS,KAAKta,GAAQ4a,EAAI,KAAM5a,IAAOua,MAAMK,GAEtCA,EAAI,KAAMvS,EAEd,CAAE,MAAO8J,GACPyI,EAAIzI,EACN,MAEAtB,EAAGkI,EAAW1P,EAAWhL,EAAKqc,EAAeE,EAAKrU,EAEtD,CACKwS,GAAcA,EAAU,IAC7B5c,KAAKoc,MAAMhU,YAAYwU,EAAU,GAAI1P,EAAWhL,EAAKqc,EA5BM,OAHzDve,KAAKmG,OAAOP,KAAK,qBAAqB1D,wBAA0BgL,wBAAiC,2NAgCrG,EAGF,MAAM1I,EAAM,KAAM,CAChB4B,OAAO,EACPsY,WAAW,EACXre,GAAI,CAAC,eACLqH,UAAW,CAAC,eACZgI,YAAa,CAAC,OACdqC,YAAY,EACZqB,eAAe,EACfW,0BAA0B,EAC1BD,KAAM,MACN6K,SAAS,EACTC,sBAAsB,EACtB5Z,aAAc,IACd0G,YAAa,IACbiD,gBAAiB,IACjB+D,iBAAkB,IAClBmM,yBAAyB,EACzB1O,aAAa,EACbf,eAAe,EACfO,cAAe,WACfS,oBAAoB,EACpBH,mBAAmB,EACnBwI,6BAA6B,EAC7BjH,aAAa,EACbG,yBAAyB,EACzBkB,YAAY,EACZC,mBAAmB,EACnBpC,eAAe,EACf7C,YAAY,EACZ8C,uBAAuB,EACvBF,wBAAwB,EACxBD,6BAA6B,EAC7BrD,yBAAyB,EACzBJ,iCAAkCrH,IAChC,IAAIoZ,EAAM,CAAC,EAIX,GAHuB,iBAAZpZ,EAAK,KAAiBoZ,EAAMpZ,EAAK,IACxCrE,EAASqE,EAAK,MAAKoZ,EAAIpQ,aAAehJ,EAAK,IAC3CrE,EAASqE,EAAK,MAAKoZ,EAAIC,aAAerZ,EAAK,IACxB,iBAAZA,EAAK,IAAsC,iBAAZA,EAAK,GAAiB,CAC9D,MAAMvE,EAAUuE,EAAK,IAAMA,EAAK,GAChCnF,OAAOC,KAAKW,GAASf,QAAQ8B,IAC3B4c,EAAI5c,GAAOf,EAAQe,IAEvB,CACA,OAAO4c,GAETxT,cAAe,CACb0L,aAAa,EACbD,OAAQ1O,GAASA,EACjBnC,OAAQ,KACRqK,OAAQ,KACR8G,gBAAiB,IACjBE,eAAgB,IAChBC,cAAe,MACfE,cAAe,IACfE,wBAAyB,IACzBC,YAAa,IACb5G,iBAAiB,GAEnBqJ,qBAAqB,IAEjB0E,EAAmB7d,IACnBE,EAASF,EAAQd,MAAKc,EAAQd,GAAK,CAACc,EAAQd,KAC5CgB,EAASF,EAAQuO,eAAcvO,EAAQuO,YAAc,CAACvO,EAAQuO,cAC9DrO,EAASF,EAAQ4Q,cAAa5Q,EAAQ4Q,WAAa,CAAC5Q,EAAQ4Q,aAC5D5Q,EAAQiS,eAAejR,UAAU,UAAY,IAC/ChB,EAAQiS,cAAgBjS,EAAQiS,cAAc7K,OAAO,CAAC,YAEnB,kBAA1BpH,EAAQ8d,gBAA6B9d,EAAQud,UAAYvd,EAAQ8d,eACrE9d,GAGH+d,EAAO,OASb,MAAMC,UAAatY,EACjB,WAAA9G,CAAYoB,EAAU,CAAC,EAAG0b,GATAuC,MAkBxB,GARAzX,QACA3H,KAAKmB,QAAU6d,EAAiB7d,GAChCnB,KAAK+K,SAAW,CAAC,EACjB/K,KAAKmG,OAASS,EACd5G,KAAKqf,QAAU,CACbC,SAAU,IAfYF,EAiBJpf,KAhBTO,OAAOgf,oBAAoBhf,OAAOif,eAAeJ,IACzDhf,QAAQkb,IACc,mBAAd8D,EAAK9D,KACd8D,EAAK9D,GAAO8D,EAAK9D,GAAK4C,KAAKkB,MAczBvC,IAAa7c,KAAKyf,gBAAkBte,EAAQue,QAAS,CACvD,IAAK1f,KAAKmB,QAAQud,UAEhB,OADA1e,KAAKiB,KAAKE,EAAS0b,GACZ7c,KAETie,WAAW,KACTje,KAAKiB,KAAKE,EAAS0b,IAClB,EACL,CACF,CACA,IAAA5b,CAAKE,EAAU,CAAC,EAAG0b,GACjB7c,KAAK2f,gBAAiB,EACC,mBAAZxe,IACT0b,EAAW1b,EACXA,EAAU,CAAC,GAEY,MAArBA,EAAQuG,WAAqBvG,EAAQd,KACnCgB,EAASF,EAAQd,IACnBc,EAAQuG,UAAYvG,EAAQd,GACnBc,EAAQd,GAAG8B,QAAQ,eAAiB,IAC7ChB,EAAQuG,UAAYvG,EAAQd,GAAG,KAGnC,MAAMuf,EAAUpb,IAChBxE,KAAKmB,QAAU,IACVye,KACA5f,KAAKmB,WACL6d,EAAiB7d,IAEtBnB,KAAKmB,QAAQmK,cAAgB,IACxBsU,EAAQtU,iBACRtL,KAAKmB,QAAQmK,oBAEWjR,IAAzB8G,EAAQ6D,eACVhF,KAAKmB,QAAQ0K,wBAA0B1K,EAAQ6D,mBAErB3K,IAAxB8G,EAAQuK,cACV1L,KAAKmB,QAAQ2K,uBAAyB3K,EAAQuK,aAEhD,MAAMmU,EAAsBC,GACrBA,EACwB,mBAAlBA,EAAqC,IAAIA,EAC7CA,EAFoB,KAI7B,IAAK9f,KAAKmB,QAAQue,QAAS,CAMzB,IAAIjF,EALAza,KAAKqf,QAAQlZ,OACfS,EAAW3F,KAAK4e,EAAoB7f,KAAKqf,QAAQlZ,QAASnG,KAAKmB,SAE/DyF,EAAW3F,KAAK,KAAMjB,KAAKmB,SAI3BsZ,EADEza,KAAKqf,QAAQ5E,UACHza,KAAKqf,QAAQ5E,UAEbL,EAEd,MAAM2F,EAAK,IAAI5M,EAAanT,KAAKmB,SACjCnB,KAAKoc,MAAQ,IAAI3U,EAAczH,KAAKmB,QAAQsH,UAAWzI,KAAKmB,SAC5D,MAAM2C,EAAI9D,KAAK+K,SACfjH,EAAEqC,OAASS,EACX9C,EAAEiP,cAAgB/S,KAAKoc,MACvBtY,EAAE0L,cAAgBuQ,EAClBjc,EAAEuK,eAAiB,IAAIiH,EAAeyK,EAAI,CACxCvJ,QAASxW,KAAKmB,QAAQwN,gBACtBiQ,qBAAsB5e,KAAKmB,QAAQyd,uBAEH5e,KAAKmB,QAAQmK,cAAcyL,QAAU/W,KAAKmB,QAAQmK,cAAcyL,SAAW6I,EAAQtU,cAAcyL,QAEjI/W,KAAKmG,OAAOG,UAAU,+IAEpBmU,GAAeza,KAAKmB,QAAQmK,cAAcyL,QAAU/W,KAAKmB,QAAQmK,cAAcyL,SAAW6I,EAAQtU,cAAcyL,SAClHjT,EAAE2W,UAAYoF,EAAoBpF,GAC9B3W,EAAE2W,UAAUxZ,MAAM6C,EAAE2W,UAAUxZ,KAAK6C,EAAG9D,KAAKmB,SAC/CnB,KAAKmB,QAAQmK,cAAcyL,OAASjT,EAAE2W,UAAU1D,OAAOmH,KAAKpa,EAAE2W,YAEhE3W,EAAE4I,aAAe,IAAIoK,EAAa9W,KAAKmB,SACvC2C,EAAEoO,MAAQ,CACRC,mBAAoBnS,KAAKmS,mBAAmB+L,KAAKle,OAEnD8D,EAAEoM,iBAAmB,IAAIgM,EAAU2D,EAAoB7f,KAAKqf,QAAQlD,SAAUrY,EAAEiP,cAAejP,EAAG9D,KAAKmB,SACvG2C,EAAEoM,iBAAiBnJ,GAAG,IAAK,CAACrJ,KAAUgI,KACpC1F,KAAKoH,KAAK1J,KAAUgI,KAElB1F,KAAKqf,QAAQW,mBACflc,EAAEkc,iBAAmBH,EAAoB7f,KAAKqf,QAAQW,kBAClDlc,EAAEkc,iBAAiB/e,MAAM6C,EAAEkc,iBAAiB/e,KAAK6C,EAAG9D,KAAKmB,QAAQ8e,UAAWjgB,KAAKmB,UAEnFnB,KAAKqf,QAAQtR,aACfjK,EAAEiK,WAAa8R,EAAoB7f,KAAKqf,QAAQtR,YAC5CjK,EAAEiK,WAAW9M,MAAM6C,EAAEiK,WAAW9M,KAAKjB,OAE3CA,KAAK6J,WAAa,IAAIiB,EAAW9K,KAAK+K,SAAU/K,KAAKmB,SACrDnB,KAAK6J,WAAW9C,GAAG,IAAK,CAACrJ,KAAUgI,KACjC1F,KAAKoH,KAAK1J,KAAUgI,KAEtB1F,KAAKqf,QAAQC,SAASlf,QAAQsI,IACxBA,EAAEzH,MAAMyH,EAAEzH,KAAKjB,OAEvB,CAGA,GAFAA,KAAK+W,OAAS/W,KAAKmB,QAAQmK,cAAcyL,OACpC8F,IAAUA,EAAWqC,GACtBlf,KAAKmB,QAAQuO,cAAgB1P,KAAK+K,SAASiV,mBAAqBhgB,KAAKmB,QAAQ+G,IAAK,CACpF,MAAM+J,EAAQjS,KAAK+K,SAASyE,cAAcC,iBAAiBzP,KAAKmB,QAAQuO,aACpEuC,EAAMvZ,OAAS,GAAkB,QAAbuZ,EAAM,KAAcjS,KAAKmB,QAAQ+G,IAAM+J,EAAM,GACvE,CACKjS,KAAK+K,SAASiV,kBAAqBhgB,KAAKmB,QAAQ+G,KACnDlI,KAAKmG,OAAOP,KAAK,2DAEF,CAAC,cAAe,oBAAqB,oBAAqB,qBAClExF,QAAQyd,IACf7d,KAAK6d,GAAU,IAAInY,IAAS1F,KAAKoc,MAAMyB,MAAWnY,KAE5B,CAAC,cAAe,eAAgB,oBAAqB,wBAC7DtF,QAAQyd,IACtB7d,KAAK6d,GAAU,IAAInY,KACjB1F,KAAKoc,MAAMyB,MAAWnY,GACf1F,QAGX,MAAMkgB,EAAW3e,IACXuS,EAAO,KACX,MAAMqM,EAAS,CAACnK,EAAKnV,KACnBb,KAAK2f,gBAAiB,EAClB3f,KAAKyf,gBAAkBzf,KAAKogB,sBAAsBpgB,KAAKmG,OAAOP,KAAK,yEACvE5F,KAAKyf,eAAgB,EAChBzf,KAAKmB,QAAQue,SAAS1f,KAAKmG,OAAOV,IAAI,cAAezF,KAAKmB,SAC/DnB,KAAKoH,KAAK,cAAepH,KAAKmB,SAC9B+e,EAASte,QAAQf,GACjBgc,EAAS7G,EAAKnV,IAEhB,GAAIb,KAAK4c,YAAc5c,KAAKyf,cAAe,OAAOU,EAAO,KAAMngB,KAAKa,EAAEqd,KAAKle,OAC3EA,KAAKkL,eAAelL,KAAKmB,QAAQ+G,IAAKiY,IAOxC,OALIngB,KAAKmB,QAAQsH,YAAczI,KAAKmB,QAAQud,UAC1C5K,IAEAmK,WAAWnK,EAAM,GAEZoM,CACT,CACA,aAAAG,CAAclV,EAAU0R,EAAWqC,GACjC,IAAIoB,EAAezD,EACnB,MAAMtP,EAAUlM,EAAS8J,GAAYA,EAAWnL,KAAKmL,SAErD,GADwB,mBAAbA,IAAyBmV,EAAenV,IAC9CnL,KAAKmB,QAAQsH,WAAazI,KAAKmB,QAAQ0d,wBAAyB,CACnE,GAA+B,WAA3BtR,GAASH,iBAAgCpN,KAAKmB,QAAQwd,SAA2C,IAAhC3e,KAAKmB,QAAQwd,QAAQjmB,QAAe,OAAO4nB,IAChH,MAAMxD,EAAS,GACTyD,EAASrY,IACRA,GACO,WAARA,GACSlI,KAAK+K,SAASyE,cAAcI,mBAAmB1H,GACvD9H,QAAQ0P,IACD,WAANA,GACAgN,EAAO3a,QAAQ2N,GAAK,GAAGgN,EAAOhY,KAAKgL,MAGtCvC,EAIHgT,EAAOhT,GAHWvN,KAAK+K,SAASyE,cAAcC,iBAAiBzP,KAAKmB,QAAQuO,aAClEtP,QAAQ0P,GAAKyQ,EAAOzQ,IAIhC9P,KAAKmB,QAAQwd,SAASve,UAAU0P,GAAKyQ,EAAOzQ,IAC5C9P,KAAK+K,SAASmF,iBAAiB4D,KAAKgJ,EAAQ9c,KAAKmB,QAAQd,GAAI2C,IACtDA,GAAMhD,KAAKwgB,mBAAoBxgB,KAAKmL,UAAUnL,KAAKygB,oBAAoBzgB,KAAKmL,UACjFmV,EAAatd,IAEjB,MACEsd,EAAa,KAEjB,CACA,eAAAI,CAAgBpR,EAAMjP,EAAIwc,GACxB,MAAMqD,EAAW3e,IAgBjB,MAfoB,mBAAT+N,IACTuN,EAAWvN,EACXA,OAAOjV,GAES,mBAAPgG,IACTwc,EAAWxc,EACXA,OAAKhG,GAEFiV,IAAMA,EAAOtP,KAAK4c,WAClBvc,IAAIA,EAAKL,KAAKmB,QAAQd,IACtBwc,IAAUA,EAAWqC,GAC1Blf,KAAK+K,SAASmF,iBAAiBnP,OAAOuO,EAAMjP,EAAI2V,IAC9CkK,EAASte,UACTib,EAAS7G,KAEJkK,CACT,CACA,GAAAS,CAAIlgB,GACF,IAAKA,EAAQ,MAAM,IAAImgB,MAAM,iGAC7B,IAAKngB,EAAO/E,KAAM,MAAM,IAAIklB,MAAM,4FAsBlC,MArBoB,YAAhBngB,EAAO/E,OACTsE,KAAKqf,QAAQlD,QAAU1b,IAEL,WAAhBA,EAAO/E,MAAqB+E,EAAOgF,KAAOhF,EAAOmF,MAAQnF,EAAOoF,SAClE7F,KAAKqf,QAAQlZ,OAAS1F,GAEJ,qBAAhBA,EAAO/E,OACTsE,KAAKqf,QAAQW,iBAAmBvf,GAEd,eAAhBA,EAAO/E,OACTsE,KAAKqf,QAAQtR,WAAatN,GAER,kBAAhBA,EAAO/E,MACT+N,EAAcE,iBAAiBlJ,GAEb,cAAhBA,EAAO/E,OACTsE,KAAKqf,QAAQ5E,UAAYha,GAEP,aAAhBA,EAAO/E,MACTsE,KAAKqf,QAAQC,SAASxa,KAAKrE,GAEtBT,IACT,CACA,mBAAAygB,CAAoB3Q,GAClB,GAAKA,GAAM9P,KAAK4c,aACZ,CAAC,SAAU,OAAOza,QAAQ2N,IAAM,GAApC,CACA,IAAK,IAAI+Q,EAAK,EAAGA,EAAK7gB,KAAK4c,UAAUlkB,OAAQmoB,IAAM,CACjD,MAAMC,EAAY9gB,KAAK4c,UAAUiE,GACjC,KAAI,CAAC,SAAU,OAAO1e,QAAQ2e,IAAc,IACxC9gB,KAAKoc,MAAM9S,4BAA4BwX,GAAY,CACrD9gB,KAAKwgB,iBAAmBM,EACxB,KACF,CACF,EACK9gB,KAAKwgB,kBAAoBxgB,KAAK4c,UAAUza,QAAQ2N,GAAK,GAAK9P,KAAKoc,MAAM9S,4BAA4BwG,KACpG9P,KAAKwgB,iBAAmB1Q,EACxB9P,KAAK4c,UAAUmE,QAAQjR,GAXoB,CAa/C,CACA,cAAA5E,CAAehD,EAAK2U,GAClB7c,KAAKghB,qBAAuB9Y,EAC5B,MAAMgY,EAAW3e,IACjBvB,KAAKoH,KAAK,mBAAoBc,GAC9B,MAAM+Y,EAAcnR,IAClB9P,KAAKmL,SAAW2E,EAChB9P,KAAK4c,UAAY5c,KAAK+K,SAASyE,cAAcI,mBAAmBE,GAChE9P,KAAKwgB,sBAAmBnmB,EACxB2F,KAAKygB,oBAAoB3Q,IAErB2N,EAAO,CAACzH,EAAKlG,KACbA,EACE9P,KAAKghB,uBAAyB9Y,IAChC+Y,EAAYnR,GACZ9P,KAAK6J,WAAWqB,eAAe4E,GAC/B9P,KAAKghB,0BAAuB3mB,EAC5B2F,KAAKoH,KAAK,kBAAmB0I,GAC7B9P,KAAKmG,OAAOV,IAAI,kBAAmBqK,IAGrC9P,KAAKghB,0BAAuB3mB,EAE9B6lB,EAASte,QAAQ,IAAI8D,IAAS1F,KAAKa,KAAK6E,IACpCmX,GAAUA,EAAS7G,EAAK,IAAItQ,IAAS1F,KAAKa,KAAK6E,KAE/Cwb,EAAS5R,IACRpH,GAAQoH,IAAQtP,KAAK+K,SAASiV,mBAAkB1Q,EAAO,IAC5D,MAAM6R,EAAK9f,EAASiO,GAAQA,EAAOA,GAAQA,EAAK,GAC1CQ,EAAI9P,KAAKoc,MAAM9S,4BAA4B6X,GAAMA,EAAKnhB,KAAK+K,SAASyE,cAAcwE,sBAAsB3S,EAASiO,GAAQ,CAACA,GAAQA,GACpIQ,IACG9P,KAAKmL,UACR8V,EAAYnR,GAET9P,KAAK6J,WAAWsB,UAAUnL,KAAK6J,WAAWqB,eAAe4E,GAC9D9P,KAAK+K,SAASiV,kBAAkBoB,oBAAoBtR,IAEtD9P,KAAKqgB,cAAcvQ,EAAGkG,IACpByH,EAAKzH,EAAKlG,MAcd,OAXK5H,IAAOlI,KAAK+K,SAASiV,kBAAqBhgB,KAAK+K,SAASiV,iBAAiBqB,OAElEnZ,GAAOlI,KAAK+K,SAASiV,kBAAoBhgB,KAAK+K,SAASiV,iBAAiBqB,MAC7B,IAAjDrhB,KAAK+K,SAASiV,iBAAiBsB,OAAO5oB,OACxCsH,KAAK+K,SAASiV,iBAAiBsB,SAASnD,KAAK+C,GAE7ClhB,KAAK+K,SAASiV,iBAAiBsB,OAAOJ,GAGxCA,EAAOhZ,GARPgZ,EAAOlhB,KAAK+K,SAASiV,iBAAiBsB,UAUjCpB,CACT,CACA,SAAAqB,CAAUrZ,EAAK7H,EAAImhB,GACjB,MAAMC,EAAS,CAACvf,EAAKkI,KAASuR,KAC5B,IAAItQ,EAEFA,EADkB,iBAATjB,EACLpK,KAAKmB,QAAQ4L,iCAAiC,CAAC7K,EAAKkI,GAAM7B,OAAOoT,IAEjE,IACCvR,GAGPiB,EAAEnD,IAAMmD,EAAEnD,KAAOuZ,EAAOvZ,IACxBmD,EAAEiE,KAAOjE,EAAEiE,MAAQmS,EAAOnS,KAC1BjE,EAAEhL,GAAKgL,EAAEhL,IAAMohB,EAAOphB,GACF,KAAhBgL,EAAEmW,YAAkBnW,EAAEmW,UAAYnW,EAAEmW,WAAaA,GAAaC,EAAOD,WACzE,MAAMxc,EAAehF,KAAKmB,QAAQ6D,cAAgB,IAClD,IAAI0c,EAgBJ,OAfIrW,EAAEmW,WAAa/nB,MAAMC,QAAQwI,GAC/Bwf,EAAYxf,EAAIiK,IAAItJ,IACD,mBAANA,IAAkBA,EAAIqH,EAAiBrH,EAAG,IAChD7C,KAAKmB,WACLiJ,KAEE,GAAGiB,EAAEmW,YAAYxc,IAAenC,OAGtB,mBAARX,IAAoBA,EAAMgI,EAAiBhI,EAAK,IACtDlC,KAAKmB,WACLiJ,KAELsX,EAAYrW,EAAEmW,UAAY,GAAGnW,EAAEmW,YAAYxc,IAAe9C,IAAQA,GAE7DlC,KAAKa,EAAE6gB,EAAWrW,IAS3B,OAPIhK,EAAS6G,GACXuZ,EAAOvZ,IAAMA,EAEbuZ,EAAOnS,KAAOpH,EAEhBuZ,EAAOphB,GAAKA,EACZohB,EAAOD,UAAYA,EACZC,CACT,CACA,CAAA5gB,IAAK6E,GACH,OAAO1F,KAAK6J,YAAYgD,aAAanH,EACvC,CACA,MAAA0F,IAAU1F,GACR,OAAO1F,KAAK6J,YAAYuB,UAAU1F,EACpC,CACA,mBAAAic,CAAoBthB,GAClBL,KAAKmB,QAAQuG,UAAYrH,CAC3B,CACA,kBAAA8R,CAAmB9R,EAAIc,EAAU,CAAC,GAChC,IAAKnB,KAAKyf,cAER,OADAzf,KAAKmG,OAAOP,KAAK,kDAAmD5F,KAAK4c,YAClE,EAET,IAAK5c,KAAK4c,YAAc5c,KAAK4c,UAAUlkB,OAErC,OADAsH,KAAKmG,OAAOP,KAAK,6DAA8D5F,KAAK4c,YAC7E,EAET,MAAM1U,EAAM/G,EAAQ+G,KAAOlI,KAAKwgB,kBAAoBxgB,KAAK4c,UAAU,GAC7DlN,IAAc1P,KAAKmB,SAAUnB,KAAKmB,QAAQuO,YAC1CkS,EAAU5hB,KAAK4c,UAAU5c,KAAK4c,UAAUlkB,OAAS,GACvD,GAA0B,WAAtBwP,EAAIkF,cAA4B,OAAO,EAC3C,MAAMyU,EAAiB,CAAC/R,EAAG6N,KACzB,MAAMmE,EAAY9hB,KAAK+K,SAASmF,iBAAiB7F,MAAM,GAAGyF,KAAK6N,KAC/D,OAAsB,IAAfmE,GAAkC,IAAdA,GAAiC,IAAdA,GAEhD,GAAI3gB,EAAQ4gB,SAAU,CACpB,MAAMC,EAAY7gB,EAAQ4gB,SAAS/hB,KAAM6hB,GACzC,QAAkBxnB,IAAd2nB,EAAyB,OAAOA,CACtC,CACA,SAAIhiB,KAAKmJ,kBAAkBjB,EAAK7H,IAC3BL,KAAK+K,SAASmF,iBAAiBiM,WAAWnc,KAAKmB,QAAQsH,WAAczI,KAAKmB,QAAQ0d,4BACnFgD,EAAe3Z,EAAK7H,IAASqP,IAAemS,EAAeD,EAASvhB,IAE1E,CACA,cAAA4hB,CAAe5hB,EAAIwc,GACjB,MAAMqD,EAAW3e,IACjB,OAAKvB,KAAKmB,QAAQd,IAIdgB,EAAShB,KAAKA,EAAK,CAACA,IACxBA,EAAGD,QAAQud,IACL3d,KAAKmB,QAAQd,GAAG8B,QAAQwb,GAAK,GAAG3d,KAAKmB,QAAQd,GAAGyE,KAAK6Y,KAE3D3d,KAAKqgB,cAAcrK,IACjBkK,EAASte,UACLib,GAAUA,EAAS7G,KAElBkK,IAXDrD,GAAUA,IACPlb,QAAQC,UAWnB,CACA,aAAAsgB,CAAc5S,EAAMuN,GAClB,MAAMqD,EAAW3e,IACbF,EAASiO,KAAOA,EAAO,CAACA,IAC5B,MAAM6S,EAAYniB,KAAKmB,QAAQwd,SAAW,GACpCyD,EAAU9S,EAAKtD,OAAO9D,GAAOia,EAAUhgB,QAAQ+F,GAAO,GAAKlI,KAAK+K,SAASyE,cAAcqE,gBAAgB3L,IAC7G,OAAKka,EAAQ1pB,QAIbsH,KAAKmB,QAAQwd,QAAUwD,EAAU5Z,OAAO6Z,GACxCpiB,KAAKqgB,cAAcrK,IACjBkK,EAASte,UACLib,GAAUA,EAAS7G,KAElBkK,IARDrD,GAAUA,IACPlb,QAAQC,UAQnB,CACA,GAAAygB,CAAIna,GAEF,GADKA,IAAKA,EAAMlI,KAAKwgB,mBAAqBxgB,KAAK4c,WAAWlkB,OAAS,EAAIsH,KAAK4c,UAAU,GAAK5c,KAAKmL,YAC3FjD,EAAK,MAAO,MACjB,IACE,MAAM4H,EAAI,IAAI2D,KAAK6O,OAAOpa,GAC1B,GAAI4H,GAAKA,EAAEyS,YAAa,CACtB,MAAMC,EAAK1S,EAAEyS,cACb,GAAIC,GAAMA,EAAGC,UAAW,OAAOD,EAAGC,SACpC,CACF,CAAE,MAAOzf,GAAI,CACb,MACMwM,EAAgBxP,KAAK+K,UAAUyE,eAAiB,IAAI2D,EAAa3O,KACvE,OAAI0D,EAAIkF,cAAcjL,QAAQ,SAAW,EAAU,MAFnC,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,OAGnaA,QAAQqN,EAAc+D,wBAAwBrL,KAAS,GAAKA,EAAIkF,cAAcjL,QAAQ,SAAW,EAAI,MAAQ,KAC9H,CACA,qBAAOugB,CAAevhB,EAAU,CAAC,EAAG0b,GAClC,OAAO,IAAIsC,EAAKhe,EAAS0b,EAC3B,CACA,aAAA8F,CAAcxhB,EAAU,CAAC,EAAG0b,EAAWqC,GACrC,MAAM0D,EAAoBzhB,EAAQyhB,kBAC9BA,UAA0BzhB,EAAQyhB,kBACtC,MAAMC,EAAgB,IACjB7iB,KAAKmB,WACLA,EAEDue,SAAS,GAGP/Y,EAAQ,IAAIwY,EAAK0D,GAcvB,QAbsBxoB,IAAlB8G,EAAQiF,YAA0C/L,IAAnB8G,EAAQ+E,SACzCS,EAAMR,OAASQ,EAAMR,OAAOQ,MAAMxF,IAEd,CAAC,QAAS,WAAY,YAC9Bf,QAAQsI,IACpB/B,EAAM+B,GAAK1I,KAAK0I,KAElB/B,EAAMoE,SAAW,IACZ/K,KAAK+K,UAEVpE,EAAMoE,SAASmH,MAAQ,CACrBC,mBAAoBxL,EAAMwL,mBAAmB+L,KAAKvX,IAEhDic,EAAmB,CACrB,MAAME,EAAaviB,OAAOC,KAAKR,KAAKoc,MAAMvY,MAAM+V,OAAO,CAACmJ,EAAMjT,KAC5DiT,EAAKjT,GAAK,IACL9P,KAAKoc,MAAMvY,KAAKiM,IAErBiT,EAAKjT,GAAKvP,OAAOC,KAAKuiB,EAAKjT,IAAI8J,OAAO,CAACoJ,EAAKrF,KAC1CqF,EAAIrF,GAAK,IACJoF,EAAKjT,GAAG6N,IAENqF,GACND,EAAKjT,IACDiT,GACN,CAAC,GACJpc,EAAMyV,MAAQ,IAAI3U,EAAcqb,EAAYD,GAC5Clc,EAAMoE,SAASgI,cAAgBpM,EAAMyV,KACvC,CAUA,OATAzV,EAAMkD,WAAa,IAAIiB,EAAWnE,EAAMoE,SAAU8X,GAClDlc,EAAMkD,WAAW9C,GAAG,IAAK,CAACrJ,KAAUgI,KAClCiB,EAAMS,KAAK1J,KAAUgI,KAEvBiB,EAAM1F,KAAK4hB,EAAehG,GAC1BlW,EAAMkD,WAAW1I,QAAU0hB,EAC3Blc,EAAMkD,WAAWqG,iBAAiBnF,SAASmH,MAAQ,CACjDC,mBAAoBxL,EAAMwL,mBAAmB+L,KAAKvX,IAE7CA,CACT,CACA,MAAA6C,GACE,MAAO,CACLrI,QAASnB,KAAKmB,QACdib,MAAOpc,KAAKoc,MACZjR,SAAUnL,KAAKmL,SACfyR,UAAW5c,KAAK4c,UAChB4D,iBAAkBxgB,KAAKwgB,iBAE3B,EAEF,MAAMtf,EAAWie,EAAKuD,iBACtBxhB,EAASwhB,eAAiBvD,EAAKuD,eAE/B,MAAMA,EAAiBxhB,EAASwhB,eAC1BL,EAAMnhB,EAASmhB,IACfphB,EAAOC,EAASD,KAChBof,EAAgBnf,EAASmf,cACzBK,EAAkBxf,EAASwf,gBAC3BC,EAAMzf,EAASyf,IACfzV,EAAiBhK,EAASgK,eAC1BqW,GAAYrgB,EAASqgB,UACrB1gB,GAAIK,EAASL,EACbuK,GAASlK,EAASkK,OAClBuW,GAAsBzgB,EAASygB,oBAC/BxP,GAAqBjR,EAASiR,mBAC9B8P,GAAiB/gB,EAAS+gB,eAC1BC,GAAgBhhB,EAASghB,a,oGCppE/B,MAAMe,EAAkB,oGAClBC,EAAe,CACnB,QAAS,IACT,QAAS,IACT,OAAQ,IACR,QAAS,IACT,OAAQ,IACR,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,QAAS,IACT,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,QAAS,IACT,SAAU,IACV,WAAY,IACZ,UAAW,IACX,SAAU,IACV,QAAS,KAELC,EAAqBza,GAAKwa,EAAaxa,GAChC0a,EAAWC,GAAQA,EAAK/nB,QAAQ2nB,EAAiBE,E,uDCjBvD,MAAMhkB,EAAuBA,CAAC5F,EAAQ+pB,GAAkB,KAC3D,IAAIvkB,EAAcxF,EAAOwF,YAEzB,MAAMwkB,EAA6B,qBAAhBhqB,EAAOsD,MAA+C,yBAAhBtD,EAAOsD,KAC1D2mB,EAAmBjqB,EAAO2F,eAAiD,iBAAzB3F,EAAO2F,eAA8D,KAAhC3F,EAAO2F,cAAcF,OAElH,GAAIukB,EAAY,CAEZ,MAAMtnB,EAAWJ,OAAOG,mBAAmBC,WACVA,IAAiD,IAAtCA,EAASwnB,2BAEpBD,IAC7BzkB,EAAcxF,EAAO2F,cAE7B,MAAWokB,GAAmBE,IAC1BzkB,EAAcxF,EAAO2F,eAGzB,OAAOH,GAQEK,EAAuBskB,IAChC,GAAIA,GAAwC,KAAxBA,EAAa1kB,OAAe,CAE5C,MAAM9C,OAA+C,IAA7BL,OAAOG,mBAAqCH,OAAOG,mBAAmBC,UAAUC,SAExG,GAAIA,EAAU,CAKV,IAAIynB,EAAYD,EACZC,EAAUC,WAAW,eACrBD,EAAYA,EAAUpX,UAAU,IAEpC,MAAMsX,EAAU,GAAG3nB,IAAWynB,IAC9B9nB,OAAOC,SAASC,KAAO8nB,CAC3B,KAAO,CAEH,MACMA,EAAU,GADAhoB,OAAOC,SAASgoB,UACFJ,IAC9B7nB,OAAOC,SAASC,KAAO8nB,CAC3B,CACA,MACJ,CAGAhoB,OAAOC,SAASC,KAAO,wB,6ICvDZ,SAASgoB,GAAiB,QAAEC,GAAU,IACjD,MAAM,QAAEC,EAAO,cAAE5nB,EAAa,OAAC7B,IAAWU,EAAAA,EAAAA,MACnCgpB,EAAcC,IAAmBC,EAAAA,EAAAA,UAAS,IAC1CC,EAAeC,IAAoBF,EAAAA,EAAAA,UAAS,GAG7CG,EAAkC,oBAAX1oB,QAA0BA,OAAOG,mBAAmBuoB,cAC3E1oB,OAAOG,kBAAkBuoB,cACzB,GAGAC,EAAsC,oBAAX3oB,QAA0BA,OAAOG,mBAAmBwoB,kBAC/E3oB,OAAOG,kBAAkBwoB,kBACzB,IAENC,EAAAA,EAAAA,WAAU,KACN,MAAMC,EAAsBA,KACpB7oB,OAAO8oB,WAAa,KACpBL,EAAiB,IACVzoB,OAAO8oB,WACdL,EAAiB,KAQzB,OAFAI,IACA7oB,OAAO+oB,iBAAiB,SAAUF,GAC3B,IAAM7oB,OAAOgpB,oBAAoB,SAAUH,IACnD,IAGH,MAAMI,EAAoBvrB,IAEtB,IAAKA,EAAOkc,MACR,OAAO,EAIX,GAAIlc,EAAOkc,MAAMsP,iBAAmBtrB,MAAMC,QAAQH,EAAOkc,MAAMsP,iBAAkB,CAE7E,GAA4C,IAAxCxrB,EAAOkc,MAAMsP,gBAAgBrsB,OAC7B,OAAO,EASX,IAL0Ba,EAAOkc,MAAMsP,gBAAgBC,KAAKC,GACxDV,EAAclrB,SAAS4rB,IAKvB,OAAO,CAEf,CAGA,GAAI1rB,EAAOkc,MAAMyP,wBAAyE,iBAAxC3rB,EAAOkc,MAAMyP,uBAAqC,CAEhG,MAAMC,EAAiB5rB,EAAOkc,MAAMyP,uBACpC,GAAIV,IAAsBW,EACtB,OAAO,CAEf,CAIA,OAAO,GAILC,GAAoF,IAAhEnB,EAAQrqB,KAAKC,GAAgB,qBAAXA,EAAEgD,OAA8B6B,UACtE2mB,GAA2F,IAApEpB,EAAQrqB,KAAKC,GAAgB,yBAAXA,EAAEgD,OAAkC6B,UAG7E4mB,EAAkBrB,EAAQjY,OAAOzS,IAEV,IAArBA,EAAOmF,YAA0C,IAApBnF,EAAOgsB,WAKpB,qBAAhBhsB,EAAOsD,MAECuoB,IAAsBC,GAAwBP,EAAiBvrB,GAGvD,yBAAhBA,EAAOsD,KAEAuoB,GAAqBN,EAAiBvrB,GAI1CurB,EAAiBvrB,KACzB6c,KAAK,CAACpL,EAAGwa,UAC0BnrB,IAAnB2Q,EAAEya,aAA6B7sB,SAASoS,EAAEya,cAAgBC,WACvCrrB,IAAnBmrB,EAAEC,aAA6B7sB,SAAS4sB,EAAEC,cAAgBC,MAIvE3oB,EAAYV,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAAmBK,eAAkB,GAC7HW,EAAWD,EAAY,GAAGA,iBAA2B,GAErD4oB,EAAcL,EAAgB5sB,OAC9BktB,EAAWptB,KAAKC,IAAI,EAAGktB,EAActB,GAe3C,OAAIL,GAEIzoB,EAAAA,EAAAA,eAAA,WAASC,UAAU,mCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,6DACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BAA4Bmf,MAAO,CAAEkL,MAAO,aAG/DtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wBAAwBmf,MAAO,CAAEmL,SAAU,WAAYC,SAAU,YAC5ExqB,EAAAA,EAAAA,eAAA,OACIC,UAAU,oBACVmf,MAAO,CACHqL,QAAS,OACTC,IAAK,SAIR,IAAIxsB,MAAM4qB,IAAgBlY,IAAI,CAAC+Z,EAAGne,KAC/BxM,EAAAA,EAAAA,eAAA,OACI2G,IAAK,kBAAkB6F,IACvBvM,UAAU,kCACVmf,MAAO,CACHwL,SAAU,gBAAiB9B,EAAgB,WAAYA,KACvD+B,SAAU,gBAAiB/B,EAAgB,WAAYA,KACvDgC,KAAM,WACNC,gBAAiB,UACjBC,aAAc,MACdP,QAAS,OACTQ,eAAgB,gBAChBC,UAAW,WAGflrB,EAAAA,EAAAA,eAAA,UAAQC,UAAU,6CAA6Cmf,MAAO,CAClE+L,OAAQ,OACRC,WAAY,aAEZprB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,+EAEXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,OAAQe,aAAc,WAGnErrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yCAGfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yBAAyBmf,MAAO,CAAEkL,MAAO,UACxDtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yBAAyBmf,MAAO,CAAEkL,MAAO,UAGxDtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uEAAuEmf,MAAO,CAAEkM,UAAW,UACtGtrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,QAASiB,OAAQ,WAC9DvrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBAAuBmf,MAAO,CAAEkL,MAAO,OAAQiB,OAAQ,aAG9EvrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8BACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,gBAAgBmf,MAAO,CAAEkL,MAAO,OAAQiB,OAAQ,OAAOD,UAAU,UAC5EtrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8CAalD8pB,GAA8C,IAA3BA,EAAgB5sB,QAqBpC6C,EAAAA,EAAAA,eAAA,WAASC,UAAU,mCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,6DACXD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,iDAAiDhB,GAAQusB,UAAUC,sBAGrFzrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wBAAwBmf,MAAO,CAAEmL,SAAU,WAAYC,SAAU,YAC5ExqB,EAAAA,EAAAA,eAAA,OACIC,UAAU,oBACVmf,MAAO,CACHqL,QAAS,OACTiB,WAAY,6BACZC,UAAW,oBAAoBhD,gBAA4BG,EAAgB,WAAYA,cACvF4B,IAAK,SAGRX,EAAgBnZ,IAAI,CAAC5S,EAAQwO,KAC1B,MAAMof,EAAQ5tB,GAAQkG,MAAM2nB,cACtBC,EAAc9tB,GAAQkG,MAAM6nB,gBAC5B/sB,EAAahB,EAAOkG,KAAK8nB,iBAA0D,KAAvChuB,EAAOkG,KAAK8nB,gBAAgBvoB,OACxEzF,EAAOkG,KAAK8nB,gBACX/sB,GAAQG,QAAQ6sB,MAAQ,OACzB9sB,GAAQJ,EAAAA,EAAAA,GAAkBf,EAAQgB,EAAWC,GAC7CitB,EAAYluB,EAAOmuB,WAAanuB,EAAOouB,OAASpuB,EAAOquB,WAAa,8DAGpEC,EAAcpuB,MAAMC,QAAQH,EAAOuuB,aAAevuB,EAAOuuB,WAAWpvB,OACnC,iBAAzBa,EAAOuuB,WAAW,GAAkBvuB,EAAOuuB,WAAW,GAAK,CAAEjrB,KAAMzE,OAAOmB,EAAOuuB,WAAW,IAAKX,MAAO/uB,OAAOmB,EAAOuuB,WAAW,IAAKT,YAAa,MAC3J,CAAExqB,KAAM,SAAUsqB,MAAO,SAAUE,YAAa,MAGtD,OAFqBQ,EAAYV,OAASU,EAAYhrB,MAGlDtB,EAAAA,EAAAA,eAAA,OACI2G,IAAK,SAAS6F,IACdvM,UAAU,kCACVmf,MAAO,CACHwL,SAAU,gBAAiB9B,EAAgB,WAAYA,KACvD+B,SAAU,gBAAiB/B,EAAgB,WAAYA,KACvDgC,KAAM,WACNC,gBAAiB,UACjBC,aAAc,MACdP,QAAS,OACTQ,eAAgB,gBAChBC,UAAW,WAGflrB,EAAAA,EAAAA,eAAA,UAAQC,UAAU,mCAAoCmf,MAAO,CAC3D+L,OAAQ,OACRC,WAAW,aAETprB,EAAAA,EAAAA,eAAA,OACIC,UAAU,6GAEZD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,0BAA0BjC,GAAQ8E,OAC/C9C,EAAAA,EAAAA,eAAA,MACIC,UAAU,wBAAwBmf,MAAO,CAC3CoL,SAAU,SACVC,QAAS,cACT+B,gBAAiB,EACjBC,gBAAiB,WACjBC,aAAc,aAGXd,IAEL5rB,EAAAA,EAAAA,eAAA,KAAGC,UAAU,uBACTmf,MAAO,CACHoL,SAAU,SACVC,QAAS,cACTgC,gBAAiB,WACjBC,aAAc,aAGjBZ,IAGL9rB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4DACXD,EAAAA,EAAAA,eAAA,UACII,QAASA,IAzF7BpC,KACpB,GAAsB,oBAAXsC,OAAwB,CAC/B,MAAMqsB,EAAM,IAAIC,IAAItsB,OAAOC,SAASC,MACpCmsB,EAAIE,aAAavjB,IAAI,SAAUtL,EAAOsD,MACtChB,OAAOwsB,QAAQC,UAAU,CAAC,EAAG,GAAIJ,EAAIpZ,YAGrCjT,OAAOoC,cAAc,IAAIsqB,cAAc,YAC3C,GAiFuDC,CAAejvB,GAC9BiC,UAAU,4DAEXhB,GAAQiuB,cAGXltB,EAAAA,EAAAA,eAAA,QAAMC,UAAU,uDACXd,EACuB,SAAvBnB,EAAOkB,aAA0BC,GAASA,IAAUH,GAAaG,KAAWF,GAAQG,QAAQC,kBAAoB,wBAAyBW,EAAAA,EAAAA,eAAA,QAAMC,UAAU,aAAY,IAAEhB,GAAQG,QAAQ+tB,eAIpMntB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8BACXD,EAAAA,EAAAA,eAAA,gBACIA,EAAAA,EAAAA,eAAA,UACIotB,MAAM,qBACNC,OAAQ,GAAGnB,SAAiBA,UAEhClsB,EAAAA,EAAAA,eAAA,OACI+D,IAAKmoB,EACLmB,OAAQ,GAAGnB,SAAiBA,OAC5BoB,IAAK,GAAG1B,oBAY3CxB,EAActB,IACX9oB,EAAAA,EAAAA,eAAA,OACIC,UAAU,4FAEVD,EAAAA,EAAAA,eAAA,UACII,QAzNCmtB,KACb5E,EAAe,GACfC,EAAgBpB,GAAQA,EAAO,IAwNnBtkB,SAA2B,IAAjBylB,EACV1oB,UAAU,uCACVmf,MAAO,CACHqL,QAAS,OACT+C,WAAY,SACZvC,eAAgB,SAChBwC,OAAyB,IAAjB9E,EAAqB,cAAgB,UAC7C+E,QAA0B,IAAjB/E,EAAqB,GAAM,GAExC,aAAW,mBAEX3oB,EAAAA,EAAAA,eAAA,OAAK+D,IAAK,GAAGtC,oBAA4B6rB,IAAI,WAAWlO,MAAO,CAAEkL,MAAO,OAAQiB,OAAQ,YAG5FvrB,EAAAA,EAAAA,eAAA,OACIC,UAAU,sFACT/B,MAAM4N,KAAK,CAAE3O,OAAQktB,EAAW,IAAKzZ,IAAI,CAAC+Z,EAAGne,KAC1CxM,EAAAA,EAAAA,eAAA,UACI2G,IAAK6F,EACLpM,QAASA,IAxJlBoM,KACfoc,EAAgB3rB,KAAK0wB,IAAInhB,EAAO6d,KAuJOuD,CAAUphB,GACzBvM,UAAU,kBACVmf,MAAO,CACHkL,MAAO,MACPiB,OAAQ,MACRP,aAAc,MACdG,OAAQ,OACRC,WAAYzC,IAAiBnc,EAAQ,UAAY,UACjDihB,OAAQ,UACRI,QAAS,GAEb,aAAY,eAAerhB,EAAQ,SAK/CxM,EAAAA,EAAAA,eAAA,UACII,QAxPH0tB,KACTnF,EAAe0B,GACfzB,EAAgBpB,GAAQA,EAAO,IAuPnBtkB,SAAUylB,GAAgB0B,EAC1BpqB,UAAU,uCACVmf,MAAO,CACHqL,QAAS,OACT+C,WAAY,SACZvC,eAAgB,SAChBwC,OAAQ9E,GAAgB0B,EAAW,cAAgB,UACnDqD,QAAS/E,GAAgB0B,EAAW,GAAM,GAE9C,aAAW,eAEXrqB,EAAAA,EAAAA,eAAA,OAAK+D,IAAK,GAAGtC,qBAA6B6rB,IAAI,OAAOlO,MAAO,CAAEkL,MAAO,OAAQiB,OAAQ,aAxL9F,IA8Lf,C,0WC3Xe,SAASwC,IACpB,MAAM,cAAEC,EAAa,cAAEC,EAAa,cAAEntB,IAAkBnB,EAAAA,EAAAA,KAGxD,IAAKquB,EACD,OAAO,KAGX,MACME,EAAa,GADDptB,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAAmBK,eAAkB,8BAGnI,OACId,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,sDACXD,EAAAA,EAAAA,eAAA,aAAW+D,IAAKmqB,KAChBluB,EAAAA,EAAAA,eAAA,SAAIguB,IAIpB,C,yUCtB0rBhpB,OAAOkG,OAAO,K,8BCAjsB,SAASijB,EAAiBC,GAI/B,IAAKA,IAAgBA,EAAY9lB,OAASpK,MAAMC,QAAQiwB,EAAY9lB,KAAK+lB,SAIvE,OADA9jB,QAAQD,MAAM,iFAAkF8jB,GACzF,CAAE1F,QAAS,GAAIzpB,OAAQ,CAAC,EAAGyhB,OAAQ,MAG5C,MAAM4N,EAAQF,EAAY9lB,KAAK+lB,QACzBpvB,EAASmvB,EAAY9lB,KAAKrJ,QAAU,CAAC,EACrCyhB,EAAS0N,EAAY9lB,KAAKoY,QAAU,KAE1C,GAAqB,IAAjB4N,EAAMnxB,OAAc,MAAO,CAAEurB,QAAS,GAAIzpB,SAAQyhB,UAGtD,MAAM6N,EAAaD,EAAM1d,IAAK5S,IAAW,IAAAwwB,EAAAC,EAEvC,MAAMC,EAA0B1wB,GAAQkG,MAAM4nB,YACxCA,EACgC,iBAA5B4C,GAAwCA,EAC5CA,EACgC,iBAAxB1wB,GAAQ8tB,aAAmD,OAAvB9tB,EAAO8tB,YAC9C9tB,EAAO8tB,YAAY,UAAY9mB,OAAO2pB,OAAO3wB,EAAO8tB,aAAa,IAAM,GACvE9tB,GAAQ8tB,aAAe,GAG5B8C,EAAW5wB,GAAQ4wB,UAAY5wB,GAAQ6wB,cAAgB7wB,GAAQ8wB,aAAe,GAG9EC,EAAuC,iBAAnB/wB,GAAQgxB,QAAyC,OAAlBhxB,EAAOgxB,OAC3DhxB,EAAOgxB,OAAOlsB,MAAQ,GACtB9E,GAAQgxB,QAAU,GACjBC,EAAsC,iBAAnBjxB,GAAQgxB,QAAyC,OAAlBhxB,EAAOgxB,QAC1DhxB,EAAOgxB,OAAOrC,KACf,GAEEltB,EAAuC,iBAAlBzB,GAAQmB,OAAuC,OAAjBnB,EAAOmB,MAC5DnB,EAAOmB,MAAMvB,YACbkB,EACEU,EAAyC,iBAAlBxB,GAAQmB,OAAuC,OAAjBnB,EAAOmB,MAC9DnB,EAAOmB,MAAMX,cACbM,EAEJ,MAAO,IACFd,EACH8E,KAAM9E,GAAQ8E,MAAQ,UACtBxB,KAAMtD,GAAQsD,MAAQ,GACtB+qB,UAAWruB,GAAQquB,WAAa,GAChCP,cACA8C,WACAI,OAAQD,EACRE,YACAxvB,cACAD,gBACAqC,UAA4B,QAAnB2sB,EAAExwB,GAAQ6D,iBAAS,IAAA2sB,GAAAA,EAC5BrrB,UAA4B,QAAnBsrB,EAAEzwB,GAAQmF,iBAAS,IAAAsrB,GAAAA,EAC5BvqB,KAAMlG,GAAQkG,MAAQ,CAAC,KAKrBgrB,EAAO,IAAIC,IAQjB,MAAO,CAAEzG,QAPO6F,EAAW9d,OAAQnS,IACjC,MAAMqI,EAAMrI,EAAEgD,MAAQhD,EAAEwE,MAAQ0K,KAAKE,UAAUpP,GAC/C,OAAI4wB,EAAKE,IAAIzoB,KACbuoB,EAAKtP,IAAIjZ,IACF,KAGS1H,SAAQyhB,SAC5B,C,2GCpEe,SAAS2O,GAAc,OAAErxB,IACpC,MAAM,cACF8C,EAAa,YACbwuB,EAAW,eACXC,EAAc,mBACdpuB,EAAkB,aAClBquB,EAAY,OACZvwB,IACAU,EAAAA,EAAAA,KAEJ,IAAK2vB,IAAgBA,EAAYG,SAAWH,EAAYI,aAAe1xB,GAAQsD,KAC3E,OAAO,KAGX,MAAME,EAAYV,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAAmBK,eAAkB,GAC7HW,EAAWD,EAAY,GAAGA,WAAqB,GAgC/CmuB,EAAmC,cAArBL,EAAYnvB,KAC1ByvB,EAAmC,cAArBN,EAAYnvB,KAG1BwC,EAAgBA,CAACC,EAASC,IACvBD,EACEA,EAAQ7C,QAAQ,MAAO8C,GAAc,IADvB,GAInBA,EAAa7E,GAAQ8E,MAAQ,GAEnC,OACI9C,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wEAAwEmf,MAAO,CAAC,WAAc,SAAS,MAAQ,UAC1Hpf,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iBAAiB8D,IAAK,GAAGtC,qBAA6B6rB,IAAI,aACzEttB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,sBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,mBACV0vB,GAAehtB,EAAc1D,GAAQY,eAAegwB,iBAAmB,wBAAyBhtB,GAChG+sB,GAAejtB,EAAc1D,GAAQY,eAAeiwB,iBAAmB,wBAAyBjtB,KAErG7C,EAAAA,EAAAA,eAAA,KAAGC,UAAU,cACR0vB,IAAgB1wB,GAAQY,eAAekwB,aAAe,sCACtDH,GAAejtB,EAAc1D,GAAQY,eAAemwB,oBAAsB,qFAAsFntB,KAGxK8sB,IACG3vB,EAAAA,EAAAA,eAAA,UACIG,KAAK,SACLF,UAAU,wCACVG,QArDO6vB,KACnB9uB,EAAmB,WAAYnD,EAAQ,oBAsD5BiB,GAAQixB,sBAGdN,IACG5vB,EAAAA,EAAAA,eAAA,UACIG,KAAK,SACLF,UAAU,wCACVG,QA1DKgD,MAEjBtB,EAAAA,EAAAA,IAAiB,CACbC,WAAY,cACZC,aAAc,iBACdhE,OAAQA,EACRiE,QAAS,CACLoB,aAAcrF,EAAOsD,KACrBgC,aAActF,EAAO8E,KACrBS,oBAAqBvF,EAAOwF,aAA6C,KAA9BxF,EAAOwF,YAAYC,QAC9DC,sBAAuB1F,EAAO2F,eAAiD,KAAhC3F,EAAO2F,cAAcF,WAK5E+rB,IAEA,MAAMhsB,GAAcI,EAAAA,EAAAA,GAAqB5F,GAAQ,IACjD6F,EAAAA,EAAAA,GAAoBL,MA0CRxD,EAAAA,EAAAA,eAAA,YAAOf,GAAQiuB,aAAe,gBAC9BltB,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,+BAG5CzB,EAAAA,EAAAA,eAAA,UACIG,KAAK,SACLF,UAAU,kBACV,aAAW,QACXG,QA7EQ+vB,KAChBZ,EAAe,CAAEE,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,OACzDU,eAAeC,WAAW,wBA6ElBrwB,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,sBAIpD,C,wHCjGe,SAAS6uB,GAAc,OAClCtyB,EAAM,QACNuyB,EAAO,UACPC,GAAY,EAAI,QAChB/H,GAAU,IAEV,MAAM,cACF3nB,EAAa,cACb2vB,EAAa,eACb1vB,EAAc,OACd9B,EAAM,mBACN+B,EAAkB,uBAClBC,EAAsB,eACtBsuB,EAAc,cACdmB,IACA/wB,EAAAA,EAAAA,KAEE6B,EAAYV,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAAmBK,eAAkB,GAC7HW,EAAWD,EAAY,GAAGA,iBAA2B,GAG3D,GAAIinB,EAAS,CACT,MAAMkI,GACF3wB,EAAAA,EAAAA,eAAA,OAAKC,UAAuB,mBACxBD,EAAAA,EAAAA,eAAA,WAASC,UAAU,wFAEfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,0DACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,sCACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,aAKrDtqB,EAAAA,EAAAA,eAAA,UAAQC,UAAU,qCACdD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4CACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCAAqCmf,MAAO,CAAEiM,aAAa,WAC1ErrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iBACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iBACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,WAEjDtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,0BAA0Bmf,MAAO,CAAEkM,UAAU,UACxDtrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,oCAAoCmf,MAAO,CAAEwR,UAAW,eAMnF5wB,EAAAA,EAAAA,eAAA,WAASC,UAAU,mEACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,WAAW4wB,KAAK,UAC3B7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kBAAkB4wB,KAAK,aAClC7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eAAe4wB,KAAK,QAC/B7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,mCAAmC4wB,KAAK,iBACnD7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,WAEjDtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,QAASiB,OAAQ,YAElEvrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4CAO/BD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8BAA8B4wB,KAAK,aAC9C7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iCAAiC4wB,KAAK,QACjD7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,SAC1B7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BAA4Bmf,MAAO,CAAEkL,MAAO,aAGlE,IAAIpsB,MAAM,IAAI0S,IAAI,CAAC+Z,EAAG3tB,KACnBgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eAAe4wB,KAAK,MAAMlqB,IAAK3J,IAC1CgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,SAC1B7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,6CAU3CD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yCACXD,EAAAA,EAAAA,eAAA,WAASC,UAAU,sBACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCAAqCmf,MAAO,CAAEkL,MAAO,YACpEtqB,EAAAA,EAAAA,eAAA,MAAIC,UAAU,iDACT,IAAI/B,MAAM,IAAI0S,IAAI,CAAC+Z,EAAG3tB,KACnBgD,EAAAA,EAAAA,eAAA,MAAI2G,IAAK3J,IACLgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iCAQnCD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yCACXD,EAAAA,EAAAA,eAAA,WAASC,UAAU,iCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCAAqCmf,MAAO,CAAEkL,MAAO,YACpEtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,+DACV,IAAI/B,MAAM,IAAI0S,IAAI,CAAC+Z,EAAG3tB,KACnBgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BAA4B0G,IAAK3J,IAC5CgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kCAS/C,OAAOuwB,GAAYM,EAAAA,EAAAA,cAAaH,EAAiBluB,SAASsuB,MAAQJ,CACtE,CAGA,IAAK3yB,EAAQ,OAAO,MAGpBkrB,EAAAA,EAAAA,WAAU,KACN5oB,OAAO0wB,SAAS,EAAG,IACpB,CAAChzB,KAGJkrB,EAAAA,EAAAA,WAAU,KAGNqG,EAAe/H,GAASA,EAAKiI,SAAWjI,EAAKkI,aAAe1xB,EAAOsD,KAAQkmB,EAAO,CAAEiI,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,OAC5HgB,EAAclJ,GAASA,EAAKiI,SAAWjI,EAAKkI,aAAe1xB,EAAOsD,KAAQkmB,EAAO,CAAEiI,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,QAC5H,CAAC1xB,EAAOsD,KAAMiuB,EAAgBmB,KAGjCxH,EAAAA,EAAAA,WAAU,KACN,MAAM+H,EAAiBA,KAEnB1B,EAAe,CAAEE,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,OACzDgB,EAAc,CAAEjB,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,QAI5D,OADApvB,OAAO+oB,iBAAiB,WAAY4H,GAC7B,IAAM3wB,OAAOgpB,oBAAoB,WAAY2H,IACrD,CAAC1B,EAAgBmB,SAE6B,IAAxBpwB,OAAO4wB,cAAgC5wB,OAAO4wB,aACvDlzB,EAAOquB,UADvB,MAEMH,EAAYluB,EAAOmuB,WAAanuB,EAAOouB,OAASpuB,EAAOquB,WAAa,8DAGpET,EAAQ5tB,EAAO8E,MAAQ,UACvBgpB,EAAc9tB,EAAOkG,MAAM4nB,aAAe9tB,EAAOkG,MAAMitB,UAAYnzB,EAAO8tB,aAAe9tB,EAAOozB,kBAAoB,4BACpHC,EAAWrzB,EAAOkG,MAAMitB,SACxBG,EAAgC,SAAvBtzB,EAAOkB,YAChBqyB,EAAgBvzB,EAAOkG,MAAMqtB,eAAiB,GAC9CC,EAAmBD,GAA0C,KAAzBA,EAAc9tB,OAClDuoB,EAAkBhuB,EAAOkG,MAAM8nB,iBAAmB,GAClDyF,EAAqBzF,GAA8C,KAA3BA,EAAgBvoB,OAExDtE,EAASsyB,GAAsBD,EAC9BvyB,GAAQusB,UAAUkG,WAAa,eAChC3yB,EAAAA,EAAAA,GAAkBf,EAAQiB,GAAQG,QAAQ6sB,MAAQ,OAAQhtB,GAG1D0yB,EAAqBxyB,KAAWF,GAAQG,QAAQC,kBAAoB,sBAGpEuyB,GAAkB7zB,EAAAA,EAAAA,IAAaC,GAC/B6zB,GAAoBjzB,EAAAA,EAAAA,IAAeZ,GAGnC8zB,EAAuBA,CAAC/rB,EAAKgsB,KAC/B,IAAKhsB,GAAsB,iBAARA,EAAkB,MAAO,GAC5C,MAAMisB,EAAU,GAChB,IAAIh1B,EAAI,EACR,KAAO+I,EAAI,GAAGgsB,IAAW/0B,MAAM,CAC3B,MAAM8P,EAAQ/G,EAAI,GAAGgsB,IAAW/0B,KAC5B8P,GAA0B,KAAjBA,EAAMrJ,QACfuuB,EAAQzoB,KAAKuD,GAEjB9P,GACJ,CACA,OAAOg1B,GAILC,EAAmBH,EAAqB9zB,EAAOkG,KAAM,qBAGrDguB,EAAsBJ,EAAqB9zB,EAAOkG,KAAM,qBAGxDiuB,EAAuB,GAC7B,GAAIn0B,EAAOkG,MAA+B,iBAAhBlG,EAAOkG,KAAmB,CAChD,IAAIlH,EAAI,EACR,KAAOgB,EAAOkG,KAAK,mBAAmBlH,MAAQgB,EAAOkG,KAAK,qBAAqBlH,MAAM,CACjF,MAAMo1B,EAAep0B,EAAOkG,KAAK,mBAAmBlH,KAC9Cq1B,EAAUr0B,EAAOkG,KAAK,qBAAqBlH,KAC7Co1B,GAAwC,KAAxBA,EAAa3uB,QAAiB4uB,GAA8B,KAAnBA,EAAQ5uB,QACjE0uB,EAAqB5oB,KAAK,CAAEzG,KAAMsvB,EAAcE,KAAMD,IAE1Dr1B,GACJ,CACJ,CAGA,MAAMu1B,EAAcL,EACdM,EAAWP,EACXQ,EAAeN,EAEfE,GACFryB,EAAAA,EAAAA,eAAA,OAAKC,UAAuB,mBACxBD,EAAAA,EAAAA,eAAA,WAASC,UAAU,wFACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,0DACXD,EAAAA,EAAAA,eAAA,KACIQ,KAAK,IACLJ,QAASqH,IAGL,GAFAA,EAAEirB,kBAEE3xB,EAAe/C,EAAOsD,MAI1B,GAAsB,oBAAXhB,QAA0BA,OAAOwsB,SAAWxsB,OAAOwsB,QAAQ3vB,OAAS,EAC3E,IACImD,OAAOwsB,QAAQ6F,MACnB,CAAE,MAAOroB,GAEDimB,GACAA,GAER,MACOA,GAEPA,KAGRtwB,UAAU,oCACV4wB,KAAK,SACL,aAAW,UACXzR,MAAO,CACHsO,QAAS3sB,EAAe/C,EAAOsD,MAAQ,GAAM,EAC7CsxB,cAAe7xB,EAAe/C,EAAOsD,MAAQ,OAAS,OACtDmsB,OAAQ1sB,EAAe/C,EAAOsD,MAAQ,cAAgB,WAE1D,gBAAeP,EAAe/C,EAAOsD,MAAQ,OAAS,UAEtDtB,EAAAA,EAAAA,eAAA,OAAKof,MAAO,CAAEwL,SAAU,QAAU3qB,UAAU,UAAU8D,IAAK,GAAGtC,kBAC9C6rB,IAAI,qBACpBttB,EAAAA,EAAAA,eAAA,YAAOf,EAAO4zB,cAElB7yB,EAAAA,EAAAA,eAACqvB,EAAAA,EAAa,CAACrxB,OAAQA,KACvBgC,EAAAA,EAAAA,eAAC8yB,EAAAA,EAAU,CAAC90B,OAAQA,MAKxBgC,EAAAA,EAAAA,eAAA,UAAQC,UAAU,qCACdD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4CACXD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,yBAAyB2rB,IACvC5rB,EAAAA,EAAAA,eAAA,KAAGC,UAAU,cAAc6rB,KAO/B9rB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACXD,EAAAA,EAAAA,eAAA,gBACIA,EAAAA,EAAAA,eAAA,UACIotB,MAAM,qBACNC,OAAQ,GAAGnB,SAAiBA,UAEhClsB,EAAAA,EAAAA,eAAA,OACI+D,IAAKmoB,EACLmB,OAAQ,GAAGnB,SAAiBA,OAC5BoB,IAAK,GAAG1B,gBAOxB5rB,EAAAA,EAAAA,eAAA,WAASC,UAAU,mEACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,WAAW4wB,KAAK,UAC3B7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kBAAkB4wB,KAAK,aAClC7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eAAe4wB,KAAK,QAC/B7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,mCAAmC4wB,KAAK,iBACnD7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eACXD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,YAAY2rB,IAC1B5rB,EAAAA,EAAAA,eAAA,SAAIqxB,KAERrxB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,YACTwxB,GAAsBD,GACpBxxB,EAAAA,EAAAA,eAAA,QAAMC,UAAU,iBAAiBd,IAEjCa,EAAAA,EAAAA,eAAA+yB,EAAAA,SAAA,MACI/yB,EAAAA,EAAAA,eAAA,QAAMC,UAAU,iBACY,YAAvBjC,EAAOkB,aAAmD,OAAtB2yB,EACR,OAAtBA,EAA6BA,EAAoBD,EAClDzyB,IAERmyB,IAAWK,GAAsBxyB,IAC/Ba,EAAAA,EAAAA,eAAA,QAAMC,UAAU,aAAY,IAAEhB,GAAQG,QAAQ+tB,aAK5DsE,GAAsBD,GACpBxxB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,WAAWsxB,KAG7BD,GAAUnyB,GAASyyB,GAAyC,OAAtBC,IACvC7xB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,WAAWhB,EAAOG,OAAO4zB,aAAa,KAAGnB,EAAkB,KAAG5yB,GAAQG,QAAQ+tB,YAC7FntB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,WAAWhB,EAAOG,OAAO6zB,UAAU,KAAGrB,EAAgB,KAAG3yB,GAAQG,QAAQ+tB,aAInGsD,GACGzwB,EAAAA,EAAAA,eAACa,EAAAA,EAAa,CACV7C,OAAQA,IAGZA,EAAO4wB,WACH5uB,EAAAA,EAAAA,eAAA,KACIQ,KAAMxC,EAAO4wB,SACbA,UAAQ,EACR3uB,UAAU,iCACb,gBAUxBsyB,EAAYp1B,OAAS,IAClB6C,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8BAA8B4wB,KAAK,aAC9C7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iCAAiC4wB,KAAK,QACjD7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,SAC1B7wB,EAAAA,EAAAA,eAAA,MAAIC,UAAU,YAAYhB,GAAQi0B,mBAAqBl1B,EAAOkG,MAAMgvB,qBAG3EX,EAAY3hB,IAAI,CAACqM,EAAGjgB,KACjBgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eAAe4wB,KAAK,MAAMlqB,IAAK3J,IAC1CgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,SAC1B7wB,EAAAA,EAAAA,eAAA,QAAMC,UAAU,gBAAgBgd,WAWhEjd,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCACVuyB,EAASr1B,OAAS,IACf6C,EAAAA,EAAAA,eAAA,WAASC,UAAU,sBACfD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,oCAAoChB,GAAQk0B,gBAAkBn1B,EAAOkG,MAAMivB,gBAAkB,iBAC3GnzB,EAAAA,EAAAA,eAAA,MAAIC,UAAU,iDACTuyB,EAAS5hB,IAAI,CAACqZ,EAAGjtB,KAAMgD,EAAAA,EAAAA,eAAA,MAAI2G,IAAK3J,GAAIitB,OAOpDwI,EAAat1B,OAAS,IACnB6C,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yCACXD,EAAAA,EAAAA,eAAA,WAASC,UAAU,iCACfD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,oCAAoChB,GAAQm0B,wBAA0Bp1B,EAAOkG,MAAMkvB,wBAA0B,2BAC3HpzB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,+DACVwyB,EAAa7hB,IAAI,CAACkO,EAAI9hB,KACnBgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BAA4B0G,IAAK3J,IAC5CgD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,oCAAoC6e,EAAGhc,OACrD9C,EAAAA,EAAAA,eAAA,KAAGC,UAAU,cAAc6e,EAAGwT,aAWlE,OAAO9B,GAAYM,EAAAA,EAAAA,cAAauB,EAAS5vB,SAASsuB,MAAQsB,CAC9D,C,uECtZe,SAASS,GAAa90B,OAAQq1B,IACzC,MAAM,cACFvyB,EAAa,WACbwyB,EAAU,cACV5C,EAAa,OACbzxB,EAAM,QACNypB,IACA/oB,EAAAA,EAAAA,KAEE3B,EAASq1B,GAAc3K,EAAQrqB,KAAKC,GAAKA,EAAEgD,OAASgyB,EAAW5D,YAC/D6D,EAAYD,GAAcA,EAAW7D,SAAW6D,EAAW5D,aAAe1xB,GAAQsD,KAYxF,IAVA4nB,EAAAA,EAAAA,WAAU,KACN,GAAIqK,EAAW,CACX,MAAMC,EAAQ9Q,WAAW,KACrByN,KACD,KAEH,MAAO,IAAMsD,aAAaD,EAC9B,GACD,CAACD,KAECA,EACD,OAAO,KAGX,MAAM/xB,EAAYV,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAAmBK,eAAkB,GAC7HW,EAAWD,EAAY,GAAGA,WAAqB,GAE/C2uB,EAAcA,KAChBO,EAAc,CAAEjB,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,QAGtDgE,EAAsC,aAApBJ,EAAWnzB,KAC7BwzB,EAAwC,eAApBL,EAAWnzB,KAC/ByzB,EAAqC,YAApBN,EAAWnzB,KAC5B0zB,EAAoC,WAApBP,EAAWnzB,KAG3BwC,EAAgBA,CAACC,EAASC,IACvBD,EACEA,EAAQ7C,QAAQ,MAAO8C,GAAc,IADvB,GAInBA,EAAa7E,GAAQ8E,MAAQ,GAEnC,OACI9C,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uCACXD,EAAAA,EAAAA,eAAA,WACIC,UAAU,iBACV,cAAY,OACZ8D,IAAK,GAAGtC,sBAEZzB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,oBACVyzB,GAAmB/wB,EAAc1D,GAAQY,eAAei0B,wBAA0B,4BAA6BjxB,GAC/G8wB,GAAqBhxB,EAAc1D,GAAQY,eAAek0B,0BAA4B,8BAA+BlxB,GACrH+wB,GAAkBjxB,EAAc1D,GAAQY,eAAem0B,0BAA4B,2BAA4BnxB,GAC/GgxB,GAAiBlxB,EAAc1D,GAAQY,eAAeo0B,sBAAwB,0BAA2BpxB,KAE9G7C,EAAAA,EAAAA,eAAA,UAAQG,KAAK,SAASF,UAAU,iBAAiB,aAAW,QAAQG,QAAS+vB,IACzEnwB,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,uBAK5C,C,mfCzDG,SAASyyB,IACpB,MAAM,WACFC,EAAU,cACV1D,EAAa,SACb/vB,EAAQ,oBACR0zB,EAAmB,cACnBtzB,EAAa,eACbC,EAAc,kBACdszB,EAAiB,wBACjBC,EAAuB,cACvBpzB,EAAa,QACbwnB,EAAO,WACP6L,EAAU,OACVt1B,EAAM,UACNu1B,EAAS,mBACTrzB,EAAkB,oBAClBszB,EAAmB,uBACnBC,EAAsB,aACtBC,EAAY,gBACZC,EAAe,eACfC,EAAc,kBACdC,EAAiB,oBACjBC,EAAmB,gBACnB3zB,EAAe,iBACfmoB,EAAgB,qBAChB9sB,IACAkD,EAAAA,EAAAA,MAYGq1B,EAAoBC,IATa,oBAAX30B,QAA0BA,OAAOG,mBAAmBuoB,eAC3E1oB,OAAOG,kBAAkBuoB,cAIa,oBAAX1oB,QAA0BA,OAAOG,mBAAmBwoB,mBAC/E3oB,OAAOG,kBAAkBwoB,mBAGqBJ,EAAAA,EAAAA,UAAS,CAAC,KACvDqM,EAAgBC,IAAqBtM,EAAAA,EAAAA,UAAS,MAG/CuM,GAAoBC,EAAAA,EAAAA,SAAO,GAG3BC,GAA6BD,EAAAA,EAAAA,SAAO,GAGpCE,GAAwBF,EAAAA,EAAAA,QAAO,MAG/BG,GAA2BH,EAAAA,EAAAA,QAAO,MAClCI,GAAyBJ,EAAAA,EAAAA,QAAO,MAGhCK,GAAcL,EAAAA,EAAAA,SAAO,GAGrB7zB,EAAYV,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAAmBK,eAAkB,GAC7HW,EAAWD,EAAY,GAAGA,iBAA2B,GAGrDm0B,EAAoC,oBAAXr1B,OACzB,IAAIs1B,gBAAgBt1B,OAAOC,SAASs1B,QAAQ5sB,IAAI,UAChD,KAGA6sB,EAAaA,KACf,GAAsB,oBAAXx1B,OAAwB,MAAO,GAC1C,MAAMqsB,EAAM,IAAIC,IAAItsB,OAAOC,SAASC,MAEpC,OADAmsB,EAAIE,aAAazjB,OAAO,UACjBujB,EAAIpZ,aAKf2V,EAAAA,EAAAA,WAAU,KACN,GAAIyM,GAAmBjN,EAAQvrB,OAAQ,CACnC,MAAM+T,EAAQwX,EAAQrqB,KAAKC,GAAKA,EAAEgD,OAASq0B,GACvCzkB,GAAOikB,EAAkBjkB,EACjC,MAAYykB,GAERR,EAAkB,OAEvB,CAACQ,EAAiBjN,KAGrBQ,EAAAA,EAAAA,WAAU,KACN,MAAM+H,EAAiBA,KACnB,MAAM8E,EAAqB,IAAIH,gBAAgBt1B,OAAOC,SAASs1B,QAAQ5sB,IAAI,UAC3E,GAAK8sB,GAGE,GAAIrN,EAAQvrB,OAAQ,CAEvB,MAAM+T,EAAQwX,EAAQrqB,KAAKC,GAAKA,EAAEgD,OAASy0B,GACvC7kB,GAAOikB,EAAkBjkB,EACjC,OALIikB,EAAkB,OAS1B,OADA70B,OAAO+oB,iBAAiB,WAAY4H,GAC7B,IAAM3wB,OAAOgpB,oBAAoB,WAAY2H,IACrD,CAACvI,IAEJ,MAAM,EAACpjB,IAAKD,EAAAA,EAAAA,OAEZ6jB,EAAAA,EAAAA,WAAU,KAEFkM,EAAkBzrB,SAItBmc,iBACI,IACIsP,EAAkBzrB,SAAU,EAC5B,MAAM1D,QAAY+vB,MAAM,GAAG7B,KACrB8B,QAAahwB,EAAIgwB,OASvB,GANAT,EAAyB7rB,QAAUusB,KAAKC,MAGxCT,EAAY/rB,QAAUssB,EAAKG,YAAa,EAGpCH,IAAyB,IAAjBA,EAAKI,QAQb,OANAC,EAAAA,EAAAA,IAAc,CACVC,SAAU,mBACVC,mBAAmB,IAEvB5B,GAAgB,QAChBE,GAAkB,GAKtB,IAAKmB,IAASA,EAAK3tB,OAAS2tB,EAAK3tB,KAAK+lB,SAAYnwB,MAAMC,QAAQ83B,EAAK3tB,KAAK+lB,UAAyC,IAA7B4H,EAAK3tB,KAAK+lB,QAAQlxB,OASpG,OARAoN,QAAQD,MAAM,yCAEdgsB,EAAAA,EAAAA,IAAc,CACVC,SAAU,mBACVC,mBAAmB,IAEvB5B,GAAgB,QAChBE,GAAkB,GAItB,MAAQpM,QAAS+N,EAAmBx3B,OAAQy3B,IAAcvI,EAAAA,EAAAA,GAAiB8H,GAC3E1B,EAAWkC,GACXjC,EAAUkC,GAGNx1B,GACuBu1B,EAAkBhmB,OAAOnS,GAAK8C,EAAgB9C,EAAEgD,OAGxDuD,QAAQ7G,IACnBs2B,EAAwBt2B,EAAOsD,OAG3C,CAAE,MAAOmG,IAEL6uB,EAAAA,EAAAA,IAAc,CACVC,SAAU,mBACVC,mBAAmB,IAEvB5B,GAAgB,EACpB,CAAE,QACEE,GAAkB,EACtB,CACJ,CAEA6B,IACD,CAACxC,EAAYjzB,EAAeozB,EAAyBC,IAGxD,MAAMqC,EAAiBC,IAAAA,QAAc,KACjC,IAAKnO,EAAQvrB,OAAQ,MAAO,GAE5B,MAAM25B,EAAS,IAAIluB,IAGbihB,GAAoF,IAAhEnB,EAAQrqB,KAAKC,GAAgB,qBAAXA,EAAEgD,OAA8B6B,UACtE2mB,GAA2F,IAApEpB,EAAQrqB,KAAKC,GAAgB,yBAAXA,EAAEgD,OAAkC6B,UA+BnF,OA7BAulB,EAAQ7jB,QAASvG,IAETw4B,EAAO1H,IAAI9wB,EAAEgD,QAAyB,IAAhBhD,EAAE6E,YAKb,qBAAX7E,EAAEgD,KAQS,yBAAXhD,EAAEgD,KASFioB,EAAiBjrB,IACjBw4B,EAAOxtB,IAAIhL,EAAEgD,KAAMhD,GARfurB,GAAqBN,EAAiBjrB,IACtCw4B,EAAOxtB,IAAIhL,EAAEgD,KAAMhD,GATlBurB,GAAsBC,IAAwBP,EAAiBjrB,IAChEw4B,EAAOxtB,IAAIhL,EAAEgD,KAAMhD,MAmBxBJ,MAAM4N,KAAKgrB,EAAOnI,WAC1B,CAACjG,EAASa,KAGbL,EAAAA,EAAAA,WAAU,KACN,GAAIR,EAAQvrB,OAAS,EAAG,CAEpB,MAAM45B,EAAyC,IAA1BH,EAAez5B,OACpCu3B,EAAuBqC,EAC3B,GACD,CAACrO,EAASkO,EAAgBlC,KAG7BxL,EAAAA,EAAAA,WAAU,KACD2L,GAAmBF,KAAgBjM,EAAQvrB,OAAS,IAAMw4B,GAAoBL,EAA2B3rB,UAE1G8rB,EAAuB9rB,QAAUusB,KAAKC,MAIjB,SADA/F,eAAe4G,QAAQ,qBAGxC5G,eAAeC,WAAW,sBAG1B4G,EAAAA,EAAAA,IAAsBzB,EAAyB7rB,QAAS8rB,EAAuB9rB,QAAS+rB,EAAY/rB,SAExG2rB,EAA2B3rB,SAAU,IAE1C,CAACkrB,EAAgBF,EAAcjM,EAAQvrB,OAAQw4B,KAGlDzM,EAAAA,EAAAA,WAAU,KACFgM,GAAkBS,GAAmBJ,EAAsB5rB,UAAYurB,EAAe5zB,OAEtFm0B,EAAuB9rB,QAAUusB,KAAKC,MAIjB,SADA/F,eAAe4G,QAAQ,qBAGxC5G,eAAeC,WAAW,sBAG1B6G,EAAAA,EAAAA,IAAuBhC,EAAgBM,EAAyB7rB,QAAS8rB,EAAuB9rB,QAAS+rB,EAAY/rB,SAEzH4rB,EAAsB5rB,QAAUurB,EAAe5zB,MAG9Cq0B,IACDJ,EAAsB5rB,QAAU,OAErC,CAACurB,EAAgBS,IAEpB,MAqBMwB,EAA2Bn5B,IAC7B,IAAKA,EAAQ,OAAO,EACpB,MACMkD,EAA0B,YADA,oBAAXZ,QAA0BA,OAAOG,mBAAmB22B,OAEnEC,EAAmC,yBAAhBr5B,EAAOsD,MAAmD,qBAAhBtD,EAAOsD,KAC1E,OAAOJ,GAAiBm2B,GAK5B,GAAIxC,EAAgB,CAEhB,GAAIc,EAAiB,CAEjB,MAGM2B,EAF0B,YADA,oBAAXh3B,QAA0BA,OAAOG,mBAAmB22B,QAE5B,yBAApBzB,GAAkE,qBAApBA,EACerF,EAAAA,EAAxBiH,EAAAA,EAC9D,OACIv3B,EAAAA,EAAAA,eAACs3B,EAAe,CACZt5B,OAAQ,KACRuyB,QAASA,OACTC,WAAW,EACX/H,SAAS,GAGrB,CAGA,OACIzoB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qEACXD,EAAAA,EAAAA,eAAA,WAASC,UAAU,qBACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBAAuBmf,MAAO,CAAEkL,MAAO,YACtDtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kCAAkCmf,MAAO,CAAEkL,MAAO,YACjEtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iHAEV,IAAI/B,MAAM,IAAI0S,IAAI,CAAC+Z,EAAGne,KACnBxM,EAAAA,EAAAA,eAAA,OAAK2G,IAAK6F,EAAOvM,UAAU,qFACvBD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,2CACbD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,OAAOiB,OAAO,YAE7DvrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,2CACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yBAAyBmf,MAAO,CAAEkL,MAAO,YAE5DtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8CACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,eAOzDtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBAAuBmf,MAAO,CAAEkL,MAAO,YACtDtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kCAAkCmf,MAAO,CAAEkL,MAAO,YACvEtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wGAIR,IAAI/B,MAAM,IAAI0S,IAAI,CAAC+Z,EAAGne,KACnBxM,EAAAA,EAAAA,eAAA,OAAK2G,IAAK6F,EAAQ,EAAGvM,UAAU,qFAC3BD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,2CACbD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,OAAOiB,OAAO,YAE7DvrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,2CACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yBAAyBmf,MAAO,CAAEkL,MAAO,YAE5DtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8CACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cAAcmf,MAAO,CAAEkL,MAAO,eAQ7E,CAGA,GAAIqK,EACA,OAAO30B,EAAAA,EAAAA,eAACoF,EAAAA,EAAU,MAIxB,IAAK3I,EAAqB,OACxB,OAAOuD,EAAAA,EAAAA,eAACN,EAAAA,EAAmB,MAI3B,GAAIw1B,GAAkBS,EAAiB,CACnC,MAAM2B,EAAkBH,EAAwBjC,GAAkBqC,EAAAA,EAAwBjH,EAAAA,EAC1F,OACItwB,EAAAA,EAAAA,eAACs3B,EAAe,CACZt5B,OAAQk3B,EACR3E,QAASA,KAIL,GAFA4E,EAAkB,MAEI,oBAAX70B,QAA0BA,OAAOwsB,SAAWxsB,OAAOwsB,QAAQ3vB,OAAS,EAC3EmD,OAAOwsB,QAAQ6F,WACZ,CAEH,MAAMhG,EAAM,IAAIC,IAAItsB,OAAOC,SAASC,MACpCmsB,EAAIE,aAAazjB,OAAO,UACxB9I,OAAOwsB,QAAQ0K,aAAa,CAAC,EAAG,GAAI7K,EAAIpZ,WAC5C,GAEJid,WAAW,EACX/H,QAASoM,GAGrB,CAGA,MAAM4C,EAAc,IAAI7uB,IAExBguB,EAAe/xB,QAASvG,IAEpB,MAAMguB,EAAcpuB,MAAMC,QAAQG,EAAEiuB,aAAejuB,EAAEiuB,WAAWpvB,OAC9B,iBAApBmB,EAAEiuB,WAAW,GAAkBjuB,EAAEiuB,WAAW,GAAK,CAAEjrB,KAAMzE,OAAOyB,EAAEiuB,WAAW,IAAKX,MAAO/uB,OAAOyB,EAAEiuB,WAAW,IAAKT,YAAa,MACvI,CAAExqB,KAAM,SAAUsqB,MAAO,SAAUE,YAAa,MAEhD4L,EAAcpL,EAAYhrB,MAAQgrB,EAAYV,OAAS,SAExD6L,EAAYrI,IAAIsI,IACjBD,EAAYnuB,IAAIouB,EAAa,CAAEC,KAAMrL,EAAa5D,QAAS,KAE/D+O,EAAYxuB,IAAIyuB,GAAahP,QAAQnf,KAAKjL,KAG9C,MAAMiuB,EAAaruB,MAAM4N,KAAK2rB,EAAY1rB,WAAW0E,OAAO,EAAEmnB,GAAUlP,QAAShJ,MAAYA,EAAKviB,OAAS,GAG3G,OAAIs3B,GAEIz0B,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kHACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,mBACXD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,yBAAyBhB,GAAQY,eAAeg4B,kBAC9D73B,EAAAA,EAAAA,eAAA,KAAGC,UAAU,uBAAuBhB,GAAQ6oB,MAAMgQ,gBAClD93B,EAAAA,EAAAA,eAAA,UACIG,KAAK,SACLF,UAAU,iDACVG,QAASA,KAELE,OAAOC,SAASC,KAAO,2BAG3BR,EAAAA,EAAAA,eAAA,YAAOf,EAAO84B,qBACd/3B,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,0BAQpDzB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,oEACVssB,EAAW3b,IAAI,EAAEgnB,GAAUD,OAAMjP,QAAShJ,OACvC1f,EAAAA,EAAAA,eAAA,WAAS2G,IAAKixB,EAAQ33B,UAAU,qBAC5BD,EAAAA,EAAAA,eAAA,KAAGC,UAAU,oCAAoC03B,EAAK/L,OAASgM,GAC9DD,EAAK7L,cAAe9rB,EAAAA,EAAAA,eAAA,KAAGC,UAAU,cAAc03B,EAAK7L,cACrD9rB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yGACVyf,EAAK9O,IAAK5S,IACiB+2B,EAAoB/2B,GAA5C,MACMgB,EAAahB,EAAOkG,KAAK8nB,iBAA0D,KAAvChuB,EAAOkG,KAAK8nB,gBAAgBvoB,OACxEzF,EAAOkG,KAAK8nB,gBACX/sB,GAAQG,QAAQ6sB,MAAQ,OACzB9sB,GAAQJ,EAAAA,EAAAA,GAAkBf,EAAQgB,EAAWC,GAC7C2yB,GAAkB7zB,EAAAA,EAAAA,IAAaC,GAC/B6zB,GAAoBjzB,EAAAA,EAAAA,IAAeZ,GACzC,OACIgC,EAAAA,EAAAA,eAAA,OAAK2G,IAAK3I,EAAOsD,KAAMrB,UAAU,uGAC7BD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,2CACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eAAe8D,IAAK/F,EAAOg6B,SAAW,GAAGv2B,eACpD6rB,IAAKtvB,EAAO8E,SAEtB9C,EAAAA,EAAAA,eAAA,OAAKC,UAAU,2CACbD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qDACfD,EAAAA,EAAAA,eAAA,KAAGC,UAAU,oCAAoCjC,EAAO8E,OACtD9C,EAAAA,EAAAA,eAAA,KAAGC,UAAU,wEAAuE,IAAEjC,EAAOkG,KAAK+zB,oBAAsBj6B,EAAOkG,KAAKitB,SAAS,MAC7InxB,EAAAA,EAAAA,eAAA,QAAMC,UAAU,+BACVD,EAAAA,EAAAA,eAAA+yB,EAAAA,SAAA,KAC4B,YAAvB/0B,EAAOkB,aAA8B2yB,EAAoB,EAA4B,OAAtBA,EAA6BA,EAAoBD,EAAmBzyB,EAC9G,SAAvBnB,EAAOkB,aAA0BC,GAASA,IAAUH,GAAaG,KAAWF,GAAQG,QAAQC,kBAAoB,wBAAyBW,EAAAA,EAAAA,eAAA,QAAMC,UAAU,aAAY,IAAEhB,GAAQG,QAAQ+tB,gBAKlMntB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,8CACXD,EAAAA,EAAAA,eAAA,KACIQ,KAAM,GAAGs1B,cAAuB93B,EAAOsD,OACvCrB,UAAU,kBACVmf,MAAO,CAAEqL,QAAS,gBAClB,aAAY,oBAAoBzsB,EAAO8E,OACvC1C,QAAUqH,IACNA,EAAEirB,iBACFyC,EAAkBn3B,GAClB,MAAM2uB,EAAM,IAAIC,IAAItsB,OAAOC,SAASC,MACpCmsB,EAAIE,aAAavjB,IAAI,SAAUtL,EAAOsD,MACtChB,OAAOwsB,QAAQC,UAAU,CAAC,EAAG,GAAIJ,EAAIpZ,eAGzCvT,EAAAA,EAAAA,eAAA,OACIC,UAAU,UACV8D,IAAK,GAAGtC,qBACR6rB,IAAK,QAAQtvB,EAAO8E,eACpBsc,MAAO,CAAEwL,SAAU,kBAYtDsK,IAAmBS,GAAmB,MACnC,MAAM2B,EAAkBH,EAAwBjC,GAAkBqC,EAAAA,EAAwBjH,EAAAA,EAC1F,OACItwB,EAAAA,EAAAA,eAACs3B,EAAe,CACZt5B,OAAQk3B,EACR3E,QAASA,IAAM4E,EAAkB,MACjC1M,QAASoM,GAGpB,EATsC,GAYnD,C,WCnhBA3vB,EAAOC,QAAU,CACf,MAAQ,EACR,MAAQ,EACR,IAAM,EACN,KAAO,EACP,OAAS,EACT,IAAM,EACN,KAAO,EACP,OAAS,EACT,MAAQ,EACR,MAAQ,EACR,OAAS,EACT,QAAU,EACV,OAAS,EACT,KAAO,E,+ICHT,MAAM+H,EAAY,CACjBgrB,MAAO,CAAEC,YAAaD,GACtBE,MAAO,CAAED,YAAaC,GACtBC,MAAO,CAAEF,YAAaE,GACtBC,MAAO,CAAEH,YAAaG,GACtBC,MAAO,CAAEJ,YAAaI,GACtBC,MAAO,CAAEL,YAAaK,GACtBC,MAAO,CAAEN,YAAaM,GACtBC,MAAO,CAAEP,YAAaO,GACtBC,MAAO,CAAER,YAAaQ,GACtBC,MAAO,CAAET,YAAaQ,GACtBE,MAAO,CAAEV,Y,SACTW,MAAO,CAAEX,Y,SACTY,GAAI,CAAEZ,YAAaI,IAGpBr0B,EAAAA,QAAAA,IAASuB,EAAAA,IAAkBC,KAAK,CAC/BwH,YACAP,IAAK,QACLwH,YAAa,QACbpE,cAAe,CAAE0L,aAAa,I,+qBC5B/B,MAAMud,EAAqBA,KACvB,MAAM,oBAAEvE,EAAmB,aAAEE,EAAY,eAAEE,EAAc,qBAAEp4B,IAAyBkD,EAAAA,EAAAA,KAE9Es5B,EAAuBx8B,EAAqB,QAG3Cy8B,EAAcC,IAAmBtQ,EAAAA,EAAAA,UAClB,oBAAXvoB,QAA0B,IAAIs1B,gBAAgBt1B,OAAOC,SAASs1B,QAAQ5sB,IAAI,WAkCrF,OA9BAigB,EAAAA,EAAAA,WAAU,KACN,MAAMkQ,EAAkBA,KACpB,MAAMC,EAA8B,oBAAX/4B,QAA0B,IAAIs1B,gBAAgBt1B,OAAOC,SAASs1B,QAAQ5sB,IAAI,UACnGkwB,IAAkBE,IAItB/4B,OAAO+oB,iBAAiB,WAAY+P,GAGpC,MAAME,EAAoBh5B,OAAOwsB,QAAQC,UACzCzsB,OAAOwsB,QAAQC,UAAY,YAAY5iB,GACnCmvB,EAAkB9uB,MAAM/F,KAAM0F,GAC9BivB,GACJ,EAGA,MAAMG,EAAuBj5B,OAAOwsB,QAAQ0K,aAM5C,OALAl3B,OAAOwsB,QAAQ0K,aAAe,YAAYrtB,GACtCovB,EAAqB/uB,MAAM/F,KAAM0F,GACjCivB,GACJ,EAEO,KACH94B,OAAOgpB,oBAAoB,WAAY8P,GACvC94B,OAAOwsB,QAAQC,UAAYuM,EAC3Bh5B,OAAOwsB,QAAQ0K,aAAe+B,IAEnC,KAGCv5B,EAAAA,EAAAA,eAAA+yB,EAAAA,SAAA,MACI/yB,EAAAA,EAAAA,eAAC+tB,EAAAA,EAAc,OACf/tB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qGAETi5B,IAAiBvE,GAAgBsE,IAAwBj5B,EAAAA,EAAAA,eAACw5B,EAAAA,EAAa,CAAC/Q,QAASoM,KACjFqE,IAAiBzE,GAAuBwE,IAAwBj5B,EAAAA,EAAAA,eAACwoB,EAAAA,EAAgB,CAACC,QAASoM,KAE7F70B,EAAAA,EAAAA,eAACk0B,EAAAA,EAAW,UAqBhC,EAduBuF,EAAGtF,aAAY1D,gBAAe/vB,WAAU0zB,sBAAqBtzB,oBAE5Ed,EAAAA,EAAAA,eAAC05B,EAAAA,EAAmB,CAChBvF,WAAYA,EACZ1D,cAAeA,EACf/vB,SAAUA,EACV0zB,oBAAqBA,EACrBtzB,cAAeA,IAEfd,EAAAA,EAAAA,eAACg5B,EAAkB,M,wBC1E/B9zB,EAAOC,QAAU7E,OAAiB,Q,uECGlC,MA4DA,EA5DsBk5B,EAAG/Q,WAAU,MAC/B,MAAM,cAAE3nB,EAAa,OAAE7B,IAAWU,EAAAA,EAAAA,KAC5Bg6B,EAAgB,gGAChBC,EAAiB,iGAEvB,OACI55B,EAAAA,EAAAA,eAAA,UAAQC,UAAU,mHACdD,EAAAA,EAAAA,eAAA,OAAKC,UAAW,mBAAkBwoB,EAAU,sBAAwB,KAC/DA,GACGzoB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCAGnBD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACXD,EAAAA,EAAAA,eAAA,gBACIA,EAAAA,EAAAA,eAAA,UAAQotB,MAAM,qBAAqBC,OAAQsM,KAC3C35B,EAAAA,EAAAA,eAAA,OAAK+D,IAAK41B,EAAerM,IAAI,oBAM7CttB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,sKACVwoB,GACGzoB,EAAAA,EAAAA,eAAA+yB,EAAAA,SAAA,MACI/yB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,0BACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,2BAGnBD,EAAAA,EAAAA,eAAA+yB,EAAAA,SAAA,MACI/yB,EAAAA,EAAAA,eAAA,MAAIC,UAAU,mBACXhB,GAAQusB,UAAUqO,YAErB75B,EAAAA,EAAAA,eAAA,KAAGC,UAAU,sCACVhB,GAAQ6oB,MAAMgS,gBAM7B95B,EAAAA,EAAAA,eAAA,OAAKC,UAAW,qCAAoCwoB,EAAU,8BAAgC,OAAYA,EAAS,CAAErJ,MAAO,CAACuM,UAAU,wBAA4B,CAAC,GAC/JlD,GACGzoB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCAGnBD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACXD,EAAAA,EAAAA,eAAA,gBACIA,EAAAA,EAAAA,eAAA,UAAQotB,MAAM,qBAAqBC,OAAQuM,KAC3C55B,EAAAA,EAAAA,eAAA,OAAK+D,IAAK61B,EAAgBtM,IAAI,sB,YCtD1D,IAAIyM,EAAY/0B,OAAOg1B,eAEnBC,EAAgB,CAACl0B,EAAKY,EAAKmG,KADT,EAAC/G,EAAKY,EAAKmG,KAAUnG,KAAOZ,EAAMg0B,EAAUh0B,EAAKY,EAAK,CAAEuzB,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMttB,UAAW/G,EAAIY,GAAOmG,GAExJutB,CAAgBt0B,EAAoB,iBAARY,EAAmBA,EAAM,GAAKA,EAAKmG,GACxDA,GAET,MAAMwtB,EAAW,CAAC,EAClBxU,eAAeyU,EAAe5N,GAC5B,GAAI2N,EAASlzB,eAAeulB,GAC1B,OAAO2N,EAAS3N,GAElB,IAAIxmB,EAgBJ,OAdEA,EADEwmB,EAAItE,WAAW,YAAc,WAAYmS,MACjCxE,MAAMrJ,GAAK/J,KAAMjS,GAAMA,EAAEmX,QAEzB2S,OAAOC,KAAK,WAAW9X,KAAKkD,MAAOtH,IAC3C,IAAImc,QAAiBnc,EAAMtN,MAAMyb,GAOjC,OANKgO,IACHA,QAAiB3E,MAAMrJ,GACnBgO,EAASC,UACLpc,EAAMqc,IAAIlO,EAAKgO,EAASvvB,UAG3BuvB,EAAS7S,SAGpBwS,EAAS3N,GAAOxmB,EACTA,CACT,CACA,MAAM20B,UAAsBC,YAC1B,6BAAWC,GACT,MAAO,CAAC,MACV,CACA,SAAAC,CAAUl0B,GACHA,GAGLwzB,EAAexzB,GAAM6b,KAAMsY,GAAQz2B,KAAK02B,UAAYD,EACtD,CACA,iBAAAE,GACE32B,KAAKw2B,UAAUx2B,KAAK42B,aAAa,OACnC,CACA,wBAAAC,CAAyBx4B,EAAMy4B,EAAU/zB,GAC1B,QAAT1E,GAAkBy4B,IAAa/zB,GACjC/C,KAAKw2B,UAAUzzB,EAEnB,EAEFyyB,EAAca,EAAe,WAAY,WACzC,MAAMU,UAAsBT,YAC1B,6BAAWC,GACT,MAAO,CAAC,MACV,CACA,SAAAS,CAAU10B,GACHA,GAGLwzB,EAAexzB,GAAM6b,KAAMsY,GAAQz2B,KAAK02B,UAAYD,EACtD,CACA,iBAAAE,GACE32B,KAAKg3B,UAAUh3B,KAAK42B,aAAa,OACnC,CACA,wBAAAC,CAAyBx4B,EAAMy4B,EAAU/zB,GAC1B,QAAT1E,GAAkBy4B,IAAa/zB,GACjC/C,KAAKg3B,UAAUj0B,EAEnB,EAEFyyB,EAAcuB,EAAe,WAAY,WACzC,MAAME,UAA8BX,YAClC,6BAAWC,GACT,MAAO,CAAC,MACV,CACA,iBAAAW,CAAkB50B,GACXA,GAGLwzB,EAAexzB,GAAM6b,KAAMsY,GAAQz2B,KAAK02B,UAAYD,EACtD,CACA,iBAAAE,GACE32B,KAAKk3B,kBAAkBl3B,KAAK42B,aAAa,OAC3C,CACA,wBAAAC,CAAyBx4B,EAAMy4B,EAAU/zB,GAC1B,QAAT1E,GAAkBy4B,IAAa/zB,GACjC/C,KAAKk3B,kBAAkBn0B,EAE3B,EAEFyyB,EAAcyB,EAAuB,WAAY,mBACjD,MAAME,UAA2Bb,YAC/B,6BAAWC,GACT,MAAO,CAAC,MACV,CACA,cAAAa,CAAe90B,GACRA,GAGLwzB,EAAexzB,GAAM6b,KAAMsY,GAAQz2B,KAAK02B,UAAYD,EACtD,CACA,iBAAAE,GACE32B,KAAKo3B,eAAep3B,KAAK42B,aAAa,OACxC,CACA,wBAAAC,CAAyBx4B,EAAMy4B,EAAU/zB,GAC1B,QAAT1E,GAAkBy4B,IAAa/zB,GACjC/C,KAAKo3B,eAAer0B,EAExB,EAEFyyB,EAAc2B,EAAoB,WAAY,gBAC9C,MAAME,UAAwBf,YAC5B,6BAAWC,GACT,MAAO,CAAC,MACV,CACA,WAAAe,CAAYh1B,GACLA,GAGLwzB,EAAexzB,GAAM6b,KAAMsY,GAAQz2B,KAAK02B,UAAYD,EACtD,CACA,iBAAAE,GACE32B,KAAKs3B,YAAYt3B,KAAK42B,aAAa,OACrC,CACA,wBAAAC,CAAyBx4B,EAAMy4B,EAAU/zB,GAC1B,QAAT1E,GAAkBy4B,IAAa/zB,GACjC/C,KAAKs3B,YAAYv0B,EAErB,EAEFyyB,EAAc6B,EAAiB,WAAY,aAC3C,MAAME,UAAsBjB,YAC1B,6BAAWC,GACT,MAAO,CAAC,MACV,CACA,SAAAiB,CAAUl1B,GACHA,GAGLwzB,EAAexzB,GAAM6b,KAAMsY,GAAQz2B,KAAK02B,UAAYD,EACtD,CACA,iBAAAE,GACE32B,KAAKw3B,UAAUx3B,KAAK42B,aAAa,OACnC,CACA,wBAAAC,CAAyBx4B,EAAMy4B,EAAU/zB,GAC1B,QAAT1E,GAAkBy4B,IAAa/zB,GACjC/C,KAAKw3B,UAAUz0B,EAEnB,EAEFyyB,EAAc+B,EAAe,WAAY,WACzC,MAAME,UAAyBnB,YAC7B,6BAAWC,GACT,MAAO,CAAC,MACV,CACA,YAAAmB,CAAap1B,GACNA,GAGLwzB,EAAexzB,GAAM6b,KAAMsY,GAAQz2B,KAAK02B,UAAYD,EACtD,CACA,iBAAAE,GACE32B,KAAK03B,aAAa13B,KAAK42B,aAAa,OACtC,CACA,wBAAAC,CAAyBx4B,EAAMy4B,EAAU/zB,GAC1B,QAAT1E,GAAkBy4B,IAAa/zB,GACjC/C,KAAK03B,aAAa30B,EAEtB,EAEFyyB,EAAciC,EAAkB,WAAY,eAC5C,MAAME,UAAsBrB,YAC1B,6BAAWC,GACT,MAAO,CAAC,MACV,CACA,SAAAqB,CAAUt1B,GACHA,GAGLwzB,EAAexzB,GAAM6b,KAAMsY,GAAQz2B,KAAK02B,UAAYD,EACtD,CACA,iBAAAE,GACE32B,KAAK43B,UAAU53B,KAAK42B,aAAa,OACnC,CACA,wBAAAC,CAAyBx4B,EAAMy4B,EAAU/zB,GAC1B,QAAT1E,GAAkBy4B,IAAa/zB,GACjC/C,KAAK43B,UAAU70B,EAEnB,EAGF,SAAS80B,EAAoBC,EAASC,GAC/BC,eAAexzB,IAAIszB,IACtBE,eAAeC,OAAOH,EAASC,EAEnC,CALAvC,EAAcmC,EAAe,WAAY,WAMzCE,EAAoBxB,EAAc6B,SAAU7B,GAC5CwB,EAAoBd,EAAcmB,SAAUnB,GAC5Cc,EAAoBZ,EAAsBiB,SAAUjB,GACpDY,EAAoBV,EAAmBe,SAAUf,GACjDU,EAAoBR,EAAgBa,SAAUb,GAC9CQ,EAAoBN,EAAcW,SAAUX,GAC5CM,EAAoBJ,EAAiBS,SAAUT,GAC/CI,EAAoBF,EAAcO,SAAUP,E,8BCxM5C,IAAIQ,EACJ,G,kBAAuB,oBAAb,OAA0B,CAChC,IAAIC,EAAM,CACNC,SAAU,IAEdF,EAAM,CACFG,OAAQ,CAACC,WAAY,WAAY,MAAM3X,MAAM,cAAe,GAC5D4X,UAAW,CAAEC,UAAW,GAAIC,QAAQ,GACpC16B,SAAU,CACNzC,cAAe,WAAa,MAAO,CAAC,CAAG,EACvCO,SAAUs8B,EACVO,SAAU,IAEdC,OAAQ,CAAE/S,MAAO,EAAGiB,OAAQ,GAC5BhrB,SAAUs8B,EACVxT,iBAAkB,WAAY,EAC9BC,oBAAqB,WAAY,EAEzC,MACIsT,EAAMt8B,OAGV,SAASg9B,EAAqBC,EAAKC,IACpB,MAAPA,GAAeA,EAAMD,EAAIpgC,UAAQqgC,EAAMD,EAAIpgC,QAC/C,IAAI,IAAIH,EAAI,EAAGygC,EAAO,IAAIv/B,MAAMs/B,GAAMxgC,EAAIwgC,EAAKxgC,IAAIygC,EAAKzgC,GAAKugC,EAAIvgC,GACjE,OAAOygC,CACX,CACA,SAASC,EAAmBC,EAAKt3B,EAASC,EAAQs3B,EAAOC,EAAQl3B,EAAKm3B,GAClE,IACI,IAAInG,EAAOgG,EAAIh3B,GAAKm3B,GAChBhxB,EAAQ6qB,EAAK7qB,KACrB,CAAE,MAAOxC,GAEL,YADAhE,EAAOgE,EAEX,CACIqtB,EAAKzV,KACL7b,EAAQyG,GAER1G,QAAQC,QAAQyG,GAAO8V,KAAKgb,EAAOC,EAE3C,CACA,SAASE,EAAoBxf,GACzB,OAAO,WACH,IAAIic,EAAO/1B,KAAM0F,EAAOsH,UACxB,OAAO,IAAIrL,QAAQ,SAASC,EAASC,GACjC,IAAIq3B,EAAMpf,EAAG/T,MAAMgwB,EAAMrwB,GACzB,SAASyzB,EAAM9wB,GACX4wB,EAAmBC,EAAKt3B,EAASC,EAAQs3B,EAAOC,EAAQ,OAAQ/wB,EACpE,CACA,SAAS+wB,EAAOpjB,GACZijB,EAAmBC,EAAKt3B,EAASC,EAAQs3B,EAAOC,EAAQ,QAASpjB,EACrE,CACAmjB,OAAM9+B,EACV,EACJ,CACJ,CACA,SAASk/B,EAAWC,EAAQ9zB,EAAM+zB,GAe9B,OAbIF,EADAG,IACaC,QAAQC,UAER,SAAmBJ,EAAQ9zB,EAAM+zB,GAC1C,IAAIzuB,EAAI,CACJ,MAEJA,EAAElG,KAAKiB,MAAMiF,EAAGtF,GAChB,IACIxE,EAAW,IADG24B,SAAS3b,KAAKnY,MAAMyzB,EAAQxuB,IAG9C,OADIyuB,GAAOK,EAAkB54B,EAAUu4B,EAAM/2B,WACtCxB,CACX,EAEGq4B,EAAWxzB,MAAM,KAAMiH,UAClC,CAUA,SAAS+sB,EAAcC,EAAaC,EAAYC,GAE5C,OADID,GAVR,SAA2B52B,EAAQ82B,GAC/B,IAAI,IAAI5hC,EAAI,EAAGA,EAAI4hC,EAAMzhC,OAAQH,IAAI,CACjC,IAAI6hC,EAAaD,EAAM5hC,GACvB6hC,EAAW3E,WAAa2E,EAAW3E,aAAc,EACjD2E,EAAW1E,cAAe,EACtB,UAAW0E,IAAYA,EAAWzE,UAAW,GACjDp1B,OAAOg1B,eAAelyB,EAAQ+2B,EAAWl4B,IAAKk4B,EAClD,CACJ,CAEoBC,CAAkBL,EAAYt3B,UAAWu3B,GAClDD,CACX,CACA,SAASM,IAYL,OAXAA,EAAW/5B,OAAOg6B,QAAU,SAASl3B,GACjC,IAAI,IAAI9K,EAAI,EAAGA,EAAIyU,UAAUtU,OAAQH,IAAI,CACrC,IAAI+K,EAAS0J,UAAUzU,GACvB,IAAI,IAAI2J,KAAOoB,EACP/C,OAAOmC,UAAUC,eAAeC,KAAKU,EAAQpB,KAC7CmB,EAAOnB,GAAOoB,EAAOpB,GAGjC,CACA,OAAOmB,CACX,EACOi3B,EAASv0B,MAAM/F,KAAMgN,UAChC,CACA,SAASwtB,EAAkBnvB,GAIvB,OAHAmvB,EAAoBj6B,OAAOk6B,eAAiBl6B,OAAOif,eAAiB,SAAwBnU,GACxF,OAAOA,EAAEqvB,WAAan6B,OAAOif,eAAenU,EAChD,EACOmvB,EAAkBnvB,EAC7B,CACA,SAASsvB,EAAUC,EAAUC,GACzB,GAA0B,mBAAfA,GAA4C,OAAfA,EACpC,MAAM,IAAIC,UAAU,sDAExBF,EAASl4B,UAAYnC,OAAOkG,OAAOo0B,GAAcA,EAAWn4B,UAAW,CACnE3C,YAAa,CACTsI,MAAOuyB,EACPjF,UAAU,EACVD,cAAc,KAGlBmF,GAAYf,EAAkBc,EAAUC,EAChD,CACA,SAASE,EAAYC,EAAMC,GACvB,OAAa,MAATA,GAAmC,oBAAXhxB,QAA0BgxB,EAAMhxB,OAAOixB,eACtDD,EAAMhxB,OAAOixB,aAAaF,GAE5BA,aAAgBC,CAE/B,CAIA,SAASE,EAAiC73B,EAAQ83B,GAC9C,GAAc,MAAV93B,EAAgB,MAAO,CAAC,EAC5B,IAEIpB,EAAK3J,EAFL8K,EAAS,CAAC,EACVg4B,EAAa96B,OAAOC,KAAK8C,GAE7B,IAAI/K,EAAI,EAAGA,EAAI8iC,EAAW3iC,OAAQH,IAC9B2J,EAAMm5B,EAAW9iC,GACb6iC,EAASj5B,QAAQD,IAAQ,IAC7BmB,EAAOnB,GAAOoB,EAAOpB,IAEzB,OAAOmB,CACX,CACA,SAASy2B,EAAkBzuB,EAAGxR,GAK1B,OAJAigC,EAAoBv5B,OAAOk6B,gBAAkB,SAAwBpvB,EAAGxR,GAEpE,OADAwR,EAAEqvB,UAAY7gC,EACPwR,CACX,EACOyuB,EAAkBzuB,EAAGxR,EAChC,CACA,SAASyhC,EAASh6B,GAEd,OAAOA,GAAyB,oBAAX2I,QAA0B3I,EAAIvB,cAAgBkK,OAAS,gBAAkB3I,CAClG,CASA,SAASi6B,EAAmB9B,GACxB,IAAI+B,EAAwB,mBAARr3B,IAAqB,IAAIA,SAAQ9J,EAuBrD,OAtBAkhC,EAAqB,SAAyB9B,GAC1C,GAAc,OAAVA,IArCiB3f,EAqCsB2f,GApCiB,IAAzDI,SAAS/qB,SAASlM,KAAKkX,GAAI3X,QAAQ,kBAoCa,OAAOs3B,EArClE,IAA6B3f,EAsCrB,GAAqB,mBAAV2f,EACP,MAAM,IAAIqB,UAAU,sDAExB,QAAsB,IAAXU,EAAwB,CAC/B,GAAIA,EAAO7Q,IAAI8O,GAAQ,OAAO+B,EAAOh3B,IAAIi1B,GACzC+B,EAAO32B,IAAI40B,EAAOgC,EACtB,CACA,SAASA,IACL,OAAOlC,EAAWE,EAAOzsB,UAAWwtB,EAAkBx6B,MAAMD,YAChE,CASA,OARA07B,EAAQ/4B,UAAYnC,OAAOkG,OAAOgzB,EAAM/2B,UAAW,CAC/C3C,YAAa,CACTsI,MAAOozB,EACPhG,YAAY,EACZE,UAAU,EACVD,cAAc,KAGfoE,EAAkB2B,EAAShC,EACtC,EACO8B,EAAmB9B,EAC9B,CACA,SAASC,IACL,IACI,IAAIj8B,GAAUkc,QAAQjX,UAAUg5B,QAAQ94B,KAAK+2B,QAAQC,UAAUjgB,QAAS,GAAI,WAAY,GAC5F,CAAE,MAAOuM,GAAI,CACb,OAAQwT,EAA+B,WACnC,QAASj8B,CACb,IACJ,CACA,SAASk+B,EAAqCtwB,EAAGuwB,GAC7C,IAAIC,EAAuB,oBAAX5xB,QAA0BoB,EAAEpB,OAAO6xB,WAAazwB,EAAE,cAClE,GAAIwwB,EAAI,OAAQA,EAAKA,EAAGj5B,KAAKyI,IAAIlG,KAAK+Y,KAAK2d,GAC3C,GAAIpiC,MAAMC,QAAQ2R,KAAOwwB,EA7C7B,SAAwCxwB,EAAG0wB,GACvC,GAAK1wB,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAOwtB,EAAqBxtB,EAAG0wB,GAC1D,IAAIpe,EAAIpd,OAAOmC,UAAUoM,SAASlM,KAAKyI,GAAGpI,MAAM,GAAI,GAEpD,MADU,WAAN0a,GAAkBtS,EAAEtL,cAAa4d,EAAItS,EAAEtL,YAAY1B,MAC7C,QAANsf,GAAqB,QAANA,EAAoBlkB,MAAM4N,KAAKsW,GACxC,cAANA,GAAqB,2CAA2CtR,KAAKsR,GAAWkb,EAAqBxtB,EAAG0wB,QAA5G,CALc,CAMlB,CAsCkCC,CAA+B3wB,KAAOuwB,EAAgB,CAC5EC,IAAIxwB,EAAIwwB,GACZ,IAAItjC,EAAI,EACR,OAAO,WACH,OAAIA,GAAK8S,EAAE3S,OACA,CACH+kB,MAAM,GAGP,CACHA,MAAM,EACNpV,MAAOgD,EAAE9S,KAEjB,CACJ,CACA,MAAM,IAAIuiC,UAAU,yIACxB,CACA,SAASmB,EAAcC,EAAS5P,GAC5B,IAAI9T,EAAG2jB,EAAGt7B,EAAGu7B,EAAGlW,EAAI,CAChBmW,MAAO,EACPC,KAAM,WACF,GAAW,EAAPz7B,EAAE,GAAQ,MAAMA,EAAE,GACtB,OAAOA,EAAE,EACb,EACA07B,KAAM,GACNC,IAAK,IAET,OAAOJ,EAAI,CACPj3B,KAAMs3B,EAAK,GACX,MAASA,EAAK,GACd,OAAUA,EAAK,IACE,mBAAXxyB,SAA0BmyB,EAAEnyB,OAAO6xB,UAAY,WACrD,OAAO97B,IACX,GAAIo8B,EACJ,SAASK,EAAK9e,GACV,OAAO,SAASpU,GACZ,OAMR,SAAcmzB,GACV,GAAIlkB,EAAG,MAAM,IAAIsiB,UAAU,mCAC3B,KAAM5U,OACF,GAAI1N,EAAI,EAAG2jB,IAAMt7B,EAAY,EAAR67B,EAAG,GAASP,EAAU,OAAIO,EAAG,GAAKP,EAAS,SAAOt7B,EAAIs7B,EAAU,SAAMt7B,EAAE+B,KAAKu5B,GAAI,GAAKA,EAAEh3B,SAAWtE,EAAIA,EAAE+B,KAAKu5B,EAAGO,EAAG,KAAKjf,KAAM,OAAO5c,EAK3J,OAJIs7B,EAAI,EAAGt7B,IAAG67B,EAAK,CACP,EAARA,EAAG,GACH77B,EAAEwH,QAECq0B,EAAG,IACN,KAAK,EACL,KAAK,EACD77B,EAAI67B,EACJ,MACJ,KAAK,EAED,OADAxW,EAAEmW,QACK,CACHh0B,MAAOq0B,EAAG,GACVjf,MAAM,GAEd,KAAK,EACDyI,EAAEmW,QACFF,EAAIO,EAAG,GACPA,EAAK,CACD,GAEJ,SACJ,KAAK,EACDA,EAAKxW,EAAEsW,IAAI5pB,MACXsT,EAAEqW,KAAK3pB,MACP,SACJ,QACI,MAAkB/R,GAAZA,EAAIqlB,EAAEqW,MAAY7jC,OAAS,GAAKmI,EAAEA,EAAEnI,OAAS,KAAkB,IAAVgkC,EAAG,IAAsB,IAAVA,EAAG,IAAW,CACpFxW,EAAI,EACJ,QACJ,CACA,GAAc,IAAVwW,EAAG,MAAc77B,GAAK67B,EAAG,GAAK77B,EAAE,IAAM67B,EAAG,GAAK77B,EAAE,IAAK,CACrDqlB,EAAEmW,MAAQK,EAAG,GACb,KACJ,CACA,GAAc,IAAVA,EAAG,IAAYxW,EAAEmW,MAAQx7B,EAAE,GAAI,CAC/BqlB,EAAEmW,MAAQx7B,EAAE,GACZA,EAAI67B,EACJ,KACJ,CACA,GAAI77B,GAAKqlB,EAAEmW,MAAQx7B,EAAE,GAAI,CACrBqlB,EAAEmW,MAAQx7B,EAAE,GACZqlB,EAAEsW,IAAI13B,KAAK43B,GACX,KACJ,CACI77B,EAAE,IAAIqlB,EAAEsW,IAAI5pB,MAChBsT,EAAEqW,KAAK3pB,MACP,SAER8pB,EAAKpQ,EAAK1pB,KAAKs5B,EAAShW,EAC5B,CAAE,MAAOljB,GACL05B,EAAK,CACD,EACA15B,GAEJm5B,EAAI,CACR,CAAE,QACE3jB,EAAI3X,EAAI,CACZ,CACA,GAAY,EAAR67B,EAAG,GAAQ,MAAMA,EAAG,GACxB,MAAO,CACHr0B,MAAOq0B,EAAG,GAAKA,EAAG,QAAK,EACvBjf,MAAM,EAEd,CA1Eekf,CAAK,CACRhf,EACApU,GAER,CACJ,CAsEJ,CACA,SAASqzB,EAAWvxB,GAChB,IAAIvH,EAAsB,mBAAXmG,QAAyBA,OAAO6xB,SAAUpzB,EAAI5E,GAAKuH,EAAEvH,GAAIvL,EAAI,EAC5E,GAAImQ,EAAG,OAAOA,EAAE9F,KAAKyI,GACrB,GAAIA,GAAyB,iBAAbA,EAAE3S,OAAqB,MAAO,CAC1CyM,KAAM,WAEF,OADIkG,GAAK9S,GAAK8S,EAAE3S,SAAQ2S,OAAI,GACrB,CACHhD,MAAOgD,GAAKA,EAAE9S,KACdklB,MAAOpS,EAEf,GAEJ,MAAM,IAAIyvB,UAAUh3B,EAAI,0BAA4B,kCACxD,CACA,IAYI+4B,EAZAC,EAAcv8B,OAAOg1B,eASrBwH,EAAkB,SAASz7B,EAAKY,EAAKmG,GACrC,OAToB,SAAS/G,EAAKY,EAAKmG,GACvC,OAAOnG,KAAOZ,EAAMw7B,EAAYx7B,EAAKY,EAAK,CACtCuzB,YAAY,EACZC,cAAc,EACdC,UAAU,EACVttB,MAAOA,IACN/G,EAAIY,GAAOmG,CACpB,CAEW20B,CAAkB17B,EAAoE,iBAA/C,IAARY,EAAsB,YAAco5B,EAASp5B,IAAqBA,EAAM,GAAKA,EAAKmG,EAC5H,EAEI40B,EAAgB18B,OAAOg1B,eASvB2H,EAAoB,SAAS57B,EAAKY,EAAKmG,GACvC,OATsB,SAAS/G,EAAKY,EAAKmG,GACzC,OAAOnG,KAAOZ,EAAM27B,EAAc37B,EAAKY,EAAK,CACxCuzB,YAAY,EACZC,cAAc,EACdC,UAAU,EACVttB,MAAOA,IACN/G,EAAIY,GAAOmG,CACpB,CAEW80B,CAAoB77B,EAAoE,iBAA/C,IAARY,EAAsB,YAAco5B,EAASp5B,IAAqBA,EAAM,GAAKA,EAAKmG,EAC9H,EACI+0B,EAA6B,SAASC,GAOtC,OANAA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAwB,aAAI,GAAK,eAC3CA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAiB,MAAI,GAAK,QACpCA,EAAUA,EAAmB,QAAI,GAAK,UAC/BA,CACX,CARiC,CAQ/BD,GAAc,CAAC,GACbE,EAAsB,CACtBC,KAAM,CACF,aACA,aACA,gBACA,eAEJC,WAAY,CACR,OACA,eAEJC,QAAS,CACL,aACA,gBACA,oBAEJC,iBAAkB,IAElBC,EAAoB,CACpBJ,KAAM,CACF,WACA,eAEJC,WAAY,CACR,gBAEJC,QAAS,GACTC,iBAAkB,CACd,gBAGJE,EAA2B,CAAC,EAIhC,SAASC,EAAwB37B,GAC7B,GAAI07B,EAAyB17B,GAAM,OAAO07B,EAAyB17B,GACnE,IAAI47B,EAAaC,WAAW77B,GACxB87B,EAAmBF,EAAWp7B,UAC9Bu7B,EAAgB/7B,KAAOo7B,EAAsBA,EAAoBp7B,QAAO,EACxEg8B,EAAuBvkB,QAAQskB,GACnCA,EAAcE,MAAM,SAASC,GACzB,IAAIC,EAAKC,EACT,OAAO3kB,QAAiH,OAAxG2kB,EAA4E,OAAtED,EAAM99B,OAAOg+B,yBAAyBP,EAAkBI,SAAqB,EAASC,EAAI75B,UAAe,EAAS85B,EAAGxvB,WAAWzV,SAAS,iBACnK,IACImlC,EAAct8B,KAAOy7B,EAAoBA,EAAkBz7B,QAAO,EAClEu8B,EAAqB9kB,QAAQ6kB,GAAeA,EAAYL,MAC5D,SAASO,GACL,IAAIL,EACJ,MAA2C,mBAA7BL,EAAiBU,KAA+D,OAAnCL,EAAML,EAAiBU,SAAmB,EAASL,EAAIvvB,WAAWzV,SAAS,iBAC1I,IACA,GAAI6kC,GAAwBO,IAlBnBV,WAAWY,KAoBhB,OADAf,EAAyB17B,GAAO47B,EAAWp7B,UACpCo7B,EAAWp7B,UAEtB,IACI,IAAIk8B,EAAW5gC,SAASzC,cAAc,UACtCyC,SAASsuB,KAAKuS,YAAYD,GAC1B,IAAIzG,EAAMyG,EAASE,cACnB,IAAK3G,EAAK,OAAO2F,EAAWp7B,UAC5B,IAAIq8B,EAAkB5G,EAAIj2B,GAAKQ,UAE/B,OADA1E,SAASsuB,KAAK0S,YAAYJ,GACrBG,EACEnB,EAAyB17B,GAAO68B,EADVf,CAEjC,CAAE,MAAOh7B,GACL,OAAOg7B,CACX,CACJ,CACA,IAAIiB,EAA2B,CAAC,EAChC,SAASC,EAAuBh9B,EAAKhB,EAAUk9B,GAC3C,IAAIC,EACAxoB,EAAW3T,EAAM,IAAM9J,OAAOgmC,GAClC,GAAIa,EAAyBppB,GAAW,OAAOopB,EAAyBppB,GAAUjT,KAAK1B,GACvF,IAAIi+B,EAAqBtB,EAAwB37B,GAC7Ck9B,EAA6F,OAAxEf,EAAM99B,OAAOg+B,yBAAyBY,EAAoBf,SAAqB,EAASC,EAAI75B,IACrH,OAAK46B,GACLH,EAAyBppB,GAAYupB,EAC9BA,EAAkBx8B,KAAK1B,IAFCA,EAASk9B,EAG5C,CAyEA,IAAIiB,EA9DJ,SAAsBC,GAClB,OAAOJ,EAAuB,OAAQI,EAAI,aAC9C,EA4DID,EA3DJ,SAAsBC,GAClB,OAAOJ,EAAuB,OAAQI,EAAI,aAC9C,EAyDID,EAxDJ,SAAyBC,GACrB,OAAOJ,EAAuB,OAAQI,EAAI,gBAC9C,EAsDID,EArDJ,SAAuBC,GACnB,OAAOJ,EAAuB,OAAQI,EAAI,cAC9C,EAmDID,EA5CJ,SAAgBC,GACZ,OAAKA,GAAQ,SAAUA,EAChBJ,EAAuB,aAAcI,EAAI,QADb,IAEvC,EAyCID,EArCJ,SAAsBC,GAClB,OAAKA,GAAQ,eAAgBA,EACtBJ,EAAuB,UAAWI,EAAI,cADJ,IAE7C,EAiDA,SAASC,EAAUD,GACf,OAAOA,EAAGE,WAAaF,EAAGG,YAC9B,CACA,SAASC,EAAaJ,GAClB,IAAIK,EAEJL,GAAM,SAAUA,GAAM,SAAUA,GAAMD,EAAaC,IAAO,KAC1D,OAAO3lB,QAAQgmB,GAAU,eAAgBA,GAAUN,EAAmBM,KAAYL,EACtF,CACA,SAASM,EAAkBC,GACvB,MAAuD,wBAAhDt/B,OAAOmC,UAAUoM,SAASlM,KAAKi9B,EAC1C,CA2BA,SAASC,EAAoBC,GACzB,IACI,IAAIC,EAASD,EAAGtqB,OAASsqB,EAAGE,SAC5B,IAAKD,EACD,OAAO,KAEX,IAAIE,EAAYH,EAAGhkC,KAOnB,OANKmkC,GAAaH,EAAGI,WAAaJ,EAAGI,UAAUC,gBAC3CF,EAAYH,EAAGI,UAAUC,cAActkC,SAASC,OAlChBskC,EAoCb5mC,MAAM4N,KAAK24B,EAAQ,SAASM,GAC/C,OAAOC,EAAcD,EAAOJ,EAChC,GAAG/3B,KAAK,KArCA9O,SAAS,6BAA+BgnC,EAAQhnC,SAAS,qCACjEgnC,EAAUA,EAAQ/kC,QAAQ,8BAA+B,2DAEtD+kC,CAoCP,CAAE,MAAOx6B,GACL,OAAO,IACX,CA1CJ,IAA4Cw6B,CA2C5C,CACA,SAASE,EAAcD,EAAOJ,GAC1B,GA4BJ,SAAyBI,GACrB,MAAO,eAAgBA,CAC3B,CA9BQE,CAAgBF,GAAQ,CACxB,IAAIG,EACJ,IACIA,EACAX,EAAoBQ,EAAMI,aA3CtC,SAA+BJ,GAC3B,IAAID,EAAUC,EAAMD,QACpB,GAAIA,EAAQhoC,MAAM,KAAKK,OAAS,EAAG,OAAO2nC,EAC1C,IAAIM,EAAY,CACZ,UACA,OAAS53B,KAAKE,UAAUq3B,EAAMvkC,MAAQ,KAa1C,MAXwB,KAApBukC,EAAMM,UACND,EAAU77B,KAAK,SACRw7B,EAAMM,WACbD,EAAU77B,KAAK,SAAWw7B,EAAMM,UAAY,KAE5CN,EAAMO,cACNF,EAAU77B,KAAK,YAAcw7B,EAAMO,aAAe,KAElDP,EAAM3X,MAAMjwB,QACZioC,EAAU77B,KAAKw7B,EAAM3X,MAAMmY,WAExBH,EAAUx4B,KAAK,KAAO,GACjC,CAyBY44B,CAAsBT,EAC1B,CAAE,MAAOz6B,GACL46B,EAAoBH,EAAMD,OAC9B,CACA,OAAIC,EAAMI,WAAW3kC,KACVilC,GAAeP,EAAmBH,EAAMI,WAAW3kC,MAEvD0kC,CACX,CACI,IAWA/nB,EAXIuoB,EAAkBX,EAAMD,QAI5B,OAaR,SAAwBC,GACpB,MAAO,iBAAkBA,CAC7B,CAlBYY,CAAeZ,IAAUA,EAAMa,aAAa9nC,SAAS,OAUzDqf,EAAQ,uCATJuoB,EAAkCA,EAUpB3lC,QAAQod,EAAO,WAR7BwnB,EACOc,GAAeC,EAAiBf,GAEpCe,CAEf,CAWA,IAAIG,EAAuB,WACvB,SAASA,IACLlE,EAAkBl9B,KAAM,YAA6B,IAAImE,KACzD+4B,EAAkBl9B,KAAM,cAA+B,IAAIqhC,QAC/D,CACA,IAAIC,EAASF,EAAO1+B,UAmDpB,OAlDA4+B,EAAOC,MAAQ,SAAejC,GAC1B,IAAIjB,EACJ,IAAKiB,EAAI,OAAQ,EACjB,IAAIkC,EAAiC,OAA3BnD,EAAMr+B,KAAKyhC,QAAQnC,SAAe,EAASjB,EAAImD,GACzD,OAAa,MAANA,EAAaA,GAAM,CAC9B,EACAF,EAAOI,QAAU,SAAiBF,GAC9B,OAAOxhC,KAAK2hC,UAAUn9B,IAAIg9B,IAAO,IACrC,EACAF,EAAOM,OAAS,WACZ,OAAOnoC,MAAM4N,KAAKrH,KAAK2hC,UAAUnhC,OACrC,EACA8gC,EAAOG,QAAU,SAAiBnC,GAC9B,OAAOt/B,KAAK6hC,YAAYr9B,IAAI86B,IAAO,IACvC,EAGAgC,EAAOQ,kBAAoB,SAA2BxC,GAClD,IAAIyC,EAAQ/hC,KACRwhC,EAAKxhC,KAAKuhC,MAAMjC,GACpBt/B,KAAK2hC,UAAUh9B,OAAO68B,GAClBlC,EAAG0C,YACH1C,EAAG0C,WAAW5hC,QAAQ,SAAS6hC,GAC3B,OAAOF,EAAMD,kBAAkBG,EACnC,EAER,EACAX,EAAO3W,IAAM,SAAa6W,GACtB,OAAOxhC,KAAK2hC,UAAUhX,IAAI6W,EAC9B,EACAF,EAAOY,QAAU,SAAiBC,GAC9B,OAAOniC,KAAK6hC,YAAYlX,IAAIwX,EAChC,EACAb,EAAOnmB,IAAM,SAAamkB,EAAI8C,GAC1B,IAAIZ,EAAKY,EAAKZ,GACdxhC,KAAK2hC,UAAU98B,IAAI28B,EAAIlC,GACvBt/B,KAAK6hC,YAAYh9B,IAAIy6B,EAAI8C,EAC7B,EACAd,EAAOhmC,QAAU,SAAiBkmC,EAAIlC,GAClC,IAAI+C,EAAUriC,KAAK0hC,QAAQF,GAC3B,GAAIa,EAAS,CACT,IAAID,EAAOpiC,KAAK6hC,YAAYr9B,IAAI69B,GAC5BD,GAAMpiC,KAAK6hC,YAAYh9B,IAAIy6B,EAAI8C,EACvC,CACApiC,KAAK2hC,UAAU98B,IAAI28B,EAAIlC,EAC3B,EACAgC,EAAO/vB,MAAQ,WACXvR,KAAK2hC,UAA4B,IAAIx9B,IACrCnE,KAAK6hC,YAA8B,IAAIR,OAC3C,EACOD,CACX,CAzD2B,GA6D3B,SAASkB,EAAeC,GACpB,IAAIC,EAAUD,EAAMC,QAASC,EAAmBF,EAAME,iBAAkB3K,EAAUyK,EAAMzK,QAASp8B,EAAO6mC,EAAM7mC,KAAM2M,EAAQk6B,EAAMl6B,MAAOq6B,EAAcH,EAAMG,YACzJrf,EAAOhb,GAAS,GAChBs6B,EAAajnC,GAAQ0R,EAAY1R,GAQrC,OAPI+mC,EAAiB3K,EAAQ1qB,gBAAkBu1B,GAAcF,EAAiBE,MAEtEtf,EADAqf,EACOA,EAAYrf,EAAMmf,GAElB,IAAII,OAAOvf,EAAK3qB,SAGxB2qB,CACX,CACA,SAASjW,EAAY1J,GACjB,OAAOA,EAAI0J,aACf,CACA,IAAIy1B,EAA0B,qBAkB9B,SAASC,EAAaN,GAClB,IAAI9mC,EAAO8mC,EAAQ9mC,KACnB,OAAO8mC,EAAQO,aAAa,uBAAyB,WAAarnC,EAClE0R,EAAY1R,GAAQ,IACxB,CACA,SAASsnC,EAAqB1gC,EAAM2gC,GAChC,IAAI/a,EACJ,IACIA,EAAM,IAAIC,IAAI7lB,EAAiB,MAAX2gC,EAAkBA,EAAUpnC,OAAOC,SAASC,KACpE,CAAE,MAAOia,GACL,OAAO,IACX,CACA,IAEIktB,EADAz2B,EAAQyb,EAAIib,SAAS12B,MADb,uBAGZ,OAAqD,OAA7Cy2B,EAAgB,MAATz2B,OAAgB,EAASA,EAAM,IAAcy2B,EAAO,IACvE,CAWA,IAAIE,EAAiB,6CACjBC,EAAqB,sBACrBC,EAAgB,YAChBC,GAAW,wBACf,SAASvC,GAAeX,EAAStkC,GAC7B,OAAQskC,GAAW,IAAI/kC,QAAQ8nC,EAAgB,SAAStf,EAAQ0f,EAAQC,EAAOC,EAAQC,EAAOC,GAC1F,IAhBe1b,EAgBX2b,EAAWJ,GAASE,GAASC,EAC7BE,EAAaN,GAAUE,GAAU,GACrC,IAAKG,EACD,OAAO/f,EAEX,GAAIuf,EAAmBh3B,KAAKw3B,IAAaP,EAAcj3B,KAAKw3B,GACxD,MAAO,OAASC,EAAaD,EAAWC,EAAa,IAEzD,GAAIP,GAASl3B,KAAKw3B,GACd,MAAO,OAASC,EAAaD,EAAWC,EAAa,IAEzD,GAAoB,MAAhBD,EAAS,GACT,MAAO,OAASC,KA5BL5b,EA4BiCnsB,GA1B5CoG,QAAQ,OAAS,EACZ+lB,EAAI7vB,MAAM,KAAK4K,MAAM,EAAG,GAAGkF,KAAK,KAEhC+f,EAAI7vB,MAAM,KAAK,IAEZA,MAAM,KAAK,GAqBiCwrC,GAAYC,EAAa,IAEjF,IAAIthC,EAAQzG,EAAK1D,MAAM,KACnBuU,EAAQi3B,EAASxrC,MAAM,KAC3BmK,EAAMoQ,MACN,IAAI,IAA6DmxB,EAAzDC,EAAYrI,EAAqC/uB,KAAiBm3B,EAAQC,KAAavmB,MAAM,CACjG,IAAIwmB,EAAOF,EAAM17B,MACJ,MAAT47B,IAEgB,OAATA,EACPzhC,EAAMoQ,MAENpQ,EAAMsC,KAAKm/B,GAEnB,CACA,MAAO,OAASH,EAAathC,EAAM2F,KAAK,KAAO27B,EAAa,GAChE,EACJ,CACA,SAASI,GAAmB7D,EAAS8D,GAEjC,YADsB,IAAlBA,IAA0BA,GAAgB,GAC1CA,EACO9D,EAAQ/kC,QAAQ,yBAA0B,IAE1C+kC,EAAQ/kC,QAAQ,yBAA0B,IAAIA,QAAQ,OAAQ,IAE7E,CAmFA,IAgBI8oC,GACAC,GAjBAC,GAAM,EACNC,GAAe,IAAI7/B,OAAO,gBAE9B,SAAS8/B,KACL,OAAOF,IACX,CAaA,IAAIG,GAAoB,qBACpBC,GAA0B,qBAuD1BC,GAAiC,IAAItD,QACzC,SAASuD,GAAcC,EAAKC,GACxB,OAAKA,GAA4C,KAA1BA,EAAe9lC,OAG/B+lC,GAAQF,EAAKC,GAFTA,CAGf,CAIA,SAASC,GAAQF,EAAKG,GAClB,IAAIC,EAAKN,GAAengC,IAAIqgC,GAK5B,GAJKI,IACDA,EAAKJ,EAAItpC,cAAc,KACvBopC,GAAe9/B,IAAIggC,EAAKI,IAEvBD,GAEE,GAAIA,EAAWphB,WAAW,UAAYohB,EAAWphB,WAAW,SAC/D,OAAOohB,OAFPA,EAAa,GAKjB,OADAC,EAAGC,aAAa,OAAQF,GACjBC,EAAGlpC,IACd,CACA,SAASopC,GAAmBN,EAAK/M,EAASz5B,EAAMgK,GAC5C,OAAKA,EAGQ,QAAThK,GAA2B,SAATA,IAAiC,QAAZy5B,GAAkC,MAAbzvB,EAAM,KAElD,eAAThK,GAAsC,MAAbgK,EAAM,GAD/Bu8B,GAAcC,EAAKx8B,GAGV,eAAThK,GAAsC,UAAZy5B,GAAmC,OAAZA,GAAgC,OAAZA,EAE5D,WAATz5B,EAxFf,SAAiCwmC,EAAKC,GAClC,GAA8B,KAA1BA,EAAe9lC,OACf,OAAO8lC,EAEX,IAAIM,EAAM,EACV,SAASC,EAAkBC,GACvB,IAAIC,EACA94B,EAAQ64B,EAAMzsB,KAAKisB,EAAev4B,UAAU64B,IAChD,OAAI34B,GACA84B,EAAS94B,EAAM,GACf24B,GAAOG,EAAO7sC,OACP6sC,GAEJ,EACX,CAEA,IADA,IAAI5/B,EAAS,GAET0/B,EAAkBX,MACdU,GAAON,EAAepsC,SAFnB,CAKP,IAAIwvB,EAAMmd,EAAkBZ,IAC5B,GAAsB,MAAlBvc,EAAIjlB,OAAO,GACXilB,EAAM0c,GAAcC,EAAK3c,EAAI3b,UAAU,EAAG2b,EAAIxvB,OAAS,IACvDiN,EAAOb,KAAKojB,OACT,CACH,IAAIsd,EAAiB,GACrBtd,EAAM0c,GAAcC,EAAK3c,GAEzB,IADA,IAAIud,GAAW,IACJ,CACP,IAAIC,EAAKZ,EAAea,OAAOP,GAC/B,GAAW,KAAPM,EAAW,CACX//B,EAAOb,MAAMojB,EAAMsd,GAAgBxmC,QACnC,KACJ,CAAO,GAAKymC,EASG,MAAPC,IACAD,GAAW,OAVG,CAClB,GAAW,MAAPC,EAAY,CACZN,GAAO,EACPz/B,EAAOb,MAAMojB,EAAMsd,GAAgBxmC,QACnC,KACJ,CAAkB,MAAP0mC,IACPD,GAAW,EAEnB,CAKAD,GAAkBE,EAClBN,GAAO,CACX,CACJ,CACJ,CACA,OAAOz/B,EAAOwC,KAAK,KACvB,CAoCey9B,CAAwBf,EAAKx8B,GACpB,UAAThK,EACA2iC,GAAe34B,EAAO08B,GAAQF,IAClB,WAAZ/M,GAAiC,SAATz5B,EACxBumC,GAAcC,EAAKx8B,GAEvBA,EARIu8B,GAAcC,EAAKx8B,GAPnBA,CAgBf,CACA,SAASw9B,GAAgB/N,EAASz5B,EAAMynC,GACpC,OAAoB,UAAZhO,GAAmC,UAAZA,IAAiC,aAATz5B,CAC3D,CAqBA,SAAS0nC,GAAkB5D,EAAOzpB,EAAOstB,GACrC,IAAK7D,EAAO,OAAO,EACnB,GAAIA,EAAM3C,WAAa2C,EAAM1C,aACzB,QAAKuG,GACED,GAAkB1G,EAAmB8C,GAAQzpB,EAAOstB,GAE/D,IAAI,IAAIC,EAAS9D,EAAM+D,UAAUxtC,OAAQutC,KAAU,CAC/C,IAAIzqC,EAAY2mC,EAAM+D,UAAUD,GAChC,GAAIvtB,EAAMrM,KAAK7Q,GACX,OAAO,CAEf,CACA,QAAKwqC,GACED,GAAkB1G,EAAmB8C,GAAQzpB,EAAOstB,EAC/D,CACA,SAASG,GAAgBhE,EAAOiE,EAAeC,EAAkBL,GAC7D,IAAIM,EACJ,GAAI/G,EAAU4C,IAEV,IAAK9C,EADLiH,EAAKnE,GACuBzpC,OACxB,OAAO,MAER,IAAqC,OAAjC2mC,EAAsB8C,GAC7B,OAAO,EAEPmE,EAAKjH,EAAsB8C,EAC/B,CACA,IACI,GAA6B,iBAAlBiE,GACP,GAAIJ,GACA,GAAIM,EAAGC,QAAQ,IAAMH,GAAgB,OAAO,OAE5C,GAAIE,EAAGJ,UAAUM,SAASJ,GAAgB,OAAO,OAGrD,GAAIL,GAAkBO,EAAIF,EAAeJ,GAAiB,OAAO,EAErE,GAAIK,EACA,GAAIL,GACA,GAAIM,EAAGC,QAAQF,GAAmB,OAAO,OAEzC,GAAIC,EAAGG,QAAQJ,GAAmB,OAAO,CAGrD,CAAE,MAAOK,GAAK,CACd,OAAO,CACX,CAuDA,SAASC,GAAcrH,EAAIn+B,GACvB,IAAI0jC,EAAM1jC,EAAQ0jC,IAAK+B,EAAUzlC,EAAQ0lC,OAAQC,EAAa3lC,EAAQ2lC,WAAYC,EAAgB5lC,EAAQ4lC,cAAeC,EAAY7lC,EAAQ6lC,UAAWC,EAAmB9lC,EAAQ8lC,iBAAkBC,EAA4B/lC,EAAQshC,iBAAkBA,OAAiD,IAA9ByE,EAAuC,CAAC,EAAIA,EAA2BC,EAAahmC,EAAQgmC,WAAYzE,EAAcvhC,EAAQuhC,YAAa0E,EAA0BjmC,EAAQkmC,eAAgBA,OAA6C,IAA5BD,EAAqC,CAAC,EAAIA,EAAyBE,EAAenmC,EAAQmmC,aAAcC,EAAepmC,EAAQomC,aAAcC,EAAkBrmC,EAAQqmC,gBAAiBC,EAA6BtmC,EAAQumC,kBAAmBA,OAAmD,IAA/BD,GAAgDA,EAA4BE,EAAuBxmC,EAAQymC,YAAaA,OAAuC,IAAzBD,GAA0CA,EAC54BE,EA8DR,SAAmBhD,EAAK+B,GACpB,GAAKA,EAAQ1E,QAAQ2C,GAArB,CACA,IAAIiD,EAAQlB,EAAQrF,MAAMsD,GAC1B,OAAiB,IAAViD,OAAc,EAASA,CAFU,CAG5C,CAlEiBC,CAAUlD,EAAK+B,GAC5B,OAAOtH,EAAGE,UACN,KAAKF,EAAG0I,cACJ,MAAsB,eAAlB1I,EAAG2I,WACI,CACHvsC,KAAM0hC,EAAW8K,SACjBlG,WAAY,GACZiG,WAAY3I,EAAG2I,YAGZ,CACHvsC,KAAM0hC,EAAW8K,SACjBlG,WAAY,IAGxB,KAAK1C,EAAG6I,mBACJ,MAAO,CACHzsC,KAAM0hC,EAAWgL,aACjB/pC,KAAMihC,EAAGjhC,KACTgqC,SAAU/I,EAAG+I,SACbC,SAAUhJ,EAAGgJ,SACbT,OAAQA,GAEhB,KAAKvI,EAAGG,aACJ,OAmEZ,SAA8BH,EAAIn+B,GAM9B,IALA,IA2IIonC,EA3IA1D,EAAM1jC,EAAQ0jC,IAA6EoC,EAAmB9lC,EAAQ8lC,iBAAkBC,EAA4B/lC,EAAQshC,iBAAkBA,OAAiD,IAA9ByE,EAAuC,CAAC,EAAIA,EAA2BxE,EAAcvhC,EAAQuhC,YAAa0E,EAA0BjmC,EAAQkmC,eAAgBA,OAA6C,IAA5BD,EAAqC,CAAC,EAAIA,EAAyBE,EAAenmC,EAAQmmC,aAAcC,EAAepmC,EAAQomC,aAAcC,EAAkBrmC,EAAQqmC,gBAAiBC,EAA6BtmC,EAAQumC,kBAAmBA,OAAmD,IAA/BD,GAAgDA,EAA4BI,EAAS1mC,EAAQ0mC,OAC/tBW,EAxNR,SAA2BhG,EAASsE,EAAYC,GAC5C,IACI,GAA0B,iBAAfD,GACP,GAAItE,EAAQ0D,UAAUM,SAASM,GAC3B,OAAO,OAGX,IAAI,IAAIb,EAASzD,EAAQ0D,UAAUxtC,OAAQutC,KAAU,CACjD,IAAIzqC,EAAYgnC,EAAQ0D,UAAUD,GAClC,GAAIa,EAAWz6B,KAAK7Q,GAChB,OAAO,CAEf,CAEJ,GAAIurC,EACA,OAAOvE,EAAQiE,QAAQM,EAE/B,CAAE,MAAOL,GAAK,CACd,OAAO,CACX,CAqMoB+B,CAAkBnJ,EADEn+B,EAAQ2lC,WAA4B3lC,EAAQ4lC,eAE5EjP,EA3UR,SAA2B0K,GACvB,GAAIzH,EAAYyH,EAASkG,iBACrB,MAAO,OAEX,IAAIC,EAAmBv7B,EAAYo1B,EAAQ1K,SAC3C,OAAIyM,GAAal4B,KAAKs8B,GACX,MAEJA,CACX,CAkUkBC,CAAkBtJ,GAC5BuJ,EAAa,CAAC,EACd9P,EAAMuG,EAAGuJ,WAAWnwC,OAChBowC,EAAK,EAAGA,EAAK/P,EAAK+P,IAAK,CAC3B,IAAIC,EAAOzJ,EAAGuJ,WAAWC,GACpBjD,GAAgB/N,EAASiR,EAAK1qC,KAAM0qC,EAAK1gC,SAC1CwgC,EAAWE,EAAK1qC,MAAQ8mC,GAAmBN,EAAK/M,EAAS1qB,EAAY27B,EAAK1qC,MAAO0qC,EAAK1gC,OAE9F,CACA,GAAgB,SAAZyvB,GAAsBmP,EAAkB,CACxC,IAAI+B,EAAavvC,MAAM4N,KAAKw9B,EAAIoE,aAAarvC,KAAK,SAASmmC,GACvD,OAAOA,EAAGhkC,OAASujC,EAAGvjC,IAC1B,GACIskC,EAAU,KACV2I,IACA3I,EAAUP,EAAoBkJ,IAE9B3I,WACOwI,EAAWK,WACXL,EAAW9sC,KAClB8sC,EAAWM,SAAW9I,EAE9B,CACA,GAAgB,UAAZvI,GAAuBwH,EAAG8J,MAAO,CACjC,IAAIC,EAAWvJ,EAAoBR,EAAG8J,OAClCC,IACI/J,EAAG0C,WAAWtpC,OAAS,IACvB2wC,EA/WhB,SAAuBhJ,EAAS1lB,GAC5B,OAhFJ,SAAsB0lB,EAAS1lB,EAAOwpB,QACZ,IAAlBA,IAA0BA,GAAgB,GAC9C,IAAImF,EAAc7vC,MAAM4N,KAAKsT,EAAMqnB,YAC/BuH,EAAS,GACTC,EAAY,EAChB,GAAIF,EAAY5wC,OAAS,GAAK2nC,GAA8B,iBAAZA,EAG5C,IAFA,IAAIoJ,EAAcvF,GAAmB7D,EAAS8D,GAC1CuF,EAAaD,EAAY/wC,OAAS2nC,EAAQ3nC,OACtCowC,EAAK,EAAGA,EAAKQ,EAAY5wC,OAAQowC,IACrC,GAAIQ,EAAYR,GAAIa,aAAsD,iBAAhCL,EAAYR,GAAIa,YAA0B,CAIhF,IAHA,IAAIC,EAAkB1F,GAAmBoF,EAAYR,GAAIa,YAAaxF,GAElE9+B,EAAI,EACFA,EAAIukC,EAAgBlxC,SAEtBkxC,EAAgBvkC,GAAGoH,MAAM,iBACwC,IAAjEm9B,EAAgBznC,QAAQynC,EAAgBr9B,UAAU,EAAGlH,GAAI,IAH3BA,KAQlC,KAAMA,EAAIukC,EAAgBlxC,OAAQ2M,IAAI,CAClC,IAAIwkC,EAAiBD,EAAgBr9B,UAAU,EAAGlH,GAC9CykC,EAAgBL,EAAYpxC,MAAMwxC,GAClCE,GAAa,EACjB,GAA6B,IAAzBD,EAAcpxC,OACdqxC,EAAYD,EAAc,GAAGpxC,YAC1B,GAAIoxC,EAAcpxC,OAAS,GAA0B,KAArBoxC,EAAc,IAAiD,KAApCR,EAAYR,EAAK,GAAGa,YAClFI,EAAYN,EAAYtnC,QAAQ0nC,EAAgB,QAC7C,GAA6B,IAAzBC,EAAcpxC,OAAc,CAGnC,GAFAmxC,EAAiBA,EAAet9B,UAAU,EAAGs9B,EAAenxC,OAAS,IACrEoxC,EAAgBL,EAAYpxC,MAAMwxC,IAChBnxC,QAAU,EAExB,OADA6wC,EAAOzkC,KAAKu7B,GACLkJ,EAEXlkC,EAAI2kC,GACR,MAAW3kC,IAAMukC,EAAgBlxC,OAAS,IACtCqxC,EAAYN,EAAYtnC,QAAQ0nC,IAEpC,GAAIC,EAAcpxC,QAAU,GAAK2M,EA7BxB,IA6BoC,CACzC,IAAI4kC,EAAkBX,EAAYR,EAAK,GAAGa,YAC1C,GAAIM,GAA8C,iBAApBA,EAA8B,CACxD,IAAIC,EAAgBhG,GAAmB+F,GAAiBvxC,OACxDqxC,EAAYN,EAAYtnC,QAAQ0nC,EAAgBK,EACpD,EACmB,IAAfH,IACAA,EAAYD,EAAc,GAAGpxC,OAErC,CACA,IAAmB,IAAfqxC,EAAkB,CAElB,IADA,IAAIlnC,EAAIrK,KAAK2xC,MAAMJ,EAAYL,GACzB7mC,EAAI,GAAKA,EAAIw9B,EAAQ3nC,QAAQ,CAE/B,IADA8wC,GAAa,GACG,GAAKF,EAAY5wC,OAE7B,OADA6wC,EAAOzkC,KAAKu7B,GACLkJ,EAEX,IAAIa,EAAWlG,GAAmB7D,EAAQ9zB,UAAU,EAAG1J,GAAIshC,GAC3D,GAAIiG,EAAS1xC,SAAWqxC,EAAW,CAC/BR,EAAOzkC,KAAKu7B,EAAQ9zB,UAAU,EAAG1J,IACjCw9B,EAAUA,EAAQ9zB,UAAU1J,GAC5B4mC,EAAcA,EAAYl9B,UAAUw9B,GACpC,KACJ,CAAWK,EAAS1xC,OAASqxC,EACzBlnC,GAAKrK,KAAKC,IAAI,EAAGD,KAAK2xC,OAAOJ,EAAYK,EAAS1xC,QAAUgxC,IAE5D7mC,GAAKrK,KAAKC,IAAI,EAAGD,KAAK2xC,OAAOC,EAAS1xC,OAASqxC,GAAaL,GAEpE,CACA,KACJ,CACJ,CACJ,CAIR,OADAH,EAAOzkC,KAAKu7B,GACLkJ,CACX,CAEWc,CAAahK,EAAS1lB,GAAOxS,KAAK,iBAC7C,CA6W2BmiC,CAAcjB,EAAU/J,IAEvCuJ,EAAWM,SAAWE,EAE9B,CACA,GAAgB,UAAZvR,GAAmC,aAAZA,GAAsC,WAAZA,EAAsB,CACvE,IAAIzvB,EAAQi3B,EAAGj3B,MACXkiC,EAAUjL,EAAGiL,QACO,UAApB1B,EAAWntC,MAAwC,aAApBmtC,EAAWntC,MAA2C,WAApBmtC,EAAWntC,MAAyC,WAApBmtC,EAAWntC,MAAqB2M,EACjIwgC,EAAWxgC,MAAQi6B,EAAe,CAC9BE,QAASlD,EACT5jC,KAAMonC,EAAaxD,GACnBxH,QAASA,EACTzvB,MAAOA,EACPo6B,iBAAkBA,EAClBC,YAAaA,IAEV6H,IACP1B,EAAW0B,QAAUA,EAE7B,CAWA,GAVgB,WAAZzS,IACIwH,EAAGkL,WAAa/H,EAAyB,OACzCoG,EAAW2B,UAAW,SAEf3B,EAAW2B,UAGV,WAAZ1S,GAAwBwH,EAAGrJ,OAC3B4S,EAAW4B,aAAenL,EAAGmH,QAAQ,gBAAkB,QAAU,aAErD,WAAZ3O,GAAwByP,EACxB,GAAqB,OAAjBjI,EAAGoL,WAtjBf,SAAyBC,GACrB,IAAIC,EAAMD,EAAOE,WAAW,MAC5B,IAAKD,EAAK,OAAO,EAEjB,IADA,IACQE,EAAK,EAAGA,EAAKH,EAAO9kB,MAAOilB,GADnB,GAEZ,IAAI,IAAI3O,EAAI,EAAGA,EAAIwO,EAAO7jB,OAAQqV,GAFtB,GAEqC,CAC7C,IAAI4O,EAAeH,EAAIG,aACnBC,EAAuBnI,KAA2BkI,EAAeA,EAAalI,GAA2BkI,EAG7G,GAFkB,IAAIE,YACtBD,EAAqBpoC,KAAKgoC,EAAKE,EAAI3O,EAAG3jC,KAAK0wB,IANnC,GAMkDyhB,EAAO9kB,MAAQilB,GAAKtyC,KAAK0wB,IAN3E,GAM0FyhB,EAAO7jB,OAASqV,IAAIt4B,KAAKqnC,QAC3GlmB,KAAK,SAASmmB,GAC1B,OAAiB,IAAVA,CACX,GAAI,OAAO,CACf,CAEJ,OAAO,CACX,EAuiBiBC,CAAgB9L,KACjBuJ,EAAWwC,WAAa/L,EAAGgM,UAAUjE,EAAe3rC,KAAM2rC,EAAekE,eAE1E,KAAM,cAAejM,GAAK,CAC7B,IAAIkM,EAAgBlM,EAAGgM,UAAUjE,EAAe3rC,KAAM2rC,EAAekE,SACjEE,EAAc5G,EAAItpC,cAAc,UACpCkwC,EAAY5lB,MAAQyZ,EAAGzZ,MACvB4lB,EAAY3kB,OAASwY,EAAGxY,OAEpB0kB,IADqBC,EAAYH,UAAUjE,EAAe3rC,KAAM2rC,EAAekE,WAE/E1C,EAAWwC,WAAaG,EAEhC,CAEJ,GAAgB,QAAZ1T,GAAqBwP,EAAc,CAC9BlD,KACDA,GAAgBS,EAAItpC,cAAc,UAClC8oC,GAAYD,GAAcyG,WAAW,OAEzC,IAAIljB,EAAQ2X,EACRoM,EAAW/jB,EAAMgkB,YAAchkB,EAAMiP,aAAa,QAAU,gBAC5DgV,EAAmBjkB,EAAMkkB,YACzBC,EAAoB,WACpBnkB,EAAM9C,oBAAoB,OAAQinB,GAClC,IACI1H,GAAcve,MAAQ8B,EAAMokB,aAC5B3H,GAActd,OAASa,EAAMqkB,cAC7B3H,GAAU4H,UAAUtkB,EAAO,EAAG,GAC9BkhB,EAAWwC,WAAajH,GAAckH,UAAUjE,EAAe3rC,KAAM2rC,EAAekE,QACxF,CAAE,MAAOv1B,GACL,GAA0B,cAAtB2R,EAAMkkB,YAIN,OAHAlkB,EAAMkkB,YAAc,iBAChBlkB,EAAMukB,UAAmC,IAAvBvkB,EAAMokB,aAAoBD,IAC3CnkB,EAAM/C,iBAAiB,OAAQknB,IAGpChmC,QAAQF,KAAK,yBAA2B8lC,EAAW,YAAc11B,EAEzE,CAC0B,cAAtB2R,EAAMkkB,cACND,EAAmB/C,EAAWgD,YAAcD,EAAmBjkB,EAAMwkB,gBAAgB,eAE7F,EACIxkB,EAAMukB,UAAmC,IAAvBvkB,EAAMokB,aAAoBD,IAC3CnkB,EAAM/C,iBAAiB,OAAQknB,EACxC,CACA,GAAgB,UAAZhU,GAAmC,UAAZA,EAAqB,CAC5C,IAAIsU,EAAkBvD,EACtBuD,EAAgBC,cAAgB/M,EAAGgN,OAAS,SAAW,SACvDF,EAAgBG,oBAAsBjN,EAAGkN,YACzCJ,EAAgBK,qBAAuBnN,EAAGoN,aAC1CN,EAAgBO,cAAgBrN,EAAGsN,MACnCR,EAAgBS,aAAevN,EAAGwN,KAClCV,EAAgBW,eAAiBzN,EAAG0N,MACxC,CASA,GARKtF,IACGpI,EAAG2N,aACHpE,EAAWqE,cAAgB5N,EAAG2N,YAE9B3N,EAAG6N,YACHtE,EAAWuE,aAAe9N,EAAG6N,YAGjC3E,EAAW,CACX,IAAI6E,EAA4B/N,EAAGgO,wBAAyBznB,EAAQwnB,EAA0BxnB,MAAOiB,EAASumB,EAA0BvmB,OACxI+hB,EAAa,CACT0E,MAAO1E,EAAW0E,MAClBC,SAAe3nB,EAAQ,KACvB4nB,UAAgB3mB,EAAS,KAEjC,CACgB,WAAZgR,GAAyB0P,EAAgBqB,EAAWvpC,OAC/CggC,EAAGoO,kBACJ7E,EAAW8E,OAAS9E,EAAWvpC,YAE5BupC,EAAWvpC,KAGtB,IACQ04B,eAAexzB,IAAIszB,KAAUyQ,GAAkB,EACvD,CAAE,MAAO7B,GAAK,CACd,MAAO,CACHhrC,KAAM0hC,EAAWK,QACjB3F,QAASA,EACT+Q,WAAYA,EACZ7G,WAAY,GACZ4L,OAlZctH,EAkZMhH,EAjZjB3lB,QAAuB,QAAf2sB,EAAGxO,SAAqBwO,EAAGuH,uBAiZX,GAC3BrF,UAAWA,EACXX,OAAQA,EACRiG,SAAUvF,GArZlB,IAAsBjC,CAuZtB,CA7NmByH,CAAqBzO,EAAI,CAC5BuF,IAAKA,EACLiC,WAAYA,EACZC,cAAeA,EACfE,iBAAkBA,EAClBxE,iBAAkBA,EAClBC,YAAaA,EACb2E,eAAgBA,EAChBC,aAAcA,EACdC,aAAcA,EACdC,gBAAiBA,EACjBE,kBAAmBA,EACnBG,OAAQA,IAEhB,KAAKvI,EAAG0O,UACJ,OA4BZ,SAA2B1O,EAAIn+B,GAC3B,IAAI6lC,EAAY7lC,EAAQ6lC,UAAWG,EAAahmC,EAAQgmC,WAAYU,EAAS1mC,EAAQ0mC,OAAQD,EAAczmC,EAAQymC,YAC/GqG,EAAS5O,EAAmBC,GAC5B4O,EAAgBD,GAAUA,EAAOnW,QACjCqW,EAAe,GACfC,EAA4B,UAAlBF,QAAmC,EAC7CG,EAA6B,WAAlBH,QAAoC,EAYnD,OAXIG,EACAF,EAAe,qBACPvG,IACRuG,EAAe9O,EAAoBC,GAC/B8O,GAAWD,IACXA,EAAenN,GAAemN,EAAcpJ,GAAQ5jC,EAAQ0jC,SAG/DuJ,IAAYC,GAAYF,GAAgBnH,IACzCmH,EAAehH,EAAaA,EAAWgH,EAAc9O,EAAsBC,IAAO6O,EAAa7yC,QAAQ,QAAS,MAE7G,CACHI,KAAM0hC,EAAWkR,KACjB3E,YAAawE,GAAgB,GAC7BtG,OAAQA,EAEhB,CAnDmB0G,CAAkBjP,EAAI,CACzBuF,IAAKA,EACLmC,UAAWA,EACXG,WAAYA,EACZU,OAAQA,EACRD,YAAaA,IAErB,KAAKtI,EAAGkP,mBACJ,MAAO,CACH9yC,KAAM0hC,EAAWqR,MACjB9E,YAAa,GACb9B,OAAQA,GAEhB,KAAKvI,EAAGoP,aACJ,MAAO,CACHhzC,KAAM0hC,EAAWuR,QACjBhF,YAAatK,EAAoBC,IAAO,GACxCuI,OAAQA,GAEhB,QACI,OAAO,EAEnB,CAyLA,SAAS+G,GAAcC,GACnB,OAAIA,QACO,GAEAA,EAAUzhC,aAEzB,CA+BA,SAAS0hC,GAAoBxP,EAAIn+B,GAC7B,IAAI0jC,EAAM1jC,EAAQ0jC,IAAK+B,EAAUzlC,EAAQ0lC,OAAQC,EAAa3lC,EAAQ2lC,WAAYC,EAAgB5lC,EAAQ4lC,cAAeX,EAAgBjlC,EAAQilC,cAAeC,EAAmBllC,EAAQklC,iBAAkB0I,EAAqB5tC,EAAQ6tC,UAAWA,OAAmC,IAAvBD,GAAwCA,EAAoBE,EAA4B9tC,EAAQ8lC,iBAAkBA,OAAiD,IAA9BgI,GAA8CA,EAA2B/H,EAA4B/lC,EAAQshC,iBAAkBA,OAAiD,IAA9ByE,EAAuC,CAAC,EAAIA,EAA2BC,EAAahmC,EAAQgmC,WAAYzE,EAAcvhC,EAAQuhC,YAAawM,EAAiB/tC,EAAQ+tC,eAAgB9H,EAA0BjmC,EAAQkmC,eAAgBA,OAA6C,IAA5BD,EAAqC,CAAC,EAAIA,EAAyB+H,EAAwBhuC,EAAQmmC,aAAcA,OAAyC,IAA1B6H,GAA2CA,EAAuBC,EAAwBjuC,EAAQomC,aAAcA,OAAyC,IAA1B6H,GAA2CA,EAAuBC,EAAcluC,EAAQkuC,YAAaC,EAAenuC,EAAQmuC,aAAcC,EAA6BpuC,EAAQquC,kBAAmBA,OAAmD,IAA/BD,EAAwC,IAAMA,EAA4BE,EAAmBtuC,EAAQsuC,iBAAkBC,EAAiCvuC,EAAQwuC,sBAAuBA,OAA2D,IAAnCD,EAA4C,IAAMA,EAAgCE,EAA2BzuC,EAAQqmC,gBAAiBA,OAA+C,IAA7BoI,EAAsC,WAC7mD,OAAO,CACX,EAAIA,EAA0BnI,EAA6BtmC,EAAQumC,kBAAmBA,OAAmD,IAA/BD,GAAgDA,EAA4BE,EAAuBxmC,EAAQymC,YAAaA,OAAuC,IAAzBD,GAA0CA,EACtRX,EAAY7lC,EAAQ6lC,UACpB6I,EAA8B1uC,EAAQ2uC,mBAAoBA,OAAqD,IAAhCD,GAAgDA,EAC9H7I,IAEDA,EAAYb,GAAgB7G,EAAI8G,EAAeC,OADZ,IAAdW,IAGzB,IAqBIxF,EArBAuO,EAAkBpJ,GAAcrH,EAAI,CACpCuF,IAAKA,EACLgC,OAAQD,EACRE,WAAYA,EACZC,cAAeA,EACfC,UAAWA,EACXC,iBAAkBA,EAClBxE,iBAAkBA,EAClB0E,WAAYA,EACZzE,YAAaA,EACb2E,eAAgBA,EAChBC,aAAcA,EACdC,aAAcA,EACdC,gBAAiBA,EACjBE,kBAAmBA,EACnBE,YAAaA,IAEjB,IAAKmI,EAED,OADAjqC,QAAQF,KAAK05B,EAAI,kBACV,KAIPkC,EADAoF,EAAQ1E,QAAQ5C,GACXsH,EAAQrF,MAAMjC,GA/D3B,SAAyB0Q,EAAId,GACzB,GAAIA,EAAee,SAAWD,EAAGt0C,OAAS0hC,EAAWuR,QACjD,OAAO,EACJ,GAAIqB,EAAGt0C,OAAS0hC,EAAWK,QAAS,CACvC,GAAIyR,EAAegB,SACH,WAAfF,EAAGlY,SACW,SAAfkY,EAAGlY,UAA6C,YAAtBkY,EAAGnH,WAAWK,KAA0C,WAArB8G,EAAGnH,WAAWsH,IAAyC,kBAAtBH,EAAGnH,WAAWK,MAC7F,SAAf8G,EAAGlY,SAA4C,aAAtBkY,EAAGnH,WAAWK,KAAoD,iBAAvB8G,EAAGnH,WAAW9sC,MAAkE,OAA7CinC,EAAqBgN,EAAGnH,WAAW9sC,OACtI,OAAO,EACJ,GAAImzC,EAAekB,cAA+B,SAAfJ,EAAGlY,SAA4C,kBAAtBkY,EAAGnH,WAAWK,KAA0C,SAAf8G,EAAGlY,UAAuB8W,GAAcoB,EAAGnH,WAAWxqC,MAAMoO,MAAM,sCAA8E,qBAAtCmiC,GAAcoB,EAAGnH,WAAWxqC,OAAqE,SAArCuwC,GAAcoB,EAAGnH,WAAWK,MAAwD,qBAArC0F,GAAcoB,EAAGnH,WAAWK,MAAoE,kBAArC0F,GAAcoB,EAAGnH,WAAWK,OACpZ,OAAO,EACJ,GAAmB,SAAf8G,EAAGlY,QAAoB,CAC9B,GAAIoX,EAAemB,sBAAwBzB,GAAcoB,EAAGnH,WAAWxqC,MAAMoO,MAAM,0BAC/E,OAAO,EACJ,GAAIyiC,EAAeoB,iBAAmB1B,GAAcoB,EAAGnH,WAAW0H,UAAU9jC,MAAM,sBACzFmiC,GAAcoB,EAAGnH,WAAWxqC,MAAMoO,MAAM,mBAA2D,cAAtCmiC,GAAcoB,EAAGnH,WAAWxqC,OACrF,OAAO,EACJ,GAAI6wC,EAAesB,iBAAyD,WAAtC5B,GAAcoB,EAAGnH,WAAWxqC,OAA4D,cAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAA+D,YAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAC5K,OAAO,EACJ,GAAI6wC,EAAeuB,wBAAqD,IAAhCT,EAAGnH,WAAW,cACzD,OAAO,EACJ,GAAIqG,EAAewB,qBAA6D,WAAtC9B,GAAcoB,EAAGnH,WAAWxqC,OAA4D,cAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAA+D,cAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAA+D,cAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAA+D,WAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAAsBuwC,GAAcoB,EAAGnH,WAAW0H,UAAU9jC,MAAM,cAAgBmiC,GAAcoB,EAAGnH,WAAW0H,UAAU9jC,MAAM,cACxZ,OAAO,EACJ,GAAIyiC,EAAeyB,uBAA+D,6BAAtC/B,GAAcoB,EAAGnH,WAAWxqC,OAA8E,wBAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAAyE,eAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAAgE,oBAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAAqE,cAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAA+D,iBAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAAkE,+BAAtCuwC,GAAcoB,EAAGnH,WAAWxqC,OAC5a,OAAO,CAEf,CACJ,CACA,OAAO,CACX,CAmCeuyC,CAAgBb,EAAiBb,KAAoBY,GAAsBC,EAAgBr0C,OAAS0hC,EAAWkR,OAASyB,EAAgBpG,YAAYruC,QAAQ,cAAe,IAAI5C,QA9iB3K,EAijBN8rC,KAET,IAAIqM,EAAiBtwC,OAAOg6B,OAAOwV,EAAiB,CAChDvO,GAAIA,IAGR,GADAoF,EAAQzrB,IAAImkB,EAAIuR,IAtjBD,IAujBXrP,EACA,OAAO,KAEP6N,GACAA,EAAY/P,GAEhB,IAAIwR,GAAe9B,EACnB,GAAI6B,EAAen1C,OAAS0hC,EAAWK,QAAS,CAC5CqT,EAAcA,IAAgBD,EAAerI,iBACtCqI,EAAerI,UACtB,IAAIuI,EAAe1R,EAAmBC,GAClCyR,GAAgBnR,EAAkBmR,KAAeF,EAAeG,cAAe,EACvF,CACA,IAAKH,EAAen1C,OAAS0hC,EAAW8K,UAAY2I,EAAen1C,OAAS0hC,EAAWK,UAAYqT,EAAa,CACxG5B,EAAe+B,gBAAkBJ,EAAen1C,OAAS0hC,EAAWK,SAAsC,SAA3BoT,EAAe/Y,UAC9FgY,GAAqB,GAEzB,IAAIoB,EAAgB,CAChBrM,IAAKA,EACLgC,OAAQD,EACRE,WAAYA,EACZC,cAAeA,EACfC,UAAWA,EACXZ,cAAeA,EACfC,iBAAkBA,EAClB2I,UAAWA,EACX/H,iBAAkBA,EAClBxE,iBAAkBA,EAClB0E,WAAYA,EACZzE,YAAaA,EACbwM,eAAgBA,EAChB7H,eAAgBA,EAChBC,aAAcA,EACdC,aAAcA,EACduI,mBAAoBA,EACpBT,YAAaA,EACbC,aAAcA,EACdE,kBAAmBA,EACnBC,iBAAkBA,EAClBE,sBAAuBA,EACvBnI,gBAAiBA,EACjBI,aAAa,GAEjB,GAAIiJ,EAAen1C,OAAS0hC,EAAWK,SAAsC,aAA3BoT,EAAe/Y,cAA8D,IAApC+Y,EAAehI,WAAWxgC,WAChH,CACGwoC,EAAen1C,OAAS0hC,EAAWK,cAAkD,IAAvCoT,EAAehI,WAAWM,UAAqE,iBAAvC0H,EAAehI,WAAWM,WAChI+H,EAActJ,aAAc,GAEhC,IAAI,IAA0F7D,GAAtFC,GAAYrI,EAAqCliC,MAAM4N,KAAKg4B,EAAmBC,OAAgByE,GAAQC,MAAavmB,MAAM,CAC9H,IACI0zB,GAAsBrC,GADb/K,GAAM17B,MACmC6oC,GAClDC,IACAN,EAAe7O,WAAWl9B,KAAKqsC,GAEvC,CACJ,CACA,IAAIC,GAAgB,KACpB,GAAI7R,EAAUD,KAAQ8R,GAAgB/R,EAAmBC,IACrD,IAAI,IAAsG+R,GAAlGC,GAAa3V,EAAqCliC,MAAM4N,KAAKg4B,EAAmB+R,QAA4BC,GAASC,MAAc7zB,MAAM,CAC7I,IACI8zB,GAAuBzC,GADbuC,GAAOhpC,MACmC6oC,GACpDK,KACA3R,EAAkBwR,MAAmBG,GAAqBC,UAAW,GACrEX,EAAe7O,WAAWl9B,KAAKysC,IAEvC,CAER,CACA,IAAItD,GAAS5O,EAAmBC,GAyEhC,OAxEI2O,IAAUvO,EAAauO,KAAWrO,EAAkBqO,MACpD4C,EAAeW,UAAW,GAE1BX,EAAen1C,OAAS0hC,EAAWK,SAAsC,WAA3BoT,EAAe/Y,SAtcrE,SAA0B8G,EAAU33B,EAAUuoC,GAC1C,IAAIrX,EAAMyG,EAASE,cACnB,GAAK3G,EAAL,CAGA,IACIsZ,EADAC,GAAQ,EAEZ,IACID,EAAatZ,EAAIn6B,SAASyzC,UAC9B,CAAE,MAAO5rC,GACL,MACJ,CACA,GAAmB,aAAf4rC,EAAJ,CAcA,IAAIE,EAAW,cACf,GAAIxZ,EAAIr8B,SAASC,OAAS41C,GAAY/S,EAASt/B,MAAQqyC,GAA6B,KAAjB/S,EAASt/B,IAExE,OADA2e,WAAWhX,EAAU,GACd23B,EAASha,iBAAiB,OAAQ3d,GAE7C23B,EAASha,iBAAiB,OAAQ3d,EANlC,KAbA,CACI,IAAI8nB,EAAQ9Q,WAAW,WACdyzB,IACDzqC,IACAyqC,GAAQ,EAEhB,EAAGlC,GACH5Q,EAASha,iBAAiB,OAAQ,WAC9BoK,aAAaD,GACb2iB,GAAQ,EACRzqC,GACJ,EAEJ,CArBA,CA4BJ,CAuaQ2qC,CAAiBtS,EAAI,WACjB,IAAIuS,EAAYvS,EAAGoO,gBACnB,GAAImE,GAAavC,EAAc,CAC3B,IAAIwC,EAAuBhD,GAAoB+C,EAAW,CACtDhN,IAAKgN,EACLhL,OAAQD,EACRE,WAAYA,EACZC,cAAeA,EACfC,UAAWA,EACXZ,cAAeA,EACfC,iBAAkBA,EAClB2I,WAAW,EACX/H,iBAAkBA,EAClBxE,iBAAkBA,EAClB0E,WAAYA,EACZzE,YAAaA,EACbwM,eAAgBA,EAChB7H,eAAgBA,EAChBC,aAAcA,EACdC,aAAcA,EACduI,mBAAoBA,EACpBT,YAAaA,EACbC,aAAcA,EACdE,kBAAmBA,EACnBC,iBAAkBA,EAClBE,sBAAuBA,EACvBnI,gBAAiBA,IAEjBsK,GACAxC,EAAahQ,EAAIwS,EAEzB,CACJ,EAAGtC,GAEHqB,EAAen1C,OAAS0hC,EAAWK,SAAsC,SAA3BoT,EAAe/Y,SAA+D,iBAAlC+Y,EAAehI,WAAWK,MAAuD,eAAlC2H,EAAehI,WAAWK,KAA0D,YAAlC2H,EAAehI,WAAWK,KAA+D,iBAAnC2H,EAAehI,WAAW9sC,MAA8E,QAAzDinC,EAAqB6N,EAAehI,WAAW9sC,QAxcvV,SAA8Bg2C,EAAM9qC,EAAU+qC,GAC1C,IACIC,EADAP,GAAQ,EAEZ,IACIO,EAAmBF,EAAK3I,KAC5B,CAAE,MAAOvjC,GACL,MACJ,CACA,IAAIosC,EAAJ,CACA,IAAIljB,EAAQ9Q,WAAW,WACdyzB,IACDzqC,IACAyqC,GAAQ,EAEhB,EAAGM,GACHD,EAAKntB,iBAAiB,OAAQ,WAC1BoK,aAAaD,GACb2iB,GAAQ,EACRzqC,GACJ,EAX4B,CAYhC,CAqbQirC,CAAqB5S,EAAI,WACrB,GAAImQ,EAAkB,CAClB,IAAI0C,EAAqBrD,GAAoBxP,EAAI,CAC7CuF,IAAKA,EACLgC,OAAQD,EACRE,WAAYA,EACZC,cAAeA,EACfC,UAAWA,EACXZ,cAAeA,EACfC,iBAAkBA,EAClB2I,WAAW,EACX/H,iBAAkBA,EAClBxE,iBAAkBA,EAClB0E,WAAYA,EACZzE,YAAaA,EACbwM,eAAgBA,EAChB7H,eAAgBA,EAChBC,aAAcA,EACdC,aAAcA,EACduI,mBAAoBA,EACpBT,YAAaA,EACbC,aAAcA,EACdE,kBAAmBA,EACnBC,iBAAkBA,EAClBE,sBAAuBA,EACvBnI,gBAAiBA,IAEjB2K,GACA1C,EAAiBnQ,EAAI6S,EAE7B,CACJ,EAAGxC,GAEAkB,CACX,CAkEA,SAASuB,GAA0BtH,GAC/B,OAAOA,GAAMA,EAAGuH,YAAc9xC,OAAOmC,UAAUC,eAAeC,KAAKkoC,EAAI,WAAaA,EAAY,QAAIA,CACxG,CACA,SAASwH,GAAwBhT,GAC7B,GAAIA,EAAG+S,WAAY,OAAO/S,EAC1B,IAAIiT,EAAKjT,EAAGhrB,QACZ,GAAiB,mBAANi+B,EAAkB,CACzB,IAAItN,EAAK,SAASuN,IACd,OAAIzX,EAAY/6B,KAAMwyC,GACX7Y,QAAQC,UAAU2Y,EAAIvlC,UAAWhN,KAAKD,aAE1CwyC,EAAGxsC,MAAM/F,KAAMgN,UAC1B,EACAi4B,EAAGviC,UAAY6vC,EAAG7vC,SACtB,MAAOuiC,EAAK,CAAC,EAab,OAZA1kC,OAAOg1B,eAAe0P,EAAI,aAAc,CACpC58B,OAAO,IAEX9H,OAAOC,KAAK8+B,GAAIl/B,QAAQ,SAASyC,GAC7B,IAAI4vC,EAAIlyC,OAAOg+B,yBAAyBe,EAAIz8B,GAC5CtC,OAAOg1B,eAAe0P,EAAIpiC,EAAG4vC,EAAEjuC,IAAMiuC,EAAI,CACrChd,YAAY,EACZjxB,IAAK,WACD,OAAO86B,EAAGz8B,EACd,GAER,GACOoiC,CACX,CACA,IAAIyN,GAAuB,CACvBhyC,QAAS,CAAC,GAEViyC,GAAMv6C,OACNw6C,GAAW,WACX,MAAO,CACHC,kBAAkB,EAClBthC,MAAOohC,GACPG,KAAMH,GACNI,IAAKJ,GACLK,OAAQL,GACRM,UAAWN,GACXO,QAASP,GACTQ,OAAQR,GACRS,cAAeT,GACfU,MAAOV,GACPW,IAAKX,GACLY,MAAOZ,GACPa,OAAQb,GACRc,KAAMd,GACNe,QAASf,GACTgB,KAAMhB,GACNiB,MAAOjB,GACPkB,KAAMlB,GACNmB,QAASnB,GACToB,MAAOpB,GACPqB,QAASrB,GACTsB,SAAUtB,GACVuB,OAAQvB,GACRwB,UAAWxB,GACXyB,OAAQzB,GACR0B,QAAS1B,GAEjB,EACAD,GAAqBhyC,QAAUkyC,KAC/BF,GAAqBhyC,QAAQ4zC,aAAe1B,GAC5C,IAAI2B,GAA8B7B,GAAqBhyC,QAQnD8zC,GAA+BlC,GANa/xC,OAAOk0C,OAAuBl0C,OAAOg1B,eAAe,CAChGmF,UAAW,KACXpmB,QAH0B,CAAC,GAI5BrK,OAAOyqC,YAAa,CACnBrsC,MAAO,aAGPssC,GAASJ,GACTK,GAAwBJ,GACxBK,GAAmC,SAASC,GAE5C,SAASC,EAAe52C,EAAS62C,EAAMC,EAAQ3xC,EAAQ4xC,EAAMC,GACzD,IAAIpT,EA4BJ,OA3BAA,EAAQ+S,EAAOlyC,KAAK5C,KAAM7B,IAAY6B,MAChC3B,KAAO,iBACb0jC,EAAMqT,OAASj3C,EACX+2C,IACAnT,EAAMmT,KAAOA,GAEb5xC,IACAy+B,EAAMz+B,OAASA,GAEf6xC,IACApT,EAAMxoC,OAAS47C,QAEC,IAATH,QAA0C,IAAXC,IAClB,iBAATD,GACPjT,EAAMiT,KAAOA,EACbjT,EAAMkT,OAASA,IAEflT,EAAMiT,KAAOA,EAAKA,KAClBjT,EAAMkT,OAASD,EAAKC,OACpBlT,EAAMsT,QAAUJ,EAAOD,KACvBjT,EAAMuT,UAAYL,EAAOA,SAGjClT,EAAMwT,aACF30B,MAAM40B,mBACN50B,MAAM40B,kBAAkBzT,EAAOgT,GAE5BhT,CACX,CA/BApH,EAAUoa,EAAgBD,GAgC1B,IAAIxT,EAASyT,EAAeryC,UAoD5B,OAnDA4+B,EAAOiU,WAAa,WAChBv1C,KAAK7B,QAAU6B,KAAKzG,OAASyG,KAAKzG,OAAS,KAAO,GAClDyG,KAAK7B,SAAW6B,KAAKk1C,KAAOl1C,KAAKk1C,KAAO,mBACf,IAAdl1C,KAAKg1C,OACZh1C,KAAK7B,SAAW,IAAM6B,KAAKg1C,KAAO,IAAMh1C,KAAKi1C,QAEjDj1C,KAAK7B,SAAW,KAAO6B,KAAKo1C,MAChC,EACA9T,EAAOmU,eAAiB,SAAwBC,GAC5C,IAAI3T,EAAQ/hC,KACZ,IAAKA,KAAKsD,OAAQ,MAAO,GACzB,IAAIqyC,EAAM31C,KAAKsD,OACF,MAAToyC,IAAeA,EAAQf,GAAO9B,kBAC9B+B,IACIc,IAAOC,EAAMf,GAAsBe,IAE3C,IAIIC,EAAMC,EAJNC,EAAQH,EAAIt9C,MAAM,SAClB09C,EAAQv9C,KAAKC,IAAIuH,KAAKg1C,KAAO,EAAG,GAChCgB,EAAMx9C,KAAK0wB,IAAIlpB,KAAKg1C,KAAO,EAAGc,EAAMp9C,QACpC0tB,EAAWhuB,OAAO49C,GAAKt9C,OAE3B,GAAIg9C,EAAO,CACP,IAAIO,EAAuBtB,GAAOL,cAAa,GAAOxB,EAAOmD,EAAqBnD,KAAMe,EAAOoC,EAAqBpC,KAAMP,EAAM2C,EAAqB3C,IACrJsC,EAAO,SAASvyB,GACZ,OAAOyvB,EAAKQ,EAAIjwB,GACpB,EACAwyB,EAAQ,SAASxyB,GACb,OAAOwwB,EAAKxwB,EAChB,CACJ,MACIuyB,EAAOC,EAAQ,SAASnyC,GACpB,OAAOA,CACX,EAEJ,OAAOoyC,EAAM7yC,MAAM8yC,EAAOC,GAAK7pC,IAAI,SAAS6oC,EAAMkB,GAC9C,IAAI17B,EAASu7B,EAAQ,EAAIG,EACrBC,EAAS,KAAO,IAAM37B,GAAQvX,OAAOmjB,GAAY,MACrD,GAAI5L,IAAWunB,EAAMiT,KAAM,CACvB,IAAIoB,EAAUP,EAAMM,EAAO76C,QAAQ,MAAO,MAAQ05C,EAAK/xC,MAAM,EAAG8+B,EAAMkT,OAAS,GAAG35C,QAAQ,SAAU,KACpG,OAAOs6C,EAAK,KAAOC,EAAMM,GAAUnB,EAAO,MAAQoB,EAAUR,EAAK,IACrE,CACA,MAAO,IAAMC,EAAMM,GAAUnB,CACjC,GAAG7sC,KAAK,KACZ,EACAm5B,EAAOxyB,SAAW,WACd,IAAIvJ,EAAOvF,KAAKy1C,iBAIhB,OAHIlwC,IACAA,EAAO,OAASA,EAAO,MAEpBvF,KAAK3B,KAAO,KAAO2B,KAAK7B,QAAUoH,CAC7C,EACOwvC,CACX,CAtFuC,CAsFrCxZ,EAAmB3a,QACjBy1B,GAAmBxB,GACvBA,GAAmBvgC,QAAUugC,GAC7B,IAAIyB,GAAY,CAAC,EACjBA,GAAUC,QAAUtsC,OAAO,WAC3BqsC,GAAUE,GAAKvsC,OAAO,MACtB,IAAIwsC,GAAgB,CAChBC,MAAO,KACPC,YAAa,KACbC,cAAe,KACfC,WAAY,KACZC,WAAY,IACZC,WAAY,KACZC,MAAO,KACPC,YAAa,IACbC,aAAc,IACdC,UAAW,GACXC,OAAQ,OACRC,WAAW,GAKXC,GAAgC,WAChC,SAASC,EAAYC,GACjBx3C,KAAKw3C,QAAUA,CACnB,CACA,IAAIlW,EAASiW,EAAY70C,UAgRzB,OA/QA4+B,EAAOmW,OAAS,SAAgBtV,EAAOkV,GACnC,IAAIh5C,EAAO,IAAM8jC,EAAM9jC,KACnBq5C,EAASvV,EAAMuV,OAAS13C,KAAK23C,SAASxV,EAAO,UAAY,GAM7D,QALoC,IAAzBA,EAAMyV,KAAKC,UAClBx5C,GAAQ8jC,EAAMyV,KAAKC,UACZH,IACPr5C,GAAQ,KAER8jC,EAAM2V,MACN93C,KAAK+3C,MAAM5V,EAAO9jC,EAAOq5C,OACtB,CACH,IAAI1B,GAAO7T,EAAMyV,KAAKI,SAAW,KAAOX,EAAY,IAAM,IAC1Dr3C,KAAKw3C,QAAQn5C,EAAOq5C,EAAS1B,EAAK7T,EACtC,CACJ,EACAb,EAAO2W,YAAc,SAAqB9V,EAAO7gB,GAC7C,IAAIjZ,EAEAA,EADe,SAAf85B,EAAMzmC,KACEsE,KAAKk4C,IAAI/V,EAAO,KAAM,cACR,YAAfA,EAAMzmC,KACLsE,KAAKk4C,IAAI/V,EAAO,KAAM,iBACZ,WAAX7gB,EACCthB,KAAKk4C,IAAI/V,EAAO,KAAM,cAEtBniC,KAAKk4C,IAAI/V,EAAO,KAAM,eAIlC,IAFA,IAAIgW,EAAMhW,EAAM8L,OACZmK,EAAQ,EACND,GAAoB,SAAbA,EAAIz8C,MACb08C,GAAS,EACTD,EAAMA,EAAIlK,OAEd,GAAI5lC,EAAMhP,SAAS,MAAO,CACtB,IAAI+9C,EAASp3C,KAAKk4C,IAAI/V,EAAO,KAAM,UACnC,GAAIiV,EAAO1+C,OACP,IAAI,IAAIikC,EAAO,EAAGA,EAAOyb,EAAOzb,IAAOt0B,GAAS+uC,CAExD,CACA,OAAO/uC,CACX,EACAi5B,EAAOyW,MAAQ,SAAe5V,EAAO4T,GACjC,IAEIW,EAFAsB,EAAUh4C,KAAKk4C,IAAI/V,EAAO,UAAW,cACzCniC,KAAKw3C,QAAQzB,EAAQiC,EAAU,IAAK7V,EAAO,SAEvCA,EAAM2V,OAAS3V,EAAM2V,MAAMp/C,QAC3BsH,KAAKssB,KAAK6V,GACVuU,EAAQ12C,KAAKk4C,IAAI/V,EAAO,UAExBuU,EAAQ12C,KAAKk4C,IAAI/V,EAAO,QAAS,aAEjCuU,GAAO12C,KAAKw3C,QAAQd,GACxB12C,KAAKw3C,QAAQ,IAAKrV,EAAO,MAC7B,EACAb,EAAOhV,KAAO,SAAc6V,GAExB,IADA,IAAIj/B,EAAOi/B,EAAM2V,MAAMp/C,OAAS,EAC1BwK,EAAO,GACsB,YAA3Bi/B,EAAM2V,MAAM50C,GAAMxH,MACtBwH,GAAQ,EAGZ,IADA,IAAIm0C,EAAYr3C,KAAKk4C,IAAI/V,EAAO,aACxB2G,EAAK,EAAGA,EAAK3G,EAAM2V,MAAMp/C,OAAQowC,IAAK,CAC1C,IAAIuP,EAAQlW,EAAM2V,MAAMhP,GACpBwP,EAASt4C,KAAKk4C,IAAIG,EAAO,UACzBC,GAAQt4C,KAAKw3C,QAAQc,GACzBt4C,KAAKiJ,UAAUovC,EAAOn1C,IAAS4lC,GAAMuO,EACzC,CACJ,EACA/V,EAAO2O,QAAU,SAAiB9N,GAC9B,IAAInH,EAAOh7B,KAAKk4C,IAAI/V,EAAO,OAAQ,eAC/BlH,EAAQj7B,KAAKk4C,IAAI/V,EAAO,QAAS,gBACrCniC,KAAKw3C,QAAQ,KAAOxc,EAAOmH,EAAM9e,KAAO4X,EAAQ,KAAMkH,EAC1D,EACAb,EAAOiX,KAAO,SAAcpW,EAAOkV,GAC/B,IAAIW,EAAUh4C,KAAKk4C,IAAI/V,EAAO,UAAW,SACrCqW,EAASrW,EAAM3+B,KAAOw0C,EAAUh4C,KAAK23C,SAASxV,EAAO,SACrDA,EAAMsW,YACND,GAAUrW,EAAMyV,KAAKa,WAAa,eAElCpB,IAAWmB,GAAU,KACzBx4C,KAAKw3C,QAAQgB,EAAQrW,EACzB,EACAb,EAAOtjC,SAAW,SAAmBmkC,GACjCniC,KAAKssB,KAAK6V,EACd,EACAb,EAAO4W,IAAM,SAAa/V,EAAOuW,EAAKp3B,GAClC,IAAIjZ,EAEJ,GADKiZ,IAAQA,EAASo3B,GAClBA,QAEqB,KADrBrwC,EAAQ85B,EAAMyV,KAAKc,IACe,OAAOrwC,EAE7C,IAAI4lC,EAAS9L,EAAM8L,OACnB,GAAe,WAAX3sB,EAAqB,CACrB,IAAK2sB,GAA0B,SAAhBA,EAAOvyC,MAAmBuyC,EAAO0K,QAAUxW,EACtD,MAAO,GAEX,GAAI8L,GAA0B,aAAhBA,EAAOvyC,KACjB,MAAO,EAEf,CACA,IAAKuyC,EAAQ,OAAOwI,GAAcn1B,GAClC,IAAIs3B,EAAQzW,EAAM0W,OAElB,GADKD,EAAME,WAAUF,EAAME,SAAW,CAAC,QACD,IAA3BF,EAAME,SAASx3B,GACtB,OAAOs3B,EAAME,SAASx3B,GAE1B,GAAe,WAAXA,GAAkC,UAAXA,EACvB,OAAOthB,KAAKi4C,YAAY9V,EAAO7gB,GAE/B,IArHU5d,EAqHNg7B,EAAS,QArHHh7B,EAqHwB4d,GApH/B,GAAGy3B,cAAgBr1C,EAAIT,MAAM,IAgIpC,OAXQjD,KAAK0+B,GACLr2B,EAAQrI,KAAK0+B,GAAQka,EAAOzW,GAE5ByW,EAAMI,KAAK,SAASlQ,GAEhB,QAAqB,KADrBzgC,EAAQygC,EAAG8O,KAAKc,IACkB,OAAO,CAC7C,QAGa,IAAVrwC,IAAuBA,EAAQouC,GAAcn1B,IACxDs3B,EAAME,SAASx3B,GAAUjZ,EAClBA,CACX,EACAi5B,EAAO2X,eAAiB,SAAwBL,GAC5C,IAAIvwC,EAaJ,OAZAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAIA,EAAGgP,OAAShP,EAAGgP,MAAMp/C,OAAS,QACD,IAAlBowC,EAAG8O,KAAKlB,MAKf,OAJAruC,EAAQygC,EAAG8O,KAAKlB,OACNr9C,SAAS,QACfgP,EAAQA,EAAM/M,QAAQ,UAAW,MAE9B,CAGnB,GACI+M,IAAOA,EAAQA,EAAM/M,QAAQ,MAAO,KACjC+M,CACX,EACAi5B,EAAO4X,iBAAmB,SAA0BN,EAAOzW,GACvD,IAAI95B,EAeJ,OAdAuwC,EAAMO,aAAa,SAASrQ,GACxB,QAA8B,IAAnBA,EAAG8O,KAAKU,OAKf,OAJAjwC,EAAQygC,EAAG8O,KAAKU,QACNj/C,SAAS,QACfgP,EAAQA,EAAM/M,QAAQ,UAAW,MAE9B,CAEf,QACqB,IAAV+M,EACPA,EAAQrI,KAAKk4C,IAAI/V,EAAO,KAAM,cACvB95B,IACPA,EAAQA,EAAM/M,QAAQ,MAAO,KAE1B+M,CACX,EACAi5B,EAAO8X,cAAgB,SAAuBR,EAAOzW,GACjD,IAAI95B,EAeJ,OAdAuwC,EAAMS,UAAU,SAASvQ,GACrB,QAA8B,IAAnBA,EAAG8O,KAAKU,OAKf,OAJAjwC,EAAQygC,EAAG8O,KAAKU,QACNj/C,SAAS,QACfgP,EAAQA,EAAM/M,QAAQ,UAAW,MAE9B,CAEf,QACqB,IAAV+M,EACPA,EAAQrI,KAAKk4C,IAAI/V,EAAO,KAAM,cACvB95B,IACPA,EAAQA,EAAM/M,QAAQ,MAAO,KAE1B+M,CACX,EACAi5B,EAAOgY,cAAgB,SAAuBV,GAC1C,IAAIvwC,EAOJ,OANAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAgB,SAAZA,EAAGptC,WAEkB,KADrB2M,EAAQygC,EAAG8O,KAAKI,SACkB,OAAO,CAEjD,GACO3vC,CACX,EACAi5B,EAAOiY,cAAgB,SAAuBX,GAC1C,IAAIvwC,EAaJ,OAZAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAIA,EAAGgP,QAAUhP,EAAGmF,SAAW2K,GAASA,EAAMD,QAAU7P,SACtB,IAAnBA,EAAG8O,KAAKU,OAKf,OAJAjwC,EAAQygC,EAAG8O,KAAKU,QACNj/C,SAAS,QACfgP,EAAQA,EAAM/M,QAAQ,UAAW,MAE9B,CAGnB,GACI+M,IAAOA,EAAQA,EAAM/M,QAAQ,MAAO,KACjC+M,CACX,EACAi5B,EAAOkY,SAAW,SAAkBZ,GAChC,IAAIvwC,EAOJ,OANAuwC,EAAMS,UAAU,SAASvQ,GACrB,QAA+B,IAApBA,EAAG8O,KAAKI,QAEf,OADA3vC,EAAQygC,EAAG8O,KAAKI,QAAQ18C,QAAQ,UAAW,KACpC,CAEf,GACO+M,CACX,EACAi5B,EAAOmY,aAAe,SAAsBb,GACxC,IAAIvwC,EAOJ,OANAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAIA,EAAGgP,OAA6B,IAApBhP,EAAGgP,MAAMp/C,aAEA,KADrB2P,EAAQygC,EAAG8O,KAAKlB,OACkB,OAAO,CAEjD,GACOruC,CACX,EACAi5B,EAAOoY,UAAY,SAAmBd,GAClC,OAAIA,EAAMhB,KAAKR,OAAewB,EAAMhB,KAAKR,QAEzCwB,EAAMI,KAAK,SAASlQ,GAChB,IAAIjvC,EAAIivC,EAAGmF,OACX,GAAIp0C,GAAKA,IAAM++C,GAAS/+C,EAAEo0C,QAAUp0C,EAAEo0C,SAAW2K,QACf,IAAnB9P,EAAG8O,KAAKU,OAAwB,CACvC,IAAI1rC,EAAQk8B,EAAG8O,KAAKU,OAAOjgD,MAAM,MAGjC,OADAgQ,GADAA,EAAQuE,EAAMA,EAAMlU,OAAS,IACf4C,QAAQ,MAAO,KACtB,CACX,CAER,GACO+M,GAZP,IAAIA,CAaR,EACAi5B,EAAOqY,aAAe,SAAsBf,GACxC,IAAIvwC,EAOJ,OANAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAIA,EAAGgP,OAAShP,EAAGgP,MAAMp/C,QAA2B,SAAjBowC,EAAG5lC,KAAKxH,WAElB,KADrB2M,EAAQygC,EAAG8O,KAAKP,WACkB,OAAO,CAEjD,GACOhvC,CACX,EACAi5B,EAAOqW,SAAW,SAAkBxV,EAAO3+B,GACvC,IAAI6E,EAAQ85B,EAAM3+B,GACd00C,EAAM/V,EAAMyV,KAAKp0C,GACrB,OAAI00C,GAAOA,EAAI7vC,QAAUA,EACd6vC,EAAIA,IAER7vC,CACX,EACAi5B,EAAOuX,KAAO,SAAc1W,GACxBniC,KAAKssB,KAAK6V,GACNA,EAAMyV,KAAKlB,OAAO12C,KAAKw3C,QAAQrV,EAAMyV,KAAKlB,MAClD,EACApV,EAAOxrB,KAAO,SAAcqsB,GACxBniC,KAAK+3C,MAAM5V,EAAOniC,KAAK23C,SAASxV,EAAO,aACnCA,EAAMyV,KAAKgC,cACX55C,KAAKw3C,QAAQrV,EAAMyV,KAAKgC,aAAczX,EAAO,MAErD,EACAb,EAAOr4B,UAAY,SAAmBk5B,EAAOkV,GACzC,IAAKr3C,KAAKmiC,EAAMzmC,MACZ,MAAM,IAAIklB,MAAM,yBAA2BuhB,EAAMzmC,KAAO,mDAE5DsE,KAAKmiC,EAAMzmC,MAAMymC,EAAOkV,EAC5B,EACOE,CACX,CArRoC,GAsRhCsC,GAAgBvC,GACpBA,GAAgBhjC,QAAUgjC,GAC1B,IAAIwC,GAAkBD,GACtB,SAASE,GAAc5X,EAAOqV,GAChB,IAAIsC,GAAgBtC,GAC1BvuC,UAAUk5B,EAClB,CACA,IAAI6X,GAAgBD,GACpBA,GAAczlC,QAAUylC,GACxB,IAAIE,GAAc3D,GAAUC,QAAS2D,GAAS5D,GAAUE,GACpD2D,GAAqB9D,GACrB+D,GAAiBP,GACjBQ,GAAgBL,GACpB,SAASM,GAAYh5C,EAAK2sC,GACtB,IAAIsM,EAAS,IAAIj5C,EAAIvB,YACrB,IAAI,IAAI+oC,KAAMxnC,EACV,GAAKf,OAAOmC,UAAUC,eAAeC,KAAKtB,EAAKwnC,IAGpC,eAAPA,EAAJ,CACA,IAAIzgC,EAAQ/G,EAAIwnC,GACZptC,OAAwB,IAAV2M,EAAwB,YAAcizB,EAASjzB,GACtD,WAAPygC,GAA4B,WAATptC,EACfuyC,IAAQsM,EAAOzR,GAAMmF,GACX,WAAPnF,EACPyR,EAAOzR,GAAMzgC,EACN5O,MAAMC,QAAQ2O,GACrBkyC,EAAOzR,GAAMzgC,EAAM8D,IAAI,SAAS9G,GAC5B,OAAOi1C,GAAYj1C,EAAGk1C,EAC1B,IAEa,WAAT7+C,GAA+B,OAAV2M,IAAgBA,EAAQiyC,GAAYjyC,IAC7DkyC,EAAOzR,GAAMzgC,EAbgB,CAgBrC,OAAOkyC,CACX,CACA,IAAIC,GAAyB,WACzB,SAASC,EAAMC,GAKX,IAAI,IAAIr8C,UAJS,IAAbq8C,IAAqBA,EAAW,CAAC,GACrC16C,KAAK43C,KAAO,CAAC,EACb53C,KAAKi6C,KAAe,EACpBj6C,KAAKk6C,KAAU,EACCQ,EACZ,GAAa,UAATr8C,EAAkB,CAClB2B,KAAK83C,MAAQ,GACb,IAAI,IAAsE/T,EAAlEC,EAAYrI,EAAqC+e,EAASr8C,MAAiB0lC,EAAQC,KAAavmB,MAAM,CAC1G,IAAI0kB,EAAQ4B,EAAM17B,MACS,mBAAhB85B,EAAMx7B,MACb3G,KAAKugB,OAAO4hB,EAAMx7B,SAElB3G,KAAKugB,OAAO4hB,EAEpB,CACJ,MACIniC,KAAK3B,GAAQq8C,EAASr8C,EAGlC,CACA,IAAIijC,EAASmZ,EAAM/3C,UA2SnB,OA1SA4+B,EAAOqZ,WAAa,SAAoB90C,GAEpC,GADAA,EAAM+0C,YAAc56C,KAChB6F,EAAMrD,OAASxC,KAAKsD,QAAU,aAAa+I,KAAKxG,EAAMrD,OAAQ,CAC9D,IAAIu9B,EAAK//B,KAAKsD,OACduC,EAAMrD,MAAQqD,EAAMrD,MAAMlH,QAAQ,aAAc,KAAOykC,EAAG8a,MAAMxzC,KAAO,IAAM04B,EAAGgW,MAAMf,KAAO,IAAMjV,EAAGgW,MAAMd,OAAS,KACzH,CACA,OAAOpvC,CACX,EACAy7B,EAAOoV,MAAQ,SAAev7B,GAE1B,OADAnb,KAAKiuC,OAAO6M,YAAY96C,KAAMmb,GACvBnb,IACX,EACAshC,EAAO/G,OAAS,SAAgBwgB,GAE5B,IAAI,IAAI18C,UADU,IAAd08C,IAAsBA,EAAY,CAAC,GACvBA,EACZ/6C,KAAK3B,GAAQ08C,EAAU18C,GAE3B,OAAO2B,IACX,EACAshC,EAAOgX,OAAS,SAAgBn9B,GAE5B,OADAnb,KAAKiuC,OAAO+M,aAAah7C,KAAMmb,GACxBnb,IACX,EACAshC,EAAO2Z,UAAY,SAAmBC,UAC3Bl7C,KAAK43C,KAAKU,cACVt4C,KAAK43C,KAAKlB,MACZwE,UAAoBl7C,KAAK43C,KAAKI,OACvC,EACA1W,EAAO36B,MAAQ,SAAeo0C,QACR,IAAdA,IAAsBA,EAAY,CAAC,GACvC,IAAIR,EAASD,GAAYt6C,MACzB,IAAI,IAAI3B,KAAQ08C,EACZR,EAAOl8C,GAAQ08C,EAAU18C,GAE7B,OAAOk8C,CACX,EACAjZ,EAAO6Z,WAAa,SAAoBJ,QAClB,IAAdA,IAAsBA,EAAY,CAAC,GACvC,IAAIR,EAASv6C,KAAK2G,MAAMo0C,GAExB,OADA/6C,KAAKiuC,OAAO6M,YAAY96C,KAAMu6C,GACvBA,CACX,EACAjZ,EAAO8Z,YAAc,SAAqBL,QACpB,IAAdA,IAAsBA,EAAY,CAAC,GACvC,IAAIR,EAASv6C,KAAK2G,MAAMo0C,GAExB,OADA/6C,KAAKiuC,OAAO+M,aAAah7C,KAAMu6C,GACxBA,CACX,EACAjZ,EAAOz7B,MAAQ,SAAe1H,EAASiM,GAEnC,QADa,IAATA,IAAiBA,EAAO,CAAC,GACzBpK,KAAKsD,OAAQ,CACb,IAAI+3C,EAAgBr7C,KAAKs7C,QAAQlxC,GAAO4rC,EAAMqF,EAAcrF,IAAKD,EAAQsF,EAActF,MACvF,OAAO/1C,KAAKsD,OAAOu3C,MAAMh1C,MAAM1H,EAAS,CACpC82C,OAAQc,EAAMd,OACdD,KAAMe,EAAMf,MACb,CACCC,OAAQe,EAAIf,OACZD,KAAMgB,EAAIhB,MACX5qC,EACP,CACA,OAAO,IAAI+vC,GAAmBh8C,EAClC,EACAmjC,EAAOia,kBAAoB,WACvB,MAAO,CACH/2C,IAAK,SAAa29B,EAAO3+B,GACrB,MAAa,YAATA,EACO2+B,EACS,SAAT3+B,EACA,WACH,OAAO2+B,EAAM0W,OAAO2C,SACxB,EAEOrZ,EAAM3+B,EAErB,EACAqB,IAAK,SAAas9B,EAAO3+B,EAAM6E,GAC3B,OAAI85B,EAAM3+B,KAAU6E,IACpB85B,EAAM3+B,GAAQ6E,EACD,SAAT7E,GAA4B,UAATA,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAAsD,SAATA,GAC5H2+B,EAAMsZ,cAHwB,CAMtC,EAER,EACAna,EAAOma,UAAY,WACf,GAAIz7C,KAAKi6C,IAAc,CACnBj6C,KAAKi6C,KAAe,EAEpB,IADA,IAAI90C,EAAOnF,KACLmF,EAAOA,EAAK8oC,QACd9oC,EAAK80C,KAAe,CAE5B,CACJ,EACA3Y,EAAOn8B,KAAO,WACV,GAAKnF,KAAKiuC,OAAV,CACA,IAAIiI,EAASl2C,KAAKiuC,OAAOlmC,MAAM/H,MAC/B,OAAOA,KAAKiuC,OAAO6J,MAAM5B,EAAS,EAFH,CAGnC,EACA5U,EAAOoa,WAAa,SAAoBtxC,EAAMuxC,GAC1C,IAAIvW,EAAMplC,KAAKsD,OAAOyyC,MACtB,GAAI3rC,EAAKrC,MACLq9B,EAAMplC,KAAK47C,eAAexxC,EAAKrC,MAAO4zC,QACnC,GAAIvxC,EAAKyxC,KAAM,CAElB,IAAI3F,GADJyF,EAAuB37C,KAAK8O,YACM3M,QAAQiI,EAAKyxC,OAC/B,IAAZ3F,IAAe9Q,EAAMplC,KAAK47C,eAAe1F,EAAQyF,GACzD,CACA,OAAOvW,CACX,EACA9D,EAAOsa,eAAiB,SAAwB1F,EAAQyF,GAIpD,IAHA,IAAInD,EAASmD,GAAwB37C,KAAK8O,WACtCmmC,EAASj1C,KAAKsD,OAAOyyC,MAAMd,OAC3BD,EAAOh1C,KAAKsD,OAAOyyC,MAAMf,KACrBlM,EAAK,EAAGA,EAAKoN,EAAQpN,IACN,OAAf0P,EAAO1P,IACPmM,EAAS,EACTD,GAAQ,GAERC,GAAU,EAGlB,MAAO,CACHA,OAAQA,EACRD,KAAMA,EAEd,EACA1T,EAAOve,KAAO,WACV,GAAK/iB,KAAKiuC,OAAV,CACA,IAAIiI,EAASl2C,KAAKiuC,OAAOlmC,MAAM/H,MAC/B,OAAOA,KAAKiuC,OAAO6J,MAAM5B,EAAS,EAFH,CAGnC,EACA5U,EAAOga,QAAU,SAAiBlxC,GAC9B,IAAI2rC,EAAQ,CACRd,OAAQj1C,KAAKsD,OAAOyyC,MAAMd,OAC1BD,KAAMh1C,KAAKsD,OAAOyyC,MAAMf,MAExBgB,EAAMh2C,KAAKsD,OAAO0yC,IAAM,CACxBf,OAAQj1C,KAAKsD,OAAO0yC,IAAIf,OAAS,EACjCD,KAAMh1C,KAAKsD,OAAO0yC,IAAIhB,MACtB,CACAC,OAAQc,EAAMd,OAAS,EACvBD,KAAMe,EAAMf,MAEhB,GAAI5qC,EAAKyxC,KAAM,CACX,IAAIF,EAAuB37C,KAAK8O,WAC5BonC,EAASyF,EAAqBx5C,QAAQiI,EAAKyxC,OAC/B,IAAZ3F,IACAH,EAAQ/1C,KAAK47C,eAAe1F,EAAQyF,GACpC3F,EAAMh2C,KAAK47C,eAAe1F,EAAS9rC,EAAKyxC,KAAKnjD,OAAQijD,GAE7D,MACQvxC,EAAK2rC,MACLA,EAAQ,CACJd,OAAQ7qC,EAAK2rC,MAAMd,OACnBD,KAAM5qC,EAAK2rC,MAAMf,MAEd5qC,EAAKrC,QACZguC,EAAQ/1C,KAAK47C,eAAexxC,EAAKrC,QAEjCqC,EAAK4rC,IACLA,EAAM,CACFf,OAAQ7qC,EAAK4rC,IAAIf,OACjBD,KAAM5qC,EAAK4rC,IAAIhB,MAEa,iBAAlB5qC,EAAK0xC,SACnB9F,EAAMh2C,KAAK47C,eAAexxC,EAAK0xC,UACxB1xC,EAAKrC,QACZiuC,EAAMh2C,KAAK47C,eAAexxC,EAAKrC,MAAQ,IAS/C,OANIiuC,EAAIhB,KAAOe,EAAMf,MAAQgB,EAAIhB,OAASe,EAAMf,MAAQgB,EAAIf,QAAUc,EAAMd,UACxEe,EAAM,CACFf,OAAQc,EAAMd,OAAS,EACvBD,KAAMe,EAAMf,OAGb,CACHgB,IAAKA,EACLD,MAAOA,EAEf,EACAzU,EAAO4W,IAAM,SAAa10C,EAAMu4C,GAE5B,OADU,IAAI3B,IACHlC,IAAIl4C,KAAMwD,EAAMu4C,EAC/B,EACAza,EAAO0a,OAAS,WAKZ,OAJIh8C,KAAKiuC,QACLjuC,KAAKiuC,OAAOjP,YAAYh/B,MAE5BA,KAAKiuC,YAAS,EACPjuC,IACX,EACAshC,EAAO2a,YAAc,WACjB,IAAI,IAAIC,EAAOlvC,UAAUtU,OAAQo/C,EAAQ,IAAIr+C,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7ErE,EAAMqE,GAAQnvC,UAAUmvC,GAE5B,GAAIn8C,KAAKiuC,OAAQ,CAGb,IAFA,IAEiElK,EAF7DqY,EAAWp8C,KACXq8C,GAAY,EACRrY,EAAYrI,EAAqCmc,KAAiB/T,EAAQC,KAAavmB,MAAM,CACjG,IAAI0kB,EAAQ4B,EAAM17B,MACd85B,IAAUniC,KACVq8C,GAAY,EACLA,GACPr8C,KAAKiuC,OAAO6M,YAAYsB,EAAUja,GAClCia,EAAWja,GAEXniC,KAAKiuC,OAAO+M,aAAaoB,EAAUja,EAE3C,CACKka,GACDr8C,KAAKg8C,QAEb,CACA,OAAOh8C,IACX,EACAshC,EAAOuX,KAAO,WAEV,IADA,IAAIyD,EAAUt8C,KACRs8C,EAAQrO,QAAkC,aAAxBqO,EAAQrO,OAAOvyC,MACnC4gD,EAAUA,EAAQrO,OAEtB,OAAOqO,CACX,EACAhb,EAAO93B,OAAS,SAAgB0c,EAAGq2B,GAC/B,IAAIC,EAAQ,CAAC,EACTC,EAAuB,MAAVF,EACjBA,EAASA,GAA0B,IAAIp4C,IACvC,IAAIu4C,EAAkB,EACtB,IAAI,IAAIr+C,KAAQ2B,KACZ,GAAKO,OAAOmC,UAAUC,eAAeC,KAAK5C,KAAM3B,IAGnC,WAATA,GAA8B,eAATA,EAAzB,CACA,IAAIgK,EAAQrI,KAAK3B,GACjB,GAAI5E,MAAMC,QAAQ2O,GACdm0C,EAAMn+C,GAAQgK,EAAM8D,IAAI,SAAS28B,GAC7B,MAAiE,iBAA9C,IAAPA,EAAqB,YAAcxN,EAASwN,KAAqBA,EAAGt/B,OACrEs/B,EAAGt/B,OAAO,KAAM+yC,GAEhBzT,CAEf,QACG,GAAuE,iBAAjD,IAAVzgC,EAAwB,YAAcizB,EAASjzB,KAAwBA,EAAMmB,OAC5FgzC,EAAMn+C,GAAQgK,EAAMmB,OAAO,KAAM+yC,QAC9B,GAAa,WAATl+C,EAAmB,CAC1B,IAAIs+C,EAAUJ,EAAO/3C,IAAI6D,EAAMwyC,OAChB,MAAX8B,IACAA,EAAUD,EACVH,EAAO13C,IAAIwD,EAAMwyC,MAAO6B,GACxBA,KAEJF,EAAMn+C,GAAQ,CACV23C,IAAK3tC,EAAM2tC,IACX2G,QAASA,EACT5G,MAAO1tC,EAAM0tC,MAErB,MACIyG,EAAMn+C,GAAQgK,CAzBsC,CAiC5D,OALIo0C,IACAD,EAAMD,OAAS,GAAGh0C,OAAOg0C,EAAO/7C,QAAQ2L,IAAI,SAASywC,GACjD,OAAOA,EAAOpzC,QAClB,IAEGgzC,CACX,EACAlb,EAAOka,QAAU,WAIb,OAHKx7C,KAAK68C,aACN78C,KAAK68C,WAAa,IAAIpyC,MAAMzK,KAAMA,KAAKu7C,sBAEpCv7C,KAAK68C,UAChB,EACAvb,EAAOxyB,SAAW,SAAkBguC,QACX,IAAjBA,IAAyBA,EAAezC,IACxCyC,EAAa7zC,YAAW6zC,EAAeA,EAAa7zC,WACxD,IAAIqzC,EAAU,GAId,OAHAQ,EAAa98C,KAAM,SAAS8oC,GACxBwT,GAAWxT,CACf,GACOwT,CACX,EACAhb,EAAO17B,KAAO,SAAc02C,EAASj5B,EAAMjZ,GACvC,IAAIvG,EAAO,CACPk5C,KAAM/8C,MAEV,IAAI,IAAI8oC,KAAM1+B,EAAKvG,EAAKilC,GAAM1+B,EAAK0+B,GACnC,OAAOwT,EAAQ12C,KAAKyd,EAAMxf,EAC9B,EACAk2B,EAAc0gB,EAAO,CACjB,CACIv4C,IAAK,UACLsC,IAAK,WACD,OAAOxE,IACX,KAGDy6C,CACX,CAlU6B,GAmUzBuC,GAASxC,GACbA,GAASlmC,QAAUkmC,GACnB,IACIyC,GAAgC,SAASC,GAEzC,SAASC,EAAYzC,GACjB,IAAI3Y,EAQJ,OAPI2Y,QAAsC,IAAnBA,EAASryC,OAAmD,iBAAnBqyC,EAASryC,QACrEqyC,EAAWpgB,EAAS,CAAC,EAAGogB,EAAU,CAC9BryC,MAAOjQ,OAAOsiD,EAASryC,WAG/B05B,EAAQmb,EAASt6C,KAAK5C,KAAM06C,IAAa16C,MACnCtE,KAAO,OACNqmC,CACX,CASA,OApBApH,EAAUwiB,EAAaD,GAYvBnjB,EAAcojB,EAAa,CACvB,CACIj7C,IAAK,WACLsC,IAAK,WACD,OAAOxE,KAAKwD,KAAKogB,WAAW,OAA0B,MAAjB5jB,KAAKwD,KAAK,EACnD,KAGD25C,CACX,CAtBoC,CADrBH,IAwBXI,GAAgBH,GACpBA,GAAgB3oC,QAAU2oC,GAC1B,IAaII,GAAwB7I,GAAa8I,kBAAmBC,GAAyB/I,GAAagJ,mBAC9FC,GAAejJ,GAAakJ,WAAYC,GAAiBnJ,GAAaoJ,aACtEC,GAAcrJ,GAAasJ,QAASC,GAASvJ,GAAarsC,KAQ1D61C,GAAgC,WAChC,SAASC,EAAYtI,EAAKvrC,GACtB,IAAiB,IAAbA,EAAK+B,IAAT,CACAnM,KAAKk+C,eAAevI,GACpB31C,KAAKm+C,OAASn+C,KAAKo+C,UAAUp+C,KAAKq+C,WAAY,SAC9C,IAAIt7B,EAAO3Y,EAAK+B,IAAM/B,EAAK+B,IAAI4W,UAAO,EAClCM,EAAOrjB,KAAKs+C,QAAQl0C,EAAK/C,KAAM0b,IAC9B/iB,KAAKu+C,SAAWn0C,EAAK/C,OACtBrH,KAAKu+C,QAAUn0C,EAAK/C,MAEpBrH,KAAKu+C,UAASv+C,KAAK64C,KAAOgF,GAAY79C,KAAKu+C,UAC3Cl7B,IAAMrjB,KAAKqjB,KAAOA,EATQ,CAUlC,CACA,IAAIie,EAAS2c,EAAYv7C,UAkFzB,OAjFA4+B,EAAOkd,SAAW,WAId,OAHKx+C,KAAKy+C,gBACNz+C,KAAKy+C,cAAgB,IAAIpB,GAAsBr9C,KAAKqjB,OAEjDrjB,KAAKy+C,aAChB,EACAnd,EAAOod,aAAe,SAAsBr7B,GACxC,IA5Bc3f,EAgCd,GAFiB,0CAEF2I,KAAKgX,IADV,2BACuBhX,KAAKgX,GAClC,OAAOs7B,mBAAmBt7B,EAAKu7B,OAAOl6C,OAAOm6C,UAAUnmD,SAE3D,GAPqB,iDAOF2T,KAAKgX,IANV,kCAM2BhX,KAAKgX,GAC1C,OApCU3f,EAoCU2f,EAAKu7B,OAAOl6C,OAAOm6C,UAAUnmD,QAnCrDomD,OACOA,OAAOz3C,KAAK3D,EAAK,UAAUoL,WAE3BjT,OAAOkjD,KAAKr7C,GAkCnB,IAAIs7C,EAAW37B,EAAK5W,MAAM,mCAAmC,GAC7D,MAAM,IAAImU,MAAM,mCAAqCo+B,EACzD,EACA1d,EAAO2d,iBAAmB,SAA0BC,GAChD,OAAOA,EAAgB5jD,QAAQ,8BAA+B,IAAI0D,MACtE,EACAsiC,EAAO6d,MAAQ,SAAehzC,GAC1B,MAAmE,iBAA/C,IAARA,EAAsB,YAAcmvB,EAASnvB,MAC1B,iBAAjBA,EAAIizC,UAAkD,iBAAlBjzC,EAAIkzC,WAA0B5lD,MAAMC,QAAQyS,EAAImzC,UACtG,EACAhe,EAAO4c,eAAiB,SAAwBvI,GAC5C,IAAI4J,EAAW5J,EAAIlpC,MAAM,gCACzB,GAAK8yC,EAAL,CACA,IAAIxJ,EAAQJ,EAAIl8B,YAAY8lC,EAAS3sC,OACjCojC,EAAML,EAAIxzC,QAAQ,KAAM4zC,GACxBA,GAAS,GAAKC,GAAO,IACrBh2C,KAAKq+C,WAAar+C,KAAKi/C,iBAAiBtJ,EAAIppC,UAAUwpC,EAAOC,IAJ5C,CAMzB,EACA1U,EAAOke,SAAW,SAAkBl9C,GAEhC,GADAtC,KAAK64C,KAAOgF,GAAYv7C,GACpBm7C,GAAan7C,GAEb,OADAtC,KAAKu+C,QAAUj8C,EACRq7C,GAAer7C,EAAM,SAASwM,WAAW9P,MAExD,EACAsiC,EAAOgd,QAAU,SAAiBpJ,EAAMnyB,GACpC,IAAa,IAATA,EAAgB,OAAO,EAC3B,GAAIA,EAAM,CACN,GAAoB,iBAATA,EACP,OAAOA,EACJ,GAAoB,mBAATA,EASX,IAAIgY,EAAYhY,EAAMs6B,IACzB,OAAOE,GAAuBkC,cAAc18B,GAAMjU,WAC/C,GAAIisB,EAAYhY,EAAMw6B,IACzB,OAAOx6B,EAAKjU,WACT,GAAI9O,KAAKm/C,MAAMp8B,GAClB,OAAOha,KAAKE,UAAU8Z,GAEtB,MAAM,IAAInC,MAAM,2CAA6CmC,EAAKjU,WACtE,CAhBI,IAAI4wC,EAAW38B,EAAKmyB,GACpB,GAAIwK,EAAU,CACV,IAAIvzC,EAAMnM,KAAKw/C,SAASE,GACxB,IAAKvzC,EACD,MAAM,IAAIyU,MAAM,uCAAyC8+B,EAAS5wC,YAEtE,OAAO3C,CACX,CAUR,KAAO,IAAInM,KAAKm+C,OACZ,OAAOn+C,KAAK0+C,aAAa1+C,KAAKq+C,YAC3B,GAAIr+C,KAAKq+C,WAAY,CACxB,IAAIsB,EAAO3/C,KAAKq+C,WAEhB,OADInJ,IAAMyK,EAAO5B,GAAOF,GAAY3I,GAAOyK,IACpC3/C,KAAKw/C,SAASG,EACzB,EACJ,EACAre,EAAO8c,UAAY,SAAmB5F,EAAQzC,GAC1C,QAAKyC,GACEA,EAAOoG,OAAO,EAAG7I,EAAMr9C,UAAYq9C,CAC9C,EACAzU,EAAOse,YAAc,WACjB,SAAU5/C,KAAKw+C,WAAWqB,gBAAkB7/C,KAAKw+C,WAAWqB,eAAennD,OAAS,EACxF,EACOulD,CACX,CAhGoC,GAiGhC6B,GAAgB9B,GACpBA,GAAgB1pC,QAAU0pC,GAC1B,IAAI+B,GAAwBvL,GAAa8I,kBAAmB0C,GAAyBxL,GAAagJ,mBAC9FyC,GAAkBzL,GAAa0L,cAAeC,GAAoB3L,GAAa4L,cAC/EC,GAAe7L,GAAa8L,WAAYC,GAAc/L,GAAa5yC,QACnE4+C,GA5Ha,SAASC,QACT,IAATA,IAAiBA,EAAO,IAG5B,IAFA,IAAIjf,EAAK,GACLsH,EAAK2X,EACH3X,KACFtH,GANY,mEAMwB,GAAhBhpC,KAAKkoD,SAAgB,GAE7C,OAAOlf,CACX,EAqHImf,GAAsBnM,GACtBoM,GAAqBvK,GACrBwK,GAAkBf,GAClBgB,GAAoB72C,OAAO,mBAC3B82C,GAAyBpnC,QAAQomC,IAAyBC,IAC1DgB,GAAoBrnC,QAAQ4mC,IAAeF,IAC3CY,GAA0B,WAC1B,SAASC,EAAMvL,EAAKvrC,GAEhB,QADa,IAATA,IAAiBA,EAAO,CAAC,GACzBurC,SAA6G,iBAA/C,IAARA,EAAsB,YAAcra,EAASqa,MAAuBA,EAAI7mC,SAC9H,MAAM,IAAI8R,MAAM,oBAAsB+0B,EAAM,0BAgBhD,GAdA31C,KAAK21C,IAAMA,EAAI7mC,WACK,WAAhB9O,KAAK21C,IAAI,IAAmC,MAAhB31C,KAAK21C,IAAI,IACrC31C,KAAKmhD,QAAS,EACdnhD,KAAK21C,IAAM31C,KAAK21C,IAAI1yC,MAAM,IAE1BjD,KAAKmhD,QAAS,EAEd/2C,EAAK/C,QACA25C,IAAqB,YAAY30C,KAAKjC,EAAK/C,OAASg5C,GAAaj2C,EAAK/C,MACvErH,KAAKk1C,KAAO9qC,EAAK/C,KAEjBrH,KAAKk1C,KAAOqL,GAAYn2C,EAAK/C,OAGjC25C,IAAqBD,GAAwB,CAC7C,IAAI50C,EAAM,IAAI00C,GAAgB7gD,KAAK21C,IAAKvrC,GACxC,GAAI+B,EAAIkX,KAAM,CACVrjB,KAAKmM,IAAMA,EACX,IAAI+oC,EAAO/oC,EAAIqyC,WAAWtJ,MACrBl1C,KAAKk1C,MAAQA,IAAMl1C,KAAKk1C,KAAOl1C,KAAKohD,WAAWlM,GACxD,CACJ,CACKl1C,KAAKk1C,OACNl1C,KAAKwhC,GAAK,cAAgBgf,GAAS,GAAK,KAExCxgD,KAAKmM,MAAKnM,KAAKmM,IAAI+oC,KAAOl1C,KAAKqH,KACvC,CACA,IAAIi6B,EAAS4f,EAAMx+C,UA6KnB,OA5KA4+B,EAAOz7B,MAAQ,SAAe1H,EAAS62C,EAAMC,EAAQ7qC,GAEjD,IAAIkyC,EAASjH,EAASC,EACtB,QAFa,IAATlrC,IAAiBA,EAAO,CAAC,GAEzB4qC,GAAyE,iBAAhD,IAATA,EAAuB,YAAc1Z,EAAS0Z,IAAqB,CACnF,IAAIe,EAAQf,EACRgB,EAAMf,EACV,GAA4B,iBAAjBc,EAAMsL,OAAqB,CAClC,IAAIjc,EAAMplC,KAAKshD,WAAWvL,EAAMsL,QAChCrM,EAAO5P,EAAI4P,KACXC,EAAS7P,EAAImc,GACjB,MACIvM,EAAOe,EAAMf,KACbC,EAASc,EAAMd,OAEnB,GAA0B,iBAAfe,EAAIqL,OAAqB,CAChC,IAAIG,EAAOxhD,KAAKshD,WAAWtL,EAAIqL,QAC/BhM,EAAUmM,EAAKxM,KACfM,EAAYkM,EAAKD,GACrB,MACIlM,EAAUW,EAAIhB,KACdM,EAAYU,EAAIf,MAExB,MAAO,IAAKA,EAAQ,CAChB,IAAIwM,EAAOzhD,KAAKshD,WAAWtM,GAC3BA,EAAOyM,EAAKzM,KACZC,EAASwM,EAAKF,GAClB,CACA,IAAIz9B,EAAS9jB,KAAK8jB,OAAOkxB,EAAMC,EAAQI,EAASC,GA+BhD,OA7BIgH,EADAx4B,EACU,IAAI88B,GAAmBziD,OAA4B,IAAnB2lB,EAAOuxB,QAAqBvxB,EAAOkxB,KAAO,CAChFC,OAAQnxB,EAAOmxB,OACfD,KAAMlxB,EAAOkxB,WACK,IAAnBlxB,EAAOuxB,QAAqBvxB,EAAOmxB,OAAS,CAC3CA,OAAQnxB,EAAOwxB,UACfN,KAAMlxB,EAAOuxB,SACdvxB,EAAOxgB,OAAQwgB,EAAOoxB,KAAM9qC,EAAK7Q,QAE1B,IAAIqnD,GAAmBziD,OAAqB,IAAZk3C,EAAqBL,EAAO,CAClEC,OAAQA,EACRD,KAAMA,QACK,IAAZK,EAAqBJ,EAAS,CAC7BA,OAAQK,EACRN,KAAMK,GACPr1C,KAAK21C,IAAK31C,KAAKk1C,KAAM9qC,EAAK7Q,SAEzBshD,MAAQ,CACZ5F,OAAQA,EACRK,UAAWA,EACXD,QAASA,EACTL,KAAMA,EACN1xC,OAAQtD,KAAK21C,KAEb31C,KAAKk1C,OACDiL,KACA7D,EAAQzB,MAAM3yB,IAAMi4B,GAAkBngD,KAAKk1C,MAAMpmC,YAErDwtC,EAAQzB,MAAM3F,KAAOl1C,KAAKk1C,MAEvBoH,CACX,EACAhb,EAAOggB,WAAa,SAAoBD,GACpC,IAAcK,EACd,GAAK1hD,KAAK8gD,IAUNY,EAAc1hD,KAAK8gD,QAVO,CAC1B,IAAIhL,EAAQ91C,KAAK21C,IAAIt9C,MAAM,MAC3BqpD,EAAc,IAAIjoD,MAAMq8C,EAAMp9C,QAE9B,IADA,IAAIipD,EAAY,EACR7Y,EAAK,EAAG8Y,EAAK9L,EAAMp9C,OAAQowC,EAAK8Y,EAAI9Y,IACxC4Y,EAAY5Y,GAAM6Y,EAClBA,GAAa7L,EAAMhN,GAAIpwC,OAAS,EAEpCsH,KAAK8gD,IAAqBY,CAC9B,CAIA,IAAIx4B,EAAM,EACV,GAAIm4B,GAFOK,EAAYA,EAAYhpD,OAAS,GAGxCwwB,EAAMw4B,EAAYhpD,OAAS,OAI3B,IAFA,IACImpD,EADAppD,EAAMipD,EAAYhpD,OAAS,EAEzBwwB,EAAMzwB,GAER,GAAI4oD,EAASK,EADbG,EAAM34B,GAAOzwB,EAAMywB,GAAO,IAEtBzwB,EAAMopD,EAAM,MACT,MAAIR,GAAUK,EAAYG,EAAM,IAEhC,CACH34B,EAAM24B,EACN,KACJ,CAJI34B,EAAM24B,EAAM,CAIhB,CAGR,MAAO,CACHN,IAAKF,EAASK,EAAYx4B,GAAO,EACjC8rB,KAAM9rB,EAAM,EAEpB,EACAoY,EAAO8f,WAAa,SAAoBlM,GACpC,MAAI,YAAY7oC,KAAK6oC,GACVA,EAEJqL,GAAYvgD,KAAKmM,IAAIqyC,WAAWsD,YAAc9hD,KAAKmM,IAAI0sC,MAAQ,IAAK3D,EAC/E,EACA5T,EAAOxd,OAAS,SAAgBkxB,EAAMC,EAAQI,EAASC,GACnD,IAAKt1C,KAAKmM,IAAK,OAAO,EACtB,IAMI41C,EAOAC,EAbAxD,EAAWx+C,KAAKmM,IAAIqyC,WACpBn3C,EAAOm3C,EAASyD,oBAAoB,CACpChN,OAAQA,EACRD,KAAMA,IAEV,IAAK3tC,EAAK/D,OAAQ,OAAO,EAEF,iBAAZ+xC,IACP0M,EAAKvD,EAASyD,oBAAoB,CAC9BhN,OAAQK,EACRN,KAAMK,KAKV2M,EADA3B,GAAah5C,EAAK/D,QACR68C,GAAkB94C,EAAK/D,QAEvB,IAAI6kB,IAAI9gB,EAAK/D,OAAQtD,KAAKmM,IAAIqyC,WAAWsD,YAAc3B,GAAkBngD,KAAKmM,IAAIoyC,UAEhG,IAAIjC,EAAU,CACVrH,OAAQ5tC,EAAK4tC,OACbK,UAAWyM,GAAMA,EAAG9M,OACpBI,QAAS0M,GAAMA,EAAG/M,KAClBA,KAAM3tC,EAAK2tC,KACX9sB,IAAK85B,EAAQlzC,YAEjB,GAAyB,UAArBkzC,EAAQE,SAAsB,CAC9B,IAAIjC,GAGA,MAAM,IAAIr/B,MAAM,yDAFhB07B,EAAQpH,KAAO+K,GAAgB+B,EAIvC,CACA,IAAI1+C,EAASk7C,EAAS2D,iBAAiB96C,EAAK/D,QAE5C,OADIA,IAAQg5C,EAAQh5C,OAASA,GACtBg5C,CACX,EACAhb,EAAO93B,OAAS,WAEZ,IADA,IAAIgoB,EAAO,CAAC,EACJ4wB,EAAK,EAAGC,EAAQ,CACpB,SACA,MACA,OACA,MACDD,EAAKC,EAAM3pD,OAAQ0pD,IAAK,CACvB,IAAI/jD,EAAOgkD,EAAMD,GACC,MAAdpiD,KAAK3B,KACLmzB,EAAKnzB,GAAQ2B,KAAK3B,GAE1B,CAOA,OANI2B,KAAKmM,MACLqlB,EAAKrlB,IAAMmuB,EAAS,CAAC,EAAGt6B,KAAKmM,KACzBqlB,EAAKrlB,IAAIsyC,gBACTjtB,EAAKrlB,IAAIsyC,mBAAgB,IAG1BjtB,CACX,EACAuI,EAAcmnB,EAAO,CACjB,CACIh/C,IAAK,OACLsC,IAAK,WACD,OAAOxE,KAAKk1C,MAAQl1C,KAAKwhC,EAC7B,KAGD0f,CACX,CA/M8B,GAgN1BoB,GAAUrB,GACdA,GAAU3sC,QAAU2sC,GAChBN,IAAuBA,GAAoB4B,eAC3C5B,GAAoB4B,cAActB,IAEtC,IAAIuB,GAAsBhO,GAAa8I,kBAAmBmF,GAAuBjO,GAAagJ,mBAC1FkF,GAAYlO,GAAasJ,QAAS6E,GAAanO,GAAaoO,SAAUC,GAAYrO,GAAa5yC,QAASkhD,GAAQtO,GAAar7B,IAC7H4pC,GAAkBvO,GAAa4L,cAC/B4C,GAAYV,GACZW,GAAuBtpC,QAAQ6oC,IAAuBC,IACtDS,GAAkBvpC,QAAQ+oC,IAAaG,IAAaF,IAAcG,IA+UlEK,GA9UiC,WACjC,SAASC,EAAaC,EAAYzK,EAAOxuC,EAAMk5C,GAC3CtjD,KAAKiJ,UAAYo6C,EACjBrjD,KAAKujD,QAAUn5C,EAAK+B,KAAO,CAAC,EAC5BnM,KAAK64C,KAAOD,EACZ54C,KAAKoK,KAAOA,EACZpK,KAAK21C,IAAM2N,EACXtjD,KAAKwjD,YAAcF,EACnBtjD,KAAKyjD,cAAgBzjD,KAAKujD,QAAQl8C,MAAQrH,KAAKujD,QAAQG,SACvD1jD,KAAK2jD,iBAAmC,IAAIx/C,IAC5CnE,KAAK4jD,cAAgC,IAAIz/C,IACzCnE,KAAK6jD,aAA+B,IAAI1/C,GAC5C,CACA,IAAIm9B,EAAS8hB,EAAa1gD,UA+T1B,OA9TA4+B,EAAOwiB,cAAgB,WACnB,IAAIl2B,EAEAA,EADA5tB,KAAK+jD,WACK,gCAAkC/jD,KAAKgkD,SAAShkD,KAAKmM,IAAI2C,YACzB,iBAA5B9O,KAAKujD,QAAQlF,WACjBr+C,KAAKujD,QAAQlF,WACmB,mBAA5Br+C,KAAKujD,QAAQlF,WACjBr+C,KAAKujD,QAAQlF,WAAWr+C,KAAKoK,KAAK23C,GAAI/hD,KAAK64C,MAE3C74C,KAAKikD,aAAe,OAElC,IAAIC,EAAM,KACNlkD,KAAK21C,IAAIt8C,SAAS,UAAS6qD,EAAM,QACrClkD,KAAK21C,KAAOuO,EAAM,wBAA0Bt2B,EAAU,KAC1D,EACA0T,EAAO6iB,cAAgB,WACnB,IAAI,IAAuEpgB,EAAnEC,EAAYrI,EAAqC37B,KAAKokD,cAAsBrgB,EAAQC,KAAavmB,MAAM,CAC3G,IAAIsF,EAAOghB,EAAM17B,MACbhB,EAAOrH,KAAKqkD,MAAMrkD,KAAKsC,KAAKygB,EAAKmyB,OACjC0D,EAAQ71B,EAAK81B,MAAQ6J,GAAU3/B,EAAKmyB,MACpC/oC,OAAM,GAC0B,IAAhCnM,KAAKujD,QAAQ1D,gBACb1zC,EAAM,IAAIq2C,GAAoBz/B,EAAKM,OAC3Bw8B,iBACJ1zC,EAAI0zC,eAAiB,MAGzB1zC,EAAM4W,EAAKy7B,WAEfx+C,KAAKmM,IAAIm4C,eAAen4C,EAAK9E,EAAMrH,KAAKqkD,MAAMrkD,KAAKsC,KAAKs2C,IAC5D,CACJ,EACAtX,EAAOijB,gBAAkB,WACrB,IAAgC,IAA5BvkD,KAAKujD,QAAQlF,WACjB,GAAIr+C,KAAK64C,KAEL,IADA,IAAI1W,EACI2G,EAAK9oC,KAAK64C,KAAKf,MAAMp/C,OAAS,EAAGowC,GAAM,EAAGA,IAE3B,aADnB3G,EAAQniC,KAAK64C,KAAKf,MAAMhP,IACdptC,MACwC,IAA9CymC,EAAM9e,KAAKlhB,QAAQ,wBACnBnC,KAAK64C,KAAK7Z,YAAY8J,QAGvB9oC,KAAK21C,MACZ31C,KAAK21C,IAAM31C,KAAK21C,IAAIr6C,QAAQ,2BAA4B,IAEhE,EACAgmC,EAAOkjB,SAAW,WAEd,GADAxkD,KAAKukD,kBACDrB,IAAmBD,IAAwBjjD,KAAKm/C,QAChD,OAAOn/C,KAAKykD,cAEZ,IAAInI,EAAU,GAId,OAHAt8C,KAAKiJ,UAAUjJ,KAAK64C,KAAM,SAAS/P,GAC/BwT,GAAWxT,CACf,GACO,CACHwT,EAGZ,EACAhb,EAAOmjB,YAAc,WACjB,GAAIzkD,KAAK64C,KACL74C,KAAK0kD,sBACF,GAA+B,IAA3B1kD,KAAKokD,WAAW1rD,OAAc,CACrC,IAAIqqB,EAAO/iB,KAAKokD,WAAW,GAAG5F,WAC9Bz7B,EAAKmyB,KAAOl1C,KAAKikD,aACjBjkD,KAAKmM,IAAMs2C,GAAqBhD,cAAc18B,EAAM,CAChD4hC,sBAAsB,GAE9B,MACI3kD,KAAKmM,IAAM,IAAIs2C,GAAqB,CAChCvN,KAAMl1C,KAAKikD,aACXU,sBAAsB,IAE1B3kD,KAAKmM,IAAIy4C,WAAW,CAChBC,UAAW,CACP5P,OAAQ,EACRD,KAAM,GAEV8P,SAAU,CACN7P,OAAQ,EACRD,KAAM,GAEV1xC,OAAQtD,KAAKoK,KAAK/C,KAAOrH,KAAKqkD,MAAMrkD,KAAKsC,KAAKtC,KAAKoK,KAAK/C,OAAS,gBAMzE,OAHIrH,KAAK+kD,oBAAoB/kD,KAAKglD,oBAC9BhlD,KAAK64C,MAAQ74C,KAAKokD,WAAW1rD,OAAS,GAAGsH,KAAKmkD,gBAC9CnkD,KAAKilD,gBAAgBjlD,KAAK8jD,gBAC1B9jD,KAAK+jD,WACE,CACH/jD,KAAK21C,KAGF,CACH31C,KAAK21C,IACL31C,KAAKmM,IAGjB,EACAm1B,EAAOojB,eAAiB,WACpB,IAAI3iB,EAAQ/hC,KACZA,KAAK21C,IAAM,GACX31C,KAAKmM,IAAM,IAAIs2C,GAAqB,CAChCvN,KAAMl1C,KAAKikD,aACXU,sBAAsB,IAE1B,IAcI7O,EAAO5yC,EAdP8xC,EAAO,EACPC,EAAS,EACTiQ,EAAW,cACXC,EAAU,CACVN,UAAW,CACP5P,OAAQ,EACRD,KAAM,GAEV8P,SAAU,CACN7P,OAAQ,EACRD,KAAM,GAEV1xC,OAAQ,IAGZtD,KAAKiJ,UAAUjJ,KAAK64C,KAAM,SAASn1C,EAAKy+B,EAAOzmC,GAyB3C,GAxBAqmC,EAAM4T,KAAOjyC,EACTy+B,GAAkB,QAATzmC,IACTypD,EAAQN,UAAU7P,KAAOA,EACzBmQ,EAAQN,UAAU5P,OAASA,EAAS,EAChC9S,EAAM7+B,QAAU6+B,EAAM7+B,OAAOyyC,OAC7BoP,EAAQ7hD,OAASy+B,EAAMqjB,WAAWjjB,GAClCgjB,EAAQL,SAAS9P,KAAO7S,EAAM7+B,OAAOyyC,MAAMf,KAC3CmQ,EAAQL,SAAS7P,OAAS9S,EAAM7+B,OAAOyyC,MAAMd,OAAS,EACtDlT,EAAM51B,IAAIy4C,WAAWO,KAErBA,EAAQ7hD,OAAS4hD,EACjBC,EAAQL,SAAS9P,KAAO,EACxBmQ,EAAQL,SAAS7P,OAAS,EAC1BlT,EAAM51B,IAAIy4C,WAAWO,MAG7BrP,EAAQpyC,EAAI+I,MAAM,SAEduoC,GAAQc,EAAMp9C,OACdwK,EAAOQ,EAAI+V,YAAY,MACvBw7B,EAASvxC,EAAIhL,OAASwK,GAEtB+xC,GAAUvxC,EAAIhL,OAEdypC,GAAkB,UAATzmC,EAAkB,CAC3B,IAAI7B,EAAIsoC,EAAM8L,QAAU,CACpB2J,KAAM,CAAC,IAEoB,SAAfzV,EAAMzmC,MAAkC,WAAfymC,EAAMzmC,OAAsBymC,EAAM2V,QACzD3V,IAAUtoC,EAAEqJ,OAAQrJ,EAAE+9C,KAAKP,YACrClV,EAAM7+B,QAAU6+B,EAAM7+B,OAAO0yC,KAC7BmP,EAAQ7hD,OAASy+B,EAAMqjB,WAAWjjB,GAClCgjB,EAAQL,SAAS9P,KAAO7S,EAAM7+B,OAAO0yC,IAAIhB,KACzCmQ,EAAQL,SAAS7P,OAAS9S,EAAM7+B,OAAO0yC,IAAIf,OAAS,EACpDkQ,EAAQN,UAAU7P,KAAOA,EACzBmQ,EAAQN,UAAU5P,OAASA,EAAS,EACpClT,EAAM51B,IAAIy4C,WAAWO,KAErBA,EAAQ7hD,OAAS4hD,EACjBC,EAAQL,SAAS9P,KAAO,EACxBmQ,EAAQL,SAAS7P,OAAS,EAC1BkQ,EAAQN,UAAU7P,KAAOA,EACzBmQ,EAAQN,UAAU5P,OAASA,EAAS,EACpClT,EAAM51B,IAAIy4C,WAAWO,IAGjC,CACJ,EACJ,EACA7jB,EAAO2jB,aAAe,WAClB,QAAIjlD,KAAK+jD,kBAG8B,IAA5B/jD,KAAKujD,QAAQlF,WACbr+C,KAAKujD,QAAQlF,YAEpBr+C,KAAKokD,WAAW1rD,QACTsH,KAAKokD,WAAWp/B,KAAK,SAAS8jB,GACjC,OAAOA,EAAGuV,UACd,GAGR,EACA/c,EAAOyiB,SAAW,WACd,QAAmC,IAAxB/jD,KAAKujD,QAAQpF,OACpB,OAAOn+C,KAAKujD,QAAQpF,OAExB,IAAIE,EAAar+C,KAAKujD,QAAQlF,WAC9B,YAA0B,IAAfA,IAA6C,IAAfA,MAGrCr+C,KAAKokD,WAAW1rD,QACTsH,KAAKokD,WAAWp/B,KAAK,SAAS8jB,GACjC,OAAOA,EAAGqV,MACd,GAGR,EACA7c,EAAO6d,MAAQ,WACX,YAA6B,IAAlBn/C,KAAKoK,KAAK+B,MACRnM,KAAKoK,KAAK+B,IAEhBnM,KAAKokD,WAAW1rD,OAAS,CACpC,EACA4oC,EAAOyjB,iBAAmB,WACtB,YAA2C,IAAhC/kD,KAAKujD,QAAQ1D,eACb7/C,KAAKujD,QAAQ1D,gBAEpB7/C,KAAKokD,WAAW1rD,QACTsH,KAAKokD,WAAWp/B,KAAK,SAAS8jB,GACjC,OAAOA,EAAG8W,aACd,EAGR,EACAte,EAAO2iB,WAAa,WAChB,OAAIjkD,KAAKoK,KAAK23C,GACH/hD,KAAKsC,KAAKtC,KAAKoK,KAAK23C,IACpB/hD,KAAKoK,KAAK/C,KACVrH,KAAKsC,KAAKtC,KAAKoK,KAAK/C,MAEpB,QAEf,EACAi6B,EAAOh/B,KAAO,SAAc4yC,GACxB,GAAIl1C,KAAKujD,QAAQG,SAAU,OAAOxO,EAClC,GAA2B,KAAvBA,EAAKmQ,WAAW,GAAW,OAAOnQ,EACtC,GAAI,YAAY7oC,KAAK6oC,GAAO,OAAOA,EACnC,IAAIoQ,EAAStlD,KAAK4jD,cAAcp/C,IAAI0wC,GACpC,GAAIoQ,EAAQ,OAAOA,EACnB,IAAIj+C,EAAOrH,KAAKoK,KAAK23C,GAAKW,GAAU1iD,KAAKoK,KAAK23C,IAAM,IACb,iBAA5B/hD,KAAKujD,QAAQlF,aACpBh3C,EAAOq7C,GAAUG,GAAUx7C,EAAMrH,KAAKujD,QAAQlF,cAElD,IAAI/7C,EAAOqgD,GAAWt7C,EAAM6tC,GAE5B,OADAl1C,KAAK4jD,cAAc/+C,IAAIqwC,EAAM5yC,GACtBA,CACX,EACAg/B,EAAO8iB,SAAW,WACd,IAAIriB,EAAQ/hC,KACZ,IAAKA,KAAKulD,aAEN,GADAvlD,KAAKulD,aAAe,GAChBvlD,KAAK64C,KACL74C,KAAK64C,KAAKG,KAAK,SAAS7W,GACpB,GAAIA,EAAM7+B,QAAU6+B,EAAM7+B,OAAOu3C,MAAM1uC,IAAK,CACxC,IAAIA,EAAMg2B,EAAM7+B,OAAOu3C,MAAM1uC,IACxB41B,EAAMwjB,aAAalsD,SAAS8S,IAC7B41B,EAAMwjB,aAAazgD,KAAKqH,EAEhC,CACJ,OACG,CACH,IAAIywC,EAAS,IAAIoG,GAAUhjD,KAAKwjD,YAAaxjD,KAAKoK,MAC9CwyC,EAAOzwC,KAAKnM,KAAKulD,aAAazgD,KAAK83C,EAAOzwC,IAClD,CAEJ,OAAOnM,KAAKulD,YAChB,EACAjkB,EAAO0jB,kBAAoB,WACvB,IAAIjjB,EAAQ/hC,KACRwlD,EAAU,CAAC,EACf,GAAIxlD,KAAK64C,KACL74C,KAAK64C,KAAKG,KAAK,SAAS7W,GACpB,GAAIA,EAAM7+B,OAAQ,CACd,IAAI+D,EAAO86B,EAAM7+B,OAAOu3C,MAAMxzC,KAC9B,GAAIA,IAASm+C,EAAQn+C,GAAO,CACxBm+C,EAAQn+C,IAAQ,EAChB,IAAI26C,EAAUjgB,EAAM0hB,aAAe1hB,EAAM0jB,UAAUp+C,GAAQ06B,EAAMsiB,MAAMtiB,EAAMz/B,KAAK+E,IAClF06B,EAAM51B,IAAIu5C,iBAAiB1D,EAAS7f,EAAM7+B,OAAOu3C,MAAMlF,IAC3D,CACJ,CACJ,QACG,GAAI31C,KAAK21C,IAAK,CACjB,IAAItuC,EAAOrH,KAAKoK,KAAK/C,KAAOrH,KAAKqkD,MAAMrkD,KAAKsC,KAAKtC,KAAKoK,KAAK/C,OAAS,cACpErH,KAAKmM,IAAIu5C,iBAAiBr+C,EAAMrH,KAAK21C,IACzC,CACJ,EACArU,EAAO8jB,WAAa,SAAoBjjB,GACpC,OAAIniC,KAAKujD,QAAQl8C,KACNrH,KAAKqkD,MAAMrkD,KAAKujD,QAAQl8C,MACxBrH,KAAKyjD,aACLzjD,KAAKylD,UAAUtjB,EAAM7+B,OAAOu3C,MAAMxzC,MAElCrH,KAAKqkD,MAAMrkD,KAAKsC,KAAK6/B,EAAM7+B,OAAOu3C,MAAMxzC,MAEvD,EACAi6B,EAAO0iB,SAAW,SAAkBtgD,GAChC,OAAIo7C,OACOA,OAAOz3C,KAAK3D,GAAKoL,SAAS,UAE1BjT,OAAO8pD,KAAKviC,SAASwiC,mBAAmBliD,IAEvD,EACA49B,EAAOmkB,UAAY,SAAmBnjD,GAClC,IAAIgjD,EAAStlD,KAAK2jD,iBAAiBn/C,IAAIlC,GACvC,GAAIgjD,EAAQ,OAAOA,EACnB,GAAIvC,GAAiB,CACjB,IAAI8C,EAAU9C,GAAgBzgD,GAAMwM,WAEpC,OADA9O,KAAK2jD,iBAAiB9+C,IAAIvC,EAAMujD,GACzBA,CACX,CACI,MAAM,IAAIjlC,MAAM,+DAExB,EACA0gB,EAAO+iB,MAAQ,SAAe/hD,GAC1B,IAAIgjD,EAAStlD,KAAK6jD,aAAar/C,IAAIlC,GACnC,GAAIgjD,EAAQ,OAAOA,EACL,OAAVxC,KACAxgD,EAAOA,EAAKhH,QAAQ,MAAO,MAE/B,IAAI4sB,EAAM49B,UAAUxjD,GAAMhH,QAAQ,QAASsqD,oBAE3C,OADA5lD,KAAK6jD,aAAah/C,IAAIvC,EAAM4lB,GACrBA,CACX,EACOk7B,CACX,CA7UqC,GAgVjC2C,GAA4B,SAASC,GAErC,SAASrX,EAAQ+L,GACb,IAAI3Y,EAGJ,OAFAA,EAAQikB,EAASpjD,KAAK5C,KAAM06C,IAAa16C,MACnCtE,KAAO,UACNqmC,CACX,CACA,OAPApH,EAAUgU,EAASqX,GAOZrX,CACX,CATgC,CADjBqO,IAWXiJ,GAAYF,GAChBA,GAAYzxC,QAAUyxC,GACtB,IAIIG,GAAWC,GAAUC,GAAYC,GAJjCC,GAAchQ,GAAUC,QAASgQ,GAASjQ,GAAUE,GACpDgQ,GAAkBpJ,GAClBqJ,GAAcR,GAGlB,SAASS,GAAc5O,GACnB,OAAOA,EAAM3rC,IAAI,SAAS28B,GAGtB,OAFIA,EAAGgP,QAAOhP,EAAGgP,MAAQ4O,GAAc5d,EAAGgP,eACnChP,EAAGxlC,OACHwlC,CACX,EACJ,CACA,SAAS6d,GAAcxkB,GAEnB,GADAA,EAAMmkB,KAAe,EACjBnkB,EAAMykB,QAAQ9O,MACd,IAAI,IAA2E/T,EAAvEC,EAAYrI,EAAqCwG,EAAMykB,QAAQ9O,SAAiB/T,EAAQC,KAAavmB,MAEzGkpC,GADS5iB,EAAM17B,MAI3B,CACA,IAAIw+C,GAA8B,SAASC,GAEvC,SAASC,IACL,OAAOD,EAAS/gD,MAAM/F,KAAMgN,YAAchN,IAC9C,CAHA26B,EAAUosB,EAAWD,GAIrB,IAAIxlB,EAASylB,EAAUrkD,UAwXvB,OAvXA4+B,EAAO/gB,OAAS,WACZ,IAAI,IAAI27B,EAAOlvC,UAAUtU,OAAQsuD,EAAW,IAAIvtD,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChF6K,EAAS7K,GAAQnvC,UAAUmvC,GAE/B,IAAI,IAAgEpY,EAA5DC,EAAYrI,EAAqCqrB,KAAoBjjB,EAAQC,KAAavmB,MAG9F,IAFA,IAEkE4zB,EAF9DgH,EAAQtU,EAAM17B,MAEVipC,EAAa3V,EADT37B,KAAKinD,UAAU5O,EAAOr4C,KAAKkD,SACqCmuC,EAASC,KAAc7zB,MAAM,CACrG,IAAI0kB,EAAQkP,EAAOhpC,MACnBrI,KAAK4mD,QAAQ9O,MAAMhzC,KAAKq9B,EAC5B,CAGJ,OADAniC,KAAKy7C,YACEz7C,IACX,EACAshC,EAAO2Z,UAAY,SAAmBC,GAElC,GADA4L,EAASpkD,UAAUu4C,UAAUr4C,KAAK5C,KAAMk7C,GACpCl7C,KAAK83C,MACL,IAAI,IAAkE/T,EAA9DC,EAAYrI,EAAqC37B,KAAK83C,SAAiB/T,EAAQC,KAAavmB,MACpFsmB,EAAM17B,MACZ4yC,UAAUC,EAG5B,EACA5Z,EAAO4lB,KAAO,SAAcrqC,GACxB,GAAK7c,KAAK4mD,QAAQ9O,MAAlB,CAGA,IAFA,IACI5B,EAAQoG,EADRxgB,EAAW97B,KAAKmnD,cAEdnnD,KAAKonD,QAAQtrB,GAAY97B,KAAK4mD,QAAQ9O,MAAMp/C,SAC9Cw9C,EAASl2C,KAAKonD,QAAQtrB,IAEN,KADhBwgB,EAAUz/B,EAAS7c,KAAK4mD,QAAQ9O,MAAM5B,GAASA,MAE/Cl2C,KAAKonD,QAAQtrB,IAAa,EAG9B,cADO97B,KAAKonD,QAAQtrB,GACbwgB,CAV+B,CAW1C,EACAhb,EAAOnD,MAAQ,SAAekpB,GAC1B,OAAOrnD,KAAK83C,MAAM3Z,MAAMkpB,EAC5B,EACA/lB,EAAO6lB,YAAc,WACZnnD,KAAKsnD,WAAUtnD,KAAKsnD,SAAW,GAC/BtnD,KAAKonD,UAASpnD,KAAKonD,QAAU,CAAC,GACnCpnD,KAAKsnD,UAAY,EACjB,IAAIxrB,EAAW97B,KAAKsnD,SAEpB,OADAtnD,KAAKonD,QAAQtrB,GAAY,EAClBA,CACX,EACAwF,EAAOia,kBAAoB,WACvB,MAAO,CACH/2C,IAAK,SAAa29B,EAAO3+B,GACrB,MAAa,YAATA,EACO2+B,EACCA,EAAM3+B,GAEE,SAATA,GAAmC,iBAATA,GAAqBA,EAAKogB,WAAW,QAC/D,WACH,IAAI,IAAIs4B,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5Ez2C,EAAKy2C,GAAQnvC,UAAUmvC,GAE3B,IAAIoL,EACJ,OAAQA,EAASplB,GAAO3+B,GAAMuC,MAAMwhD,EAAQ,GAAGh/C,OAAO7C,EAAKyG,IAAI,SAAS28B,GACpE,MAAkB,mBAAPA,EACA,SAASuP,EAAOnC,GACnB,OAAOpN,EAAGuP,EAAMmD,UAAWtF,EAC/B,EAEOpN,CAEf,IACJ,EACgB,UAATtlC,GAA6B,SAATA,EACpB,SAASgkD,GACZ,OAAOrlB,EAAM3+B,GAAM,SAAS60C,GACxB,IAAI,IAAI6D,EAAOlvC,UAAUtU,OAAQuc,EAAQ,IAAIxb,MAAMyiD,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAChGlnC,EAAMknC,EAAO,GAAKnvC,UAAUmvC,GAEhC,OAAOqL,EAAGzhD,WAAM,EAAQ,GAAGwC,OAAO,CAC9B8vC,EAAMmD,WACPvmC,GACP,EACJ,EACgB,SAATzR,EACA,WACH,OAAO2+B,EAAM0W,OAAO2C,SACxB,EACgB,UAATh4C,EACA2+B,EAAM2V,MAAM3rC,IAAI,SAAS28B,GAC5B,OAAOA,EAAG0S,SACd,GACgB,UAATh4C,GAA6B,SAATA,EACpB2+B,EAAM3+B,GAAMg4C,UAEZrZ,EAAM3+B,GAvCN2+B,EAAM3+B,EAyCrB,EACAqB,IAAK,SAAas9B,EAAO3+B,EAAM6E,GAC3B,OAAI85B,EAAM3+B,KAAU6E,IACpB85B,EAAM3+B,GAAQ6E,EACD,SAAT7E,GAA4B,WAATA,GAA8B,aAATA,GACxC2+B,EAAMsZ,cAHwB,CAMtC,EAER,EACAna,EAAOv5B,MAAQ,SAAeswC,GAC1B,MAAqB,iBAAVA,EAA2BA,GAClCA,EAAMuO,UAASvO,EAAQA,EAAMuO,SAC1B5mD,KAAK4mD,QAAQ9O,MAAM31C,QAAQk2C,GACtC,EACA/W,EAAOwZ,YAAc,SAAqB2M,EAAOtsC,GAC7C,IAOI+6B,EAPAwR,EAAa1nD,KAAK+H,MAAM0/C,GACxB3P,EAAQ93C,KAAKinD,UAAU9rC,EAAKnb,KAAK4mD,QAAQ9O,MAAM4P,IAAaC,UAChED,EAAa1nD,KAAK+H,MAAM0/C,GACxB,IAAI,IAA6D1jB,EAAzDC,EAAYrI,EAAqCmc,KAAiB/T,EAAQC,KAAavmB,MAAM,CACjG,IAAI0kB,EAAQ4B,EAAM17B,MAClBrI,KAAK4mD,QAAQ9O,MAAM9vC,OAAO0/C,EAAa,EAAG,EAAGvlB,EACjD,CAEA,IAAI,IAAIX,KAAMxhC,KAAKonD,QAEXM,GADJxR,EAASl2C,KAAKonD,QAAQ5lB,MAElBxhC,KAAKonD,QAAQ5lB,GAAM0U,EAAS4B,EAAMp/C,QAI1C,OADAsH,KAAKy7C,YACEz7C,IACX,EACAshC,EAAO0Z,aAAe,SAAsByM,EAAOtsC,GAC/C,IAQI+6B,EARAwR,EAAa1nD,KAAK+H,MAAM0/C,GACxB/rD,EAAsB,IAAfgsD,GAAmB,UAC1B5P,EAAQ93C,KAAKinD,UAAU9rC,EAAKnb,KAAK4mD,QAAQ9O,MAAM4P,GAAahsD,GAAMisD,UACtED,EAAa1nD,KAAK+H,MAAM0/C,GACxB,IAAI,IAA6D1jB,EAAzDC,EAAYrI,EAAqCmc,KAAiB/T,EAAQC,KAAavmB,MAAM,CACjG,IAAI0kB,EAAQ4B,EAAM17B,MAClBrI,KAAK4mD,QAAQ9O,MAAM9vC,OAAO0/C,EAAY,EAAGvlB,EAC7C,CAEA,IAAI,IAAIX,KAAMxhC,KAAKonD,QAEXM,IADJxR,EAASl2C,KAAKonD,QAAQ5lB,MAElBxhC,KAAKonD,QAAQ5lB,GAAM0U,EAAS4B,EAAMp/C,QAI1C,OADAsH,KAAKy7C,YACEz7C,IACX,EACAshC,EAAO2lB,UAAY,SAAmBnP,EAAO8P,GACzC,IAAI7lB,EAAQ/hC,KACZ,GAAqB,iBAAV83C,EACPA,EAAQ4O,GAAcR,GAAUpO,GAAOA,YACpC,QAAqB,IAAVA,EACdA,EAAQ,QACL,GAAIr+C,MAAMC,QAAQo+C,GAErB,IAAI,IAA6D/T,EAAzDC,EAAYrI,EADpBmc,EAAQA,EAAM70C,MAAM,MACsD8gC,EAAQC,KAAavmB,MAAM,CACjG,IAAIqrB,EAAK/E,EAAM17B,MACXygC,EAAGmF,QAAQnF,EAAGmF,OAAOjP,YAAY8J,EAAI,SAC7C,MACG,GAAmB,SAAfgP,EAAMp8C,MAAiC,aAAdsE,KAAKtE,KAErC,IAAI,IAA8D21C,EAA1DC,EAAa3V,EADrBmc,EAAQA,EAAMA,MAAM70C,MAAM,MACkDouC,EAASC,KAAc7zB,MAAM,CACrG,IAAIoqC,EAAMxW,EAAOhpC,MACbw/C,EAAI5Z,QAAQ4Z,EAAI5Z,OAAOjP,YAAY6oB,EAAK,SAChD,MACG,GAAI/P,EAAMp8C,KACbo8C,EAAQ,CACJA,QAED,GAAIA,EAAMt0C,KAAM,CACnB,QAA2B,IAAhBs0C,EAAMzvC,MACb,MAAM,IAAIuY,MAAM,0CACc,iBAAhBk3B,EAAMzvC,QACpByvC,EAAMzvC,MAAQjQ,OAAO0/C,EAAMzvC,QAE/ByvC,EAAQ,CACJ,IAAI0O,GAAgB1O,GAE5B,MAAO,GAAIA,EAAM3tC,SACb2tC,EAAQ,CACJ,IAAIqO,GAASrO,SAEd,GAAIA,EAAMz5C,KACby5C,EAAQ,CACJ,IAAIsO,GAAWtO,QAEhB,KAAIA,EAAMz0B,KAKb,MAAM,IAAIzC,MAAM,sCAJhBk3B,EAAQ,CACJ,IAAI2O,GAAY3O,GAIxB,CACA,IAAIgQ,EAAYhQ,EAAM3rC,IAAI,SAAS28B,GAW/B,OAVKA,EAAGyd,KAASQ,EAAUgB,QAAQjf,IACnCA,EAAKA,EAAG8d,SACD3Y,QAAQnF,EAAGmF,OAAOjP,YAAY8J,GACjCA,EAAGwd,KAAcK,GAAc7d,QACL,IAAnBA,EAAG8O,KAAKU,QACXsP,QAAwC,IAAvBA,EAAOhQ,KAAKU,SAC7BxP,EAAG8O,KAAKU,OAASsP,EAAOhQ,KAAKU,OAAOh9C,QAAQ,MAAO,KAG3DwtC,EAAGmF,OAASlM,EAAM6kB,QACX9d,CACX,GACA,OAAOgf,CACX,EACAxmB,EAAO9qB,QAAU,WACb,IAAI,IAAI0lC,EAAOlvC,UAAUtU,OAAQsuD,EAAW,IAAIvtD,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChF6K,EAAS7K,GAAQnvC,UAAUmvC,GAG/B,IAAI,IAAgEpY,EAA5DC,EAAYrI,EADpBqrB,EAAWA,EAASW,aACyD5jB,EAAQC,KAAavmB,MAAM,CAGpG,IAFA,IAEkE4zB,EAF9DgH,EAAQtU,EAAM17B,MACdyvC,EAAQ93C,KAAKinD,UAAU5O,EAAOr4C,KAAK24C,MAAO,WAAWgP,UACjDrW,EAAa3V,EAAqCmc,KAAkBzG,EAASC,KAAc7zB,MAAM,CACrG,IAAI0kB,EAAQkP,EAAOhpC,MACnBrI,KAAK4mD,QAAQ9O,MAAM/2B,QAAQohB,EAC/B,CACA,IAAI,IAAIX,KAAMxhC,KAAKonD,QACfpnD,KAAKonD,QAAQ5lB,GAAMxhC,KAAKonD,QAAQ5lB,GAAMsW,EAAMp/C,MAEpD,CAEA,OADAsH,KAAKy7C,YACEz7C,IACX,EACAshC,EAAOx8B,KAAO,SAAcuzC,GAGxB,OAFAA,EAAMpK,OAASjuC,KACfA,KAAK4mD,QAAQ9O,MAAMhzC,KAAKuzC,GACjBr4C,IACX,EACAshC,EAAO0mB,UAAY,WACf,IAAI,IAA0EjkB,EAAtEC,EAAYrI,EAAqC37B,KAAK4mD,QAAQ9O,SAAiB/T,EAAQC,KAAavmB,MAC5FsmB,EAAM17B,MACZ4lC,YAAS,EAInB,OAFAjuC,KAAK4mD,QAAQ9O,MAAQ,GACrB93C,KAAKy7C,YACEz7C,IACX,EACAshC,EAAOtC,YAAc,SAAqBqZ,GAItC,IAAInC,EACJ,IAAI,IAAI1U,KAJR6W,EAAQr4C,KAAK+H,MAAMswC,GACnBr4C,KAAK4mD,QAAQ9O,MAAMO,GAAOpK,YAAS,EACnCjuC,KAAK4mD,QAAQ9O,MAAM9vC,OAAOqwC,EAAO,GAEnBr4C,KAAKonD,SACflR,EAASl2C,KAAKonD,QAAQ5lB,KACR6W,IACVr4C,KAAKonD,QAAQ5lB,GAAM0U,EAAS,GAIpC,OADAl2C,KAAKy7C,YACEz7C,IACX,EACAshC,EAAO2mB,cAAgB,SAAuB3jD,EAAS8F,EAAMyS,GAWzD,OAVKA,IACDA,EAAWzS,EACXA,EAAO,CAAC,GAEZpK,KAAKq5C,UAAU,SAASd,GAChBnuC,EAAK+vB,QAAU/vB,EAAK+vB,MAAM9gC,SAASk/C,EAAK/0C,OACxC4G,EAAK89C,OAAS3P,EAAKlwC,MAAMhP,SAAS+Q,EAAK89C,QAC3C3P,EAAKlwC,MAAQkwC,EAAKlwC,MAAM/M,QAAQgJ,EAASuY,GAC7C,GACA7c,KAAKy7C,YACEz7C,IACX,EACAshC,EAAOtc,KAAO,SAAcqiC,GACxB,OAAOrnD,KAAK83C,MAAM9yB,KAAKqiC,EAC3B,EACA/lB,EAAO0X,KAAO,SAAcn8B,GACxB,OAAO7c,KAAKknD,KAAK,SAAS7O,EAAOvP,GAC7B,IAAIwT,EACJ,IACIA,EAAUz/B,EAASw7B,EAAOvP,EAC9B,CAAE,MAAOpC,GACL,MAAM2R,EAAMsC,WAAWjU,EAC3B,CAIA,OAHgB,IAAZ4V,GAAqBjE,EAAMW,OAC3BsD,EAAUjE,EAAMW,KAAKn8B,IAElBy/B,CACX,EACJ,EACAhb,EAAO6mB,YAAc,SAAqB9pD,EAAMwe,GAC5C,OAAKA,EAQDke,EAAY18B,EAAMqG,QACX1E,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,WAAfuP,EAAM38C,MAAqB2C,EAAKgO,KAAKgsC,EAAMh6C,MAC3C,OAAOwe,EAASw7B,EAAOvP,EAE/B,GAEG9oC,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,WAAfuP,EAAM38C,MAAqB28C,EAAMh6C,OAASA,EAC1C,OAAOwe,EAASw7B,EAAOvP,EAE/B,IAlBIjsB,EAAWxe,EACJ2B,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,WAAfuP,EAAM38C,KACN,OAAOmhB,EAASw7B,EAAOvP,EAE/B,GAcR,EACAxH,EAAO6X,aAAe,SAAsBt8B,GACxC,OAAO7c,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,YAAfuP,EAAM38C,KACN,OAAOmhB,EAASw7B,EAAOvP,EAE/B,EACJ,EACAxH,EAAO+X,UAAY,SAAmB71C,EAAMqZ,GACxC,OAAKA,EAQDke,EAAYv3B,EAAMkB,QACX1E,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,MAAmB8H,EAAK6I,KAAKgsC,EAAM70C,MACzC,OAAOqZ,EAASw7B,EAAOvP,EAE/B,GAEG9oC,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,MAAmB28C,EAAM70C,OAASA,EACxC,OAAOqZ,EAASw7B,EAAOvP,EAE/B,IAlBIjsB,EAAWrZ,EACJxD,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,KACN,OAAOmhB,EAASw7B,EAAOvP,EAE/B,GAcR,EACAxH,EAAO8mB,UAAY,SAAmBj+C,EAAU0S,GAC5C,OAAKA,EAQDke,EAAY5wB,EAAUzF,QACf1E,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,MAAmByO,EAASkC,KAAKgsC,EAAMluC,UAC7C,OAAO0S,EAASw7B,EAAOvP,EAE/B,GAEG9oC,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,MAAmB28C,EAAMluC,WAAaA,EAC5C,OAAO0S,EAASw7B,EAAOvP,EAE/B,IAlBIjsB,EAAW1S,EACJnK,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,KACN,OAAOmhB,EAASw7B,EAAOvP,EAE/B,GAcR,EACA/O,EAAcgtB,EAAW,CACrB,CACI7kD,IAAK,QACLsC,IAAK,WACD,GAAKxE,KAAK4mD,QAAQ9O,MAClB,OAAO93C,KAAK4mD,QAAQ9O,MAAM,EAC9B,GAEJ,CACI51C,IAAK,OACLsC,IAAK,WACD,GAAKxE,KAAK4mD,QAAQ9O,MAClB,OAAO93C,KAAK4mD,QAAQ9O,MAAM93C,KAAK4mD,QAAQ9O,MAAMp/C,OAAS,EAC1D,KAGDquD,CACX,CA9XkC,CAlBnB/J,IAiZf6J,GAAcwB,cAAgB,SAASC,GACnCpC,GAAYoC,CAChB,EACAzB,GAAc0B,aAAe,SAASD,GAClCnC,GAAWmC,CACf,EACAzB,GAAc2B,eAAiB,SAASF,GACpClC,GAAakC,CACjB,EACAzB,GAAc4B,aAAe,SAASH,GAClCjC,GAAWiC,CACf,EACA,IAAII,GAAc7B,GAClBA,GAAcvyC,QAAUuyC,GACxBA,GAAckB,QAAU,SAAS5lB,GACV,WAAfA,EAAMzmC,KACN6E,OAAOk6B,eAAe0H,EAAOikB,GAAW1jD,WAClB,SAAfy/B,EAAMzmC,KACb6E,OAAOk6B,eAAe0H,EAAOgkB,GAASzjD,WAChB,SAAfy/B,EAAMzmC,KACb6E,OAAOk6B,eAAe0H,EAAOqkB,GAAgB9jD,WACvB,YAAfy/B,EAAMzmC,KACb6E,OAAOk6B,eAAe0H,EAAOskB,GAAY/jD,WACnB,SAAfy/B,EAAMzmC,MACb6E,OAAOk6B,eAAe0H,EAAOkkB,GAAS3jD,WAE1Cy/B,EAAMokB,KAAU,EACZpkB,EAAM2V,OACN3V,EAAM2V,MAAM13C,QAAQ,SAASi4C,GACzBwO,GAAckB,QAAQ1P,EAC1B,EAER,EACA,IACIsQ,GAAgBC,GAChBC,GAA6B,SAASC,GAEtC,SAASC,EAAUrO,GACf,IAAI3Y,EAOJ,OANAA,EAAQ+mB,EAAclmD,KAAK5C,KAAMs6B,EAAS,CACtC5+B,KAAM,YACPg/C,KAAc16C,MACN83C,QACP/V,EAAM+V,MAAQ,IAEX/V,CACX,CAOA,OAjBApH,EAAUouB,EAAWD,GAWRC,EAAUrmD,UAChBsmD,SAAW,SAAkB5+C,GAGhC,YAFa,IAATA,IAAiBA,EAAO,CAAC,GAClB,IAAIu+C,GAAe,IAAIC,GAAiB5oD,KAAMoK,GAC7CnB,WAChB,EACO8/C,CACX,CAnBiC,CAFbL,IAsBpBG,GAAaI,mBAAqB,SAASX,GACvCK,GAAiBL,CACrB,EACAO,GAAaK,kBAAoB,SAASZ,GACtCM,GAAgBN,CACpB,EACA,IAAIa,GAAeN,GACnBA,GAAav0C,QAAUu0C,GACvB,IAQIO,GAA4B,WAC5B,SAASC,EAAQhmC,EAAMjZ,GAInB,QAHa,IAATA,IAAiBA,EAAO,CAAC,GAC7BpK,KAAKtE,KAAO,UACZsE,KAAKqjB,KAAOA,EACRjZ,EAAK2yC,MAAQ3yC,EAAK2yC,KAAKz5C,OAAQ,CAC/B,IAAI0X,EAAQ5Q,EAAK2yC,KAAKzB,QAAQlxC,GAC9BpK,KAAKg1C,KAAOh6B,EAAM+6B,MAAMf,KACxBh1C,KAAKi1C,OAASj6B,EAAM+6B,MAAMd,OAC1Bj1C,KAAKq1C,QAAUr6B,EAAMg7B,IAAIhB,KACzBh1C,KAAKs1C,UAAYt6B,EAAMg7B,IAAIf,MAC/B,CACA,IAAI,IAAI1pC,KAAOnB,EAAKpK,KAAKuL,GAAOnB,EAAKmB,EACzC,CAeA,OAda89C,EAAQ3mD,UACdoM,SAAW,WACd,OAAI9O,KAAK+8C,KACE/8C,KAAK+8C,KAAKl3C,MAAM7F,KAAKqjB,KAAM,CAC9Btb,MAAO/H,KAAK+H,MACZxO,OAAQyG,KAAKzG,OACbsiD,KAAM77C,KAAK67C,OACZ19C,QAEH6B,KAAKzG,OACEyG,KAAKzG,OAAS,KAAOyG,KAAKqjB,KAE9BrjB,KAAKqjB,IAChB,EACOgmC,CACX,CA7BgC,GA8B5BC,GAAYF,GAChBA,GAAY90C,QAAU80C,GACtB,IAAIG,GAAcD,GACdE,GAA2B,WAC3B,SAASC,EAAOC,EAAY9Q,EAAOxuC,GAC/BpK,KAAK8J,UAAY4/C,EACjB1pD,KAAK2pD,SAAW,GAChB3pD,KAAK64C,KAAOD,EACZ54C,KAAKoK,KAAOA,EACZpK,KAAK21C,SAAM,EACX31C,KAAKmM,SAAM,CACf,CACA,IAAIm1B,EAASmoB,EAAO/mD,UA4BpB,OA3BA4+B,EAAOxyB,SAAW,WACd,OAAO9O,KAAK21C,GAChB,EACArU,EAAO17B,KAAO,SAAcyd,EAAMjZ,QACjB,IAATA,IAAiBA,EAAO,CAAC,GACxBA,EAAK7Q,QACFyG,KAAK4pD,YAAc5pD,KAAK4pD,WAAWC,gBACnCz/C,EAAK7Q,OAASyG,KAAK4pD,WAAWC,eAGtC,IAAIC,EAAW,IAAIP,GAAYlmC,EAAMjZ,GAErC,OADApK,KAAK2pD,SAAS7kD,KAAKglD,GACZA,CACX,EACAxoB,EAAOyoB,SAAW,WACd,OAAO/pD,KAAK2pD,SAAS39C,OAAO,SAAS88B,GACjC,MAAmB,YAAZA,EAAGptC,IACd,EACJ,EACAq+B,EAAc0vB,EAAQ,CAClB,CACIvnD,IAAK,UACLsC,IAAK,WACD,OAAOxE,KAAK21C,GAChB,KAGD8T,CACX,CAtC+B,GAuC3BO,GAAWR,GACfA,GAAWl1C,QAAUk1C,GACrB,IAAIS,GAAiB,IAAI5E,WAAW,GAChC6E,GAAiB,IAAI7E,WAAW,GAChC8E,GAAc,KAAK9E,WAAW,GAC9B+E,GAAU,IAAI/E,WAAW,GACzBgF,GAAY,KAAKhF,WAAW,GAC5BiF,GAAU,IAAIjF,WAAW,GACzBkF,GAAS,KAAKlF,WAAW,GACzBmF,GAAQ,KAAInF,WAAW,GACvBoF,GAAO,KAAKpF,WAAW,GACvBqF,GAAgB,IAAIrF,WAAW,GAC/BsF,GAAiB,IAAItF,WAAW,GAChCuF,GAAqB,IAAIvF,WAAW,GACpCwF,GAAsB,IAAIxF,WAAW,GACrCyF,GAAe,IAAIzF,WAAW,GAC9B0F,GAAgB,IAAI1F,WAAW,GAC/B2F,GAAc,IAAI3F,WAAW,GAC7B4F,GAAa,IAAI5F,WAAW,GAC5B6F,GAAU,IAAI7F,WAAW,GACzB8F,GAAO,IAAI9F,WAAW,GACtB+F,GAAc,6BACdC,GAAgB,wCAChBC,GAAmB,gBACnBC,GAAkB,WAgPlBC,GAAgB9C,GAChB+C,GAA2B,SAASD,GAEpC,SAASE,EAAOhR,GACZ,IAAI3Y,EAGJ,OAFAA,EAAQypB,EAAc5oD,KAAK5C,KAAM06C,IAAa16C,MACxCtE,KAAO,SACNqmC,CACX,CANApH,EAAU+wB,EAAQF,GAOlB,IAAIlqB,EAASoqB,EAAOhpD,UAqBpB,OApBA4+B,EAAO/gB,OAAS,WACZ,IAAI,IAAI27B,EAAOlvC,UAAUtU,OAAQsuD,EAAW,IAAIvtD,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChF6K,EAAS7K,GAAQnvC,UAAUmvC,GAE/B,IAAIwP,EAEJ,OADK3rD,KAAK4mD,QAAQ9O,QAAO93C,KAAK83C,MAAQ,KAC9B6T,EAAkCH,EAAc9oD,UAAU6d,QAAQ3d,KAAKmD,MAAM4lD,EAAiC,GAAGpjD,OAAO,CAC5HvI,MACDgnD,GACP,EACA1lB,EAAO9qB,QAAU,WACb,IAAI,IAAI0lC,EAAOlvC,UAAUtU,OAAQsuD,EAAW,IAAIvtD,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChF6K,EAAS7K,GAAQnvC,UAAUmvC,GAE/B,IAAIyP,EAEJ,OADK5rD,KAAK4mD,QAAQ9O,QAAO93C,KAAK83C,MAAQ,KAC9B8T,EAAmCJ,EAAc9oD,UAAU8T,SAAS5T,KAAKmD,MAAM6lD,EAAkC,GAAGrjD,OAAO,CAC/HvI,MACDgnD,GACP,EACO0E,CACX,CA9B+B,CA8B7BF,IACEK,GAAWJ,GACfA,GAAWn3C,QAAUm3C,GACrBD,GAAchD,eAAeiD,IAC7B,IACIK,GAAgBC,GADhBC,GAAgBtD,GAEhBuD,GAAyB,SAASD,GAElC,SAASE,EAAKxR,GACV,IAAI3Y,EAIJ,OAHAA,EAAQiqB,EAAcppD,KAAK5C,KAAM06C,IAAa16C,MACxCtE,KAAO,OACRqmC,EAAM+V,QAAO/V,EAAM+V,MAAQ,IACzB/V,CACX,CAPApH,EAAUuxB,EAAMF,GAQhB,IAAI1qB,EAAS4qB,EAAKxpD,UA+BlB,OA9BA4+B,EAAO2lB,UAAY,SAAmB5O,EAAOuP,EAAQlsD,GACjD,IAAIo8C,EAAQkU,EAActpD,UAAUukD,UAAUrkD,KAAK5C,KAAMq4C,GACzD,GAAIuP,EACA,GAAa,YAATlsD,EACIsE,KAAK83C,MAAMp/C,OAAS,EACpBkvD,EAAOhQ,KAAKU,OAASt4C,KAAK83C,MAAM,GAAGF,KAAKU,cAEjCsP,EAAOhQ,KAAKU,YAEpB,GAAIt4C,KAAK24C,QAAUiP,EACtB,IAAI,IAA6D7jB,EAAzDC,EAAYrI,EAAqCmc,KAAiB/T,EAAQC,KAAavmB,MAC/EsmB,EAAM17B,MACZuvC,KAAKU,OAASsP,EAAOhQ,KAAKU,OAI5C,OAAOR,CACX,EACAxW,EAAOtC,YAAc,SAAqBqZ,EAAO8T,GAC7C,IAAIjW,EAASl2C,KAAK+H,MAAMswC,GAIxB,OAHK8T,GAAqB,IAAXjW,GAAgBl2C,KAAK83C,MAAMp/C,OAAS,IAC/CsH,KAAK83C,MAAM,GAAGF,KAAKU,OAASt4C,KAAK83C,MAAM5B,GAAQ0B,KAAKU,QAEjD0T,EAActpD,UAAUs8B,YAAYp8B,KAAK5C,KAAMq4C,EAC1D,EACA/W,EAAO0nB,SAAW,SAAkB5+C,GAGhC,YAFa,IAATA,IAAiBA,EAAO,CAAC,GAClB,IAAI0hD,GAAe,IAAIC,GAAiB/rD,KAAMoK,GAC7CnB,WAChB,EACOijD,CACX,CAzC6B,CAyC3BF,IACFC,GAAShD,mBAAqB,SAASX,GACnCwD,GAAiBxD,CACrB,EACA2D,GAAS/C,kBAAoB,SAASZ,GAClCyD,GAAgBzD,CACpB,EACA,IAAI8D,GAASH,GACbA,GAAS33C,QAAU23C,GACnBD,GAAcvD,aAAawD,IAC3B,IAAII,GAAW,CACXC,MAAO,SAAe9T,GAClB,OAAO6T,GAASh0D,MAAMmgD,EAAQ,CAC1B,MACD,EACP,EACA+T,MAAO,SAAe/T,GAMlB,OAAO6T,GAASh0D,MAAMmgD,EALT,CACT,IACA,KACA,MAGR,EACAngD,MAAO,SAAemgD,EAAQgU,EAAYtpD,GAQtC,IAPA,IAOkE6gC,EAP9D0oB,EAAQ,GACRvnD,EAAU,GACV7M,GAAQ,EACRq0D,EAAO,EACPC,GAAU,EACVC,EAAY,GACZhpD,GAAS,EACLogC,EAAYrI,EAAqC6c,KAAkBzU,EAAQC,KAAavmB,MAAM,CAClG,IAAIovC,EAAS9oB,EAAM17B,MACfzE,EACAA,GAAS,EACS,OAAXipD,EACPjpD,GAAS,EACF+oD,EACHE,IAAWD,IACXD,GAAU,GAEI,MAAXE,GAA6B,MAAXA,GACzBF,GAAU,EACVC,EAAYC,GACM,MAAXA,EACPH,GAAQ,EACU,MAAXG,EACHH,EAAO,IAAGA,GAAQ,GACN,IAATA,GACHF,EAAWnzD,SAASwzD,KAASx0D,GAAQ,GAEzCA,GACgB,KAAZ6M,GAAgBunD,EAAM3nD,KAAKI,EAAQlG,QACvCkG,EAAU,GACV7M,GAAQ,GAER6M,GAAW2nD,CAEnB,CAEA,OADI3pD,GAAoB,KAAZgC,IAAgBunD,EAAM3nD,KAAKI,EAAQlG,QACxCytD,CACX,GAEAK,GAAWT,GACfA,GAAS/3C,QAAU+3C,GACnB,IAAIU,GAAgBrE,GAChBsE,GAAWF,GACXG,GAAyB,SAASF,GAElC,SAASG,EAAKxS,GACV,IAAI3Y,EAIJ,OAHAA,EAAQgrB,EAAcnqD,KAAK5C,KAAM06C,IAAa16C,MACxCtE,KAAO,OACRqmC,EAAM+V,QAAO/V,EAAM+V,MAAQ,IACzB/V,CACX,CAcA,OArBApH,EAAUuyB,EAAMH,GAQhBhzB,EAAcmzB,EAAM,CAChB,CACIhrD,IAAK,YACLsC,IAAK,WACD,OAAOwoD,GAASV,MAAMtsD,KAAKmK,SAC/B,EACAtF,IAAK,SAAaqlB,GACd,IAAIzd,EAAQzM,KAAKmK,SAAWnK,KAAKmK,SAASsC,MAAM,QAAU,KACtD0gD,EAAO1gD,EAAQA,EAAM,GAAK,IAAMzM,KAAKk4C,IAAI,UAAW,cACxDl4C,KAAKmK,SAAW+f,EAAO/hB,KAAKglD,EAChC,KAGDD,CACX,CAvB6B,CAuB3BH,IACEK,GAASH,GACbA,GAAS34C,QAAU24C,GACnBF,GAAcxE,aAAa0E,IAC3B,IAAII,GAAkBjQ,GAElBkQ,GAAcrH,GACdsH,GAAa1B,GACb2B,GAAWpB,GACXqB,GAAWL,GACXM,GAA0B,CAC1BC,OAAO,EACPpB,OAAO,GASPqB,GAA2B,WAC3B,SAASC,EAAOjR,GACZ58C,KAAK66C,MAAQ+B,EACb58C,KAAK64C,KAAO,IAAI2U,GAChBxtD,KAAKkF,QAAUlF,KAAK64C,KACpB74C,KAAK8tD,OAAS,GACd9tD,KAAKq3C,WAAY,EACjBr3C,KAAK+tD,kBACL/tD,KAAK64C,KAAKv1C,OAAS,CACfu3C,MAAO+B,EACP7G,MAAO,CACHd,OAAQ,EACRD,KAAM,EACNqM,OAAQ,GAGpB,CACA,IAAI/f,EAASusB,EAAOnrD,UAufpB,OAtfA4+B,EAAOmW,OAAS,SAAgBuW,GAC5B,IAMItyD,EACAqnB,EACAne,EARAu9B,EAAQ,IAAIorB,GAChBprB,EAAM9jC,KAAO2vD,EAAM,GAAG/qD,MAAM,GACT,KAAfk/B,EAAM9jC,MACN2B,KAAKiuD,cAAc9rB,EAAO6rB,GAE9BhuD,KAAKiB,KAAKkhC,EAAO6rB,EAAM,IAQvB,IAJA,IAAI9qD,GAAO,EACP+yB,GAAO,EACPyhB,EAAS,GACTwW,EAAW,IACRluD,KAAKmuD,UAAUC,aAAY,CAU9B,GAPa,OADb1yD,GADAsyD,EAAQhuD,KAAKmuD,UAAUE,aACV,KACgB,MAAT3yD,EAChBwyD,EAASppD,KAAc,MAATpJ,EAAe,IAAM,KACnB,MAATA,GAAgBwyD,EAASx1D,OAAS,EACzCw1D,EAASppD,KAAK,KACPpJ,IAASwyD,EAASA,EAASx1D,OAAS,IAC3Cw1D,EAASt7C,MAEW,IAApBs7C,EAASx1D,OAAc,CACvB,GAAa,MAATgD,EAAc,CACdymC,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYN,EAAM,IAC1C7rB,EAAM7+B,OAAO0yC,IAAIqL,SACjBrhD,KAAKq3C,WAAY,EACjB,KACJ,CAAO,GAAa,MAAT37C,EAAc,CACrBu6B,GAAO,EACP,KACJ,CAAO,GAAa,MAATv6B,EAAc,CACrB,GAAIg8C,EAAOh/C,OAAS,EAAG,CAGnB,IADAqqB,EAAO20B,EADP9yC,EAAQ8yC,EAAOh/C,OAAS,GAElBqqB,GAAoB,UAAZA,EAAK,IACfA,EAAO20B,IAAS9yC,GAEhBme,IACAof,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYvrC,EAAK,IAAMA,EAAK,IACpDof,EAAM7+B,OAAO0yC,IAAIqL,SAEzB,CACArhD,KAAKg2C,IAAIgY,GACT,KACJ,CACItW,EAAO5yC,KAAKkpD,EAEpB,MACItW,EAAO5yC,KAAKkpD,GAEhB,GAAIhuD,KAAKmuD,UAAUC,YAAa,CAC5BlrD,GAAO,EACP,KACJ,CACJ,CACAi/B,EAAMyV,KAAKI,QAAUh4C,KAAKuuD,yBAAyB7W,GAC/CA,EAAOh/C,QACPypC,EAAMyV,KAAKC,UAAY73C,KAAKwuD,2BAA2B9W,GACvD13C,KAAKk4C,IAAI/V,EAAO,SAAUuV,GACtBx0C,IACA8qD,EAAQtW,EAAOA,EAAOh/C,OAAS,GAC/BypC,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYN,EAAM,IAAMA,EAAM,IACtD7rB,EAAM7+B,OAAO0yC,IAAIqL,SACjBrhD,KAAK8tD,OAAS3rB,EAAMyV,KAAKI,QACzB7V,EAAMyV,KAAKI,QAAU,MAGzB7V,EAAMyV,KAAKC,UAAY,GACvB1V,EAAMuV,OAAS,IAEfzhB,IACAkM,EAAM2V,MAAQ,GACd93C,KAAKkF,QAAUi9B,EAEvB,EACAb,EAAOmtB,qBAAuB,SAA8BxpD,GACxD,IAAI+xC,EAAQh3C,KAAKg3C,MAAM/xC,GACvB,IAAc,IAAV+xC,EAAJ,CAGA,IAFA,IACIgX,EADAU,EAAU,EAENrpD,EAAI2xC,EAAQ,EAAG3xC,GAAK,IAEP,WADjB2oD,EAAQ/oD,EAAOI,IACL,IAEU,KADhBqpD,GAAW,IAHYrpD,KAO/B,MAAMrF,KAAK66C,MAAMh1C,MAAM,mBAAiC,SAAbmoD,EAAM,GAAgBA,EAAM,GAAK,EAAIA,EAAM,GAV3D,CAW/B,EACA1sB,EAAO0V,MAAQ,SAAe/xC,GAG1B,IAFA,IACI+oD,EAAOtyD,EAAMqnB,EAC2DghB,EAFxEmqB,EAAW,EAEPlqB,EAAYrI,EAAqC12B,EAAOqC,aAAqBy8B,EAAQC,KAAavmB,MAAM,CAC5G,IAAIkxC,EAAc5qB,EAAM17B,MAAOygC,EAAK6lB,EAAY,GAShD,GANa,OADbjzD,GADAsyD,EAD8DW,EAAY,IAE7D,MAETT,GAAY,GAEH,MAATxyD,IACAwyD,GAAY,GAEC,IAAbA,GAA2B,MAATxyD,EAAc,CAChC,GAAKqnB,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GAClC,SAEA,OAAO+lB,CACX,CALI9oC,KAAK4uD,YAAYZ,EAMzB,CACAjrC,EAAOirC,CACX,CACA,OAAO,CACX,EACA1sB,EAAO2O,QAAU,SAAiB+d,GAC9B,IAAI7rB,EAAQ,IAAImrB,GAChBttD,KAAKiB,KAAKkhC,EAAO6rB,EAAM,IACvB7rB,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYN,EAAM,IAAMA,EAAM,IACtD7rB,EAAM7+B,OAAO0yC,IAAIqL,SACjB,IAAIh+B,EAAO2qC,EAAM,GAAG/qD,MAAM,GAAI,GAC9B,GAAI,QAAQoJ,KAAKgX,GACb8e,EAAM9e,KAAO,GACb8e,EAAMyV,KAAK5c,KAAO3X,EAClB8e,EAAMyV,KAAK3c,MAAQ,OAChB,CACH,IAAIxuB,EAAQ4W,EAAK5W,MAAM,wBACvB01B,EAAM9e,KAAO5W,EAAM,GACnB01B,EAAMyV,KAAK5c,KAAOvuB,EAAM,GACxB01B,EAAMyV,KAAK3c,MAAQxuB,EAAM,EAC7B,CACJ,EACA60B,EAAOysB,gBAAkB,WACrB/tD,KAAKmuD,UAvkBI,SAAmBvR,EAAQz7C,QACxB,IAAZA,IAAoBA,EAAU,CAAC,GACnC,IAEIoE,EAAMJ,EAAM0pD,EAAOjhC,EAAShqB,EAC5BkrD,EAASC,EAAWhsC,EAAMuc,EAAI0vB,EAH9BrZ,EAAMiH,EAAOjH,IAAIja,UACjBywB,EAAShrD,EAAQ8tD,aAGjBv2D,EAASi9C,EAAIj9C,OACb0sC,EAAM,EACN8F,EAAS,GACTgkB,EAAW,GAIf,SAASC,EAASC,GACd,MAAMxS,EAAO/2C,MAAM,YAAcupD,EAAMhqB,EAC3C,CAyNA,MAAO,CACHlX,KAJJ,SAAc8/B,GACVkB,EAASpqD,KAAKkpD,EAClB,EAGII,UA1NJ,WACI,OAA2B,IAApBc,EAASx2D,QAAgB0sC,GAAO1sC,CAC3C,EAyNI21D,UAxNJ,SAAmBjkD,GACf,GAAI8kD,EAASx2D,OAAQ,OAAOw2D,EAASt8C,MACrC,KAAIwyB,GAAO1sC,GAAX,CACA,IAAI22D,IAAiBjlD,GAAOA,EAAKilD,eAEjC,OADA9pD,EAAOowC,EAAI0P,WAAWjgB,IAElB,KAAKilB,GACL,KAAKC,GACL,KAAKE,GACL,KAAKC,GACL,KAAKF,GAEGplD,EAAOigC,EACP,GACIjgC,GAAQ,EACRI,EAAOowC,EAAI0P,WAAWlgD,SAClBI,IAAS+kD,IAAW/kD,IAAS8kD,IAAa9kD,IAASilD,IAASjlD,IAASklD,IAAQllD,IAASglD,IAC9FyE,EAAe,CACX,QACArZ,EAAI1yC,MAAMmiC,EAAKjgC,IAEnBigC,EAAMjgC,EAAO,EACb,MAER,KAAKulD,GACL,KAAKC,GACL,KAAKG,GACL,KAAKC,GACL,KAAKG,GACL,KAAKF,GACL,KAAKH,GAEG,IAAIyE,EAAcl3D,OAAOm3D,aAAahqD,GACtCypD,EAAe,CACXM,EACAA,EACAlqB,GAEJ,MAER,KAAKwlB,GAIG,GAFA7nC,EAAOmoB,EAAOxyC,OAASwyC,EAAOt4B,MAAM,GAAK,GACzC0sB,EAAKqW,EAAI0P,WAAWjgB,EAAM,GACb,QAATriB,GAAkBuc,IAAO2qB,IAAkB3qB,IAAO4qB,IAAkB5qB,IAAOgrB,IAAWhrB,IAAO+qB,IAAa/qB,IAAOkrB,IAASlrB,IAAOirB,IAAUjrB,IAAOmrB,GAAM,CACxJtlD,EAAOigC,EACP,EAAG,CAGC,GAFA0pB,GAAU,GAEI,KADd3pD,EAAOwwC,EAAIxzC,QAAQ,IAAKgD,EAAO,IACd,CACb,GAAIgnD,GAAUkD,EAAgB,CAC1BlqD,EAAOigC,EACP,KACJ,CACI+pB,EAAS,UAEjB,CAEA,IADAJ,EAAY5pD,EACNwwC,EAAI0P,WAAW0J,EAAY,KAAO5E,IACpC4E,GAAa,EACbD,GAAWA,CAEnB,OAAQA,GACRE,EAAe,CACX,WACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,CACV,MACIA,EAAOwwC,EAAIxzC,QAAQ,IAAKijC,EAAM,GAC9BxX,EAAU+nB,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,IAClB,IAAVA,GAAemmD,GAAiBj/C,KAAKuhB,GACrCohC,EAAe,CACX,IACA,IACA5pB,IAGJ4pB,EAAe,CACX,WACAphC,EACAwX,EACAjgC,GAEJigC,EAAMjgC,GAGd,MAER,KAAK8kD,GACL,KAAKC,GAEG2E,EAAQtpD,IAAS0kD,GAAiB,IAAM,IACxC9kD,EAAOigC,EACP,EAAG,CAGC,GAFA0pB,GAAU,GAEI,KADd3pD,EAAOwwC,EAAIxzC,QAAQ0sD,EAAO1pD,EAAO,IAChB,CACb,GAAIgnD,GAAUkD,EAAgB,CAC1BlqD,EAAOigC,EAAM,EACb,KACJ,CACI+pB,EAAS,SAEjB,CAEA,IADAJ,EAAY5pD,EACNwwC,EAAI0P,WAAW0J,EAAY,KAAO5E,IACpC4E,GAAa,EACbD,GAAWA,CAEnB,OAAQA,GACRE,EAAe,CACX,SACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,EACN,MAER,KAAKgmD,GAEGC,GAAYlzC,UAAYktB,EAAM,EAC9BgmB,GAAY/+C,KAAKspC,GAEbxwC,EAD0B,IAA1BimD,GAAYlzC,UACLy9B,EAAIj9C,OAAS,EAEb0yD,GAAYlzC,UAAY,EAEnC82C,EAAe,CACX,UACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,EACN,MAER,KAAKglD,GAIG,IAFAhlD,EAAOigC,EACPxhC,GAAS,EACH+xC,EAAI0P,WAAWlgD,EAAO,KAAOglD,IAC/BhlD,GAAQ,EACRvB,GAAUA,EAGd,GADA2B,EAAOowC,EAAI0P,WAAWlgD,EAAO,GACzBvB,GAAU2B,IAAS6kD,IAAW7kD,IAAS+kD,IAAW/kD,IAAS8kD,IAAa9kD,IAASilD,IAASjlD,IAASklD,IAAQllD,IAASglD,KACpHplD,GAAQ,EACJomD,GAAgBl/C,KAAKspC,EAAIhQ,OAAOxgC,KAAQ,CACxC,KAAMomD,GAAgBl/C,KAAKspC,EAAIhQ,OAAOxgC,EAAO,KACzCA,GAAQ,EAERwwC,EAAI0P,WAAWlgD,EAAO,KAAOmlD,KAC7BnlD,GAAQ,EAEhB,CAEJ6pD,EAAe,CACX,OACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,EACN,MAER,QAEYI,IAAS6kD,IAAWzU,EAAI0P,WAAWjgB,EAAM,KAAO6lB,IAEnC,KADb9lD,EAAOwwC,EAAIxzC,QAAQ,KAAMijC,EAAM,GAAK,KAE5B+mB,GAAUkD,EACVlqD,EAAOwwC,EAAIj9C,OAEXy2D,EAAS,YAGjBH,EAAe,CACX,UACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,IAENkmD,GAAcnzC,UAAYktB,EAAM,EAChCimB,GAAch/C,KAAKspC,GAEfxwC,EAD4B,IAA5BkmD,GAAcnzC,UACPy9B,EAAIj9C,OAAS,EAEb2yD,GAAcnzC,UAAY,EAErC82C,EAAe,CACX,OACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJ+lC,EAAOpmC,KAAKkqD,GACZ5pB,EAAMjgC,GAMtB,OADAigC,IACO4pB,CA9MkB,CA+M7B,EAQIlpC,SAlOJ,WACI,OAAOsf,CACX,EAkOJ,CAyVyBoqB,CAAaxvD,KAAK66C,MACvC,EACAvZ,EAAOiX,KAAO,SAActzC,EAAQwqD,GAChC,IAAIttB,EAAQ,IAAIkrB,GAChBrtD,KAAKiB,KAAKkhC,EAAOl9B,EAAO,GAAG,IAC3B,IAqBI+oD,EArBA9qD,EAAO+B,EAAOA,EAAOvM,OAAS,GAOlC,IANgB,MAAZwK,EAAK,KACLlD,KAAKq3C,WAAY,EACjBpyC,EAAO2N,OAEXuvB,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYprD,EAAK,IAAMA,EAAK,IA3K5D,SAAgC+B,GAC5B,IAAI,IAAI6jC,EAAK7jC,EAAOvM,OAAS,EAAGowC,GAAM,EAAGA,IAAK,CAC1C,IAAIklB,EAAQ/oD,EAAO6jC,GACf1D,EAAM4oB,EAAM,IAAMA,EAAM,GAC5B,GAAI5oB,EAAK,OAAOA,CACpB,CACJ,CAqKkEsqB,CAAuBzqD,IACjFk9B,EAAM7+B,OAAO0yC,IAAIqL,SACM,SAAjBp8C,EAAO,GAAG,IACU,IAAlBA,EAAOvM,QAAcsH,KAAK2vD,YAAY1qD,GAC1Ck9B,EAAMyV,KAAKU,QAAUrzC,EAAOL,QAAQ,GAIxC,IAFAu9B,EAAM7+B,OAAOyyC,MAAQ/1C,KAAKsuD,YAAYrpD,EAAO,GAAG,IAChDk9B,EAAM3+B,KAAO,GACPyB,EAAOvM,QAAO,CAChB,IAAIgD,EAAOuJ,EAAO,GAAG,GACrB,GAAa,MAATvJ,GAAyB,UAATA,GAA6B,YAATA,EACpC,MAEJymC,EAAM3+B,MAAQyB,EAAOL,QAAQ,EACjC,CAGA,IAFAu9B,EAAMyV,KAAKI,QAAU,GAEf/yC,EAAOvM,QAAO,CAEhB,GAAiB,OADjBs1D,EAAQ/oD,EAAOL,SACL,GAAY,CAClBu9B,EAAMyV,KAAKI,SAAWgW,EAAM,GAC5B,KACJ,CACqB,SAAbA,EAAM,IAAiB,KAAK3hD,KAAK2hD,EAAM,KACvChuD,KAAK2vD,YAAY,CACb3B,IAGR7rB,EAAMyV,KAAKI,SAAWgW,EAAM,EAEpC,CACsB,MAAlB7rB,EAAM3+B,KAAK,IAAgC,MAAlB2+B,EAAM3+B,KAAK,KACpC2+B,EAAMyV,KAAKU,QAAUnW,EAAM3+B,KAAK,GAChC2+B,EAAM3+B,KAAO2+B,EAAM3+B,KAAKP,MAAM,IAIlC,IAFA,IACIkC,EADAyqD,EAAc,GAEZ3qD,EAAOvM,SAEI,WADbyM,EAAOF,EAAO,GAAG,KACgB,YAATE,IACxByqD,EAAY9qD,KAAKG,EAAOL,SAE5B5E,KAAK6vD,wBAAwB5qD,GAC7B,IAAI,IAAI6jC,EAAK7jC,EAAOvM,OAAS,EAAGowC,GAAM,EAAGA,IAAK,CAE1C,GAA+B,gBAD/BklB,EAAQ/oD,EAAO6jC,IACL,GAAG17B,cAAgC,CACzC+0B,EAAMsW,WAAY,EAClB,IAAID,EAASx4C,KAAK8vD,WAAW7qD,EAAQ6jC,GAEtB,iBADf0P,EAASx4C,KAAK+vD,cAAc9qD,GAAUuzC,KACRrW,EAAMyV,KAAKa,UAAYD,GACrD,KACJ,CAAO,GAA+B,cAA3BwV,EAAM,GAAG5gD,cAA+B,CAG/C,IAFA,IAAI2M,EAAQ9U,EAAOhC,MAAM,GACrBS,EAAM,GACF2B,EAAIyjC,EAAIzjC,EAAI,EAAGA,IAAI,CACvB,IAAI2qD,EAAQj2C,EAAM1U,GAAG,GACrB,GAAgC,IAA5B3B,EAAI1E,OAAOmD,QAAQ,MAAwB,UAAV6tD,EACjC,MAEJtsD,EAAMqW,EAAMnH,MAAM,GAAKlP,CAC3B,CACgC,IAA5BA,EAAI1E,OAAOmD,QAAQ,OACnBggC,EAAMsW,WAAY,EAClBtW,EAAMyV,KAAKa,UAAY/0C,EACvBuB,EAAS8U,EAEjB,CACA,GAAiB,UAAbi0C,EAAM,IAA+B,YAAbA,EAAM,GAC9B,KAER,CACA,IAAIiC,EAAUhrD,EAAO+f,KAAK,SAAS8jB,GAC/B,MAAiB,UAAVA,EAAG,IAA4B,YAAVA,EAAG,EACnC,GACImnB,IACA9tB,EAAMyV,KAAKI,SAAW4X,EAAYzjD,IAAI,SAAS28B,GAC3C,OAAOA,EAAG,EACd,GAAG3gC,KAAK,IACRynD,EAAc,IAElB5vD,KAAKk4C,IAAI/V,EAAO,QAASytB,EAAYrnD,OAAOtD,GAASwqD,GACjDttB,EAAM95B,MAAMhP,SAAS,OAASo2D,GAC9BzvD,KAAKyuD,qBAAqBxpD,EAElC,EACAq8B,EAAOstB,YAAc,SAAqBZ,GACtC,MAAMhuD,KAAK66C,MAAMh1C,MAAM,eAAgB,CACnCw7C,OAAQ2M,EAAM,IACf,CACC3M,OAAQ2M,EAAM,GAAKA,EAAM,GAAGt1D,QAEpC,EACA4oC,EAAO4uB,UAAY,SAAmBlC,GAClC,IAAI7rB,EAAQ,IAAIsrB,GAChBztD,KAAKiB,KAAKkhC,EAAO6rB,EAAM,IACvB7rB,EAAMh4B,SAAW,GACjBg4B,EAAMyV,KAAKI,QAAU,GACrBh4C,KAAKkF,QAAUi9B,CACnB,EACAb,EAAO0U,IAAM,SAAagY,GAClBhuD,KAAKkF,QAAQ4yC,OAAS93C,KAAKkF,QAAQ4yC,MAAMp/C,SACzCsH,KAAKkF,QAAQ0yC,KAAKP,UAAYr3C,KAAKq3C,WAEvCr3C,KAAKq3C,WAAY,EACjBr3C,KAAKkF,QAAQ0yC,KAAKlB,OAAS12C,KAAKkF,QAAQ0yC,KAAKlB,OAAS,IAAM12C,KAAK8tD,OACjE9tD,KAAK8tD,OAAS,GACV9tD,KAAKkF,QAAQ+oC,QACbjuC,KAAKkF,QAAQ5B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYN,EAAM,IACjDhuD,KAAKkF,QAAQ5B,OAAO0yC,IAAIqL,SACxBrhD,KAAKkF,QAAUlF,KAAKkF,QAAQ+oC,QAE5BjuC,KAAKmwD,gBAAgBnC,EAE7B,EACA1sB,EAAO8uB,QAAU,WACTpwD,KAAKkF,QAAQ+oC,QAAQjuC,KAAKqwD,gBAC1BrwD,KAAKkF,QAAQ4yC,OAAS93C,KAAKkF,QAAQ4yC,MAAMp/C,SACzCsH,KAAKkF,QAAQ0yC,KAAKP,UAAYr3C,KAAKq3C,WAEvCr3C,KAAKkF,QAAQ0yC,KAAKlB,OAAS12C,KAAKkF,QAAQ0yC,KAAKlB,OAAS,IAAM12C,KAAK8tD,OACjE9tD,KAAK64C,KAAKv1C,OAAO0yC,IAAMh2C,KAAKsuD,YAAYtuD,KAAKmuD,UAAUroC,WAC3D,EACAwb,EAAOgvB,cAAgB,SAAuBtC,GAE1C,GADAhuD,KAAK8tD,QAAUE,EAAM,GACjBhuD,KAAKkF,QAAQ4yC,MAAO,CACpB,IAAI/0B,EAAO/iB,KAAKkF,QAAQ4yC,MAAM93C,KAAKkF,QAAQ4yC,MAAMp/C,OAAS,GACtDqqB,GAAsB,SAAdA,EAAKrnB,OAAoBqnB,EAAK60B,KAAKgC,eAC3C72B,EAAK60B,KAAKgC,aAAe55C,KAAK8tD,OAC9B9tD,KAAK8tD,OAAS,GAEtB,CACJ,EAEAxsB,EAAOgtB,YAAc,SAAqBjN,GACtC,IAAIjc,EAAMplC,KAAK66C,MAAMyG,WAAWD,GAChC,MAAO,CACHpM,OAAQ7P,EAAImc,IACZvM,KAAM5P,EAAI4P,KACVqM,OAAQA,EAEhB,EACA/f,EAAOrgC,KAAO,SAAckhC,EAAOkf,GAC/BrhD,KAAKkF,QAAQJ,KAAKq9B,GAClBA,EAAM7+B,OAAS,CACXu3C,MAAO76C,KAAK66C,MACZ9E,MAAO/1C,KAAKsuD,YAAYjN,IAE5Blf,EAAMyV,KAAKU,OAASt4C,KAAK8tD,OACzB9tD,KAAK8tD,OAAS,GACK,YAAf3rB,EAAMzmC,OAAoBsE,KAAKq3C,WAAY,EACnD,EACA/V,EAAOrsB,MAAQ,SAAe8gC,GAS1B,IARA,IAAIC,GAAM,EACNt6C,EAAO,KACPs7C,GAAQ,EACRuZ,EAAU,KACVrC,EAAW,GACXuB,EAAiB1Z,EAAM,GAAGnyB,WAAW,MACrC3e,EAAS,GACT+oD,EAAQjY,EACNiY,GAAM,CAGR,GAFAtyD,EAAOsyD,EAAM,GACb/oD,EAAOH,KAAKkpD,GACC,MAATtyD,GAAyB,MAATA,EACX60D,IAASA,EAAUvC,GACxBE,EAASppD,KAAc,MAATpJ,EAAe,IAAM,UAChC,GAAI+zD,GAAkBzY,GAAkB,MAATt7C,EAC7B60D,IAASA,EAAUvC,GACxBE,EAASppD,KAAK,UACX,GAAwB,IAApBopD,EAASx1D,OAAc,CAC9B,GAAa,MAATgD,EAAc,CACd,GAAIs7C,EAEA,YADAh3C,KAAKu4C,KAAKtzC,EAAQwqD,GAGlB,KAER,CAAO,GAAa,MAAT/zD,EAEP,YADAsE,KAAK8V,KAAK7Q,GAEP,GAAa,MAATvJ,EAAc,CACrBsE,KAAKmuD,UAAUjgC,KAAKjpB,EAAO2N,OAC3BojC,GAAM,EACN,KACJ,CAAoB,MAATt6C,IACPs7C,GAAQ,EAEhB,MAAWt7C,IAASwyD,EAASA,EAASx1D,OAAS,KAC3Cw1D,EAASt7C,MACe,IAApBs7C,EAASx1D,SAAc63D,EAAU,OAEzCvC,EAAQhuD,KAAKmuD,UAAUE,WAC3B,CAGA,GAFIruD,KAAKmuD,UAAUC,cAAapY,GAAM,GAClCkY,EAASx1D,OAAS,GAAGsH,KAAKwwD,gBAAgBD,GAC1Cva,GAAOgB,EAAO,CACd,IAAKyY,EACD,KAAMxqD,EAAOvM,SAEK,WADds1D,EAAQ/oD,EAAOA,EAAOvM,OAAS,GAAG,KACC,YAAVs1D,IACzBhuD,KAAKmuD,UAAUjgC,KAAKjpB,EAAO2N,OAGnC5S,KAAKu4C,KAAKtzC,EAAQwqD,EACtB,MACIzvD,KAAK2vD,YAAY1qD,EAEzB,EACAq8B,EAAOt4B,MAAQ,WAEX,IADA,IAAIglD,GACGhuD,KAAKmuD,UAAUC,aAElB,QADAJ,EAAQhuD,KAAKmuD,UAAUE,aACV,IACT,IAAK,QACDruD,KAAK8tD,QAAUE,EAAM,GACrB,MACJ,IAAK,IACDhuD,KAAKswD,cAActC,GACnB,MACJ,IAAK,IACDhuD,KAAKg2C,IAAIgY,GACT,MACJ,IAAK,UACDhuD,KAAKiwC,QAAQ+d,GACb,MACJ,IAAK,UACDhuD,KAAKy3C,OAAOuW,GACZ,MACJ,IAAK,IACDhuD,KAAKkwD,UAAUlC,GACf,MACJ,QACIhuD,KAAKiV,MAAM+4C,GAIvBhuD,KAAKowD,SACT,EACA9uB,EAAOuuB,wBAA0B,WAAoC,EACrEvuB,EAAO4W,IAAM,SAAa/V,EAAO3+B,EAAMyB,EAAQwqD,GAM3C,IALA,IAAIzB,EAAOtyD,EAIPyJ,EAAM4d,EAHNrqB,EAASuM,EAAOvM,OAChB2P,EAAQ,GACRooD,GAAQ,EAEJ3nB,EAAK,EAAGA,EAAKpwC,EAAQowC,GAAM,EAGlB,WADbptC,GADAsyD,EAAQ/oD,EAAO6jC,IACF,KACWA,IAAOpwC,EAAS,GAAM+2D,EAE1B,YAAT/zD,GACPqnB,EAAO9d,EAAO6jC,EAAK,GAAK7jC,EAAO6jC,EAAK,GAAG,GAAK,QAC5C3jC,EAAOF,EAAO6jC,EAAK,GAAK7jC,EAAO6jC,EAAK,GAAG,GAAK,QACvC4kB,GAAwB3qC,IAAU2qC,GAAwBvoD,IACnC,MAApBkD,EAAMpF,OAAO,GAMjBwtD,GAAQ,EAHJpoD,GAAS2lD,EAAM,IAMvB3lD,GAAS2lD,EAAM,GAdfyC,GAAQ,EAiBhB,IAAKA,EAAO,CACR,IAAIvY,EAAMjzC,EAAO2U,OAAO,SAAS82C,EAAK5nB,GAClC,OAAO4nB,EAAM5nB,EAAG,EACpB,EAAG,IACH3G,EAAMyV,KAAKp0C,GAAQ,CACf00C,IAAKA,EACL7vC,MAAOA,EAEf,CACA85B,EAAM3+B,GAAQ6E,CAClB,EACAi5B,EAAOxrB,KAAO,SAAc7Q,GACxBA,EAAO2N,MACP,IAAIuvB,EAAQ,IAAIsrB,GAChBztD,KAAKiB,KAAKkhC,EAAOl9B,EAAO,GAAG,IAC3Bk9B,EAAMyV,KAAKI,QAAUh4C,KAAKuuD,yBAAyBtpD,GACnDjF,KAAKk4C,IAAI/V,EAAO,WAAYl9B,GAC5BjF,KAAKkF,QAAUi9B,CACnB,EACAb,EAAOitB,yBAA2B,SAAkCtpD,GAGhE,IAFA,IAAI0rD,EACA7C,EAAS,GACP7oD,EAAOvM,SAEa,WADtBi4D,EAAgB1rD,EAAOA,EAAOvM,OAAS,GAAG,KACS,YAAlBi4D,IACjC7C,EAAS7oD,EAAO2N,MAAM,GAAKk7C,EAE/B,OAAOA,CACX,EAEAxsB,EAAOktB,2BAA6B,SAAoCvpD,GAGpE,IAFA,IAAIE,EACA2oD,EAAS,GACP7oD,EAAOvM,SAEI,WADbyM,EAAOF,EAAO,GAAG,KACgB,YAATE,IACxB2oD,GAAU7oD,EAAOL,QAAQ,GAE7B,OAAOkpD,CACX,EACAxsB,EAAOyuB,cAAgB,SAAuB9qD,GAG1C,IAFA,IACI6oD,EAAS,GACP7oD,EAAOvM,QAEa,UADNuM,EAAOA,EAAOvM,OAAS,GAAG,IAE1Co1D,EAAS7oD,EAAO2N,MAAM,GAAKk7C,EAE/B,OAAOA,CACX,EACAxsB,EAAOwuB,WAAa,SAAoB7qD,EAAQoC,GAE5C,IADA,IAAIi1C,EAAU,GACNxT,EAAKzhC,EAAMyhC,EAAK7jC,EAAOvM,OAAQowC,IACnCwT,GAAWr3C,EAAO6jC,GAAI,GAG1B,OADA7jC,EAAO+C,OAAOX,EAAMpC,EAAOvM,OAAS2O,GAC7Bi1C,CACX,EACAhb,EAAO+uB,cAAgB,WACnB,IAAIjrB,EAAMplC,KAAKkF,QAAQ5B,OAAOyyC,MAC9B,MAAM/1C,KAAK66C,MAAMh1C,MAAM,iBAAkBu/B,EAAI4P,KAAM5P,EAAI6P,OAC3D,EACA3T,EAAOkvB,gBAAkB,SAAyBD,GAC9C,MAAMvwD,KAAK66C,MAAMh1C,MAAM,mBAAoB,CACvCw7C,OAAQkP,EAAQ,IACjB,CACClP,OAAQkP,EAAQ,GAAK,GAE7B,EACAjvB,EAAO6uB,gBAAkB,SAAyBnC,GAC9C,MAAMhuD,KAAK66C,MAAMh1C,MAAM,eAAgB,CACnCw7C,OAAQ2M,EAAM,IACf,CACC3M,OAAQ2M,EAAM,GAAK,GAE3B,EACA1sB,EAAOquB,YAAc,SAAqB1qD,GACtC,MAAMjF,KAAK66C,MAAMh1C,MAAM,eAAgB,CACnCw7C,OAAQp8C,EAAO,GAAG,IACnB,CACCo8C,OAAQp8C,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAGvM,QAE5C,EACA4oC,EAAO2sB,cAAgB,SAAuB9rB,EAAO6rB,GACjD,MAAMhuD,KAAK66C,MAAMh1C,MAAM,uBAAwB,CAC3Cw7C,OAAQ2M,EAAM,IACf,CACC3M,OAAQ2M,EAAM,GAAKA,EAAM,GAAGt1D,QAEpC,EACOm1D,CACX,CAzgB+B,GA2gB3B+C,GAAgBlI,GAChBmI,GAFWjD,GAGXkD,GAAYxO,GAChB,SAASyO,GAAUpb,EAAKvrC,GACpB,IAAIwyC,EAAS,IAAIkU,GAAUnb,EAAKvrC,GAC5B4mD,EAAU,IAAIH,GAAUjU,GAC5B,IACIoU,EAAQhoD,OACZ,CAAE,MAAO09B,GAYL,MAAMA,CACV,CACA,OAAOsqB,EAAQnY,IACnB,CACA,IAAIoY,GAAYF,GAChBA,GAAUz8C,QAAUy8C,GACpBH,GAAcvI,cAAc0I,IAC5B,IAAIG,GAAY5a,GAAUC,QAAS4a,GAAO7a,GAAUE,GAChD4a,GAAmBjO,GACnBkO,GAAgBrX,GAChBsX,GAAgB5I,GAChB6I,GAAepI,GAEfqI,GAAaxH,GACbyH,GAAYR,GACZS,GAAWtF,GACXuF,GAAuB,CACvBla,OAAQ,SACRxH,QAAS,UACTsI,KAAM,cACNv6C,SAAU,WACV66C,KAAM,OACN/iC,KAAM,QAEN87C,GAAiB,CACjBlG,QAAQ,EACRmG,YAAY,EACZljB,SAAS,EACTmjB,aAAa,EACb3U,aAAa,EACb4U,iBAAiB,EACjB7pB,UAAU,EACV8pB,cAAc,EACdC,MAAM,EACNC,UAAU,EACVrI,eAAe,EACfsI,SAAS,EACTjG,MAAM,EACNkG,UAAU,EACVlF,MAAM,EACNmF,UAAU,GAEVC,GAAiB,CACjBL,MAAM,EACNpI,eAAe,EACfsI,SAAS,GAGb,SAASI,GAAYjxD,GACjB,MAAsE,iBAA/C,IAARA,EAAsB,YAAcg6B,EAASh6B,KAA0C,mBAAbA,EAAI6c,IACjG,CACA,SAASq0C,GAAYrwB,GACjB,IAAIjgC,GAAM,EACNxG,EAAOi2D,GAAqBxvB,EAAMzmC,MAMtC,MALmB,SAAfymC,EAAMzmC,KACNwG,EAAMigC,EAAM3+B,KAAK4J,cACK,WAAf+0B,EAAMzmC,OACbwG,EAAMigC,EAAM9jC,KAAK+O,eAEjBlL,GAAOigC,EAAM5hB,OACN,CACH7kB,EACAA,EAAO,IAAMwG,EAfR,EAiBLxG,EAAO,OACPA,EAAO,QAAUwG,GAEdA,EACA,CACHxG,EACAA,EAAO,IAAMwG,EACbxG,EAAO,OACPA,EAAO,QAAUwG,GAEdigC,EAAM5hB,OACN,CACH7kB,EA7BK,EA+BLA,EAAO,QAGJ,CACHA,EACAA,EAAO,OAGnB,CACA,SAAS+2D,GAAUtwB,GAiBf,MAAO,CACHuwB,WAAY,EACZ1rD,OAjBe,aAAfm7B,EAAMzmC,KACG,CACL,WA5CK,EA8CL,gBAEkB,SAAfymC,EAAMzmC,KACJ,CACL,OAlDK,EAoDL,YAGK82D,GAAYrwB,GAKrBrG,SAAU,EACVihB,KAAM5a,EACNwwB,aAAc,EACdC,SAAU,GAElB,CACA,SAASC,GAAa1wB,GAKlB,OAJAA,EAAM+uB,KAAa,EACf/uB,EAAM2V,OAAO3V,EAAM2V,MAAM13C,QAAQ,SAAS0oC,GAC1C,OAAO+pB,GAAa/pB,EACxB,GACO3G,CACX,CACA,IAAI2wB,GAAc,CAAC,EACfC,GAA+B,WAC/B,SAASC,EAAWtJ,EAAY/T,EAAKvrC,GACjC,IAGIwuC,EAHA7W,EAAQ/hC,KAIZ,GAHAA,KAAKizD,aAAc,EACnBjzD,KAAK8nD,WAAY,EAEkD,iBAA/C,IAARnS,EAAsB,YAAcra,EAASqa,KAA8B,OAARA,GAA8B,SAAbA,EAAIj6C,MAAgC,aAAbi6C,EAAIj6C,KAEpH,GAAIq/B,EAAY4a,EAAKqd,IAAej4B,EAAY4a,EAAK6b,IACxD5Y,EAAQia,GAAald,EAAIkD,MACrBlD,EAAIxpC,WACoB,IAAb/B,EAAK+B,MAAqB/B,EAAK+B,IAAM,CAAC,GAC5C/B,EAAK+B,IAAIgyC,SAAQ/zC,EAAK+B,IAAIgyC,QAAS,GACxC/zC,EAAK+B,IAAI4W,KAAO4yB,EAAIxpC,SAErB,CACH,IAAI6kD,EAAUS,GACVrnD,EAAK8oD,SAAQlC,EAAU5mD,EAAK8oD,OAAOlqD,OACnCoB,EAAK+oD,SAAQnC,EAAU5mD,EAAK+oD,QAC5BnC,EAAQhoD,QAAOgoD,EAAUA,EAAQhoD,OACrC,IACI4vC,EAAQoY,EAAQrb,EAAKvrC,EACzB,CAAE,MAAOvE,GACL7F,KAAK8nD,WAAY,EACjB9nD,KAAK6F,MAAQA,CACjB,CACI+yC,IAAUA,EAAMuY,KAChBG,GAAcvJ,QAAQnP,EAE9B,MAtBIA,EAAQia,GAAald,GAuBzB31C,KAAKvC,OAAS,IAAI+zD,GAAW9H,EAAY9Q,EAAOxuC,GAChDpK,KAAKozD,QAAU94B,EAAS,CAAC,EAAGw4B,GAAa,CACrCO,QAASP,GACTr1D,OAAQuC,KAAKvC,SAEjBuC,KAAKikB,QAAUjkB,KAAK8J,UAAUma,QAAQ9X,IAAI,SAASgpC,GAC/C,MAA6E,iBAApD,IAAbA,EAA2B,YAAc7Z,EAAS6Z,KAA2BA,EAASgd,QACvF73B,EAAS,CAAC,EAAG6a,EAAUA,EAASgd,QAAQpwB,EAAMtkC,SAE9C03C,CAEf,EACJ,CACA,IAAI7T,EAAS0xB,EAAWtwD,UAqfxB,OApfA4+B,EAAOjgB,MAAQ,WACX,OAAIrhB,KAAK6F,MAAclE,QAAQE,OAAO7B,KAAK6F,OACvC7F,KAAK8nD,UAAkBnmD,QAAQC,QAAQ5B,KAAKvC,SAC3CuC,KAAKszD,aACNtzD,KAAKszD,WAAatzD,KAAKuzD,YAEpBvzD,KAAKszD,WAChB,EACAhyB,EAAOljB,MAAQ,SAAgBo1C,GAC3B,OAAOxzD,KAAKqhB,QAAQjD,MAAMo1C,EAC9B,EACAlyB,EAAOmyB,QAAU,SAAkBC,GAC/B,OAAO1zD,KAAKqhB,QAAQlD,KAAKu1C,EAAWA,EACxC,EACApyB,EAAOqyB,cAAgB,WACnB,MAAM,IAAI/yC,MAAM,uDACpB,EACA0gB,EAAOsyB,YAAc,SAAqB/tD,EAAOs8B,GAC7C,IAAIgT,EAAWn1C,KAAKvC,OAAOmsD,WAC3B,IACQznB,GAAOA,EAAMwY,WAAW90C,GAC5B7F,KAAK6F,MAAQA,EACM,mBAAfA,EAAMxH,MAA8BwH,EAAMtM,OAGnC47C,EAAS0e,gBAFhBhuD,EAAMtM,OAAS47C,EAAS0U,cACxBhkD,EAAM0vC,aAad,CAAE,MAAOv/B,GACDlQ,SAAWA,QAAQD,OAAOC,QAAQD,MAAMmQ,EAChD,CACA,OAAOnQ,CACX,EACAy7B,EAAOwyB,gBAAkB,WACrB,IAAI/xB,EAAQ/hC,KACZA,KAAK+zD,UAAY,CAAC,EAQlB,IAPA,IAOwEhwB,EAPpE5oB,EAAM,SAASg6B,EAAUz5C,EAAM8rD,GAC1BzlB,EAAMgyB,UAAUr4D,KAAOqmC,EAAMgyB,UAAUr4D,GAAQ,IACpDqmC,EAAMgyB,UAAUr4D,GAAMoJ,KAAK,CACvBqwC,EACAqS,GAER,EACQxjB,EAAYrI,EAAqC37B,KAAKikB,WAAmB8f,EAAQC,KAAavmB,MAAM,CACxG,IAAI03B,EAAWpR,EAAM17B,MACrB,GAA6E,iBAApD,IAAb8sC,EAA2B,YAAc7Z,EAAS6Z,IAC1D,IAAI,IAAIz3C,KAASy3C,EAAS,CACtB,IAAKyc,GAAel0D,IAAU,SAAS2O,KAAK3O,GACxC,MAAM,IAAIkjB,MAAM,iBAAmBljB,EAAQ,OAASy3C,EAAS0U,cAAgB,4BAA8B7pD,KAAK8J,UAAU7R,QAAU,UAExI,IAAKq6D,GAAe50D,GAChB,GAAkC,WAA9B49B,EAAS6Z,EAASz3C,IAClB,IAAI,IAAIsO,KAAUmpC,EAASz3C,GAEnByd,EAAIg6B,EADO,MAAXnpC,EACctO,EAEAA,EAAQ,IAAMsO,EAAOoB,cAFd+nC,EAASz3C,GAAOsO,QAKX,mBAApBmpC,EAASz3C,IACvByd,EAAIg6B,EAAUz3C,EAAOy3C,EAASz3C,GAG1C,CAER,CACAsC,KAAKg0D,YAAczzD,OAAOC,KAAKR,KAAK+zD,WAAWr7D,OAAS,CAC5D,EACA4oC,EAAOiyB,SAAW,WACd,IAAIxxB,EAAQ/hC,KACZ,OAAOs5B,EAAoB,WACvB,IAAIwP,EAAIqM,EAAUzzC,EAASmE,EAAO+yC,EAAOp2C,EAAOyxD,EAAUvtB,EAAIvE,EAAO+xB,EAAOlwB,EAAWD,EACvF,OAAO9H,EAAcj8B,KAAM,SAASm0D,GAChC,OAAOA,EAAO93B,OACV,KAAK,EACD0F,EAAMxoC,OAAS,EACfuvC,EAAK,EACLqrB,EAAO93B,MAAQ,EACnB,KAAK,EACD,KAAMyM,EAAK/G,EAAM9d,QAAQvrB,QAAS,MAAO,CACrC,EACA,GAIJ,GAFAy8C,EAAWpT,EAAM9d,QAAQ6kB,IAEpBypB,GADL7wD,EAAUqgC,EAAMqyB,UAAUjf,IACC,MAAO,CAC9B,EACA,GAEJgf,EAAO93B,MAAQ,EACnB,KAAK,EAOD,OANA83B,EAAO53B,KAAKz3B,KAAK,CACb,EACA,EACA,CACA,IAEG,CACH,EACApD,GAER,KAAK,EAED,OADAyyD,EAAO73B,OACA,CACH,EACA,GAER,KAAK,EAED,MADAz2B,EAAQsuD,EAAO73B,OACTyF,EAAM6xB,YAAY/tD,GAC5B,KAAK,EAED,OADAijC,IACO,CACH,EACA,GAER,KAAK,EAED,GADA/G,EAAM+xB,mBACD/xB,EAAMiyB,YAAa,MAAO,CAC3B,EACA,IAEJpb,EAAQ7W,EAAMtkC,OAAOo7C,KACrBsb,EAAO93B,MAAQ,EACnB,KAAK,EACD,GAAMuc,EAAMsY,IAAY,MAAO,CAC3B,EACA,IAEJtY,EAAMsY,KAAa,EACnB1uD,EAAQ,CACJiwD,GAAU7Z,IAEdub,EAAO93B,MAAQ,EACnB,KAAK,EACD,KAAM75B,EAAM9J,OAAS,GAAI,MAAO,CAC5B,EACA,IAGJ,IAAK65D,GADL0B,EAAWlyB,EAAMsyB,UAAU7xD,IACC,MAAO,CAC/B,EACA,IAEJ2xD,EAAO93B,MAAQ,EACnB,KAAK,EAOD,OANA83B,EAAO53B,KAAKz3B,KAAK,CACb,EACA,GACA,CACA,KAEG,CACH,EACAmvD,GAER,KAAK,GAED,OADAE,EAAO73B,OACA,CACH,EACA,IAER,KAAK,GAGD,MAFAoK,EAAKytB,EAAO73B,OACZ6F,EAAQ3/B,EAAMA,EAAM9J,OAAS,GAAGqkD,KAC1Bhb,EAAM6xB,YAAYltB,EAAIvE,GAChC,KAAK,GACD,MAAO,CACH,EACA,GAER,KAAK,GACD,MAAO,CACH,EACA,GAER,KAAK,GACD,IAAKJ,EAAMgyB,UAAU7B,SAAU,MAAO,CAClC,EACA,IAEJgC,EAAQ,WACJ,IAAIvF,EAAaxZ,EAAUmf,EAASC,EAAO7tB,EAC3C,OAAOzK,EAAcj8B,KAAM,SAASm0D,GAChC,OAAOA,EAAO93B,OACV,KAAK,EACDsyB,EAAc5qB,EAAM17B,MAAO8sC,EAAWwZ,EAAY,GAAI2F,EAAU3F,EAAY,GAC5E5sB,EAAMtkC,OAAOmsD,WAAazU,EAC1Bgf,EAAO93B,MAAQ,EACnB,KAAK,EAOD,OANA83B,EAAO53B,KAAKz3B,KAAK,CACb,EACA,EACA,CACA,IAEiB,aAAf8zC,EAAMl9C,KAA6B,CACrC,EACA,IAEJ64D,EAAQ3b,EAAMd,MAAM3rC,IAAI,SAASqoD,GAC7B,OAAOF,EAAQE,EAASzyB,EAAMqxB,QAClC,GACO,CACH,EACAzxD,QAAQ+uD,IAAI6D,KAEpB,KAAK,EAED,OADAJ,EAAO73B,OACA,CACH,EACA,GAER,KAAK,EACD,MAAO,CACH,EACAg4B,EAAQ1b,EAAO7W,EAAMqxB,UAE7B,KAAK,EACDe,EAAO73B,OACP63B,EAAO93B,MAAQ,EACnB,KAAK,EACD,MAAO,CACH,EACA,GAER,KAAK,EAED,MADAqK,EAAKytB,EAAO73B,OACNyF,EAAM6xB,YAAYltB,GAC5B,KAAK,EACD,MAAO,CACH,GAGhB,EACJ,EACA1C,EAAYrI,EAAqCoG,EAAMgyB,UAAU7B,UACjEiC,EAAO93B,MAAQ,GACnB,KAAK,GACD,OAAO0H,EAAQC,KAAavmB,KAAa,CACrC,EACA,IAEG,CACH,EACAmf,EAAWs3B,MAEnB,KAAK,GACDC,EAAO73B,OACP63B,EAAO93B,MAAQ,GACnB,KAAK,GACD,MAAO,CACH,EACA,IAER,KAAK,GAED,OADA0F,EAAM+lB,WAAY,EACX,CACH,EACA/lB,EAAM94B,aAGtB,EACJ,EAjMOqwB,EAkMX,EACAgI,EAAO8yB,UAAY,SAAmBjf,GAClC,IAAIpT,EAAQ/hC,KACZA,KAAKvC,OAAOmsD,WAAazU,EACzB,IACI,GAA6E,iBAApD,IAAbA,EAA2B,YAAc7Z,EAAS6Z,KAA2BA,EAAS8c,KAAM,CACpG,GAA8B,aAA1BjyD,KAAKvC,OAAOo7C,KAAKn9C,KAAqB,CACtC,IAAI64D,EAAQv0D,KAAKvC,OAAOo7C,KAAKf,MAAM3rC,IAAI,SAASysC,GAC5C,OAAOzD,EAAS8c,KAAKrZ,EAAO7W,EAAMqxB,QACtC,GACA,OAAIb,GAAYgC,EAAM,IACX5yD,QAAQ+uD,IAAI6D,GAEhBA,CACX,CACA,OAAOpf,EAAS8c,KAAKjyD,KAAKvC,OAAOo7C,KAAM74C,KAAKozD,QAChD,CAAO,GAAwB,mBAAbje,EACd,OAAOA,EAASn1C,KAAKvC,OAAOo7C,KAAM74C,KAAKvC,OAE/C,CAAE,MAAOoI,GACL,MAAM7F,KAAK4zD,YAAY/tD,EAC3B,CACJ,EACAy7B,EAAOr4B,UAAY,WACf,GAAIjJ,KAAK6F,MAAO,MAAM7F,KAAK6F,MAC3B,GAAI7F,KAAKizD,YAAa,OAAOjzD,KAAKvC,OAClCuC,KAAKizD,aAAc,EACnBjzD,KAAKy0D,OACL,IAAIrqD,EAAOpK,KAAKvC,OAAO2M,KACnB1G,EAAM2tD,GACNjnD,EAAK8oD,SAAQxvD,EAAM0G,EAAK8oD,OAAOjqD,WAC/BmB,EAAKsqD,cAAahxD,EAAM0G,EAAKsqD,aAC7BhxD,EAAIuF,YAAWvF,EAAMA,EAAIuF,WAC7B,IACIpF,EADM,IAAIutD,GAAiB1tD,EAAK1D,KAAKvC,OAAOo7C,KAAM74C,KAAKvC,OAAO2M,MACnDo6C,WAGf,OAFAxkD,KAAKvC,OAAOk4C,IAAM9xC,EAAK,GACvB7D,KAAKvC,OAAO0O,IAAMtI,EAAK,GAChB7D,KAAKvC,MAChB,EACA6jC,EAAOmzB,KAAO,WACV,GAAIz0D,KAAK6F,MAAO,MAAM7F,KAAK6F,MAC3B,GAAI7F,KAAK8nD,UAAW,OAAO9nD,KAAKvC,OAEhC,GADAuC,KAAK8nD,WAAY,EACb9nD,KAAKszD,WACL,MAAMtzD,KAAK2zD,gBAEf,IAAI,IAAoE5vB,EAAhEC,EAAYrI,EAAqC37B,KAAKikB,WAAmB8f,EAAQC,KAAavmB,MAAM,CACxG,IAAI03B,EAAWpR,EAAM17B,MAErB,GAAIkqD,GADUvyD,KAAKo0D,UAAUjf,IAEzB,MAAMn1C,KAAK2zD,eAEnB,CAEA,GADA3zD,KAAK8zD,kBACD9zD,KAAKg0D,YAAa,CAElB,IADA,IAAIpb,EAAQ54C,KAAKvC,OAAOo7C,MACjBD,EAAMsY,KACTtY,EAAMsY,KAAa,EACnBlxD,KAAK20D,SAAS/b,GAElB,GAAI54C,KAAK+zD,UAAU7B,SACf,GAAmB,aAAftZ,EAAMl9C,KACN,IAAI,IAAoE21C,EAAhEC,EAAa3V,EAAqCid,EAAMd,SAAkBzG,EAASC,KAAc7zB,MAAM,CAC3G,IAAI+2C,EAAUnjB,EAAOhpC,MACrBrI,KAAK40D,UAAU50D,KAAK+zD,UAAU7B,SAAUsC,EAC5C,MAEAx0D,KAAK40D,UAAU50D,KAAK+zD,UAAU7B,SAAUtZ,EAGpD,CACA,OAAO54C,KAAKvC,MAChB,EACA6jC,EAAOnjB,KAAO,SAAc02C,EAAarB,GAMrC,OAAOxzD,KAAKqhB,QAAQlD,KAAK02C,EAAarB,EAC1C,EACAlyB,EAAOxyB,SAAW,WACd,OAAO9O,KAAK21C,GAChB,EACArU,EAAOszB,UAAY,SAAmBhC,EAAUzwB,GAC5C,IAAI,IAAgE4B,EAA5DC,EAAYrI,EAAqCi3B,KAAoB7uB,EAAQC,KAAavmB,MAAM,CACpG,IAAIkxC,EAAc5qB,EAAM17B,MAAO8sC,EAAWwZ,EAAY,GAAI2F,EAAU3F,EAAY,GAChF3uD,KAAKvC,OAAOmsD,WAAazU,EACzB,IAAIzzC,OAAU,EACd,IACIA,EAAU4yD,EAAQnyB,EAAOniC,KAAKozD,QAClC,CAAE,MAAO1sB,GACL,MAAM1mC,KAAK4zD,YAAYltB,EAAIvE,EAAMykB,QACrC,CACA,GAAmB,SAAfzkB,EAAMzmC,MAAkC,aAAfymC,EAAMzmC,OAAwBymC,EAAM8L,OAC7D,OAAO,EAEX,GAAIskB,GAAY7wD,GACZ,MAAM1B,KAAK2zD,eAEnB,CACJ,EACAryB,EAAO+yB,UAAY,SAAmB7xD,GAClC,IAAIsyD,EAAStyD,EAAMA,EAAM9J,OAAS,GAC9BypC,EAAQ2yB,EAAO/X,KAAM6V,EAAWkC,EAAOlC,SAC3C,GAAmB,SAAfzwB,EAAMzmC,MAAkC,aAAfymC,EAAMzmC,MAAwBymC,EAAM8L,OAAjE,CAIA,GAAI2kB,EAASl6D,OAAS,GAAKo8D,EAAOnC,aAAeC,EAASl6D,OAAQ,CAC9D,IAAIq8D,EAAgCnC,EAASkC,EAAOnC,cAAexd,EAAW4f,EAA8B,GAAIT,EAAUS,EAA8B,GACxJD,EAAOnC,cAAgB,EACnBmC,EAAOnC,eAAiBC,EAASl6D,SACjCo8D,EAAOlC,SAAW,GAClBkC,EAAOnC,aAAe,GAE1B3yD,KAAKvC,OAAOmsD,WAAazU,EACzB,IACI,OAAOmf,EAAQnyB,EAAMqZ,UAAWx7C,KAAKozD,QACzC,CAAE,MAAO1sB,GACL,MAAM1mC,KAAK4zD,YAAYltB,EAAIvE,EAC/B,CACJ,CACA,GAAwB,IAApB2yB,EAAOh5B,SAAgB,CAGvB,IAFA,IACIuc,EADAvc,EAAWg5B,EAAOh5B,SAEhBuc,EAAQlW,EAAM2V,MAAM3V,EAAMilB,QAAQtrB,KAEpC,GADAqG,EAAMilB,QAAQtrB,IAAa,GACtBuc,EAAM6Y,IAGP,OAFA7Y,EAAM6Y,KAAa,OACnB1uD,EAAMsC,KAAK2tD,GAAUpa,IAI7Byc,EAAOh5B,SAAW,SACXqG,EAAMilB,QAAQtrB,EACzB,CAEA,IADA,IAAI90B,EAAS8tD,EAAO9tD,OACd8tD,EAAOpC,WAAa1rD,EAAOtO,QAAO,CACpC,IAAIgF,EAAQsJ,EAAO8tD,EAAOpC,YAE1B,GADAoC,EAAOpC,YAAc,EAnhBhB,IAohBDh1D,EAKA,YAJIykC,EAAM2V,OAAS3V,EAAM2V,MAAMp/C,SAC3BypC,EAAM+uB,KAAa,EACnB4D,EAAOh5B,SAAWqG,EAAMglB,gBAGzB,GAAInnD,KAAK+zD,UAAUr2D,GAEtB,YADAo3D,EAAOlC,SAAW5yD,KAAK+zD,UAAUr2D,GAGzC,CACA8E,EAAMoQ,KA5CN,MAFIpQ,EAAMoQ,KA+Cd,EACA0uB,EAAOqzB,SAAW,SAAkBxyB,GAChC,IAAIJ,EAAQ/hC,KACZmiC,EAAM+uB,KAAa,EAEnB,IADA,IACkEntB,EAA1DC,EAAYrI,EADP62B,GAAYrwB,MACkD4B,EAAQC,KAAavmB,MAAM,CAClG,IAAI/f,EAAQqmC,EAAM17B,MAClB,GAviBK,IAuiBD3K,EACIykC,EAAM2V,OACN3V,EAAM+kB,KAAK,SAAS7O,GACXA,EAAM6Y,KAAYnvB,EAAM4yB,SAAStc,EAC1C,OAED,CACH,IAAIua,EAAW5yD,KAAK+zD,UAAUr2D,GAC9B,GAAIk1D,GACI5yD,KAAK40D,UAAUhC,EAAUzwB,EAAMqZ,WAAY,MAEvD,CACJ,CACJ,EACAla,EAAOyoB,SAAW,WACd,OAAO/pD,KAAKy0D,OAAO1K,UACvB,EACAhwB,EAAci5B,EAAY,CACtB,CACI9wD,IAAK,UACLsC,IAAK,WACD,OAAOxE,KAAKiJ,YAAY2kB,OAC5B,GAEJ,CACI1rB,IAAK,MACLsC,IAAK,WACD,OAAOxE,KAAKiJ,YAAY0sC,GAC5B,GAEJ,CACIzzC,IAAK,MACLsC,IAAK,WACD,OAAOxE,KAAKiJ,YAAYkD,GAC5B,GAEJ,CACIjK,IAAK,WACLsC,IAAK,WACD,OAAOxE,KAAKy0D,OAAO9K,QACvB,GAEJ,CACIznD,IAAK,OACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAO2M,IACvB,GAEJ,CACIlI,IAAK,YACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAOqM,SACvB,GAEJ,CACI5H,IAAK,OACLsC,IAAK,WACD,OAAOxE,KAAKy0D,OAAO5b,IACvB,GAEJ,CACI32C,IAAK+H,OAAOyqC,YACZlwC,IAAK,WACD,MAAO,YACX,KAGDwuD,CACX,CAjiBmC,GAkiBnCD,GAAeiC,gBAAkB,SAAS1M,GACtCwK,GAAcxK,CAClB,EACA,IAAI2M,GAAelC,GACnBA,GAAez+C,QAAUy+C,GACzBrB,GAASzI,mBAAmB8J,IAC5BxB,GAAatI,mBAAmB8J,IAChC,IAAImC,GAAkB/R,GAClBgS,GAAgBnb,GAEhBob,GAAYnE,GACZoE,GAAarL,GACbsL,GAAiC,WACjC,SAASC,EAAa7L,EAAY/T,EAAKvrC,GAOnC,IAAIwuC,EANJjD,EAAMA,EAAI7mC,WACV9O,KAAKizD,aAAc,EACnBjzD,KAAKw1D,WAAa9L,EAClB1pD,KAAKy1D,KAAO9f,EACZ31C,KAAK01D,MAAQtrD,EACbpK,KAAK21D,UAAO,EAEZ,IAAIjyD,EAAMyxD,GACVn1D,KAAKvC,OAAS,IAAI43D,GAAWr1D,KAAKw1D,WAAY5c,EAAO54C,KAAK01D,OAC1D11D,KAAKvC,OAAOk4C,IAAMA,EAClB,IAAI5f,EAAO/1B,KACXO,OAAOg1B,eAAev1B,KAAKvC,OAAQ,OAAQ,CACvC+G,IAAK,WACD,OAAOuxB,EAAK8iB,IAChB,IAEJ,IAAI1sC,EAAM,IAAI+oD,GAAgBxxD,EAAKk1C,EAAO54C,KAAK01D,MAAO/f,GACtD,GAAIxpC,EAAIgzC,QAAS,CACb,IAAIyW,EAAgBzpD,EAAIq4C,WAAYqR,EAAeD,EAAc,GAAIE,EAAeF,EAAc,GAC9FC,IACA71D,KAAKvC,OAAOk4C,IAAMkgB,GAElBC,IACA91D,KAAKvC,OAAO0O,IAAM2pD,EAE1B,MACI3pD,EAAIo4C,kBACJvkD,KAAKvC,OAAOk4C,IAAMxpC,EAAIwpC,GAE9B,CACA,IAAIrU,EAASi0B,EAAa7yD,UA8F1B,OA7FA4+B,EAAOjgB,MAAQ,WACX,OAAIrhB,KAAK6F,MAAclE,QAAQE,OAAO7B,KAAK6F,OACpClE,QAAQC,QAAQ5B,KAAKvC,OAChC,EACA6jC,EAAOljB,MAAQ,SAAgBo1C,GAC3B,OAAOxzD,KAAKqhB,QAAQjD,MAAMo1C,EAC9B,EACAlyB,EAAOmyB,QAAU,SAAkBC,GAC/B,OAAO1zD,KAAKqhB,QAAQlD,KAAKu1C,EAAWA,EACxC,EACApyB,EAAOmzB,KAAO,WACV,GAAIz0D,KAAK6F,MAAO,MAAM7F,KAAK6F,MAC3B,OAAO7F,KAAKvC,MAChB,EACA6jC,EAAOnjB,KAAO,SAAc02C,EAAarB,GAMrC,OAAOxzD,KAAKqhB,QAAQlD,KAAK02C,EAAarB,EAC1C,EACAlyB,EAAOxyB,SAAW,WACd,OAAO9O,KAAKy1D,IAChB,EACAn0B,EAAOyoB,SAAW,WACd,MAAO,EACX,EACAhwB,EAAcw7B,EAAc,CACxB,CACIrzD,IAAK,UACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAOk4C,GACvB,GAEJ,CACIzzC,IAAK,MACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAOk4C,GACvB,GAEJ,CACIzzC,IAAK,MACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAO0O,GACvB,GAEJ,CACIjK,IAAK,WACLsC,IAAK,WACD,MAAO,EACX,GAEJ,CACItC,IAAK,OACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAO2M,IACvB,GAEJ,CACIlI,IAAK,YACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAOqM,SACvB,GAEJ,CACI5H,IAAK,OACLsC,IAAK,WACD,GAAIxE,KAAK+1D,MACL,OAAO/1D,KAAK+1D,MAEhB,IAAInd,EACAoY,EAAUoE,GACd,IACIxc,EAAQoY,EAAQhxD,KAAKy1D,KAAMz1D,KAAK01D,MACpC,CAAE,MAAO7vD,GACL7F,KAAK6F,MAAQA,CACjB,CACA,GAAI7F,KAAK6F,MACL,MAAM7F,KAAK6F,MAGX,OADA7F,KAAK+1D,MAAQnd,EACNA,CAEf,GAEJ,CACI12C,IAAK+H,OAAOyqC,YACZlwC,IAAK,WACD,MAAO,cACX,KAGD+wD,CACX,CA/HqC,GAgIjCS,GAAiBV,GACrBA,GAAiBhhD,QAAUghD,GAC3B,IAAIW,GAAkBD,GAClBE,GAAiBjB,GACjBkB,GAAehN,GACfiN,GAAWhK,GACXiK,GAA8B,WAC9B,SAASC,EAAUryC,QACC,IAAZA,IAAoBA,EAAU,IAClCjkB,KAAK/H,QAAU,SACf+H,KAAKikB,QAAUjkB,KAAKinD,UAAUhjC,EAClC,CACA,IAAIqd,EAASg1B,EAAU5zD,UAwCvB,OAvCA4+B,EAAO2lB,UAAY,SAAmBhjC,GAElC,IADA,IACmE8f,EAD/Dja,EAAa,GACTka,EAAYrI,EAAqC1X,KAAmB8f,EAAQC,KAAavmB,MAAM,CACnG,IAAIqrB,EAAK/E,EAAM17B,MAMf,IALmB,IAAfygC,EAAGuqB,QACHvqB,EAAKA,IACEA,EAAGuqB,UACVvqB,EAAKA,EAAGuqB,SAEqD,iBAA9C,IAAPvqB,EAAqB,YAAcxN,EAASwN,KAAqBrvC,MAAMC,QAAQovC,EAAG7kB,SAC1F6F,EAAaA,EAAWvhB,OAAOugC,EAAG7kB,cAC/B,GAAiE,iBAA9C,IAAP6kB,EAAqB,YAAcxN,EAASwN,KAAqBA,EAAG+gB,cACnF//B,EAAWhlB,KAAKgkC,QACb,GAAkB,mBAAPA,EACdhf,EAAWhlB,KAAKgkC,QACb,GAAiE,iBAA9C,IAAPA,EAAqB,YAAcxN,EAASwN,MAAsBA,EAAG9/B,QAAS8/B,EAAG7/B,UAKhG,MAAM,IAAI2X,MAAMkoB,EAAK,2BAE7B,CACA,OAAOhf,CACX,EACAwX,EAAOv3B,QAAU,SAAkB4rC,EAAKvrC,GAEpC,YADa,IAATA,IAAiBA,EAAO,CAAC,GACxBpK,KAAKikB,QAAQvrB,QAAW0R,EAAK+oD,QAAW/oD,EAAKsqD,aAAgBtqD,EAAK8oD,OAG5D,IAAIgD,GAAel2D,KAAM21C,EAAKvrC,GAF9B,IAAI6rD,GAAgBj2D,KAAM21C,EAAKvrC,EAI9C,EACAk3B,EAAO3gB,IAAM,SAAaw0B,GAItB,OAHAn1C,KAAKikB,QAAUjkB,KAAKikB,QAAQ1b,OAAOvI,KAAKinD,UAAU,CAC9C9R,KAEGn1C,IACX,EACOs2D,CACX,CA/CkC,GAgD9BC,GAAcF,GAClBA,GAAc/hD,QAAU+hD,GACxBD,GAASlN,kBAAkBmN,IAC3BF,GAAajN,kBAAkBmN,IAC/B,IAAIG,GAAkBpZ,GAClBqZ,GAAiB3W,GACjB4W,GAAczQ,GACd0Q,GAAa9K,GACb+K,GAAYtU,GACZuU,GAAWzK,GACX0K,GAAW1J,GACf,SAAS2J,GAAavlC,EAAM+qB,GACxB,GAAI9iD,MAAMC,QAAQ83B,GAAO,OAAOA,EAAKrlB,IAAI,SAASmzB,GAC9C,OAAOy3B,GAAaz3B,EACxB,GACA,IAAI03B,EAAYxlC,EAAK+qB,OAAQ7B,EAAWvf,EAAiC3J,EAAM,CAC3E,WAEJ,GAAIwlC,EAAW,CACXza,EAAS,GACT,IAAI,IAAiExY,EAA7DC,EAAYrI,EAAqCq7B,KAAqBjzB,EAAQC,KAAavmB,MAAM,CACrG,IACIw5C,EAAgB38B,EAAS,CAAC,EADjByJ,EAAM17B,MACsB,CACrCqyB,UAAWk8B,GAAUl0D,YAErBu0D,EAAc9qD,MACd8qD,EAAc9qD,IAAMmuB,EAAS,CAAC,EAAG28B,EAAc9qD,IAAK,CAChDuuB,UAAW+7B,GAAe/zD,aAGlC65C,EAAOz3C,KAAKmyD,EAChB,CACJ,CAMA,GALIvc,EAAS5C,QACT4C,EAAS5C,MAAQtmB,EAAKsmB,MAAM3rC,IAAI,SAASmzB,GACrC,OAAOy3B,GAAaz3B,EAAIid,EAC5B,IAEA7B,EAASp3C,OAAQ,CACjB,IAAI4zD,EAAmBxc,EAASp3C,OAAQq5C,EAAUua,EAAiBva,QAASr5C,EAAS63B,EAAiC+7B,EAAkB,CACpI,YAEJxc,EAASp3C,OAASA,EACH,MAAXq5C,IACAjC,EAASp3C,OAAOu3C,MAAQ0B,EAAOI,GAEvC,CACA,GAAsB,SAAlBjC,EAASh/C,KACT,OAAO,IAAIm7D,GAASnc,GACjB,GAAsB,SAAlBA,EAASh/C,KAChB,OAAO,IAAI86D,GAAgB9b,GACxB,GAAsB,SAAlBA,EAASh/C,KAChB,OAAO,IAAIo7D,GAASpc,GACjB,GAAsB,YAAlBA,EAASh/C,KAChB,OAAO,IAAIg7D,GAAYhc,GACpB,GAAsB,WAAlBA,EAASh/C,KAChB,OAAO,IAAIi7D,GAAWjc,GAEtB,MAAM,IAAI95B,MAAM,sBAAwB4Q,EAAK91B,KAErD,CACA,IAAIy7D,GAAeJ,GACnBA,GAAaziD,QAAUyiD,GACvB,IAAIK,GAAoB/gB,GACpBghB,GAAiBja,GACjBka,GAAgBrC,GAChBsC,GAAe7O,GACf8O,GAAejB,GACfkB,GAAczd,GACd0d,GAAaP,GACbQ,GAAaxO,GACbyO,GAAatO,GACbuO,GAAa5R,GACb6R,GAAYjM,GACZkM,GAAY/N,GACZgO,GAAW1V,GACX2V,GAAUhH,GACViH,GAASpL,GACTqL,GAAU/K,GACVgL,GAAUhM,GACViM,GAAUrb,GACd,SAASsb,KACL,IAAI,IAAIpc,EAAOlvC,UAAUtU,OAAQurB,EAAU,IAAIxqB,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/El4B,EAAQk4B,GAAQnvC,UAAUmvC,GAK9B,OAHuB,IAAnBl4B,EAAQvrB,QAAgBe,MAAMC,QAAQuqB,EAAQ,MAC9CA,EAAUA,EAAQ,IAEf,IAAIuzC,GAAavzC,EAC5B,CACAq0C,GAAU/+D,OAAS,SAAgB8E,EAAMk6D,GACrC,IAiBIx+C,EAjBAy+C,GAAiB,EACrB,SAASC,IACL,IAAI,IAAIvc,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5Ez2C,EAAKy2C,GAAQnvC,UAAUmvC,GAEvBr2C,SAAWA,QAAQF,OAAS4yD,IAC5BA,GAAiB,EACjB1yD,QAAQF,KAAKvH,EAAO,qHAChB0L,QAAQ2uD,IAAIC,MAAQ5uD,QAAQ2uD,IAAIC,KAAK/0C,WAAW,OAChD9d,QAAQF,KAAKvH,EAAO,uEAG5B,IAAIu6D,EAAcL,EAAYxyD,WAAM,EAAQ,GAAGwC,OAAO7C,IAGtD,OAFAkzD,EAAY/O,cAAgBxrD,EAC5Bu6D,EAAY/E,gBAAiB,IAAI2D,IAAev/D,QACzC2gE,CACX,CAaA,OAXAr4D,OAAOg1B,eAAekjC,EAAS,UAAW,CACtCj0D,IAAK,WAED,OADKuV,IAAOA,EAAQ0+C,KACb1+C,CACX,IAEJ0+C,EAAQ1uD,QAAU,SAAS4rC,EAAKkjB,EAAaC,GACzC,OAAOR,GAAU,CACbG,EAAQK,KACT/uD,QAAQ4rC,EAAKkjB,EACpB,EACOJ,CACX,EACAH,GAAUrvD,UAAYwuD,GACtBa,GAAUtvD,MAAQivD,GAClBK,GAAUS,SAAWrB,GACrBY,GAAUr9C,KAAOi9C,GACjBI,GAAUroB,QAAU,SAASyK,GACzB,OAAO,IAAImd,GAAWnd,EAC1B,EACA4d,GAAUU,OAAS,SAASte,GACxB,OAAO,IAAIod,GAAUpd,EACzB,EACA4d,GAAU/f,KAAO,SAASmC,GACtB,OAAO,IAAI2c,GAAe3c,EAC9B,EACA4d,GAAUxiD,KAAO,SAAS4kC,GACtB,OAAO,IAAIyd,GAAQzd,EACvB,EACA4d,GAAUzf,KAAO,SAAS6B,GACtB,OAAO,IAAI0d,GAAQ1d,EACvB,EACA4d,GAAUt6D,SAAW,SAAS08C,GAC1B,OAAO,IAAIid,GAAWjd,EAC1B,EACA4d,GAAUvjB,eAAiBqiB,GAC3BkB,GAAUnb,YAAcka,GACxBiB,GAAUvR,UAAYwQ,GACtBe,GAAUhC,UAAYkB,GACtBc,GAAUpwB,SAAWyvB,GACrBW,GAAU3pB,QAAUkpB,GACpBS,GAAUjP,QAAUuO,GACpBU,GAAU5M,OAASoM,GACnBQ,GAAU7O,OAASsO,GACnBO,GAAUpX,MAAQ8W,GAClBM,GAAUpL,KAAOiL,GACjBG,GAAUpM,KAAOkM,GACjBE,GAAU/6B,KAAO86B,GACjBf,GAActC,gBAAgBsD,IAC9B,IAAIW,GAAcX,GAClBA,GAAUhkD,QAAUgkD,GACpB,IAAIY,GAA8B9mB,GAA0B6mB,IAC5DC,GAAYjwD,UACZiwD,GAAYH,SACZG,GAAY3/D,OACZ2/D,GAAYlwD,MACZkwD,GAAYj+C,KACZi+C,GAAYl7D,SACZk7D,GAAYjpB,QACZipB,GAAYF,OACZE,GAAYpjD,KACZojD,GAAY3gB,KACZ2gB,GAAYrgB,KACZqgB,GAAYnkB,eACZmkB,GAAY/b,YACZ+b,GAAYnS,UACZmS,GAAY5C,UACZ4C,GAAYhxB,SACZgxB,GAAYvqB,QACZuqB,GAAY7P,QACZ6P,GAAYxN,OACZwN,GAAYzP,OACZyP,GAAYhY,MACZgY,GAAYhM,KACZgM,GAAYhN,KACZgN,GAAY37B,KACZ,IAAI47B,GAAa54D,OAAOg1B,eASpB6jC,GAAiB,SAAS93D,EAAKY,EAAKmG,GACpC,OATmB,SAAS/G,EAAKY,EAAKmG,GACtC,OAAOnG,KAAOZ,EAAM63D,GAAW73D,EAAKY,EAAK,CACrCuzB,YAAY,EACZC,cAAc,EACdC,UAAU,EACVttB,MAAOA,IACN/G,EAAIY,GAAOmG,CACpB,CAEWgxD,CAAiB/3D,EAAoE,iBAA/C,IAARY,EAAsB,YAAco5B,EAASp5B,IAAqBA,EAAM,GAAKA,EAAKmG,EAC3H,EACA,SAASixD,GAAwBxuB,GAC7B,OAAOA,GAAMA,EAAGuH,YAAc9xC,OAAOmC,UAAUC,eAAeC,KAAKkoC,EAAI,WAAaA,EAAY,QAAIA,CACxG,CACA,SAASyuB,GAAsBj6B,GAC3B,GAAIA,EAAG+S,WAAY,OAAO/S,EAC1B,IAAIiT,EAAKjT,EAAGhrB,QACZ,GAAiB,mBAANi+B,EAAkB,CACzB,IAAItN,EAAK,SAASuN,IACd,OAAIzX,EAAY/6B,KAAMwyC,GACX7Y,QAAQC,UAAU2Y,EAAIvlC,UAAWhN,KAAKD,aAE1CwyC,EAAGxsC,MAAM/F,KAAMgN,UAC1B,EACAi4B,EAAGviC,UAAY6vC,EAAG7vC,SACtB,MAAOuiC,EAAK,CAAC,EAab,OAZA1kC,OAAOg1B,eAAe0P,EAAI,aAAc,CACpC58B,OAAO,IAEX9H,OAAOC,KAAK8+B,GAAIl/B,QAAQ,SAASyC,GAC7B,IAAI4vC,EAAIlyC,OAAOg+B,yBAAyBe,EAAIz8B,GAC5CtC,OAAOg1B,eAAe0P,EAAIpiC,EAAG4vC,EAAEjuC,IAAMiuC,EAAI,CACrChd,YAAY,EACZjxB,IAAK,WACD,OAAO86B,EAAGz8B,EACd,GAER,GACOoiC,CACX,CACA,IAAIu0B,GAAqB,CACrB94D,QAAS,CAAC,GAEV+4D,GAAIrhE,OACJqO,GAAS,WACT,MAAO,CACHosC,kBAAkB,EAClBthC,MAAOkoD,GACP3mB,KAAM2mB,GACN1mB,IAAK0mB,GACLzmB,OAAQymB,GACRxmB,UAAWwmB,GACXvmB,QAASumB,GACTtmB,OAAQsmB,GACRrmB,cAAeqmB,GACfpmB,MAAOomB,GACPnmB,IAAKmmB,GACLlmB,MAAOkmB,GACPjmB,OAAQimB,GACRhmB,KAAMgmB,GACN/lB,QAAS+lB,GACT9lB,KAAM8lB,GACN7lB,MAAO6lB,GACP5lB,KAAM4lB,GACN3lB,QAAS2lB,GACT1lB,MAAO0lB,GACPzlB,QAASylB,GACTxlB,SAAUwlB,GACVvlB,OAAQulB,GACRtlB,UAAWslB,GACXrlB,OAAQqlB,GACRplB,QAASolB,GAEjB,EACAD,GAAmB94D,QAAU+F,KAC7B+yD,GAAmB94D,QAAQ4zC,aAAe7tC,GAC1C,IAAIizD,GAA4BF,GAAmB94D,QAQ/Ci5D,GAA6BJ,GANah5D,OAAOk0C,OAAuBl0C,OAAOg1B,eAAe,CAC9FmF,UAAW,KACXpmB,QAHwB,CAAC,GAI1BrK,OAAOyqC,YAAa,CACnBrsC,MAAO,aAGPuxD,GAAOF,GACPG,GAAsBF,GACtBG,GAAiC,SAAShlB,GAE1C,SAASilB,EAAgB57D,EAAS62C,EAAMC,EAAQ3xC,EAAQ4xC,EAAMC,GAC1D,IAAIpT,EA4BJ,OA3BAA,EAAQ+S,EAAOlyC,KAAK5C,KAAM7B,IAAY6B,MAChC3B,KAAO,iBACb0jC,EAAMqT,OAASj3C,EACX+2C,IACAnT,EAAMmT,KAAOA,GAEb5xC,IACAy+B,EAAMz+B,OAASA,GAEf6xC,IACApT,EAAMxoC,OAAS47C,QAEC,IAATH,QAA0C,IAAXC,IAClB,iBAATD,GACPjT,EAAMiT,KAAOA,EACbjT,EAAMkT,OAASA,IAEflT,EAAMiT,KAAOA,EAAKA,KAClBjT,EAAMkT,OAASD,EAAKC,OACpBlT,EAAMsT,QAAUJ,EAAOD,KACvBjT,EAAMuT,UAAYL,EAAOA,SAGjClT,EAAMwT,aACF30B,MAAM40B,mBACN50B,MAAM40B,kBAAkBzT,EAAOg4B,GAE5Bh4B,CACX,CA/BApH,EAAUo/B,EAAiBjlB,GAgC3B,IAAIxT,EAASy4B,EAAgBr3D,UAoD7B,OAnDA4+B,EAAOiU,WAAa,WAChBv1C,KAAK7B,QAAU6B,KAAKzG,OAASyG,KAAKzG,OAAS,KAAO,GAClDyG,KAAK7B,SAAW6B,KAAKk1C,KAAOl1C,KAAKk1C,KAAO,mBACf,IAAdl1C,KAAKg1C,OACZh1C,KAAK7B,SAAW,IAAM6B,KAAKg1C,KAAO,IAAMh1C,KAAKi1C,QAEjDj1C,KAAK7B,SAAW,KAAO6B,KAAKo1C,MAChC,EACA9T,EAAOmU,eAAiB,SAAwBC,GAC5C,IAAI3T,EAAQ/hC,KACZ,IAAKA,KAAKsD,OAAQ,MAAO,GACzB,IAAIqyC,EAAM31C,KAAKsD,OACF,MAAToyC,IAAeA,EAAQkkB,GAAK/mB,kBAC5BgnB,IACInkB,IAAOC,EAAMkkB,GAAoBlkB,IAEzC,IAIIC,EAAMC,EAJNC,EAAQH,EAAIt9C,MAAM,SAClB09C,EAAQv9C,KAAKC,IAAIuH,KAAKg1C,KAAO,EAAG,GAChCgB,EAAMx9C,KAAK0wB,IAAIlpB,KAAKg1C,KAAO,EAAGc,EAAMp9C,QACpC0tB,EAAWhuB,OAAO49C,GAAKt9C,OAE3B,GAAIg9C,EAAO,CACP,IAAIskB,EAAqBJ,GAAKtlB,cAAa,GAAOxB,EAAOknB,EAAmBlnB,KAAMe,EAAOmmB,EAAmBnmB,KAAMP,EAAM0mB,EAAmB1mB,IAC3IsC,EAAO,SAASvyB,GACZ,OAAOyvB,EAAKQ,EAAIjwB,GACpB,EACAwyB,EAAQ,SAASxyB,GACb,OAAOwwB,EAAKxwB,EAChB,CACJ,MACIuyB,EAAOC,EAAQ,SAASnyC,GACpB,OAAOA,CACX,EAEJ,OAAOoyC,EAAM7yC,MAAM8yC,EAAOC,GAAK7pC,IAAI,SAAS6oC,EAAMkB,GAC9C,IAAI17B,EAASu7B,EAAQ,EAAIG,EACrBC,EAAS,KAAO,IAAM37B,GAAQvX,OAAOmjB,GAAY,MACrD,GAAI5L,IAAWunB,EAAMiT,KAAM,CACvB,IAAIoB,EAAUP,EAAMM,EAAO76C,QAAQ,MAAO,MAAQ05C,EAAK/xC,MAAM,EAAG8+B,EAAMkT,OAAS,GAAG35C,QAAQ,SAAU,KACpG,OAAOs6C,EAAK,KAAOC,EAAMM,GAAUnB,EAAO,MAAQoB,EAAUR,EAAK,IACrE,CACA,MAAO,IAAMC,EAAMM,GAAUnB,CACjC,GAAG7sC,KAAK,KACZ,EACAm5B,EAAOxyB,SAAW,WACd,IAAIvJ,EAAOvF,KAAKy1C,iBAIhB,OAHIlwC,IACAA,EAAO,OAASA,EAAO,MAEpBvF,KAAK3B,KAAO,KAAO2B,KAAK7B,QAAUoH,CAC7C,EACOw0D,CACX,CAtFqC,CAsFnCx+B,EAAmB3a,QACjBq5C,GAAiBH,GACrBA,GAAiBxlD,QAAUwlD,GAC3B,IAAII,GAAU,CAAC,EACfA,GAAQ3jB,QAAUtsC,OAAO,WACzBiwD,GAAQ1jB,GAAKvsC,OAAO,MACpB,IAAIkwD,GAAc,CACdzjB,MAAO,KACPC,YAAa,KACbC,cAAe,KACfC,WAAY,KACZC,WAAY,IACZC,WAAY,KACZC,MAAO,KACPC,YAAa,IACbC,aAAc,IACdC,UAAW,GACXC,OAAQ,OACRC,WAAW,GAKX+iB,GAA8B,WAC9B,SAASC,EAAa7iB,GAClBx3C,KAAKw3C,QAAUA,CACnB,CACA,IAAIlW,EAAS+4B,EAAa33D,UAgR1B,OA/QA4+B,EAAOmW,OAAS,SAAgBtV,EAAOkV,GACnC,IAAIh5C,EAAO,IAAM8jC,EAAM9jC,KACnBq5C,EAASvV,EAAMuV,OAAS13C,KAAK23C,SAASxV,EAAO,UAAY,GAM7D,QALoC,IAAzBA,EAAMyV,KAAKC,UAClBx5C,GAAQ8jC,EAAMyV,KAAKC,UACZH,IACPr5C,GAAQ,KAER8jC,EAAM2V,MACN93C,KAAK+3C,MAAM5V,EAAO9jC,EAAOq5C,OACtB,CACH,IAAI1B,GAAO7T,EAAMyV,KAAKI,SAAW,KAAOX,EAAY,IAAM,IAC1Dr3C,KAAKw3C,QAAQn5C,EAAOq5C,EAAS1B,EAAK7T,EACtC,CACJ,EACAb,EAAO2W,YAAc,SAAqB9V,EAAO7gB,GAC7C,IAAIjZ,EAEAA,EADe,SAAf85B,EAAMzmC,KACEsE,KAAKk4C,IAAI/V,EAAO,KAAM,cACR,YAAfA,EAAMzmC,KACLsE,KAAKk4C,IAAI/V,EAAO,KAAM,iBACZ,WAAX7gB,EACCthB,KAAKk4C,IAAI/V,EAAO,KAAM,cAEtBniC,KAAKk4C,IAAI/V,EAAO,KAAM,eAIlC,IAFA,IAAIgW,EAAMhW,EAAM8L,OACZmK,EAAQ,EACND,GAAoB,SAAbA,EAAIz8C,MACb08C,GAAS,EACTD,EAAMA,EAAIlK,OAEd,GAAI5lC,EAAMhP,SAAS,MAAO,CACtB,IAAI+9C,EAASp3C,KAAKk4C,IAAI/V,EAAO,KAAM,UACnC,GAAIiV,EAAO1+C,OACP,IAAI,IAAIikC,EAAO,EAAGA,EAAOyb,EAAOzb,IAAOt0B,GAAS+uC,CAExD,CACA,OAAO/uC,CACX,EACAi5B,EAAOyW,MAAQ,SAAe5V,EAAO4T,GACjC,IAEIW,EAFAsB,EAAUh4C,KAAKk4C,IAAI/V,EAAO,UAAW,cACzCniC,KAAKw3C,QAAQzB,EAAQiC,EAAU,IAAK7V,EAAO,SAEvCA,EAAM2V,OAAS3V,EAAM2V,MAAMp/C,QAC3BsH,KAAKssB,KAAK6V,GACVuU,EAAQ12C,KAAKk4C,IAAI/V,EAAO,UAExBuU,EAAQ12C,KAAKk4C,IAAI/V,EAAO,QAAS,aAEjCuU,GAAO12C,KAAKw3C,QAAQd,GACxB12C,KAAKw3C,QAAQ,IAAKrV,EAAO,MAC7B,EACAb,EAAOhV,KAAO,SAAc6V,GAExB,IADA,IAAIj/B,EAAOi/B,EAAM2V,MAAMp/C,OAAS,EAC1BwK,EAAO,GACsB,YAA3Bi/B,EAAM2V,MAAM50C,GAAMxH,MACtBwH,GAAQ,EAGZ,IADA,IAAIm0C,EAAYr3C,KAAKk4C,IAAI/V,EAAO,aACxB2G,EAAK,EAAGA,EAAK3G,EAAM2V,MAAMp/C,OAAQowC,IAAK,CAC1C,IAAIuP,EAAQlW,EAAM2V,MAAMhP,GACpBwP,EAASt4C,KAAKk4C,IAAIG,EAAO,UACzBC,GAAQt4C,KAAKw3C,QAAQc,GACzBt4C,KAAKiJ,UAAUovC,EAAOn1C,IAAS4lC,GAAMuO,EACzC,CACJ,EACA/V,EAAO2O,QAAU,SAAiB9N,GAC9B,IAAInH,EAAOh7B,KAAKk4C,IAAI/V,EAAO,OAAQ,eAC/BlH,EAAQj7B,KAAKk4C,IAAI/V,EAAO,QAAS,gBACrCniC,KAAKw3C,QAAQ,KAAOxc,EAAOmH,EAAM9e,KAAO4X,EAAQ,KAAMkH,EAC1D,EACAb,EAAOiX,KAAO,SAAcpW,EAAOkV,GAC/B,IAAIW,EAAUh4C,KAAKk4C,IAAI/V,EAAO,UAAW,SACrCqW,EAASrW,EAAM3+B,KAAOw0C,EAAUh4C,KAAK23C,SAASxV,EAAO,SACrDA,EAAMsW,YACND,GAAUrW,EAAMyV,KAAKa,WAAa,eAElCpB,IAAWmB,GAAU,KACzBx4C,KAAKw3C,QAAQgB,EAAQrW,EACzB,EACAb,EAAOtjC,SAAW,SAAmBmkC,GACjCniC,KAAKssB,KAAK6V,EACd,EACAb,EAAO4W,IAAM,SAAa/V,EAAOuW,EAAKp3B,GAClC,IAAIjZ,EAEJ,GADKiZ,IAAQA,EAASo3B,GAClBA,QAEqB,KADrBrwC,EAAQ85B,EAAMyV,KAAKc,IACe,OAAOrwC,EAE7C,IAAI4lC,EAAS9L,EAAM8L,OACnB,GAAe,WAAX3sB,EAAqB,CACrB,IAAK2sB,GAA0B,SAAhBA,EAAOvyC,MAAmBuyC,EAAO0K,QAAUxW,EACtD,MAAO,GAEX,GAAI8L,GAA0B,aAAhBA,EAAOvyC,KACjB,MAAO,EAEf,CACA,IAAKuyC,EAAQ,OAAOksB,GAAY74C,GAChC,IAAIs3B,EAAQzW,EAAM0W,OAElB,GADKD,EAAME,WAAUF,EAAME,SAAW,CAAC,QACD,IAA3BF,EAAME,SAASx3B,GACtB,OAAOs3B,EAAME,SAASx3B,GAE1B,GAAe,WAAXA,GAAkC,UAAXA,EACvB,OAAOthB,KAAKi4C,YAAY9V,EAAO7gB,GAE/B,IArHQ5d,EAqHJg7B,EAAS,QArHLh7B,EAqHwB4d,GApH7B,GAAGy3B,cAAgBr1C,EAAIT,MAAM,IAgIpC,OAXQjD,KAAK0+B,GACLr2B,EAAQrI,KAAK0+B,GAAQka,EAAOzW,GAE5ByW,EAAMI,KAAK,SAASlQ,GAEhB,QAAqB,KADrBzgC,EAAQygC,EAAG8O,KAAKc,IACkB,OAAO,CAC7C,QAGa,IAAVrwC,IAAuBA,EAAQ8xD,GAAY74C,IACtDs3B,EAAME,SAASx3B,GAAUjZ,EAClBA,CACX,EACAi5B,EAAO2X,eAAiB,SAAwBL,GAC5C,IAAIvwC,EAaJ,OAZAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAIA,EAAGgP,OAAShP,EAAGgP,MAAMp/C,OAAS,QACD,IAAlBowC,EAAG8O,KAAKlB,MAKf,OAJAruC,EAAQygC,EAAG8O,KAAKlB,OACNr9C,SAAS,QACfgP,EAAQA,EAAM/M,QAAQ,UAAW,MAE9B,CAGnB,GACI+M,IAAOA,EAAQA,EAAM/M,QAAQ,MAAO,KACjC+M,CACX,EACAi5B,EAAO4X,iBAAmB,SAA0BN,EAAOzW,GACvD,IAAI95B,EAeJ,OAdAuwC,EAAMO,aAAa,SAASrQ,GACxB,QAA8B,IAAnBA,EAAG8O,KAAKU,OAKf,OAJAjwC,EAAQygC,EAAG8O,KAAKU,QACNj/C,SAAS,QACfgP,EAAQA,EAAM/M,QAAQ,UAAW,MAE9B,CAEf,QACqB,IAAV+M,EACPA,EAAQrI,KAAKk4C,IAAI/V,EAAO,KAAM,cACvB95B,IACPA,EAAQA,EAAM/M,QAAQ,MAAO,KAE1B+M,CACX,EACAi5B,EAAO8X,cAAgB,SAAuBR,EAAOzW,GACjD,IAAI95B,EAeJ,OAdAuwC,EAAMS,UAAU,SAASvQ,GACrB,QAA8B,IAAnBA,EAAG8O,KAAKU,OAKf,OAJAjwC,EAAQygC,EAAG8O,KAAKU,QACNj/C,SAAS,QACfgP,EAAQA,EAAM/M,QAAQ,UAAW,MAE9B,CAEf,QACqB,IAAV+M,EACPA,EAAQrI,KAAKk4C,IAAI/V,EAAO,KAAM,cACvB95B,IACPA,EAAQA,EAAM/M,QAAQ,MAAO,KAE1B+M,CACX,EACAi5B,EAAOgY,cAAgB,SAAuBV,GAC1C,IAAIvwC,EAOJ,OANAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAgB,SAAZA,EAAGptC,WAEkB,KADrB2M,EAAQygC,EAAG8O,KAAKI,SACkB,OAAO,CAEjD,GACO3vC,CACX,EACAi5B,EAAOiY,cAAgB,SAAuBX,GAC1C,IAAIvwC,EAaJ,OAZAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAIA,EAAGgP,QAAUhP,EAAGmF,SAAW2K,GAASA,EAAMD,QAAU7P,SACtB,IAAnBA,EAAG8O,KAAKU,OAKf,OAJAjwC,EAAQygC,EAAG8O,KAAKU,QACNj/C,SAAS,QACfgP,EAAQA,EAAM/M,QAAQ,UAAW,MAE9B,CAGnB,GACI+M,IAAOA,EAAQA,EAAM/M,QAAQ,MAAO,KACjC+M,CACX,EACAi5B,EAAOkY,SAAW,SAAkBZ,GAChC,IAAIvwC,EAOJ,OANAuwC,EAAMS,UAAU,SAASvQ,GACrB,QAA+B,IAApBA,EAAG8O,KAAKI,QAEf,OADA3vC,EAAQygC,EAAG8O,KAAKI,QAAQ18C,QAAQ,UAAW,KACpC,CAEf,GACO+M,CACX,EACAi5B,EAAOmY,aAAe,SAAsBb,GACxC,IAAIvwC,EAOJ,OANAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAIA,EAAGgP,OAA6B,IAApBhP,EAAGgP,MAAMp/C,aAEA,KADrB2P,EAAQygC,EAAG8O,KAAKlB,OACkB,OAAO,CAEjD,GACOruC,CACX,EACAi5B,EAAOoY,UAAY,SAAmBd,GAClC,OAAIA,EAAMhB,KAAKR,OAAewB,EAAMhB,KAAKR,QAEzCwB,EAAMI,KAAK,SAASlQ,GAChB,IAAIjvC,EAAIivC,EAAGmF,OACX,GAAIp0C,GAAKA,IAAM++C,GAAS/+C,EAAEo0C,QAAUp0C,EAAEo0C,SAAW2K,QACf,IAAnB9P,EAAG8O,KAAKU,OAAwB,CACvC,IAAI1rC,EAAQk8B,EAAG8O,KAAKU,OAAOjgD,MAAM,MAGjC,OADAgQ,GADAA,EAAQuE,EAAMA,EAAMlU,OAAS,IACf4C,QAAQ,MAAO,KACtB,CACX,CAER,GACO+M,GAZP,IAAIA,CAaR,EACAi5B,EAAOqY,aAAe,SAAsBf,GACxC,IAAIvwC,EAOJ,OANAuwC,EAAMI,KAAK,SAASlQ,GAChB,GAAIA,EAAGgP,OAAShP,EAAGgP,MAAMp/C,QAA2B,SAAjBowC,EAAG5lC,KAAKxH,WAElB,KADrB2M,EAAQygC,EAAG8O,KAAKP,WACkB,OAAO,CAEjD,GACOhvC,CACX,EACAi5B,EAAOqW,SAAW,SAAkBxV,EAAO3+B,GACvC,IAAI6E,EAAQ85B,EAAM3+B,GACd00C,EAAM/V,EAAMyV,KAAKp0C,GACrB,OAAI00C,GAAOA,EAAI7vC,QAAUA,EACd6vC,EAAIA,IAER7vC,CACX,EACAi5B,EAAOuX,KAAO,SAAc1W,GACxBniC,KAAKssB,KAAK6V,GACNA,EAAMyV,KAAKlB,OAAO12C,KAAKw3C,QAAQrV,EAAMyV,KAAKlB,MAClD,EACApV,EAAOxrB,KAAO,SAAcqsB,GACxBniC,KAAK+3C,MAAM5V,EAAOniC,KAAK23C,SAASxV,EAAO,aACnCA,EAAMyV,KAAKgC,cACX55C,KAAKw3C,QAAQrV,EAAMyV,KAAKgC,aAAczX,EAAO,MAErD,EACAb,EAAOr4B,UAAY,SAAmBk5B,EAAOkV,GACzC,IAAKr3C,KAAKmiC,EAAMzmC,MACZ,MAAM,IAAIklB,MAAM,yBAA2BuhB,EAAMzmC,KAAO,mDAE5DsE,KAAKmiC,EAAMzmC,MAAMymC,EAAOkV,EAC5B,EACOgjB,CACX,CArRkC,GAsR9B3F,GAAc0F,GAClBA,GAAc9lD,QAAU8lD,GACxB,IAAIE,GAAgB5F,GACpB,SAAS6F,GAAYp4B,EAAOqV,GACd,IAAI8iB,GAAc9iB,GACxBvuC,UAAUk5B,EAClB,CACA,IAAIq4B,GAAcD,GAClBA,GAAYjmD,QAAUimD,GACtB,IAAIE,GAAYP,GAAQ3jB,QAASmkB,GAAOR,GAAQ1jB,GAC5CmkB,GAAmBV,GACnBW,GAAgBlG,GAChBmG,GAAcL,GAClB,SAASM,GAAUx5D,EAAK2sC,GACpB,IAAIsM,EAAS,IAAIj5C,EAAIvB,YACrB,IAAI,IAAI+oC,KAAMxnC,EACV,GAAKf,OAAOmC,UAAUC,eAAeC,KAAKtB,EAAKwnC,IAGpC,eAAPA,EAAJ,CACA,IAAIzgC,EAAQ/G,EAAIwnC,GACZptC,OAAwB,IAAV2M,EAAwB,YAAcizB,EAASjzB,GACtD,WAAPygC,GAA4B,WAATptC,EACfuyC,IAAQsM,EAAOzR,GAAMmF,GACX,WAAPnF,EACPyR,EAAOzR,GAAMzgC,EACN5O,MAAMC,QAAQ2O,GACrBkyC,EAAOzR,GAAMzgC,EAAM8D,IAAI,SAAS9G,GAC5B,OAAOy1D,GAAUz1D,EAAGk1C,EACxB,IAEa,WAAT7+C,GAA+B,OAAV2M,IAAgBA,EAAQyyD,GAAUzyD,IAC3DkyC,EAAOzR,GAAMzgC,EAbgB,CAgBrC,OAAOkyC,CACX,CACA,IAAIwgB,GAAuB,WACvB,SAASC,EAAMtgB,GAKX,IAAI,IAAIr8C,UAJS,IAAbq8C,IAAqBA,EAAW,CAAC,GACrC16C,KAAK43C,KAAO,CAAC,EACb53C,KAAKy6D,KAAa,EAClBz6D,KAAK06D,KAAQ,EACGhgB,EACZ,GAAa,UAATr8C,EAAkB,CAClB2B,KAAK83C,MAAQ,GACb,IAAI,IAAsE/T,EAAlEC,EAAYrI,EAAqC+e,EAASr8C,MAAiB0lC,EAAQC,KAAavmB,MAAM,CAC1G,IAAI0kB,EAAQ4B,EAAM17B,MACS,mBAAhB85B,EAAMx7B,MACb3G,KAAKugB,OAAO4hB,EAAMx7B,SAElB3G,KAAKugB,OAAO4hB,EAEpB,CACJ,MACIniC,KAAK3B,GAAQq8C,EAASr8C,EAGlC,CACA,IAAIijC,EAAS05B,EAAMt4D,UA2SnB,OA1SA4+B,EAAOqZ,WAAa,SAAoB90C,GAEpC,GADAA,EAAM+0C,YAAc56C,KAChB6F,EAAMrD,OAASxC,KAAKsD,QAAU,aAAa+I,KAAKxG,EAAMrD,OAAQ,CAC9D,IAAIu9B,EAAK//B,KAAKsD,OACduC,EAAMrD,MAAQqD,EAAMrD,MAAMlH,QAAQ,aAAc,KAAOykC,EAAG8a,MAAMxzC,KAAO,IAAM04B,EAAGgW,MAAMf,KAAO,IAAMjV,EAAGgW,MAAMd,OAAS,KACzH,CACA,OAAOpvC,CACX,EACAy7B,EAAOoV,MAAQ,SAAev7B,GAE1B,OADAnb,KAAKiuC,OAAO6M,YAAY96C,KAAMmb,GACvBnb,IACX,EACAshC,EAAO/G,OAAS,SAAgBwgB,GAE5B,IAAI,IAAI18C,UADU,IAAd08C,IAAsBA,EAAY,CAAC,GACvBA,EACZ/6C,KAAK3B,GAAQ08C,EAAU18C,GAE3B,OAAO2B,IACX,EACAshC,EAAOgX,OAAS,SAAgBn9B,GAE5B,OADAnb,KAAKiuC,OAAO+M,aAAah7C,KAAMmb,GACxBnb,IACX,EACAshC,EAAO2Z,UAAY,SAAmBC,UAC3Bl7C,KAAK43C,KAAKU,cACVt4C,KAAK43C,KAAKlB,MACZwE,UAAoBl7C,KAAK43C,KAAKI,OACvC,EACA1W,EAAO36B,MAAQ,SAAeo0C,QACR,IAAdA,IAAsBA,EAAY,CAAC,GACvC,IAAIR,EAASugB,GAAU96D,MACvB,IAAI,IAAI3B,KAAQ08C,EACZR,EAAOl8C,GAAQ08C,EAAU18C,GAE7B,OAAOk8C,CACX,EACAjZ,EAAO6Z,WAAa,SAAoBJ,QAClB,IAAdA,IAAsBA,EAAY,CAAC,GACvC,IAAIR,EAASv6C,KAAK2G,MAAMo0C,GAExB,OADA/6C,KAAKiuC,OAAO6M,YAAY96C,KAAMu6C,GACvBA,CACX,EACAjZ,EAAO8Z,YAAc,SAAqBL,QACpB,IAAdA,IAAsBA,EAAY,CAAC,GACvC,IAAIR,EAASv6C,KAAK2G,MAAMo0C,GAExB,OADA/6C,KAAKiuC,OAAO+M,aAAah7C,KAAMu6C,GACxBA,CACX,EACAjZ,EAAOz7B,MAAQ,SAAe1H,EAASiM,GAEnC,QADa,IAATA,IAAiBA,EAAO,CAAC,GACzBpK,KAAKsD,OAAQ,CACb,IAAI+3C,EAAgBr7C,KAAKs7C,QAAQlxC,GAAO4rC,EAAMqF,EAAcrF,IAAKD,EAAQsF,EAActF,MACvF,OAAO/1C,KAAKsD,OAAOu3C,MAAMh1C,MAAM1H,EAAS,CACpC82C,OAAQc,EAAMd,OACdD,KAAMe,EAAMf,MACb,CACCC,OAAQe,EAAIf,OACZD,KAAMgB,EAAIhB,MACX5qC,EACP,CACA,OAAO,IAAIuwD,GAAiBx8D,EAChC,EACAmjC,EAAOia,kBAAoB,WACvB,MAAO,CACH/2C,IAAK,SAAa29B,EAAO3+B,GACrB,MAAa,YAATA,EACO2+B,EACS,SAAT3+B,EACA,WACH,OAAO2+B,EAAM0W,OAAO2C,SACxB,EAEOrZ,EAAM3+B,EAErB,EACAqB,IAAK,SAAas9B,EAAO3+B,EAAM6E,GAC3B,OAAI85B,EAAM3+B,KAAU6E,IACpB85B,EAAM3+B,GAAQ6E,EACD,SAAT7E,GAA4B,UAATA,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAAsD,SAATA,GAC5H2+B,EAAMsZ,cAHwB,CAMtC,EAER,EACAna,EAAOma,UAAY,WACf,GAAIz7C,KAAKy6D,IAAY,CACjBz6D,KAAKy6D,KAAa,EAElB,IADA,IAAIt1D,EAAOnF,KACLmF,EAAOA,EAAK8oC,QACd9oC,EAAKs1D,KAAa,CAE1B,CACJ,EACAn5B,EAAOn8B,KAAO,WACV,GAAKnF,KAAKiuC,OAAV,CACA,IAAIiI,EAASl2C,KAAKiuC,OAAOlmC,MAAM/H,MAC/B,OAAOA,KAAKiuC,OAAO6J,MAAM5B,EAAS,EAFH,CAGnC,EACA5U,EAAOoa,WAAa,SAAoBtxC,EAAMuxC,GAC1C,IAAIvW,EAAMplC,KAAKsD,OAAOyyC,MACtB,GAAI3rC,EAAKrC,MACLq9B,EAAMplC,KAAK47C,eAAexxC,EAAKrC,MAAO4zC,QACnC,GAAIvxC,EAAKyxC,KAAM,CAElB,IAAI3F,GADJyF,EAAuB37C,KAAK8O,YACM3M,QAAQiI,EAAKyxC,OAC/B,IAAZ3F,IAAe9Q,EAAMplC,KAAK47C,eAAe1F,EAAQyF,GACzD,CACA,OAAOvW,CACX,EACA9D,EAAOsa,eAAiB,SAAwB1F,EAAQyF,GAIpD,IAHA,IAAInD,EAASmD,GAAwB37C,KAAK8O,WACtCmmC,EAASj1C,KAAKsD,OAAOyyC,MAAMd,OAC3BD,EAAOh1C,KAAKsD,OAAOyyC,MAAMf,KACrBlM,EAAK,EAAGA,EAAKoN,EAAQpN,IACN,OAAf0P,EAAO1P,IACPmM,EAAS,EACTD,GAAQ,GAERC,GAAU,EAGlB,MAAO,CACHA,OAAQA,EACRD,KAAMA,EAEd,EACA1T,EAAOve,KAAO,WACV,GAAK/iB,KAAKiuC,OAAV,CACA,IAAIiI,EAASl2C,KAAKiuC,OAAOlmC,MAAM/H,MAC/B,OAAOA,KAAKiuC,OAAO6J,MAAM5B,EAAS,EAFH,CAGnC,EACA5U,EAAOga,QAAU,SAAiBlxC,GAC9B,IAAI2rC,EAAQ,CACRd,OAAQj1C,KAAKsD,OAAOyyC,MAAMd,OAC1BD,KAAMh1C,KAAKsD,OAAOyyC,MAAMf,MAExBgB,EAAMh2C,KAAKsD,OAAO0yC,IAAM,CACxBf,OAAQj1C,KAAKsD,OAAO0yC,IAAIf,OAAS,EACjCD,KAAMh1C,KAAKsD,OAAO0yC,IAAIhB,MACtB,CACAC,OAAQc,EAAMd,OAAS,EACvBD,KAAMe,EAAMf,MAEhB,GAAI5qC,EAAKyxC,KAAM,CACX,IAAIF,EAAuB37C,KAAK8O,WAC5BonC,EAASyF,EAAqBx5C,QAAQiI,EAAKyxC,OAC/B,IAAZ3F,IACAH,EAAQ/1C,KAAK47C,eAAe1F,EAAQyF,GACpC3F,EAAMh2C,KAAK47C,eAAe1F,EAAS9rC,EAAKyxC,KAAKnjD,OAAQijD,GAE7D,MACQvxC,EAAK2rC,MACLA,EAAQ,CACJd,OAAQ7qC,EAAK2rC,MAAMd,OACnBD,KAAM5qC,EAAK2rC,MAAMf,MAEd5qC,EAAKrC,QACZguC,EAAQ/1C,KAAK47C,eAAexxC,EAAKrC,QAEjCqC,EAAK4rC,IACLA,EAAM,CACFf,OAAQ7qC,EAAK4rC,IAAIf,OACjBD,KAAM5qC,EAAK4rC,IAAIhB,MAEa,iBAAlB5qC,EAAK0xC,SACnB9F,EAAMh2C,KAAK47C,eAAexxC,EAAK0xC,UACxB1xC,EAAKrC,QACZiuC,EAAMh2C,KAAK47C,eAAexxC,EAAKrC,MAAQ,IAS/C,OANIiuC,EAAIhB,KAAOe,EAAMf,MAAQgB,EAAIhB,OAASe,EAAMf,MAAQgB,EAAIf,QAAUc,EAAMd,UACxEe,EAAM,CACFf,OAAQc,EAAMd,OAAS,EACvBD,KAAMe,EAAMf,OAGb,CACHgB,IAAKA,EACLD,MAAOA,EAEf,EACAzU,EAAO4W,IAAM,SAAa10C,EAAMu4C,GAE5B,OADU,IAAI6e,IACH1iB,IAAIl4C,KAAMwD,EAAMu4C,EAC/B,EACAza,EAAO0a,OAAS,WAKZ,OAJIh8C,KAAKiuC,QACLjuC,KAAKiuC,OAAOjP,YAAYh/B,MAE5BA,KAAKiuC,YAAS,EACPjuC,IACX,EACAshC,EAAO2a,YAAc,WACjB,IAAI,IAAIC,EAAOlvC,UAAUtU,OAAQo/C,EAAQ,IAAIr+C,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7ErE,EAAMqE,GAAQnvC,UAAUmvC,GAE5B,GAAIn8C,KAAKiuC,OAAQ,CAGb,IAFA,IAEiElK,EAF7DqY,EAAWp8C,KACXq8C,GAAY,EACRrY,EAAYrI,EAAqCmc,KAAiB/T,EAAQC,KAAavmB,MAAM,CACjG,IAAI0kB,EAAQ4B,EAAM17B,MACd85B,IAAUniC,KACVq8C,GAAY,EACLA,GACPr8C,KAAKiuC,OAAO6M,YAAYsB,EAAUja,GAClCia,EAAWja,GAEXniC,KAAKiuC,OAAO+M,aAAaoB,EAAUja,EAE3C,CACKka,GACDr8C,KAAKg8C,QAEb,CACA,OAAOh8C,IACX,EACAshC,EAAOuX,KAAO,WAEV,IADA,IAAIyD,EAAUt8C,KACRs8C,EAAQrO,QAAkC,aAAxBqO,EAAQrO,OAAOvyC,MACnC4gD,EAAUA,EAAQrO,OAEtB,OAAOqO,CACX,EACAhb,EAAO93B,OAAS,SAAgB0c,EAAGq2B,GAC/B,IAAIC,EAAQ,CAAC,EACTC,EAAuB,MAAVF,EACjBA,EAASA,GAA0B,IAAIp4C,IACvC,IAAIu4C,EAAkB,EACtB,IAAI,IAAIr+C,KAAQ2B,KACZ,GAAKO,OAAOmC,UAAUC,eAAeC,KAAK5C,KAAM3B,IAGnC,WAATA,GAA8B,eAATA,EAAzB,CACA,IAAIgK,EAAQrI,KAAK3B,GACjB,GAAI5E,MAAMC,QAAQ2O,GACdm0C,EAAMn+C,GAAQgK,EAAM8D,IAAI,SAAS28B,GAC7B,MAAiE,iBAA9C,IAAPA,EAAqB,YAAcxN,EAASwN,KAAqBA,EAAGt/B,OACrEs/B,EAAGt/B,OAAO,KAAM+yC,GAEhBzT,CAEf,QACG,GAAuE,iBAAjD,IAAVzgC,EAAwB,YAAcizB,EAASjzB,KAAwBA,EAAMmB,OAC5FgzC,EAAMn+C,GAAQgK,EAAMmB,OAAO,KAAM+yC,QAC9B,GAAa,WAATl+C,EAAmB,CAC1B,IAAIs+C,EAAUJ,EAAO/3C,IAAI6D,EAAMwyC,OAChB,MAAX8B,IACAA,EAAUD,EACVH,EAAO13C,IAAIwD,EAAMwyC,MAAO6B,GACxBA,KAEJF,EAAMn+C,GAAQ,CACV23C,IAAK3tC,EAAM2tC,IACX2G,QAASA,EACT5G,MAAO1tC,EAAM0tC,MAErB,MACIyG,EAAMn+C,GAAQgK,CAzBsC,CAiC5D,OALIo0C,IACAD,EAAMD,OAAS,GAAGh0C,OAAOg0C,EAAO/7C,QAAQ2L,IAAI,SAASywC,GACjD,OAAOA,EAAOpzC,QAClB,IAEGgzC,CACX,EACAlb,EAAOka,QAAU,WAIb,OAHKx7C,KAAK68C,aACN78C,KAAK68C,WAAa,IAAIpyC,MAAMzK,KAAMA,KAAKu7C,sBAEpCv7C,KAAK68C,UAChB,EACAvb,EAAOxyB,SAAW,SAAkBguC,QACX,IAAjBA,IAAyBA,EAAe+d,IACxC/d,EAAa7zC,YAAW6zC,EAAeA,EAAa7zC,WACxD,IAAIqzC,EAAU,GAId,OAHAQ,EAAa98C,KAAM,SAAS8oC,GACxBwT,GAAWxT,CACf,GACOwT,CACX,EACAhb,EAAO17B,KAAO,SAAc02C,EAASj5B,EAAMjZ,GACvC,IAAIvG,EAAO,CACPk5C,KAAM/8C,MAEV,IAAI,IAAI8oC,KAAM1+B,EAAKvG,EAAKilC,GAAM1+B,EAAK0+B,GACnC,OAAOwT,EAAQ12C,KAAKyd,EAAMxf,EAC9B,EACAk2B,EAAcihC,EAAO,CACjB,CACI94D,IAAK,UACLsC,IAAK,WACD,OAAOxE,IACX,KAGDg7D,CACX,CAlU2B,GAmUvBje,GAAOge,GACXA,GAAOzmD,QAAUymD,GACjB,IACIE,GAA8B,SAASC,GAEvC,SAASC,EAAazgB,GAClB,IAAI3Y,EAQJ,OAPI2Y,QAAsC,IAAnBA,EAASryC,OAAmD,iBAAnBqyC,EAASryC,QACrEqyC,EAAWpgB,EAAS,CAAC,EAAGogB,EAAU,CAC9BryC,MAAOjQ,OAAOsiD,EAASryC,WAG/B05B,EAAQm5B,EAAOt4D,KAAK5C,KAAM06C,IAAa16C,MACjCtE,KAAO,OACNqmC,CACX,CASA,OApBApH,EAAUwgC,EAAcD,GAYxBnhC,EAAcohC,EAAc,CACxB,CACIj5D,IAAK,WACLsC,IAAK,WACD,OAAOxE,KAAKwD,KAAKogB,WAAW,OAA0B,MAAjB5jB,KAAKwD,KAAK,EACnD,KAGD23D,CACX,CAtBkC,CADrBpe,IAwBTqe,GAAcH,GAClBA,GAAc3mD,QAAU2mD,GACxB,IAaII,GAAsB1B,GAAWrc,kBAAmBge,GAAuB3B,GAAWnc,mBACtFE,GAAaic,GAAWjc,WAAYE,GAAe+b,GAAW/b,aAC9D2d,GAAY5B,GAAW7b,QAAS31C,GAAOwxD,GAAWxxD,KAQlDqzD,GAA8B,WAC9B,SAASC,EAAa9lB,EAAKvrC,GACvB,IAAiB,IAAbA,EAAK+B,IAAT,CACAnM,KAAKk+C,eAAevI,GACpB31C,KAAKm+C,OAASn+C,KAAKo+C,UAAUp+C,KAAKq+C,WAAY,SAC9C,IAAIt7B,EAAO3Y,EAAK+B,IAAM/B,EAAK+B,IAAI4W,UAAO,EAClCM,EAAOrjB,KAAKs+C,QAAQl0C,EAAK/C,KAAM0b,IAC9B/iB,KAAKu+C,SAAWn0C,EAAK/C,OACtBrH,KAAKu+C,QAAUn0C,EAAK/C,MAEpBrH,KAAKu+C,UAASv+C,KAAK64C,KAAO0iB,GAAUv7D,KAAKu+C,UACzCl7B,IAAMrjB,KAAKqjB,KAAOA,EATQ,CAUlC,CACA,IAAIie,EAASm6B,EAAa/4D,UAkF1B,OAjFA4+B,EAAOkd,SAAW,WAId,OAHKx+C,KAAKy+C,gBACNz+C,KAAKy+C,cAAgB,IAAI4c,GAAoBr7D,KAAKqjB,OAE/CrjB,KAAKy+C,aAChB,EACAnd,EAAOod,aAAe,SAAsBr7B,GACxC,IA5BY3f,EAgCZ,GAFiB,0CAEF2I,KAAKgX,IADV,2BACuBhX,KAAKgX,GAClC,OAAOs7B,mBAAmBt7B,EAAKu7B,OAAOl6C,OAAOm6C,UAAUnmD,SAE3D,GAPqB,iDAOF2T,KAAKgX,IANV,kCAM2BhX,KAAKgX,GAC1C,OApCQ3f,EAoCU2f,EAAKu7B,OAAOl6C,OAAOm6C,UAAUnmD,QAnCnDomD,OACOA,OAAOz3C,KAAK3D,EAAK,UAAUoL,WAE3BjT,OAAOkjD,KAAKr7C,GAkCnB,IAAIs7C,EAAW37B,EAAK5W,MAAM,mCAAmC,GAC7D,MAAM,IAAImU,MAAM,mCAAqCo+B,EACzD,EACA1d,EAAO2d,iBAAmB,SAA0BC,GAChD,OAAOA,EAAgB5jD,QAAQ,8BAA+B,IAAI0D,MACtE,EACAsiC,EAAO6d,MAAQ,SAAehzC,GAC1B,MAAmE,iBAA/C,IAARA,EAAsB,YAAcmvB,EAASnvB,MAC1B,iBAAjBA,EAAIizC,UAAkD,iBAAlBjzC,EAAIkzC,WAA0B5lD,MAAMC,QAAQyS,EAAImzC,UACtG,EACAhe,EAAO4c,eAAiB,SAAwBvI,GAC5C,IAAI4J,EAAW5J,EAAIlpC,MAAM,gCACzB,GAAK8yC,EAAL,CACA,IAAIxJ,EAAQJ,EAAIl8B,YAAY8lC,EAAS3sC,OACjCojC,EAAML,EAAIxzC,QAAQ,KAAM4zC,GACxBA,GAAS,GAAKC,GAAO,IACrBh2C,KAAKq+C,WAAar+C,KAAKi/C,iBAAiBtJ,EAAIppC,UAAUwpC,EAAOC,IAJ5C,CAMzB,EACA1U,EAAOke,SAAW,SAAkBl9C,GAEhC,GADAtC,KAAK64C,KAAO0iB,GAAUj5D,GAClBo7C,GAAWp7C,GAEX,OADAtC,KAAKu+C,QAAUj8C,EACRs7C,GAAat7C,EAAM,SAASwM,WAAW9P,MAEtD,EACAsiC,EAAOgd,QAAU,SAAiBpJ,EAAMnyB,GACpC,IAAa,IAATA,EAAgB,OAAO,EAC3B,GAAIA,EAAM,CACN,GAAoB,iBAATA,EACP,OAAOA,EACJ,GAAoB,mBAATA,EASX,IAAIgY,EAAYhY,EAAMs4C,IACzB,OAAOC,GAAqB7b,cAAc18B,GAAMjU,WAC7C,GAAIisB,EAAYhY,EAAMu4C,IACzB,OAAOv4C,EAAKjU,WACT,GAAI9O,KAAKm/C,MAAMp8B,GAClB,OAAOha,KAAKE,UAAU8Z,GAEtB,MAAM,IAAInC,MAAM,2CAA6CmC,EAAKjU,WACtE,CAhBI,IAAI4wC,EAAW38B,EAAKmyB,GACpB,GAAIwK,EAAU,CACV,IAAIvzC,EAAMnM,KAAKw/C,SAASE,GACxB,IAAKvzC,EACD,MAAM,IAAIyU,MAAM,uCAAyC8+B,EAAS5wC,YAEtE,OAAO3C,CACX,CAUR,KAAO,IAAInM,KAAKm+C,OACZ,OAAOn+C,KAAK0+C,aAAa1+C,KAAKq+C,YAC3B,GAAIr+C,KAAKq+C,WAAY,CACxB,IAAIsB,EAAO3/C,KAAKq+C,WAEhB,OADInJ,IAAMyK,EAAOx3C,GAAKozD,GAAUrmB,GAAOyK,IAChC3/C,KAAKw/C,SAASG,EACzB,EACJ,EACAre,EAAO8c,UAAY,SAAmB5F,EAAQzC,GAC1C,QAAKyC,GACEA,EAAOoG,OAAO,EAAG7I,EAAMr9C,UAAYq9C,CAC9C,EACAzU,EAAOse,YAAc,WACjB,SAAU5/C,KAAKw+C,WAAWqB,gBAAkB7/C,KAAKw+C,WAAWqB,eAAennD,OAAS,EACxF,EACO+iE,CACX,CAhGkC,GAiG9BC,GAAcF,GAClBA,GAAclnD,QAAUknD,GACxB,IAAIG,GAAsBhC,GAAWrc,kBAAmBse,GAAuBjC,GAAWnc,mBACtF0C,GAAgByZ,GAAWzZ,cAAe2b,GAAkBlC,GAAWvZ,cACvEE,GAAaqZ,GAAWrZ,WAAYwb,GAAYnC,GAAW/3D,QAC3Dm6D,GA5HW,SAAStb,QACP,IAATA,IAAiBA,EAAO,IAG5B,IAFA,IAAIjf,EAAK,GACLsH,EAAK2X,EACH3X,KACFtH,GANU,mEAMwB,GAAhBhpC,KAAKkoD,SAAgB,GAE3C,OAAOlf,CACX,EAqHIw6B,GAAoBrC,GACpBsC,GAAmBhC,GACnBiC,GAAgBR,GAChBS,GAAkBlyD,OAAO,mBACzBmyD,GAAuBziD,QAAQgiD,IAAuBC,IACtDS,GAAkB1iD,QAAQmiD,IAAaxb,IACvCgc,GAAwB,WACxB,SAASC,EAAO5mB,EAAKvrC,GAEjB,QADa,IAATA,IAAiBA,EAAO,CAAC,GACzBurC,SAA6G,iBAA/C,IAARA,EAAsB,YAAcra,EAASqa,MAAuBA,EAAI7mC,SAC9H,MAAM,IAAI8R,MAAM,oBAAsB+0B,EAAM,0BAgBhD,GAdA31C,KAAK21C,IAAMA,EAAI7mC,WACK,WAAhB9O,KAAK21C,IAAI,IAAmC,MAAhB31C,KAAK21C,IAAI,IACrC31C,KAAKmhD,QAAS,EACdnhD,KAAK21C,IAAM31C,KAAK21C,IAAI1yC,MAAM,IAE1BjD,KAAKmhD,QAAS,EAEd/2C,EAAK/C,QACAg1D,IAAmB,YAAYhwD,KAAKjC,EAAK/C,OAASi5C,GAAWl2C,EAAK/C,MACnErH,KAAKk1C,KAAO9qC,EAAK/C,KAEjBrH,KAAKk1C,KAAO4mB,GAAU1xD,EAAK/C,OAG/Bg1D,IAAmBD,GAAsB,CACzC,IAAIjwD,EAAM,IAAI+vD,GAAcl8D,KAAK21C,IAAKvrC,GACtC,GAAI+B,EAAIkX,KAAM,CACVrjB,KAAKmM,IAAMA,EACX,IAAI+oC,EAAO/oC,EAAIqyC,WAAWtJ,MACrBl1C,KAAKk1C,MAAQA,IAAMl1C,KAAKk1C,KAAOl1C,KAAKohD,WAAWlM,GACxD,CACJ,CACKl1C,KAAKk1C,OACNl1C,KAAKwhC,GAAK,cAAgBu6B,GAAO,GAAK,KAEtC/7D,KAAKmM,MAAKnM,KAAKmM,IAAI+oC,KAAOl1C,KAAKqH,KACvC,CACA,IAAIi6B,EAASi7B,EAAO75D,UA6KpB,OA5KA4+B,EAAOz7B,MAAQ,SAAe1H,EAAS62C,EAAMC,EAAQ7qC,GAEjD,IAAIkyC,EAASjH,EAASC,EACtB,QAFa,IAATlrC,IAAiBA,EAAO,CAAC,GAEzB4qC,GAAyE,iBAAhD,IAATA,EAAuB,YAAc1Z,EAAS0Z,IAAqB,CACnF,IAAIe,EAAQf,EACRgB,EAAMf,EACV,GAA4B,iBAAjBc,EAAMsL,OAAqB,CAClC,IAAIjc,EAAMplC,KAAKshD,WAAWvL,EAAMsL,QAChCrM,EAAO5P,EAAI4P,KACXC,EAAS7P,EAAImc,GACjB,MACIvM,EAAOe,EAAMf,KACbC,EAASc,EAAMd,OAEnB,GAA0B,iBAAfe,EAAIqL,OAAqB,CAChC,IAAIG,EAAOxhD,KAAKshD,WAAWtL,EAAIqL,QAC/BhM,EAAUmM,EAAKxM,KACfM,EAAYkM,EAAKD,GACrB,MACIlM,EAAUW,EAAIhB,KACdM,EAAYU,EAAIf,MAExB,MAAO,IAAKA,EAAQ,CAChB,IAAIwM,EAAOzhD,KAAKshD,WAAWtM,GAC3BA,EAAOyM,EAAKzM,KACZC,EAASwM,EAAKF,GAClB,CACA,IAAIz9B,EAAS9jB,KAAK8jB,OAAOkxB,EAAMC,EAAQI,EAASC,GA+BhD,OA7BIgH,EADAx4B,EACU,IAAIm4C,GAAiB99D,OAA4B,IAAnB2lB,EAAOuxB,QAAqBvxB,EAAOkxB,KAAO,CAC9EC,OAAQnxB,EAAOmxB,OACfD,KAAMlxB,EAAOkxB,WACK,IAAnBlxB,EAAOuxB,QAAqBvxB,EAAOmxB,OAAS,CAC3CA,OAAQnxB,EAAOwxB,UACfN,KAAMlxB,EAAOuxB,SACdvxB,EAAOxgB,OAAQwgB,EAAOoxB,KAAM9qC,EAAK7Q,QAE1B,IAAI0iE,GAAiB99D,OAAqB,IAAZk3C,EAAqBL,EAAO,CAChEC,OAAQA,EACRD,KAAMA,QACK,IAAZK,EAAqBJ,EAAS,CAC7BA,OAAQK,EACRN,KAAMK,GACPr1C,KAAK21C,IAAK31C,KAAKk1C,KAAM9qC,EAAK7Q,SAEzBshD,MAAQ,CACZ5F,OAAQA,EACRK,UAAWA,EACXD,QAASA,EACTL,KAAMA,EACN1xC,OAAQtD,KAAK21C,KAEb31C,KAAKk1C,OACD2mB,KACAvf,EAAQzB,MAAM3yB,IAAM2zC,GAAgB77D,KAAKk1C,MAAMpmC,YAEnDwtC,EAAQzB,MAAM3F,KAAOl1C,KAAKk1C,MAEvBoH,CACX,EACAhb,EAAOggB,WAAa,SAAoBD,GACpC,IAAcK,EACd,GAAK1hD,KAAKm8D,IAUNza,EAAc1hD,KAAKm8D,QAVK,CACxB,IAAIrmB,EAAQ91C,KAAK21C,IAAIt9C,MAAM,MAC3BqpD,EAAc,IAAIjoD,MAAMq8C,EAAMp9C,QAE9B,IADA,IAAIipD,EAAY,EACR7Y,EAAK,EAAG8Y,EAAK9L,EAAMp9C,OAAQowC,EAAK8Y,EAAI9Y,IACxC4Y,EAAY5Y,GAAM6Y,EAClBA,GAAa7L,EAAMhN,GAAIpwC,OAAS,EAEpCsH,KAAKm8D,IAAmBza,CAC5B,CAIA,IAAIx4B,EAAM,EACV,GAAIm4B,GAFOK,EAAYA,EAAYhpD,OAAS,GAGxCwwB,EAAMw4B,EAAYhpD,OAAS,OAI3B,IAFA,IACImpD,EADAppD,EAAMipD,EAAYhpD,OAAS,EAEzBwwB,EAAMzwB,GAER,GAAI4oD,EAASK,EADbG,EAAM34B,GAAOzwB,EAAMywB,GAAO,IAEtBzwB,EAAMopD,EAAM,MACT,MAAIR,GAAUK,EAAYG,EAAM,IAEhC,CACH34B,EAAM24B,EACN,KACJ,CAJI34B,EAAM24B,EAAM,CAIhB,CAGR,MAAO,CACHN,IAAKF,EAASK,EAAYx4B,GAAO,EACjC8rB,KAAM9rB,EAAM,EAEpB,EACAoY,EAAO8f,WAAa,SAAoBlM,GACpC,MAAI,YAAY7oC,KAAK6oC,GACVA,EAEJ4mB,GAAU97D,KAAKmM,IAAIqyC,WAAWsD,YAAc9hD,KAAKmM,IAAI0sC,MAAQ,IAAK3D,EAC7E,EACA5T,EAAOxd,OAAS,SAAgBkxB,EAAMC,EAAQI,EAASC,GACnD,IAAKt1C,KAAKmM,IAAK,OAAO,EACtB,IAMI41C,EAOAC,EAbAxD,EAAWx+C,KAAKmM,IAAIqyC,WACpBn3C,EAAOm3C,EAASyD,oBAAoB,CACpChN,OAAQA,EACRD,KAAMA,IAEV,IAAK3tC,EAAK/D,OAAQ,OAAO,EAEF,iBAAZ+xC,IACP0M,EAAKvD,EAASyD,oBAAoB,CAC9BhN,OAAQK,EACRN,KAAMK,KAKV2M,EADA1B,GAAWj5C,EAAK/D,QACNu4D,GAAgBx0D,EAAK/D,QAErB,IAAI6kB,IAAI9gB,EAAK/D,OAAQtD,KAAKmM,IAAIqyC,WAAWsD,YAAc+Z,GAAgB77D,KAAKmM,IAAIoyC,UAE9F,IAAIjC,EAAU,CACVrH,OAAQ5tC,EAAK4tC,OACbK,UAAWyM,GAAMA,EAAG9M,OACpBI,QAAS0M,GAAMA,EAAG/M,KAClBA,KAAM3tC,EAAK2tC,KACX9sB,IAAK85B,EAAQlzC,YAEjB,GAAyB,UAArBkzC,EAAQE,SAAsB,CAC9B,IAAIhC,GAGA,MAAM,IAAIt/B,MAAM,yDAFhB07B,EAAQpH,KAAOgL,GAAc8B,EAIrC,CACA,IAAI1+C,EAASk7C,EAAS2D,iBAAiB96C,EAAK/D,QAE5C,OADIA,IAAQg5C,EAAQh5C,OAASA,GACtBg5C,CACX,EACAhb,EAAO93B,OAAS,WAEZ,IADA,IAAIgoB,EAAO,CAAC,EACJ4wB,EAAK,EAAGC,EAAQ,CACpB,SACA,MACA,OACA,MACDD,EAAKC,EAAM3pD,OAAQ0pD,IAAK,CACvB,IAAI/jD,EAAOgkD,EAAMD,GACC,MAAdpiD,KAAK3B,KACLmzB,EAAKnzB,GAAQ2B,KAAK3B,GAE1B,CAOA,OANI2B,KAAKmM,MACLqlB,EAAKrlB,IAAMmuB,EAAS,CAAC,EAAGt6B,KAAKmM,KACzBqlB,EAAKrlB,IAAIsyC,gBACTjtB,EAAKrlB,IAAIsyC,mBAAgB,IAG1BjtB,CACX,EACAuI,EAAcwiC,EAAQ,CAClB,CACIr6D,IAAK,OACLsC,IAAK,WACD,OAAOxE,KAAKk1C,MAAQl1C,KAAKwhC,EAC7B,KAGD+6B,CACX,CA/M4B,GAgNxB1hB,GAAQyhB,GACZA,GAAQhoD,QAAUgoD,GACdN,IAAqBA,GAAkBzZ,eACvCyZ,GAAkBzZ,cAAc+Z,IAEpC,IAAIhf,GAAoBqc,GAAWrc,kBAAmBE,GAAqBmc,GAAWnc,mBAClFM,GAAU6b,GAAW7b,QAAS8E,GAAW+W,GAAW/W,SAAU4Z,GAAY7C,GAAW/3D,QAASuX,GAAMwgD,GAAWxgD,IAC/GinC,GAAgBuZ,GAAWvZ,cAC3Bqc,GAAU5hB,GACV6hB,GAAqB/iD,QAAQ2jC,IAAqBE,IAClDmf,GAAgBhjD,QAAQmkC,IAAW0e,IAAa5Z,IAAYzpC,IA+U5DyjD,GA9U+B,WAC/B,SAASC,EAAcxZ,EAAYzK,EAAOxuC,EAAMk5C,GAC5CtjD,KAAKiJ,UAAYo6C,EACjBrjD,KAAKujD,QAAUn5C,EAAK+B,KAAO,CAAC,EAC5BnM,KAAK64C,KAAOD,EACZ54C,KAAKoK,KAAOA,EACZpK,KAAK21C,IAAM2N,EACXtjD,KAAKwjD,YAAcF,EACnBtjD,KAAKyjD,cAAgBzjD,KAAKujD,QAAQl8C,MAAQrH,KAAKujD,QAAQG,SACvD1jD,KAAK2jD,iBAAmC,IAAIx/C,IAC5CnE,KAAK4jD,cAAgC,IAAIz/C,IACzCnE,KAAK6jD,aAA+B,IAAI1/C,GAC5C,CACA,IAAIm9B,EAASu7B,EAAcn6D,UA+T3B,OA9TA4+B,EAAOwiB,cAAgB,WACnB,IAAIl2B,EAEAA,EADA5tB,KAAK+jD,WACK,gCAAkC/jD,KAAKgkD,SAAShkD,KAAKmM,IAAI2C,YACzB,iBAA5B9O,KAAKujD,QAAQlF,WACjBr+C,KAAKujD,QAAQlF,WACmB,mBAA5Br+C,KAAKujD,QAAQlF,WACjBr+C,KAAKujD,QAAQlF,WAAWr+C,KAAKoK,KAAK23C,GAAI/hD,KAAK64C,MAE3C74C,KAAKikD,aAAe,OAElC,IAAIC,EAAM,KACNlkD,KAAK21C,IAAIt8C,SAAS,UAAS6qD,EAAM,QACrClkD,KAAK21C,KAAOuO,EAAM,wBAA0Bt2B,EAAU,KAC1D,EACA0T,EAAO6iB,cAAgB,WACnB,IAAI,IAAuEpgB,EAAnEC,EAAYrI,EAAqC37B,KAAKokD,cAAsBrgB,EAAQC,KAAavmB,MAAM,CAC3G,IAAIsF,EAAOghB,EAAM17B,MACbhB,EAAOrH,KAAKqkD,MAAMrkD,KAAKsC,KAAKygB,EAAKmyB,OACjC0D,EAAQ71B,EAAK81B,MAAQiF,GAAQ/6B,EAAKmyB,MAClC/oC,OAAM,GAC0B,IAAhCnM,KAAKujD,QAAQ1D,gBACb1zC,EAAM,IAAImxC,GAAkBv6B,EAAKM,OACzBw8B,iBACJ1zC,EAAI0zC,eAAiB,MAGzB1zC,EAAM4W,EAAKy7B,WAEfx+C,KAAKmM,IAAIm4C,eAAen4C,EAAK9E,EAAMrH,KAAKqkD,MAAMrkD,KAAKsC,KAAKs2C,IAC5D,CACJ,EACAtX,EAAOijB,gBAAkB,WACrB,IAAgC,IAA5BvkD,KAAKujD,QAAQlF,WACjB,GAAIr+C,KAAK64C,KAEL,IADA,IAAI1W,EACI2G,EAAK9oC,KAAK64C,KAAKf,MAAMp/C,OAAS,EAAGowC,GAAM,EAAGA,IAE3B,aADnB3G,EAAQniC,KAAK64C,KAAKf,MAAMhP,IACdptC,MACwC,IAA9CymC,EAAM9e,KAAKlhB,QAAQ,wBACnBnC,KAAK64C,KAAK7Z,YAAY8J,QAGvB9oC,KAAK21C,MACZ31C,KAAK21C,IAAM31C,KAAK21C,IAAIr6C,QAAQ,2BAA4B,IAEhE,EACAgmC,EAAOkjB,SAAW,WAEd,GADAxkD,KAAKukD,kBACDoY,IAAiBD,IAAsB18D,KAAKm/C,QAC5C,OAAOn/C,KAAKykD,cAEZ,IAAInI,EAAU,GAId,OAHAt8C,KAAKiJ,UAAUjJ,KAAK64C,KAAM,SAAS/P,GAC/BwT,GAAWxT,CACf,GACO,CACHwT,EAGZ,EACAhb,EAAOmjB,YAAc,WACjB,GAAIzkD,KAAK64C,KACL74C,KAAK0kD,sBACF,GAA+B,IAA3B1kD,KAAKokD,WAAW1rD,OAAc,CACrC,IAAIqqB,EAAO/iB,KAAKokD,WAAW,GAAG5F,WAC9Bz7B,EAAKmyB,KAAOl1C,KAAKikD,aACjBjkD,KAAKmM,IAAMqxC,GAAmBiC,cAAc18B,EAAM,CAC9C4hC,sBAAsB,GAE9B,MACI3kD,KAAKmM,IAAM,IAAIqxC,GAAmB,CAC9BtI,KAAMl1C,KAAKikD,aACXU,sBAAsB,IAE1B3kD,KAAKmM,IAAIy4C,WAAW,CAChBC,UAAW,CACP5P,OAAQ,EACRD,KAAM,GAEV8P,SAAU,CACN7P,OAAQ,EACRD,KAAM,GAEV1xC,OAAQtD,KAAKoK,KAAK/C,KAAOrH,KAAKqkD,MAAMrkD,KAAKsC,KAAKtC,KAAKoK,KAAK/C,OAAS,gBAMzE,OAHIrH,KAAK+kD,oBAAoB/kD,KAAKglD,oBAC9BhlD,KAAK64C,MAAQ74C,KAAKokD,WAAW1rD,OAAS,GAAGsH,KAAKmkD,gBAC9CnkD,KAAKilD,gBAAgBjlD,KAAK8jD,gBAC1B9jD,KAAK+jD,WACE,CACH/jD,KAAK21C,KAGF,CACH31C,KAAK21C,IACL31C,KAAKmM,IAGjB,EACAm1B,EAAOojB,eAAiB,WACpB,IAAI3iB,EAAQ/hC,KACZA,KAAK21C,IAAM,GACX31C,KAAKmM,IAAM,IAAIqxC,GAAmB,CAC9BtI,KAAMl1C,KAAKikD,aACXU,sBAAsB,IAE1B,IAcI7O,EAAO5yC,EAdP8xC,EAAO,EACPC,EAAS,EACTiQ,EAAW,cACXC,EAAU,CACVN,UAAW,CACP5P,OAAQ,EACRD,KAAM,GAEV8P,SAAU,CACN7P,OAAQ,EACRD,KAAM,GAEV1xC,OAAQ,IAGZtD,KAAKiJ,UAAUjJ,KAAK64C,KAAM,SAASn1C,EAAKy+B,EAAOzmC,GAyB3C,GAxBAqmC,EAAM4T,KAAOjyC,EACTy+B,GAAkB,QAATzmC,IACTypD,EAAQN,UAAU7P,KAAOA,EACzBmQ,EAAQN,UAAU5P,OAASA,EAAS,EAChC9S,EAAM7+B,QAAU6+B,EAAM7+B,OAAOyyC,OAC7BoP,EAAQ7hD,OAASy+B,EAAMqjB,WAAWjjB,GAClCgjB,EAAQL,SAAS9P,KAAO7S,EAAM7+B,OAAOyyC,MAAMf,KAC3CmQ,EAAQL,SAAS7P,OAAS9S,EAAM7+B,OAAOyyC,MAAMd,OAAS,EACtDlT,EAAM51B,IAAIy4C,WAAWO,KAErBA,EAAQ7hD,OAAS4hD,EACjBC,EAAQL,SAAS9P,KAAO,EACxBmQ,EAAQL,SAAS7P,OAAS,EAC1BlT,EAAM51B,IAAIy4C,WAAWO,MAG7BrP,EAAQpyC,EAAI+I,MAAM,SAEduoC,GAAQc,EAAMp9C,OACdwK,EAAOQ,EAAI+V,YAAY,MACvBw7B,EAASvxC,EAAIhL,OAASwK,GAEtB+xC,GAAUvxC,EAAIhL,OAEdypC,GAAkB,UAATzmC,EAAkB,CAC3B,IAAI7B,EAAIsoC,EAAM8L,QAAU,CACpB2J,KAAM,CAAC,IAEoB,SAAfzV,EAAMzmC,MAAkC,WAAfymC,EAAMzmC,OAAsBymC,EAAM2V,QACzD3V,IAAUtoC,EAAEqJ,OAAQrJ,EAAE+9C,KAAKP,YACrClV,EAAM7+B,QAAU6+B,EAAM7+B,OAAO0yC,KAC7BmP,EAAQ7hD,OAASy+B,EAAMqjB,WAAWjjB,GAClCgjB,EAAQL,SAAS9P,KAAO7S,EAAM7+B,OAAO0yC,IAAIhB,KACzCmQ,EAAQL,SAAS7P,OAAS9S,EAAM7+B,OAAO0yC,IAAIf,OAAS,EACpDkQ,EAAQN,UAAU7P,KAAOA,EACzBmQ,EAAQN,UAAU5P,OAASA,EAAS,EACpClT,EAAM51B,IAAIy4C,WAAWO,KAErBA,EAAQ7hD,OAAS4hD,EACjBC,EAAQL,SAAS9P,KAAO,EACxBmQ,EAAQL,SAAS7P,OAAS,EAC1BkQ,EAAQN,UAAU7P,KAAOA,EACzBmQ,EAAQN,UAAU5P,OAASA,EAAS,EACpClT,EAAM51B,IAAIy4C,WAAWO,IAGjC,CACJ,EACJ,EACA7jB,EAAO2jB,aAAe,WAClB,QAAIjlD,KAAK+jD,kBAG8B,IAA5B/jD,KAAKujD,QAAQlF,WACbr+C,KAAKujD,QAAQlF,YAEpBr+C,KAAKokD,WAAW1rD,QACTsH,KAAKokD,WAAWp/B,KAAK,SAAS8jB,GACjC,OAAOA,EAAGuV,UACd,GAGR,EACA/c,EAAOyiB,SAAW,WACd,QAAmC,IAAxB/jD,KAAKujD,QAAQpF,OACpB,OAAOn+C,KAAKujD,QAAQpF,OAExB,IAAIE,EAAar+C,KAAKujD,QAAQlF,WAC9B,YAA0B,IAAfA,IAA6C,IAAfA,MAGrCr+C,KAAKokD,WAAW1rD,QACTsH,KAAKokD,WAAWp/B,KAAK,SAAS8jB,GACjC,OAAOA,EAAGqV,MACd,GAGR,EACA7c,EAAO6d,MAAQ,WACX,YAA6B,IAAlBn/C,KAAKoK,KAAK+B,MACRnM,KAAKoK,KAAK+B,IAEhBnM,KAAKokD,WAAW1rD,OAAS,CACpC,EACA4oC,EAAOyjB,iBAAmB,WACtB,YAA2C,IAAhC/kD,KAAKujD,QAAQ1D,eACb7/C,KAAKujD,QAAQ1D,gBAEpB7/C,KAAKokD,WAAW1rD,QACTsH,KAAKokD,WAAWp/B,KAAK,SAAS8jB,GACjC,OAAOA,EAAG8W,aACd,EAGR,EACAte,EAAO2iB,WAAa,WAChB,OAAIjkD,KAAKoK,KAAK23C,GACH/hD,KAAKsC,KAAKtC,KAAKoK,KAAK23C,IACpB/hD,KAAKoK,KAAK/C,KACVrH,KAAKsC,KAAKtC,KAAKoK,KAAK/C,MAEpB,QAEf,EACAi6B,EAAOh/B,KAAO,SAAc4yC,GACxB,GAAIl1C,KAAKujD,QAAQG,SAAU,OAAOxO,EAClC,GAA2B,KAAvBA,EAAKmQ,WAAW,GAAW,OAAOnQ,EACtC,GAAI,YAAY7oC,KAAK6oC,GAAO,OAAOA,EACnC,IAAIoQ,EAAStlD,KAAK4jD,cAAcp/C,IAAI0wC,GACpC,GAAIoQ,EAAQ,OAAOA,EACnB,IAAIj+C,EAAOrH,KAAKoK,KAAK23C,GAAKjE,GAAQ99C,KAAKoK,KAAK23C,IAAM,IACX,iBAA5B/hD,KAAKujD,QAAQlF,aACpBh3C,EAAOy2C,GAAQ0e,GAAUn1D,EAAMrH,KAAKujD,QAAQlF,cAEhD,IAAI/7C,EAAOsgD,GAASv7C,EAAM6tC,GAE1B,OADAl1C,KAAK4jD,cAAc/+C,IAAIqwC,EAAM5yC,GACtBA,CACX,EACAg/B,EAAO8iB,SAAW,WACd,IAAIriB,EAAQ/hC,KACZ,IAAKA,KAAKulD,aAEN,GADAvlD,KAAKulD,aAAe,GAChBvlD,KAAK64C,KACL74C,KAAK64C,KAAKG,KAAK,SAAS7W,GACpB,GAAIA,EAAM7+B,QAAU6+B,EAAM7+B,OAAOu3C,MAAM1uC,IAAK,CACxC,IAAIA,EAAMg2B,EAAM7+B,OAAOu3C,MAAM1uC,IACxB41B,EAAMwjB,aAAalsD,SAAS8S,IAC7B41B,EAAMwjB,aAAazgD,KAAKqH,EAEhC,CACJ,OACG,CACH,IAAIywC,EAAS,IAAI6f,GAAQz8D,KAAKwjD,YAAaxjD,KAAKoK,MAC5CwyC,EAAOzwC,KAAKnM,KAAKulD,aAAazgD,KAAK83C,EAAOzwC,IAClD,CAEJ,OAAOnM,KAAKulD,YAChB,EACAjkB,EAAO0jB,kBAAoB,WACvB,IAAIjjB,EAAQ/hC,KACRwlD,EAAU,CAAC,EACf,GAAIxlD,KAAK64C,KACL74C,KAAK64C,KAAKG,KAAK,SAAS7W,GACpB,GAAIA,EAAM7+B,OAAQ,CACd,IAAI+D,EAAO86B,EAAM7+B,OAAOu3C,MAAMxzC,KAC9B,GAAIA,IAASm+C,EAAQn+C,GAAO,CACxBm+C,EAAQn+C,IAAQ,EAChB,IAAI26C,EAAUjgB,EAAM0hB,aAAe1hB,EAAM0jB,UAAUp+C,GAAQ06B,EAAMsiB,MAAMtiB,EAAMz/B,KAAK+E,IAClF06B,EAAM51B,IAAIu5C,iBAAiB1D,EAAS7f,EAAM7+B,OAAOu3C,MAAMlF,IAC3D,CACJ,CACJ,QACG,GAAI31C,KAAK21C,IAAK,CACjB,IAAItuC,EAAOrH,KAAKoK,KAAK/C,KAAOrH,KAAKqkD,MAAMrkD,KAAKsC,KAAKtC,KAAKoK,KAAK/C,OAAS,cACpErH,KAAKmM,IAAIu5C,iBAAiBr+C,EAAMrH,KAAK21C,IACzC,CACJ,EACArU,EAAO8jB,WAAa,SAAoBjjB,GACpC,OAAIniC,KAAKujD,QAAQl8C,KACNrH,KAAKqkD,MAAMrkD,KAAKujD,QAAQl8C,MACxBrH,KAAKyjD,aACLzjD,KAAKylD,UAAUtjB,EAAM7+B,OAAOu3C,MAAMxzC,MAElCrH,KAAKqkD,MAAMrkD,KAAKsC,KAAK6/B,EAAM7+B,OAAOu3C,MAAMxzC,MAEvD,EACAi6B,EAAO0iB,SAAW,SAAkBtgD,GAChC,OAAIo7C,OACOA,OAAOz3C,KAAK3D,GAAKoL,SAAS,UAE1BjT,OAAO8pD,KAAKviC,SAASwiC,mBAAmBliD,IAEvD,EACA49B,EAAOmkB,UAAY,SAAmBnjD,GAClC,IAAIgjD,EAAStlD,KAAK2jD,iBAAiBn/C,IAAIlC,GACvC,GAAIgjD,EAAQ,OAAOA,EACnB,GAAIlF,GAAe,CACf,IAAIyF,EAAUzF,GAAc99C,GAAMwM,WAElC,OADA9O,KAAK2jD,iBAAiB9+C,IAAIvC,EAAMujD,GACzBA,CACX,CACI,MAAM,IAAIjlC,MAAM,+DAExB,EACA0gB,EAAO+iB,MAAQ,SAAe/hD,GAC1B,IAAIgjD,EAAStlD,KAAK6jD,aAAar/C,IAAIlC,GACnC,GAAIgjD,EAAQ,OAAOA,EACP,OAARnsC,KACA7W,EAAOA,EAAKhH,QAAQ,MAAO,MAE/B,IAAI4sB,EAAM49B,UAAUxjD,GAAMhH,QAAQ,QAASsqD,oBAE3C,OADA5lD,KAAK6jD,aAAah/C,IAAIvC,EAAM4lB,GACrBA,CACX,EACO20C,CACX,CA7UmC,GAgV/BC,GAA0B,SAASC,GAEnC,SAASC,EAAStiB,GACd,IAAI3Y,EAGJ,OAFAA,EAAQg7B,EAAOn6D,KAAK5C,KAAM06C,IAAa16C,MACjCtE,KAAO,UACNqmC,CACX,CACA,OAPApH,EAAUqiC,EAAUD,GAObC,CACX,CAT8B,CADjBjgB,IAWT9M,GAAU6sB,GACdA,GAAUxoD,QAAUwoD,GACpB,IAIIG,GAASC,GAAQC,GAAUC,GAJ3BC,GAAYnD,GAAQ3jB,QAAS+mB,GAAOpD,GAAQ1jB,GAC5C+mB,GAAgBnC,GAChBoC,GAAYvtB,GAGhB,SAASwtB,GAAY3lB,GACjB,OAAOA,EAAM3rC,IAAI,SAAS28B,GAGtB,OAFIA,EAAGgP,QAAOhP,EAAGgP,MAAQ2lB,GAAY30B,EAAGgP,eACjChP,EAAGxlC,OACHwlC,CACX,EACJ,CACA,SAAS40B,GAAYv7B,GAEjB,GADAA,EAAMk7B,KAAa,EACfl7B,EAAMykB,QAAQ9O,MACd,IAAI,IAA2E/T,EAAvEC,EAAYrI,EAAqCwG,EAAMykB,QAAQ9O,SAAiB/T,EAAQC,KAAavmB,MAEzGigD,GADS35B,EAAM17B,MAI3B,CACA,IAAIs1D,GAA4B,SAASC,GAErC,SAASC,IACL,OAAOD,EAAO73D,MAAM/F,KAAMgN,YAAchN,IAC5C,CAHA26B,EAAUkjC,EAAYD,GAItB,IAAIt8B,EAASu8B,EAAWn7D,UAwXxB,OAvXA4+B,EAAO/gB,OAAS,WACZ,IAAI,IAAI27B,EAAOlvC,UAAUtU,OAAQsuD,EAAW,IAAIvtD,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChF6K,EAAS7K,GAAQnvC,UAAUmvC,GAE/B,IAAI,IAAgEpY,EAA5DC,EAAYrI,EAAqCqrB,KAAoBjjB,EAAQC,KAAavmB,MAG9F,IAFA,IAEkE4zB,EAF9DgH,EAAQtU,EAAM17B,MAEVipC,EAAa3V,EADT37B,KAAKinD,UAAU5O,EAAOr4C,KAAKkD,SACqCmuC,EAASC,KAAc7zB,MAAM,CACrG,IAAI0kB,EAAQkP,EAAOhpC,MACnBrI,KAAK4mD,QAAQ9O,MAAMhzC,KAAKq9B,EAC5B,CAGJ,OADAniC,KAAKy7C,YACEz7C,IACX,EACAshC,EAAO2Z,UAAY,SAAmBC,GAElC,GADA0iB,EAAOl7D,UAAUu4C,UAAUr4C,KAAK5C,KAAMk7C,GAClCl7C,KAAK83C,MACL,IAAI,IAAkE/T,EAA9DC,EAAYrI,EAAqC37B,KAAK83C,SAAiB/T,EAAQC,KAAavmB,MACpFsmB,EAAM17B,MACZ4yC,UAAUC,EAG5B,EACA5Z,EAAO4lB,KAAO,SAAcrqC,GACxB,GAAK7c,KAAK4mD,QAAQ9O,MAAlB,CAGA,IAFA,IACI5B,EAAQoG,EADRxgB,EAAW97B,KAAKmnD,cAEdnnD,KAAKonD,QAAQtrB,GAAY97B,KAAK4mD,QAAQ9O,MAAMp/C,SAC9Cw9C,EAASl2C,KAAKonD,QAAQtrB,IAEN,KADhBwgB,EAAUz/B,EAAS7c,KAAK4mD,QAAQ9O,MAAM5B,GAASA,MAE/Cl2C,KAAKonD,QAAQtrB,IAAa,EAG9B,cADO97B,KAAKonD,QAAQtrB,GACbwgB,CAV+B,CAW1C,EACAhb,EAAOnD,MAAQ,SAAekpB,GAC1B,OAAOrnD,KAAK83C,MAAM3Z,MAAMkpB,EAC5B,EACA/lB,EAAO6lB,YAAc,WACZnnD,KAAKsnD,WAAUtnD,KAAKsnD,SAAW,GAC/BtnD,KAAKonD,UAASpnD,KAAKonD,QAAU,CAAC,GACnCpnD,KAAKsnD,UAAY,EACjB,IAAIxrB,EAAW97B,KAAKsnD,SAEpB,OADAtnD,KAAKonD,QAAQtrB,GAAY,EAClBA,CACX,EACAwF,EAAOia,kBAAoB,WACvB,MAAO,CACH/2C,IAAK,SAAa29B,EAAO3+B,GACrB,MAAa,YAATA,EACO2+B,EACCA,EAAM3+B,GAEE,SAATA,GAAmC,iBAATA,GAAqBA,EAAKogB,WAAW,QAC/D,WACH,IAAI,IAAIs4B,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5Ez2C,EAAKy2C,GAAQnvC,UAAUmvC,GAE3B,IAAIoL,EACJ,OAAQA,EAASplB,GAAO3+B,GAAMuC,MAAMwhD,EAAQ,GAAGh/C,OAAO7C,EAAKyG,IAAI,SAAS28B,GACpE,MAAkB,mBAAPA,EACA,SAASuP,EAAOnC,GACnB,OAAOpN,EAAGuP,EAAMmD,UAAWtF,EAC/B,EAEOpN,CAEf,IACJ,EACgB,UAATtlC,GAA6B,SAATA,EACpB,SAASgkD,GACZ,OAAOrlB,EAAM3+B,GAAM,SAAS60C,GACxB,IAAI,IAAI6D,EAAOlvC,UAAUtU,OAAQuc,EAAQ,IAAIxb,MAAMyiD,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAChGlnC,EAAMknC,EAAO,GAAKnvC,UAAUmvC,GAEhC,OAAOqL,EAAGzhD,WAAM,EAAQ,GAAGwC,OAAO,CAC9B8vC,EAAMmD,WACPvmC,GACP,EACJ,EACgB,SAATzR,EACA,WACH,OAAO2+B,EAAM0W,OAAO2C,SACxB,EACgB,UAATh4C,EACA2+B,EAAM2V,MAAM3rC,IAAI,SAAS28B,GAC5B,OAAOA,EAAG0S,SACd,GACgB,UAATh4C,GAA6B,SAATA,EACpB2+B,EAAM3+B,GAAMg4C,UAEZrZ,EAAM3+B,GAvCN2+B,EAAM3+B,EAyCrB,EACAqB,IAAK,SAAas9B,EAAO3+B,EAAM6E,GAC3B,OAAI85B,EAAM3+B,KAAU6E,IACpB85B,EAAM3+B,GAAQ6E,EACD,SAAT7E,GAA4B,WAATA,GAA8B,aAATA,GACxC2+B,EAAMsZ,cAHwB,CAMtC,EAER,EACAna,EAAOv5B,MAAQ,SAAeswC,GAC1B,MAAqB,iBAAVA,EAA2BA,GAClCA,EAAMuO,UAASvO,EAAQA,EAAMuO,SAC1B5mD,KAAK4mD,QAAQ9O,MAAM31C,QAAQk2C,GACtC,EACA/W,EAAOwZ,YAAc,SAAqB2M,EAAOtsC,GAC7C,IAOI+6B,EAPAwR,EAAa1nD,KAAK+H,MAAM0/C,GACxB3P,EAAQ93C,KAAKinD,UAAU9rC,EAAKnb,KAAK4mD,QAAQ9O,MAAM4P,IAAaC,UAChED,EAAa1nD,KAAK+H,MAAM0/C,GACxB,IAAI,IAA6D1jB,EAAzDC,EAAYrI,EAAqCmc,KAAiB/T,EAAQC,KAAavmB,MAAM,CACjG,IAAI0kB,EAAQ4B,EAAM17B,MAClBrI,KAAK4mD,QAAQ9O,MAAM9vC,OAAO0/C,EAAa,EAAG,EAAGvlB,EACjD,CAEA,IAAI,IAAIX,KAAMxhC,KAAKonD,QAEXM,GADJxR,EAASl2C,KAAKonD,QAAQ5lB,MAElBxhC,KAAKonD,QAAQ5lB,GAAM0U,EAAS4B,EAAMp/C,QAI1C,OADAsH,KAAKy7C,YACEz7C,IACX,EACAshC,EAAO0Z,aAAe,SAAsByM,EAAOtsC,GAC/C,IAQI+6B,EARAwR,EAAa1nD,KAAK+H,MAAM0/C,GACxB/rD,EAAsB,IAAfgsD,GAAmB,UAC1B5P,EAAQ93C,KAAKinD,UAAU9rC,EAAKnb,KAAK4mD,QAAQ9O,MAAM4P,GAAahsD,GAAMisD,UACtED,EAAa1nD,KAAK+H,MAAM0/C,GACxB,IAAI,IAA6D1jB,EAAzDC,EAAYrI,EAAqCmc,KAAiB/T,EAAQC,KAAavmB,MAAM,CACjG,IAAI0kB,EAAQ4B,EAAM17B,MAClBrI,KAAK4mD,QAAQ9O,MAAM9vC,OAAO0/C,EAAY,EAAGvlB,EAC7C,CAEA,IAAI,IAAIX,KAAMxhC,KAAKonD,QAEXM,IADJxR,EAASl2C,KAAKonD,QAAQ5lB,MAElBxhC,KAAKonD,QAAQ5lB,GAAM0U,EAAS4B,EAAMp/C,QAI1C,OADAsH,KAAKy7C,YACEz7C,IACX,EACAshC,EAAO2lB,UAAY,SAAmBnP,EAAO8P,GACzC,IAAI7lB,EAAQ/hC,KACZ,GAAqB,iBAAV83C,EACPA,EAAQ2lB,GAAYR,GAAQnlB,GAAOA,YAChC,QAAqB,IAAVA,EACdA,EAAQ,QACL,GAAIr+C,MAAMC,QAAQo+C,GAErB,IAAI,IAA6D/T,EAAzDC,EAAYrI,EADpBmc,EAAQA,EAAM70C,MAAM,MACsD8gC,EAAQC,KAAavmB,MAAM,CACjG,IAAIqrB,EAAK/E,EAAM17B,MACXygC,EAAGmF,QAAQnF,EAAGmF,OAAOjP,YAAY8J,EAAI,SAC7C,MACG,GAAmB,SAAfgP,EAAMp8C,MAAiC,aAAdsE,KAAKtE,KAErC,IAAI,IAA8D21C,EAA1DC,EAAa3V,EADrBmc,EAAQA,EAAMA,MAAM70C,MAAM,MACkDouC,EAASC,KAAc7zB,MAAM,CACrG,IAAIoqC,EAAMxW,EAAOhpC,MACbw/C,EAAI5Z,QAAQ4Z,EAAI5Z,OAAOjP,YAAY6oB,EAAK,SAChD,MACG,GAAI/P,EAAMp8C,KACbo8C,EAAQ,CACJA,QAED,GAAIA,EAAMt0C,KAAM,CACnB,QAA2B,IAAhBs0C,EAAMzvC,MACb,MAAM,IAAIuY,MAAM,0CACc,iBAAhBk3B,EAAMzvC,QACpByvC,EAAMzvC,MAAQjQ,OAAO0/C,EAAMzvC,QAE/ByvC,EAAQ,CACJ,IAAIylB,GAAczlB,GAE1B,MAAO,GAAIA,EAAM3tC,SACb2tC,EAAQ,CACJ,IAAIolB,GAAOplB,SAEZ,GAAIA,EAAMz5C,KACby5C,EAAQ,CACJ,IAAIqlB,GAASrlB,QAEd,KAAIA,EAAMz0B,KAKb,MAAM,IAAIzC,MAAM,sCAJhBk3B,EAAQ,CACJ,IAAI0lB,GAAU1lB,GAItB,CACA,IAAIgQ,EAAYhQ,EAAM3rC,IAAI,SAAS28B,GAW/B,OAVKA,EAAGw0B,KAAOO,EAAW9V,QAAQjf,IAClCA,EAAKA,EAAG8d,SACD3Y,QAAQnF,EAAGmF,OAAOjP,YAAY8J,GACjCA,EAAGu0B,KAAYK,GAAY50B,QACD,IAAnBA,EAAG8O,KAAKU,QACXsP,QAAwC,IAAvBA,EAAOhQ,KAAKU,SAC7BxP,EAAG8O,KAAKU,OAASsP,EAAOhQ,KAAKU,OAAOh9C,QAAQ,MAAO,KAG3DwtC,EAAGmF,OAASlM,EAAM6kB,QACX9d,CACX,GACA,OAAOgf,CACX,EACAxmB,EAAO9qB,QAAU,WACb,IAAI,IAAI0lC,EAAOlvC,UAAUtU,OAAQsuD,EAAW,IAAIvtD,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChF6K,EAAS7K,GAAQnvC,UAAUmvC,GAG/B,IAAI,IAAgEpY,EAA5DC,EAAYrI,EADpBqrB,EAAWA,EAASW,aACyD5jB,EAAQC,KAAavmB,MAAM,CAGpG,IAFA,IAEkE4zB,EAF9DgH,EAAQtU,EAAM17B,MACdyvC,EAAQ93C,KAAKinD,UAAU5O,EAAOr4C,KAAK24C,MAAO,WAAWgP,UACjDrW,EAAa3V,EAAqCmc,KAAkBzG,EAASC,KAAc7zB,MAAM,CACrG,IAAI0kB,EAAQkP,EAAOhpC,MACnBrI,KAAK4mD,QAAQ9O,MAAM/2B,QAAQohB,EAC/B,CACA,IAAI,IAAIX,KAAMxhC,KAAKonD,QACfpnD,KAAKonD,QAAQ5lB,GAAMxhC,KAAKonD,QAAQ5lB,GAAMsW,EAAMp/C,MAEpD,CAEA,OADAsH,KAAKy7C,YACEz7C,IACX,EACAshC,EAAOx8B,KAAO,SAAcuzC,GAGxB,OAFAA,EAAMpK,OAASjuC,KACfA,KAAK4mD,QAAQ9O,MAAMhzC,KAAKuzC,GACjBr4C,IACX,EACAshC,EAAO0mB,UAAY,WACf,IAAI,IAA0EjkB,EAAtEC,EAAYrI,EAAqC37B,KAAK4mD,QAAQ9O,SAAiB/T,EAAQC,KAAavmB,MAC5FsmB,EAAM17B,MACZ4lC,YAAS,EAInB,OAFAjuC,KAAK4mD,QAAQ9O,MAAQ,GACrB93C,KAAKy7C,YACEz7C,IACX,EACAshC,EAAOtC,YAAc,SAAqBqZ,GAItC,IAAInC,EACJ,IAAI,IAAI1U,KAJR6W,EAAQr4C,KAAK+H,MAAMswC,GACnBr4C,KAAK4mD,QAAQ9O,MAAMO,GAAOpK,YAAS,EACnCjuC,KAAK4mD,QAAQ9O,MAAM9vC,OAAOqwC,EAAO,GAEnBr4C,KAAKonD,SACflR,EAASl2C,KAAKonD,QAAQ5lB,KACR6W,IACVr4C,KAAKonD,QAAQ5lB,GAAM0U,EAAS,GAIpC,OADAl2C,KAAKy7C,YACEz7C,IACX,EACAshC,EAAO2mB,cAAgB,SAAuB3jD,EAAS8F,EAAMyS,GAWzD,OAVKA,IACDA,EAAWzS,EACXA,EAAO,CAAC,GAEZpK,KAAKq5C,UAAU,SAASd,GAChBnuC,EAAK+vB,QAAU/vB,EAAK+vB,MAAM9gC,SAASk/C,EAAK/0C,OACxC4G,EAAK89C,OAAS3P,EAAKlwC,MAAMhP,SAAS+Q,EAAK89C,QAC3C3P,EAAKlwC,MAAQkwC,EAAKlwC,MAAM/M,QAAQgJ,EAASuY,GAC7C,GACA7c,KAAKy7C,YACEz7C,IACX,EACAshC,EAAOtc,KAAO,SAAcqiC,GACxB,OAAOrnD,KAAK83C,MAAM9yB,KAAKqiC,EAC3B,EACA/lB,EAAO0X,KAAO,SAAcn8B,GACxB,OAAO7c,KAAKknD,KAAK,SAAS7O,EAAOvP,GAC7B,IAAIwT,EACJ,IACIA,EAAUz/B,EAASw7B,EAAOvP,EAC9B,CAAE,MAAOpC,GACL,MAAM2R,EAAMsC,WAAWjU,EAC3B,CAIA,OAHgB,IAAZ4V,GAAqBjE,EAAMW,OAC3BsD,EAAUjE,EAAMW,KAAKn8B,IAElBy/B,CACX,EACJ,EACAhb,EAAO6mB,YAAc,SAAqB9pD,EAAMwe,GAC5C,OAAKA,EAQDke,EAAY18B,EAAMqG,QACX1E,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,WAAfuP,EAAM38C,MAAqB2C,EAAKgO,KAAKgsC,EAAMh6C,MAC3C,OAAOwe,EAASw7B,EAAOvP,EAE/B,GAEG9oC,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,WAAfuP,EAAM38C,MAAqB28C,EAAMh6C,OAASA,EAC1C,OAAOwe,EAASw7B,EAAOvP,EAE/B,IAlBIjsB,EAAWxe,EACJ2B,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,WAAfuP,EAAM38C,KACN,OAAOmhB,EAASw7B,EAAOvP,EAE/B,GAcR,EACAxH,EAAO6X,aAAe,SAAsBt8B,GACxC,OAAO7c,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,YAAfuP,EAAM38C,KACN,OAAOmhB,EAASw7B,EAAOvP,EAE/B,EACJ,EACAxH,EAAO+X,UAAY,SAAmB71C,EAAMqZ,GACxC,OAAKA,EAQDke,EAAYv3B,EAAMkB,QACX1E,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,MAAmB8H,EAAK6I,KAAKgsC,EAAM70C,MACzC,OAAOqZ,EAASw7B,EAAOvP,EAE/B,GAEG9oC,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,MAAmB28C,EAAM70C,OAASA,EACxC,OAAOqZ,EAASw7B,EAAOvP,EAE/B,IAlBIjsB,EAAWrZ,EACJxD,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,KACN,OAAOmhB,EAASw7B,EAAOvP,EAE/B,GAcR,EACAxH,EAAO8mB,UAAY,SAAmBj+C,EAAU0S,GAC5C,OAAKA,EAQDke,EAAY5wB,EAAUzF,QACf1E,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,MAAmByO,EAASkC,KAAKgsC,EAAMluC,UAC7C,OAAO0S,EAASw7B,EAAOvP,EAE/B,GAEG9oC,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,MAAmB28C,EAAMluC,WAAaA,EAC5C,OAAO0S,EAASw7B,EAAOvP,EAE/B,IAlBIjsB,EAAW1S,EACJnK,KAAKg5C,KAAK,SAASX,EAAOvP,GAC7B,GAAmB,SAAfuP,EAAM38C,KACN,OAAOmhB,EAASw7B,EAAOvP,EAE/B,GAcR,EACA/O,EAAc8jC,EAAY,CACtB,CACI37D,IAAK,QACLsC,IAAK,WACD,GAAKxE,KAAK4mD,QAAQ9O,MAClB,OAAO93C,KAAK4mD,QAAQ9O,MAAM,EAC9B,GAEJ,CACI51C,IAAK,OACLsC,IAAK,WACD,GAAKxE,KAAK4mD,QAAQ9O,MAClB,OAAO93C,KAAK4mD,QAAQ9O,MAAM93C,KAAK4mD,QAAQ9O,MAAMp/C,OAAS,EAC1D,KAGDmlE,CACX,CA9XgC,CAlBnB9gB,IAiZb4gB,GAAYtV,cAAgB,SAASC,GACjC2U,GAAU3U,CACd,EACAqV,GAAYpV,aAAe,SAASD,GAChC4U,GAAS5U,CACb,EACAqV,GAAYnV,eAAiB,SAASF,GAClC6U,GAAW7U,CACf,EACAqV,GAAYlV,aAAe,SAASH,GAChC8U,GAAS9U,CACb,EACA,IAAIwV,GAAYH,GAChBA,GAAYrpD,QAAUqpD,GACtBA,GAAY5V,QAAU,SAAS5lB,GACR,WAAfA,EAAMzmC,KACN6E,OAAOk6B,eAAe0H,EAAOg7B,GAASz6D,WAChB,SAAfy/B,EAAMzmC,KACb6E,OAAOk6B,eAAe0H,EAAO+6B,GAAOx6D,WACd,SAAfy/B,EAAMzmC,KACb6E,OAAOk6B,eAAe0H,EAAOo7B,GAAc76D,WACrB,YAAfy/B,EAAMzmC,KACb6E,OAAOk6B,eAAe0H,EAAOq7B,GAAU96D,WACjB,SAAfy/B,EAAMzmC,MACb6E,OAAOk6B,eAAe0H,EAAOi7B,GAAO16D,WAExCy/B,EAAMm7B,KAAQ,EACVn7B,EAAM2V,OACN3V,EAAM2V,MAAM13C,QAAQ,SAASi4C,GACzBslB,GAAY5V,QAAQ1P,EACxB,EAER,EACA,IACI0lB,GAAcC,GACdC,GAA2B,SAASC,GAEpC,SAASC,EAAWzjB,GAChB,IAAI3Y,EAOJ,OANAA,EAAQm8B,EAAYt7D,KAAK5C,KAAMs6B,EAAS,CACpC5+B,KAAM,YACPg/C,KAAc16C,MACN83C,QACP/V,EAAM+V,MAAQ,IAEX/V,CACX,CAOA,OAjBApH,EAAUwjC,EAAYD,GAWTC,EAAWz7D,UACjBsmD,SAAW,SAAkB5+C,GAGhC,YAFa,IAATA,IAAiBA,EAAO,CAAC,GAClB,IAAI2zD,GAAa,IAAIC,GAAeh+D,KAAMoK,GACzCnB,WAChB,EACOk1D,CACX,CAnB+B,CAFbL,IAsBlBG,GAAWhV,mBAAqB,SAASX,GACrCyV,GAAezV,CACnB,EACA2V,GAAW/U,kBAAoB,SAASZ,GACpC0V,GAAc1V,CAClB,EACA,IAAI8V,GAAeH,GACnBA,GAAW3pD,QAAU2pD,GACrB,IAQII,GAA0B,WAC1B,SAASC,EAASj7C,EAAMjZ,GAIpB,QAHa,IAATA,IAAiBA,EAAO,CAAC,GAC7BpK,KAAKtE,KAAO,UACZsE,KAAKqjB,KAAOA,EACRjZ,EAAK2yC,MAAQ3yC,EAAK2yC,KAAKz5C,OAAQ,CAC/B,IAAI0X,EAAQ5Q,EAAK2yC,KAAKzB,QAAQlxC,GAC9BpK,KAAKg1C,KAAOh6B,EAAM+6B,MAAMf,KACxBh1C,KAAKi1C,OAASj6B,EAAM+6B,MAAMd,OAC1Bj1C,KAAKq1C,QAAUr6B,EAAMg7B,IAAIhB,KACzBh1C,KAAKs1C,UAAYt6B,EAAMg7B,IAAIf,MAC/B,CACA,IAAI,IAAI1pC,KAAOnB,EAAKpK,KAAKuL,GAAOnB,EAAKmB,EACzC,CAeA,OAda+yD,EAAS57D,UACfoM,SAAW,WACd,OAAI9O,KAAK+8C,KACE/8C,KAAK+8C,KAAKl3C,MAAM7F,KAAKqjB,KAAM,CAC9Btb,MAAO/H,KAAK+H,MACZxO,OAAQyG,KAAKzG,OACbsiD,KAAM77C,KAAK67C,OACZ19C,QAEH6B,KAAKzG,OACEyG,KAAKzG,OAAS,KAAOyG,KAAKqjB,KAE9BrjB,KAAKqjB,IAChB,EACOi7C,CACX,CA7B8B,GA8B1BC,GAAUF,GACdA,GAAU/pD,QAAU+pD,GACpB,IAAIG,GAAYD,GACZE,GAAyB,WACzB,SAASC,EAAQhV,EAAY9Q,EAAOxuC,GAChCpK,KAAK8J,UAAY4/C,EACjB1pD,KAAK2pD,SAAW,GAChB3pD,KAAK64C,KAAOD,EACZ54C,KAAKoK,KAAOA,EACZpK,KAAK21C,SAAM,EACX31C,KAAKmM,SAAM,CACf,CACA,IAAIm1B,EAASo9B,EAAQh8D,UA4BrB,OA3BA4+B,EAAOxyB,SAAW,WACd,OAAO9O,KAAK21C,GAChB,EACArU,EAAO17B,KAAO,SAAcyd,EAAMjZ,QACjB,IAATA,IAAiBA,EAAO,CAAC,GACxBA,EAAK7Q,QACFyG,KAAK4pD,YAAc5pD,KAAK4pD,WAAWC,gBACnCz/C,EAAK7Q,OAASyG,KAAK4pD,WAAWC,eAGtC,IAAIC,EAAW,IAAI0U,GAAUn7C,EAAMjZ,GAEnC,OADApK,KAAK2pD,SAAS7kD,KAAKglD,GACZA,CACX,EACAxoB,EAAOyoB,SAAW,WACd,OAAO/pD,KAAK2pD,SAAS39C,OAAO,SAAS88B,GACjC,MAAmB,YAAZA,EAAGptC,IACd,EACJ,EACAq+B,EAAc2kC,EAAS,CACnB,CACIx8D,IAAK,UACLsC,IAAK,WACD,OAAOxE,KAAK21C,GAChB,KAGD+oB,CACX,CAtC6B,GAuCzBjhE,GAASghE,GACbA,GAASnqD,QAAUmqD,GACnB,IAAIE,GAAe,IAAItZ,WAAW,GAC9BuZ,GAAe,IAAIvZ,WAAW,GAC9BwZ,GAAY,KAAKxZ,WAAW,GAC5ByZ,GAAQ,IAAIzZ,WAAW,GACvB0Z,GAAU,KAAK1Z,WAAW,GAC1B2Z,GAAQ,IAAI3Z,WAAW,GACvB4Z,GAAO,KAAK5Z,WAAW,GACvB6Z,GAAM,KAAI7Z,WAAW,GACrB8Z,GAAK,KAAK9Z,WAAW,GACrB+Z,GAAc,IAAI/Z,WAAW,GAC7Bga,GAAe,IAAIha,WAAW,GAC9Bia,GAAmB,IAAIja,WAAW,GAClCka,GAAoB,IAAIla,WAAW,GACnCma,GAAa,IAAIna,WAAW,GAC5Boa,GAAc,IAAIpa,WAAW,GAC7Bqa,GAAY,IAAIra,WAAW,GAC3Bsa,GAAW,IAAIta,WAAW,GAC1Bua,GAAQ,IAAIva,WAAW,GACvBwa,GAAK,IAAIxa,WAAW,GACpBya,GAAY,6BACZC,GAAc,wCACdC,GAAiB,gBACjBC,GAAgB,WAgPhBC,GAAcpC,GACdqC,GAAyB,SAASD,GAElC,SAASE,EAAQ1lB,GACb,IAAI3Y,EAGJ,OAFAA,EAAQm+B,EAAYt9D,KAAK5C,KAAM06C,IAAa16C,MACtCtE,KAAO,SACNqmC,CACX,CANApH,EAAUylC,EAASF,GAOnB,IAAI5+B,EAAS8+B,EAAQ19D,UAqBrB,OApBA4+B,EAAO/gB,OAAS,WACZ,IAAI,IAAI27B,EAAOlvC,UAAUtU,OAAQsuD,EAAW,IAAIvtD,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChF6K,EAAS7K,GAAQnvC,UAAUmvC,GAE/B,IAAIkkB,EAEJ,OADKrgE,KAAK4mD,QAAQ9O,QAAO93C,KAAK83C,MAAQ,KAC9BuoB,EAAgCH,EAAYx9D,UAAU6d,QAAQ3d,KAAKmD,MAAMs6D,EAA+B,GAAG93D,OAAO,CACtHvI,MACDgnD,GACP,EACA1lB,EAAO9qB,QAAU,WACb,IAAI,IAAI0lC,EAAOlvC,UAAUtU,OAAQsuD,EAAW,IAAIvtD,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChF6K,EAAS7K,GAAQnvC,UAAUmvC,GAE/B,IAAImkB,EAEJ,OADKtgE,KAAK4mD,QAAQ9O,QAAO93C,KAAK83C,MAAQ,KAC9BwoB,EAAiCJ,EAAYx9D,UAAU8T,SAAS5T,KAAKmD,MAAMu6D,EAAgC,GAAG/3D,OAAO,CACzHvI,MACDgnD,GACP,EACOoZ,CACX,CA9B6B,CA8B3BF,IACElH,GAASmH,GACbA,GAAS7rD,QAAU6rD,GACnBD,GAAY1X,eAAe2X,IAC3B,IACII,GAAcC,GADdC,GAAc3C,GAEd4C,GAAuB,SAASD,GAEhC,SAASE,EAAMjmB,GACX,IAAI3Y,EAIJ,OAHAA,EAAQ0+B,EAAY79D,KAAK5C,KAAM06C,IAAa16C,MACtCtE,KAAO,OACRqmC,EAAM+V,QAAO/V,EAAM+V,MAAQ,IACzB/V,CACX,CAPApH,EAAUgmC,EAAOF,GAQjB,IAAIn/B,EAASq/B,EAAMj+D,UA+BnB,OA9BA4+B,EAAO2lB,UAAY,SAAmB5O,EAAOuP,EAAQlsD,GACjD,IAAIo8C,EAAQ2oB,EAAY/9D,UAAUukD,UAAUrkD,KAAK5C,KAAMq4C,GACvD,GAAIuP,EACA,GAAa,YAATlsD,EACIsE,KAAK83C,MAAMp/C,OAAS,EACpBkvD,EAAOhQ,KAAKU,OAASt4C,KAAK83C,MAAM,GAAGF,KAAKU,cAEjCsP,EAAOhQ,KAAKU,YAEpB,GAAIt4C,KAAK24C,QAAUiP,EACtB,IAAI,IAA6D7jB,EAAzDC,EAAYrI,EAAqCmc,KAAiB/T,EAAQC,KAAavmB,MAC/EsmB,EAAM17B,MACZuvC,KAAKU,OAASsP,EAAOhQ,KAAKU,OAI5C,OAAOR,CACX,EACAxW,EAAOtC,YAAc,SAAqBqZ,EAAO8T,GAC7C,IAAIjW,EAASl2C,KAAK+H,MAAMswC,GAIxB,OAHK8T,GAAqB,IAAXjW,GAAgBl2C,KAAK83C,MAAMp/C,OAAS,IAC/CsH,KAAK83C,MAAM,GAAGF,KAAKU,OAASt4C,KAAK83C,MAAM5B,GAAQ0B,KAAKU,QAEjDmoB,EAAY/9D,UAAUs8B,YAAYp8B,KAAK5C,KAAMq4C,EACxD,EACA/W,EAAO0nB,SAAW,SAAkB5+C,GAGhC,YAFa,IAATA,IAAiBA,EAAO,CAAC,GAClB,IAAIm2D,GAAa,IAAIC,GAAexgE,KAAMoK,GACzCnB,WAChB,EACO03D,CACX,CAzC2B,CAyCzBF,IACFC,GAAOzX,mBAAqB,SAASX,GACjCiY,GAAejY,CACnB,EACAoY,GAAOxX,kBAAoB,SAASZ,GAChCkY,GAAclY,CAClB,EACA,IAAIzP,GAAO6nB,GACXA,GAAOpsD,QAAUosD,GACjBD,GAAYhY,aAAaiY,IACzB,IAAIE,GAAS,CACTtU,MAAO,SAAe9T,GAClB,OAAOooB,GAAOvoE,MAAMmgD,EAAQ,CACxB,MACD,EACP,EACA+T,MAAO,SAAe/T,GAMlB,OAAOooB,GAAOvoE,MAAMmgD,EALP,CACT,IACA,KACA,MAGR,EACAngD,MAAO,SAAemgD,EAAQgU,EAAYtpD,GAQtC,IAPA,IAOkE6gC,EAP9D0oB,EAAQ,GACRvnD,EAAU,GACV7M,GAAQ,EACRq0D,EAAO,EACPC,GAAU,EACVC,EAAY,GACZhpD,GAAS,EACLogC,EAAYrI,EAAqC6c,KAAkBzU,EAAQC,KAAavmB,MAAM,CAClG,IAAIovC,EAAS9oB,EAAM17B,MACfzE,EACAA,GAAS,EACS,OAAXipD,EACPjpD,GAAS,EACF+oD,EACHE,IAAWD,IACXD,GAAU,GAEI,MAAXE,GAA6B,MAAXA,GACzBF,GAAU,EACVC,EAAYC,GACM,MAAXA,EACPH,GAAQ,EACU,MAAXG,EACHH,EAAO,IAAGA,GAAQ,GACN,IAATA,GACHF,EAAWnzD,SAASwzD,KAASx0D,GAAQ,GAEzCA,GACgB,KAAZ6M,GAAgBunD,EAAM3nD,KAAKI,EAAQlG,QACvCkG,EAAU,GACV7M,GAAQ,GAER6M,GAAW2nD,CAEnB,CAEA,OADI3pD,GAAoB,KAAZgC,IAAgBunD,EAAM3nD,KAAKI,EAAQlG,QACxCytD,CACX,GAEAoU,GAASD,GACbA,GAAOtsD,QAAUssD,GACjB,IAAIE,GAAchD,GACdiD,GAASF,GACTG,GAAuB,SAASF,GAEhC,SAASG,EAAMvmB,GACX,IAAI3Y,EAIJ,OAHAA,EAAQ++B,EAAYl+D,KAAK5C,KAAM06C,IAAa16C,MACtCtE,KAAO,OACRqmC,EAAM+V,QAAO/V,EAAM+V,MAAQ,IACzB/V,CACX,CAcA,OArBApH,EAAUsmC,EAAOH,GAQjB/mC,EAAcknC,EAAO,CACjB,CACI/+D,IAAK,YACLsC,IAAK,WACD,OAAOu8D,GAAOzU,MAAMtsD,KAAKmK,SAC7B,EACAtF,IAAK,SAAaqlB,GACd,IAAIzd,EAAQzM,KAAKmK,SAAWnK,KAAKmK,SAASsC,MAAM,QAAU,KACtD0gD,EAAO1gD,EAAQA,EAAM,GAAK,IAAMzM,KAAKk4C,IAAI,UAAW,cACxDl4C,KAAKmK,SAAW+f,EAAO/hB,KAAKglD,EAChC,KAGD8T,CACX,CAvB2B,CAuBzBH,IACEhrD,GAAOkrD,GACXA,GAAO1sD,QAAU0sD,GACjBF,GAAYvY,aAAayY,IACzB,IAAIE,GAAgB9F,GAEhB+F,GAAYlxB,GACZmxB,GAAWpI,GACXqI,GAASxoB,GACTyoB,GAASxrD,GACTyrD,GAAwB,CACxB5T,OAAO,EACPpB,OAAO,GASPiV,GAAyB,WACzB,SAASC,EAAQ7kB,GACb58C,KAAK66C,MAAQ+B,EACb58C,KAAK64C,KAAO,IAAIwoB,GAChBrhE,KAAKkF,QAAUlF,KAAK64C,KACpB74C,KAAK8tD,OAAS,GACd9tD,KAAKq3C,WAAY,EACjBr3C,KAAK+tD,kBACL/tD,KAAK64C,KAAKv1C,OAAS,CACfu3C,MAAO+B,EACP7G,MAAO,CACHd,OAAQ,EACRD,KAAM,EACNqM,OAAQ,GAGpB,CACA,IAAI/f,EAASmgC,EAAQ/+D,UAufrB,OAtfA4+B,EAAOmW,OAAS,SAAgBuW,GAC5B,IAMItyD,EACAqnB,EACAne,EARAu9B,EAAQ,IAAIi/B,GAChBj/B,EAAM9jC,KAAO2vD,EAAM,GAAG/qD,MAAM,GACT,KAAfk/B,EAAM9jC,MACN2B,KAAKiuD,cAAc9rB,EAAO6rB,GAE9BhuD,KAAKiB,KAAKkhC,EAAO6rB,EAAM,IAQvB,IAJA,IAAI9qD,GAAO,EACP+yB,GAAO,EACPyhB,EAAS,GACTwW,EAAW,IACRluD,KAAKmuD,UAAUC,aAAY,CAU9B,GAPa,OADb1yD,GADAsyD,EAAQhuD,KAAKmuD,UAAUE,aACV,KACgB,MAAT3yD,EAChBwyD,EAASppD,KAAc,MAATpJ,EAAe,IAAM,KACnB,MAATA,GAAgBwyD,EAASx1D,OAAS,EACzCw1D,EAASppD,KAAK,KACPpJ,IAASwyD,EAASA,EAASx1D,OAAS,IAC3Cw1D,EAASt7C,MAEW,IAApBs7C,EAASx1D,OAAc,CACvB,GAAa,MAATgD,EAAc,CACdymC,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYN,EAAM,IAC1C7rB,EAAM7+B,OAAO0yC,IAAIqL,SACjBrhD,KAAKq3C,WAAY,EACjB,KACJ,CAAO,GAAa,MAAT37C,EAAc,CACrBu6B,GAAO,EACP,KACJ,CAAO,GAAa,MAATv6B,EAAc,CACrB,GAAIg8C,EAAOh/C,OAAS,EAAG,CAGnB,IADAqqB,EAAO20B,EADP9yC,EAAQ8yC,EAAOh/C,OAAS,GAElBqqB,GAAoB,UAAZA,EAAK,IACfA,EAAO20B,IAAS9yC,GAEhBme,IACAof,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYvrC,EAAK,IAAMA,EAAK,IACpDof,EAAM7+B,OAAO0yC,IAAIqL,SAEzB,CACArhD,KAAKg2C,IAAIgY,GACT,KACJ,CACItW,EAAO5yC,KAAKkpD,EAEpB,MACItW,EAAO5yC,KAAKkpD,GAEhB,GAAIhuD,KAAKmuD,UAAUC,YAAa,CAC5BlrD,GAAO,EACP,KACJ,CACJ,CACAi/B,EAAMyV,KAAKI,QAAUh4C,KAAKuuD,yBAAyB7W,GAC/CA,EAAOh/C,QACPypC,EAAMyV,KAAKC,UAAY73C,KAAKwuD,2BAA2B9W,GACvD13C,KAAKk4C,IAAI/V,EAAO,SAAUuV,GACtBx0C,IACA8qD,EAAQtW,EAAOA,EAAOh/C,OAAS,GAC/BypC,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYN,EAAM,IAAMA,EAAM,IACtD7rB,EAAM7+B,OAAO0yC,IAAIqL,SACjBrhD,KAAK8tD,OAAS3rB,EAAMyV,KAAKI,QACzB7V,EAAMyV,KAAKI,QAAU,MAGzB7V,EAAMyV,KAAKC,UAAY,GACvB1V,EAAMuV,OAAS,IAEfzhB,IACAkM,EAAM2V,MAAQ,GACd93C,KAAKkF,QAAUi9B,EAEvB,EACAb,EAAOmtB,qBAAuB,SAA8BxpD,GACxD,IAAI+xC,EAAQh3C,KAAKg3C,MAAM/xC,GACvB,IAAc,IAAV+xC,EAAJ,CAGA,IAFA,IACIgX,EADAU,EAAU,EAENrpD,EAAI2xC,EAAQ,EAAG3xC,GAAK,IAEP,WADjB2oD,EAAQ/oD,EAAOI,IACL,IAEU,KADhBqpD,GAAW,IAHYrpD,KAO/B,MAAMrF,KAAK66C,MAAMh1C,MAAM,mBAAiC,SAAbmoD,EAAM,GAAgBA,EAAM,GAAK,EAAIA,EAAM,GAV3D,CAW/B,EACA1sB,EAAO0V,MAAQ,SAAe/xC,GAG1B,IAFA,IACI+oD,EAAOtyD,EAAMqnB,EAC2DghB,EAFxEmqB,EAAW,EAEPlqB,EAAYrI,EAAqC12B,EAAOqC,aAAqBy8B,EAAQC,KAAavmB,MAAM,CAC5G,IAAIkxC,EAAc5qB,EAAM17B,MAAOygC,EAAK6lB,EAAY,GAShD,GANa,OADbjzD,GADAsyD,EAD8DW,EAAY,IAE7D,MAETT,GAAY,GAEH,MAATxyD,IACAwyD,GAAY,GAEC,IAAbA,GAA2B,MAATxyD,EAAc,CAChC,GAAKqnB,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GAClC,SAEA,OAAO+lB,CACX,CALI9oC,KAAK4uD,YAAYZ,EAMzB,CACAjrC,EAAOirC,CACX,CACA,OAAO,CACX,EACA1sB,EAAO2O,QAAU,SAAiB+d,GAC9B,IAAI7rB,EAAQ,IAAIg/B,GAChBnhE,KAAKiB,KAAKkhC,EAAO6rB,EAAM,IACvB7rB,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYN,EAAM,IAAMA,EAAM,IACtD7rB,EAAM7+B,OAAO0yC,IAAIqL,SACjB,IAAIh+B,EAAO2qC,EAAM,GAAG/qD,MAAM,GAAI,GAC9B,GAAI,QAAQoJ,KAAKgX,GACb8e,EAAM9e,KAAO,GACb8e,EAAMyV,KAAK5c,KAAO3X,EAClB8e,EAAMyV,KAAK3c,MAAQ,OAChB,CACH,IAAIxuB,EAAQ4W,EAAK5W,MAAM,wBACvB01B,EAAM9e,KAAO5W,EAAM,GACnB01B,EAAMyV,KAAK5c,KAAOvuB,EAAM,GACxB01B,EAAMyV,KAAK3c,MAAQxuB,EAAM,EAC7B,CACJ,EACA60B,EAAOysB,gBAAkB,WACrB/tD,KAAKmuD,UAvkBE,SAAoBvR,EAAQz7C,QACvB,IAAZA,IAAoBA,EAAU,CAAC,GACnC,IAEIoE,EAAMJ,EAAM0pD,EAAOjhC,EAAShqB,EAC5BkrD,EAASC,EAAWhsC,EAAMuc,EAAI0vB,EAH9BrZ,EAAMiH,EAAOjH,IAAIja,UACjBywB,EAAShrD,EAAQ8tD,aAGjBv2D,EAASi9C,EAAIj9C,OACb0sC,EAAM,EACN8F,EAAS,GACTgkB,EAAW,GAIf,SAASC,EAASC,GACd,MAAMxS,EAAO/2C,MAAM,YAAcupD,EAAMhqB,EAC3C,CAyNA,MAAO,CACHlX,KAJJ,SAAc8/B,GACVkB,EAASpqD,KAAKkpD,EAClB,EAGII,UA1NJ,WACI,OAA2B,IAApBc,EAASx2D,QAAgB0sC,GAAO1sC,CAC3C,EAyNI21D,UAxNJ,SAAmBjkD,GACf,GAAI8kD,EAASx2D,OAAQ,OAAOw2D,EAASt8C,MACrC,KAAIwyB,GAAO1sC,GAAX,CACA,IAAI22D,IAAiBjlD,GAAOA,EAAKilD,eAEjC,OADA9pD,EAAOowC,EAAI0P,WAAWjgB,IAElB,KAAK25B,GACL,KAAKC,GACL,KAAKE,GACL,KAAKC,GACL,KAAKF,GAEG95D,EAAOigC,EACP,GACIjgC,GAAQ,EACRI,EAAOowC,EAAI0P,WAAWlgD,SAClBI,IAASy5D,IAASz5D,IAASw5D,IAAWx5D,IAAS25D,IAAO35D,IAAS45D,IAAM55D,IAAS05D,IACtFjQ,EAAe,CACX,QACArZ,EAAI1yC,MAAMmiC,EAAKjgC,IAEnBigC,EAAMjgC,EAAO,EACb,MAER,KAAKi6D,GACL,KAAKC,GACL,KAAKG,GACL,KAAKC,GACL,KAAKG,GACL,KAAKF,GACL,KAAKH,GAEG,IAAIjQ,EAAcl3D,OAAOm3D,aAAahqD,GACtCypD,EAAe,CACXM,EACAA,EACAlqB,GAEJ,MAER,KAAKk6B,GAIG,GAFAv8C,EAAOmoB,EAAOxyC,OAASwyC,EAAOt4B,MAAM,GAAK,GACzC0sB,EAAKqW,EAAI0P,WAAWjgB,EAAM,GACb,QAATriB,GAAkBuc,IAAOq/B,IAAgBr/B,IAAOs/B,IAAgBt/B,IAAO0/B,IAAS1/B,IAAOy/B,IAAWz/B,IAAO4/B,IAAO5/B,IAAO2/B,IAAQ3/B,IAAO6/B,GAAI,CAC1Ih6D,EAAOigC,EACP,EAAG,CAGC,GAFA0pB,GAAU,GAEI,KADd3pD,EAAOwwC,EAAIxzC,QAAQ,IAAKgD,EAAO,IACd,CACb,GAAIgnD,GAAUkD,EAAgB,CAC1BlqD,EAAOigC,EACP,KACJ,CACI+pB,EAAS,UAEjB,CAEA,IADAJ,EAAY5pD,EACNwwC,EAAI0P,WAAW0J,EAAY,KAAO8P,IACpC9P,GAAa,EACbD,GAAWA,CAEnB,OAAQA,GACRE,EAAe,CACX,WACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,CACV,MACIA,EAAOwwC,EAAIxzC,QAAQ,IAAKijC,EAAM,GAC9BxX,EAAU+nB,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,IAClB,IAAVA,GAAe66D,GAAe3zD,KAAKuhB,GACnCohC,EAAe,CACX,IACA,IACA5pB,IAGJ4pB,EAAe,CACX,WACAphC,EACAwX,EACAjgC,GAEJigC,EAAMjgC,GAGd,MAER,KAAKw5D,GACL,KAAKC,GAEG/P,EAAQtpD,IAASo5D,GAAe,IAAM,IACtCx5D,EAAOigC,EACP,EAAG,CAGC,GAFA0pB,GAAU,GAEI,KADd3pD,EAAOwwC,EAAIxzC,QAAQ0sD,EAAO1pD,EAAO,IAChB,CACb,GAAIgnD,GAAUkD,EAAgB,CAC1BlqD,EAAOigC,EAAM,EACb,KACJ,CACI+pB,EAAS,SAEjB,CAEA,IADAJ,EAAY5pD,EACNwwC,EAAI0P,WAAW0J,EAAY,KAAO8P,IACpC9P,GAAa,EACbD,GAAWA,CAEnB,OAAQA,GACRE,EAAe,CACX,SACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,EACN,MAER,KAAK06D,GAEGC,GAAU5nD,UAAYktB,EAAM,EAC5B06B,GAAUzzD,KAAKspC,GAEXxwC,EADwB,IAAxB26D,GAAU5nD,UACHy9B,EAAIj9C,OAAS,EAEbonE,GAAU5nD,UAAY,EAEjC82C,EAAe,CACX,UACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,EACN,MAER,KAAK05D,GAIG,IAFA15D,EAAOigC,EACPxhC,GAAS,EACH+xC,EAAI0P,WAAWlgD,EAAO,KAAO05D,IAC/B15D,GAAQ,EACRvB,GAAUA,EAGd,GADA2B,EAAOowC,EAAI0P,WAAWlgD,EAAO,GACzBvB,GAAU2B,IAASu5D,IAASv5D,IAASy5D,IAASz5D,IAASw5D,IAAWx5D,IAAS25D,IAAO35D,IAAS45D,IAAM55D,IAAS05D,KAC1G95D,GAAQ,EACJ86D,GAAc5zD,KAAKspC,EAAIhQ,OAAOxgC,KAAQ,CACtC,KAAM86D,GAAc5zD,KAAKspC,EAAIhQ,OAAOxgC,EAAO,KACvCA,GAAQ,EAERwwC,EAAI0P,WAAWlgD,EAAO,KAAO65D,KAC7B75D,GAAQ,EAEhB,CAEJ6pD,EAAe,CACX,OACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,EACN,MAER,QAEYI,IAASu5D,IAASnpB,EAAI0P,WAAWjgB,EAAM,KAAOu6B,IAEjC,KADbx6D,EAAOwwC,EAAIxzC,QAAQ,KAAMijC,EAAM,GAAK,KAE5B+mB,GAAUkD,EACVlqD,EAAOwwC,EAAIj9C,OAEXy2D,EAAS,YAGjBH,EAAe,CACX,UACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJigC,EAAMjgC,IAEN46D,GAAY7nD,UAAYktB,EAAM,EAC9B26B,GAAY1zD,KAAKspC,GAEbxwC,EAD0B,IAA1B46D,GAAY7nD,UACLy9B,EAAIj9C,OAAS,EAEbqnE,GAAY7nD,UAAY,EAEnC82C,EAAe,CACX,OACArZ,EAAI1yC,MAAMmiC,EAAKjgC,EAAO,GACtBigC,EACAjgC,GAEJ+lC,EAAOpmC,KAAKkqD,GACZ5pB,EAAMjgC,GAMtB,OADAigC,IACO4pB,CA9MkB,CA+M7B,EAQIlpC,SAlOJ,WACI,OAAOsf,CACX,EAkOJ,CAyVyBs8B,CAAY1hE,KAAK66C,MACtC,EACAvZ,EAAOiX,KAAO,SAActzC,EAAQwqD,GAChC,IAAIttB,EAAQ,IAAI++B,GAChBlhE,KAAKiB,KAAKkhC,EAAOl9B,EAAO,GAAG,IAC3B,IAqBI+oD,EArBA9qD,EAAO+B,EAAOA,EAAOvM,OAAS,GAOlC,IANgB,MAAZwK,EAAK,KACLlD,KAAKq3C,WAAY,EACjBpyC,EAAO2N,OAEXuvB,EAAM7+B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYprD,EAAK,IAAMA,EAAK,IA3K5D,SAA8B+B,GAC1B,IAAI,IAAI6jC,EAAK7jC,EAAOvM,OAAS,EAAGowC,GAAM,EAAGA,IAAK,CAC1C,IAAIklB,EAAQ/oD,EAAO6jC,GACf1D,EAAM4oB,EAAM,IAAMA,EAAM,GAC5B,GAAI5oB,EAAK,OAAOA,CACpB,CACJ,CAqKkEu8B,CAAqB18D,IAC/Ek9B,EAAM7+B,OAAO0yC,IAAIqL,SACM,SAAjBp8C,EAAO,GAAG,IACU,IAAlBA,EAAOvM,QAAcsH,KAAK2vD,YAAY1qD,GAC1Ck9B,EAAMyV,KAAKU,QAAUrzC,EAAOL,QAAQ,GAIxC,IAFAu9B,EAAM7+B,OAAOyyC,MAAQ/1C,KAAKsuD,YAAYrpD,EAAO,GAAG,IAChDk9B,EAAM3+B,KAAO,GACPyB,EAAOvM,QAAO,CAChB,IAAIgD,EAAOuJ,EAAO,GAAG,GACrB,GAAa,MAATvJ,GAAyB,UAATA,GAA6B,YAATA,EACpC,MAEJymC,EAAM3+B,MAAQyB,EAAOL,QAAQ,EACjC,CAGA,IAFAu9B,EAAMyV,KAAKI,QAAU,GAEf/yC,EAAOvM,QAAO,CAEhB,GAAiB,OADjBs1D,EAAQ/oD,EAAOL,SACL,GAAY,CAClBu9B,EAAMyV,KAAKI,SAAWgW,EAAM,GAC5B,KACJ,CACqB,SAAbA,EAAM,IAAiB,KAAK3hD,KAAK2hD,EAAM,KACvChuD,KAAK2vD,YAAY,CACb3B,IAGR7rB,EAAMyV,KAAKI,SAAWgW,EAAM,EAEpC,CACsB,MAAlB7rB,EAAM3+B,KAAK,IAAgC,MAAlB2+B,EAAM3+B,KAAK,KACpC2+B,EAAMyV,KAAKU,QAAUnW,EAAM3+B,KAAK,GAChC2+B,EAAM3+B,KAAO2+B,EAAM3+B,KAAKP,MAAM,IAIlC,IAFA,IACIkC,EADAyqD,EAAc,GAEZ3qD,EAAOvM,SAEI,WADbyM,EAAOF,EAAO,GAAG,KACgB,YAATE,IACxByqD,EAAY9qD,KAAKG,EAAOL,SAE5B5E,KAAK6vD,wBAAwB5qD,GAC7B,IAAI,IAAI6jC,EAAK7jC,EAAOvM,OAAS,EAAGowC,GAAM,EAAGA,IAAK,CAE1C,GAA+B,gBAD/BklB,EAAQ/oD,EAAO6jC,IACL,GAAG17B,cAAgC,CACzC+0B,EAAMsW,WAAY,EAClB,IAAID,EAASx4C,KAAK8vD,WAAW7qD,EAAQ6jC,GAEtB,iBADf0P,EAASx4C,KAAK+vD,cAAc9qD,GAAUuzC,KACRrW,EAAMyV,KAAKa,UAAYD,GACrD,KACJ,CAAO,GAA+B,cAA3BwV,EAAM,GAAG5gD,cAA+B,CAG/C,IAFA,IAAI2M,EAAQ9U,EAAOhC,MAAM,GACrBS,EAAM,GACF2B,EAAIyjC,EAAIzjC,EAAI,EAAGA,IAAI,CACvB,IAAI2qD,EAAQj2C,EAAM1U,GAAG,GACrB,GAAgC,IAA5B3B,EAAI1E,OAAOmD,QAAQ,MAAwB,UAAV6tD,EACjC,MAEJtsD,EAAMqW,EAAMnH,MAAM,GAAKlP,CAC3B,CACgC,IAA5BA,EAAI1E,OAAOmD,QAAQ,OACnBggC,EAAMsW,WAAY,EAClBtW,EAAMyV,KAAKa,UAAY/0C,EACvBuB,EAAS8U,EAEjB,CACA,GAAiB,UAAbi0C,EAAM,IAA+B,YAAbA,EAAM,GAC9B,KAER,CACA,IAAIiC,EAAUhrD,EAAO+f,KAAK,SAAS8jB,GAC/B,MAAiB,UAAVA,EAAG,IAA4B,YAAVA,EAAG,EACnC,GACImnB,IACA9tB,EAAMyV,KAAKI,SAAW4X,EAAYzjD,IAAI,SAAS28B,GAC3C,OAAOA,EAAG,EACd,GAAG3gC,KAAK,IACRynD,EAAc,IAElB5vD,KAAKk4C,IAAI/V,EAAO,QAASytB,EAAYrnD,OAAOtD,GAASwqD,GACjDttB,EAAM95B,MAAMhP,SAAS,OAASo2D,GAC9BzvD,KAAKyuD,qBAAqBxpD,EAElC,EACAq8B,EAAOstB,YAAc,SAAqBZ,GACtC,MAAMhuD,KAAK66C,MAAMh1C,MAAM,eAAgB,CACnCw7C,OAAQ2M,EAAM,IACf,CACC3M,OAAQ2M,EAAM,GAAKA,EAAM,GAAGt1D,QAEpC,EACA4oC,EAAO4uB,UAAY,SAAmBlC,GAClC,IAAI7rB,EAAQ,IAAIm/B,GAChBthE,KAAKiB,KAAKkhC,EAAO6rB,EAAM,IACvB7rB,EAAMh4B,SAAW,GACjBg4B,EAAMyV,KAAKI,QAAU,GACrBh4C,KAAKkF,QAAUi9B,CACnB,EACAb,EAAO0U,IAAM,SAAagY,GAClBhuD,KAAKkF,QAAQ4yC,OAAS93C,KAAKkF,QAAQ4yC,MAAMp/C,SACzCsH,KAAKkF,QAAQ0yC,KAAKP,UAAYr3C,KAAKq3C,WAEvCr3C,KAAKq3C,WAAY,EACjBr3C,KAAKkF,QAAQ0yC,KAAKlB,OAAS12C,KAAKkF,QAAQ0yC,KAAKlB,OAAS,IAAM12C,KAAK8tD,OACjE9tD,KAAK8tD,OAAS,GACV9tD,KAAKkF,QAAQ+oC,QACbjuC,KAAKkF,QAAQ5B,OAAO0yC,IAAMh2C,KAAKsuD,YAAYN,EAAM,IACjDhuD,KAAKkF,QAAQ5B,OAAO0yC,IAAIqL,SACxBrhD,KAAKkF,QAAUlF,KAAKkF,QAAQ+oC,QAE5BjuC,KAAKmwD,gBAAgBnC,EAE7B,EACA1sB,EAAO8uB,QAAU,WACTpwD,KAAKkF,QAAQ+oC,QAAQjuC,KAAKqwD,gBAC1BrwD,KAAKkF,QAAQ4yC,OAAS93C,KAAKkF,QAAQ4yC,MAAMp/C,SACzCsH,KAAKkF,QAAQ0yC,KAAKP,UAAYr3C,KAAKq3C,WAEvCr3C,KAAKkF,QAAQ0yC,KAAKlB,OAAS12C,KAAKkF,QAAQ0yC,KAAKlB,OAAS,IAAM12C,KAAK8tD,OACjE9tD,KAAK64C,KAAKv1C,OAAO0yC,IAAMh2C,KAAKsuD,YAAYtuD,KAAKmuD,UAAUroC,WAC3D,EACAwb,EAAOgvB,cAAgB,SAAuBtC,GAE1C,GADAhuD,KAAK8tD,QAAUE,EAAM,GACjBhuD,KAAKkF,QAAQ4yC,MAAO,CACpB,IAAI/0B,EAAO/iB,KAAKkF,QAAQ4yC,MAAM93C,KAAKkF,QAAQ4yC,MAAMp/C,OAAS,GACtDqqB,GAAsB,SAAdA,EAAKrnB,OAAoBqnB,EAAK60B,KAAKgC,eAC3C72B,EAAK60B,KAAKgC,aAAe55C,KAAK8tD,OAC9B9tD,KAAK8tD,OAAS,GAEtB,CACJ,EAEAxsB,EAAOgtB,YAAc,SAAqBjN,GACtC,IAAIjc,EAAMplC,KAAK66C,MAAMyG,WAAWD,GAChC,MAAO,CACHpM,OAAQ7P,EAAImc,IACZvM,KAAM5P,EAAI4P,KACVqM,OAAQA,EAEhB,EACA/f,EAAOrgC,KAAO,SAAckhC,EAAOkf,GAC/BrhD,KAAKkF,QAAQJ,KAAKq9B,GAClBA,EAAM7+B,OAAS,CACXu3C,MAAO76C,KAAK66C,MACZ9E,MAAO/1C,KAAKsuD,YAAYjN,IAE5Blf,EAAMyV,KAAKU,OAASt4C,KAAK8tD,OACzB9tD,KAAK8tD,OAAS,GACK,YAAf3rB,EAAMzmC,OAAoBsE,KAAKq3C,WAAY,EACnD,EACA/V,EAAOrsB,MAAQ,SAAe8gC,GAS1B,IARA,IAAIC,GAAM,EACNt6C,EAAO,KACPs7C,GAAQ,EACRuZ,EAAU,KACVrC,EAAW,GACXuB,EAAiB1Z,EAAM,GAAGnyB,WAAW,MACrC3e,EAAS,GACT+oD,EAAQjY,EACNiY,GAAM,CAGR,GAFAtyD,EAAOsyD,EAAM,GACb/oD,EAAOH,KAAKkpD,GACC,MAATtyD,GAAyB,MAATA,EACX60D,IAASA,EAAUvC,GACxBE,EAASppD,KAAc,MAATpJ,EAAe,IAAM,UAChC,GAAI+zD,GAAkBzY,GAAkB,MAATt7C,EAC7B60D,IAASA,EAAUvC,GACxBE,EAASppD,KAAK,UACX,GAAwB,IAApBopD,EAASx1D,OAAc,CAC9B,GAAa,MAATgD,EAAc,CACd,GAAIs7C,EAEA,YADAh3C,KAAKu4C,KAAKtzC,EAAQwqD,GAGlB,KAER,CAAO,GAAa,MAAT/zD,EAEP,YADAsE,KAAK8V,KAAK7Q,GAEP,GAAa,MAATvJ,EAAc,CACrBsE,KAAKmuD,UAAUjgC,KAAKjpB,EAAO2N,OAC3BojC,GAAM,EACN,KACJ,CAAoB,MAATt6C,IACPs7C,GAAQ,EAEhB,MAAWt7C,IAASwyD,EAASA,EAASx1D,OAAS,KAC3Cw1D,EAASt7C,MACe,IAApBs7C,EAASx1D,SAAc63D,EAAU,OAEzCvC,EAAQhuD,KAAKmuD,UAAUE,WAC3B,CAGA,GAFIruD,KAAKmuD,UAAUC,cAAapY,GAAM,GAClCkY,EAASx1D,OAAS,GAAGsH,KAAKwwD,gBAAgBD,GAC1Cva,GAAOgB,EAAO,CACd,IAAKyY,EACD,KAAMxqD,EAAOvM,SAEK,WADds1D,EAAQ/oD,EAAOA,EAAOvM,OAAS,GAAG,KACC,YAAVs1D,IACzBhuD,KAAKmuD,UAAUjgC,KAAKjpB,EAAO2N,OAGnC5S,KAAKu4C,KAAKtzC,EAAQwqD,EACtB,MACIzvD,KAAK2vD,YAAY1qD,EAEzB,EACAq8B,EAAOt4B,MAAQ,WAEX,IADA,IAAIglD,GACGhuD,KAAKmuD,UAAUC,aAElB,QADAJ,EAAQhuD,KAAKmuD,UAAUE,aACV,IACT,IAAK,QACDruD,KAAK8tD,QAAUE,EAAM,GACrB,MACJ,IAAK,IACDhuD,KAAKswD,cAActC,GACnB,MACJ,IAAK,IACDhuD,KAAKg2C,IAAIgY,GACT,MACJ,IAAK,UACDhuD,KAAKiwC,QAAQ+d,GACb,MACJ,IAAK,UACDhuD,KAAKy3C,OAAOuW,GACZ,MACJ,IAAK,IACDhuD,KAAKkwD,UAAUlC,GACf,MACJ,QACIhuD,KAAKiV,MAAM+4C,GAIvBhuD,KAAKowD,SACT,EACA9uB,EAAOuuB,wBAA0B,WAAoC,EACrEvuB,EAAO4W,IAAM,SAAa/V,EAAO3+B,EAAMyB,EAAQwqD,GAM3C,IALA,IAAIzB,EAAOtyD,EAIPyJ,EAAM4d,EAHNrqB,EAASuM,EAAOvM,OAChB2P,EAAQ,GACRooD,GAAQ,EAEJ3nB,EAAK,EAAGA,EAAKpwC,EAAQowC,GAAM,EAGlB,WADbptC,GADAsyD,EAAQ/oD,EAAO6jC,IACF,KACWA,IAAOpwC,EAAS,GAAM+2D,EAE1B,YAAT/zD,GACPqnB,EAAO9d,EAAO6jC,EAAK,GAAK7jC,EAAO6jC,EAAK,GAAG,GAAK,QAC5C3jC,EAAOF,EAAO6jC,EAAK,GAAK7jC,EAAO6jC,EAAK,GAAG,GAAK,QACvCy4B,GAAsBx+C,IAAUw+C,GAAsBp8D,IAC/B,MAApBkD,EAAMpF,OAAO,GAMjBwtD,GAAQ,EAHJpoD,GAAS2lD,EAAM,IAMvB3lD,GAAS2lD,EAAM,GAdfyC,GAAQ,EAiBhB,IAAKA,EAAO,CACR,IAAIvY,EAAMjzC,EAAO2U,OAAO,SAAS82C,EAAK5nB,GAClC,OAAO4nB,EAAM5nB,EAAG,EACpB,EAAG,IACH3G,EAAMyV,KAAKp0C,GAAQ,CACf00C,IAAKA,EACL7vC,MAAOA,EAEf,CACA85B,EAAM3+B,GAAQ6E,CAClB,EACAi5B,EAAOxrB,KAAO,SAAc7Q,GACxBA,EAAO2N,MACP,IAAIuvB,EAAQ,IAAIm/B,GAChBthE,KAAKiB,KAAKkhC,EAAOl9B,EAAO,GAAG,IAC3Bk9B,EAAMyV,KAAKI,QAAUh4C,KAAKuuD,yBAAyBtpD,GACnDjF,KAAKk4C,IAAI/V,EAAO,WAAYl9B,GAC5BjF,KAAKkF,QAAUi9B,CACnB,EACAb,EAAOitB,yBAA2B,SAAkCtpD,GAGhE,IAFA,IAAI0rD,EACA7C,EAAS,GACP7oD,EAAOvM,SAEa,WADtBi4D,EAAgB1rD,EAAOA,EAAOvM,OAAS,GAAG,KACS,YAAlBi4D,IACjC7C,EAAS7oD,EAAO2N,MAAM,GAAKk7C,EAE/B,OAAOA,CACX,EAEAxsB,EAAOktB,2BAA6B,SAAoCvpD,GAGpE,IAFA,IAAIE,EACA2oD,EAAS,GACP7oD,EAAOvM,SAEI,WADbyM,EAAOF,EAAO,GAAG,KACgB,YAATE,IACxB2oD,GAAU7oD,EAAOL,QAAQ,GAE7B,OAAOkpD,CACX,EACAxsB,EAAOyuB,cAAgB,SAAuB9qD,GAG1C,IAFA,IACI6oD,EAAS,GACP7oD,EAAOvM,QAEa,UADNuM,EAAOA,EAAOvM,OAAS,GAAG,IAE1Co1D,EAAS7oD,EAAO2N,MAAM,GAAKk7C,EAE/B,OAAOA,CACX,EACAxsB,EAAOwuB,WAAa,SAAoB7qD,EAAQoC,GAE5C,IADA,IAAIi1C,EAAU,GACNxT,EAAKzhC,EAAMyhC,EAAK7jC,EAAOvM,OAAQowC,IACnCwT,GAAWr3C,EAAO6jC,GAAI,GAG1B,OADA7jC,EAAO+C,OAAOX,EAAMpC,EAAOvM,OAAS2O,GAC7Bi1C,CACX,EACAhb,EAAO+uB,cAAgB,WACnB,IAAIjrB,EAAMplC,KAAKkF,QAAQ5B,OAAOyyC,MAC9B,MAAM/1C,KAAK66C,MAAMh1C,MAAM,iBAAkBu/B,EAAI4P,KAAM5P,EAAI6P,OAC3D,EACA3T,EAAOkvB,gBAAkB,SAAyBD,GAC9C,MAAMvwD,KAAK66C,MAAMh1C,MAAM,mBAAoB,CACvCw7C,OAAQkP,EAAQ,IACjB,CACClP,OAAQkP,EAAQ,GAAK,GAE7B,EACAjvB,EAAO6uB,gBAAkB,SAAyBnC,GAC9C,MAAMhuD,KAAK66C,MAAMh1C,MAAM,eAAgB,CACnCw7C,OAAQ2M,EAAM,IACf,CACC3M,OAAQ2M,EAAM,GAAK,GAE3B,EACA1sB,EAAOquB,YAAc,SAAqB1qD,GACtC,MAAMjF,KAAK66C,MAAMh1C,MAAM,eAAgB,CACnCw7C,OAAQp8C,EAAO,GAAG,IACnB,CACCo8C,OAAQp8C,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAGvM,QAE5C,EACA4oC,EAAO2sB,cAAgB,SAAuB9rB,EAAO6rB,GACjD,MAAMhuD,KAAK66C,MAAMh1C,MAAM,uBAAwB,CAC3Cw7C,OAAQ2M,EAAM,IACf,CACC3M,OAAQ2M,EAAM,GAAKA,EAAM,GAAGt1D,QAEpC,EACO+oE,CACX,CAzgB6B,GA2gBzBG,GAAc9D,GACd+D,GAFSL,GAGTM,GAAUjnB,GACd,SAASknB,GAAQpsB,EAAKvrC,GAClB,IAAIwyC,EAAS,IAAIklB,GAAQnsB,EAAKvrC,GAC1B4mD,EAAU,IAAI6Q,GAASjlB,GAC3B,IACIoU,EAAQhoD,OACZ,CAAE,MAAO09B,GAYL,MAAMA,CACV,CACA,OAAOsqB,EAAQnY,IACnB,CACA,IAAImpB,GAAUD,GACdA,GAAQztD,QAAUytD,GAClBH,GAAYvZ,cAAc0Z,IAC1B,IAAIxrB,GAAU2jB,GAAQ3jB,QAASC,GAAK0jB,GAAQ1jB,GACxCyrB,GAAiBrF,GACjBsF,GAAc1H,GACd2H,GAAcrE,GACdsE,GAAahE,GAEbiE,GAAW5kE,GACX6kE,GAAUN,GACVO,GAAS1pB,GACT2pB,GAAqB,CACrB/qB,OAAQ,SACRxH,QAAS,UACTsI,KAAM,cACNv6C,SAAU,WACV66C,KAAM,OACN/iC,KAAM,QAEN2sD,GAAe,CACf/W,QAAQ,EACRmG,YAAY,EACZljB,SAAS,EACTmjB,aAAa,EACb3U,aAAa,EACb4U,iBAAiB,EACjB7pB,UAAU,EACV8pB,cAAc,EACdC,MAAM,EACNC,UAAU,EACVrI,eAAe,EACfsI,SAAS,EACTjG,MAAM,EACNkG,UAAU,EACVlF,MAAM,EACNmF,UAAU,GAEVqQ,GAAe,CACfzQ,MAAM,EACNpI,eAAe,EACfsI,SAAS,GAGb,SAASwQ,GAAUrhE,GACf,MAAsE,iBAA/C,IAARA,EAAsB,YAAcg6B,EAASh6B,KAA0C,mBAAbA,EAAI6c,IACjG,CACA,SAASykD,GAAUzgC,GACf,IAAIjgC,GAAM,EACNxG,EAAO8mE,GAAmBrgC,EAAMzmC,MAMpC,MALmB,SAAfymC,EAAMzmC,KACNwG,EAAMigC,EAAM3+B,KAAK4J,cACK,WAAf+0B,EAAMzmC,OACbwG,EAAMigC,EAAM9jC,KAAK+O,eAEjBlL,GAAOigC,EAAM5hB,OACN,CACH7kB,EACAA,EAAO,IAAMwG,EAfV,EAiBHxG,EAAO,OACPA,EAAO,QAAUwG,GAEdA,EACA,CACHxG,EACAA,EAAO,IAAMwG,EACbxG,EAAO,OACPA,EAAO,QAAUwG,GAEdigC,EAAM5hB,OACN,CACH7kB,EA7BG,EA+BHA,EAAO,QAGJ,CACHA,EACAA,EAAO,OAGnB,CACA,SAASmnE,GAAQ1gC,GAiBb,MAAO,CACHuwB,WAAY,EACZ1rD,OAjBe,aAAfm7B,EAAMzmC,KACG,CACL,WA5CG,EA8CH,gBAEkB,SAAfymC,EAAMzmC,KACJ,CACL,OAlDG,EAoDH,YAGKknE,GAAUzgC,GAKnBrG,SAAU,EACVihB,KAAM5a,EACNwwB,aAAc,EACdC,SAAU,GAElB,CACA,SAASkQ,GAAW3gC,GAKhB,OAJAA,EAAMoU,KAAW,EACbpU,EAAM2V,OAAO3V,EAAM2V,MAAM13C,QAAQ,SAAS0oC,GAC1C,OAAOg6B,GAAWh6B,EACtB,GACO3G,CACX,CACA,IAAI4gC,GAAY,CAAC,EACbC,GAA6B,WAC7B,SAASC,EAAYvZ,EAAY/T,EAAKvrC,GAClC,IAGIwuC,EAHA7W,EAAQ/hC,KAIZ,GAHAA,KAAKizD,aAAc,EACnBjzD,KAAK8nD,WAAY,EAEkD,iBAA/C,IAARnS,EAAsB,YAAcra,EAASqa,KAA8B,OAARA,GAA8B,SAAbA,EAAIj6C,MAAgC,aAAbi6C,EAAIj6C,KAEpH,GAAIq/B,EAAY4a,EAAKstB,IAAgBloC,EAAY4a,EAAK0sB,IACzDzpB,EAAQkqB,GAAWntB,EAAIkD,MACnBlD,EAAIxpC,WACoB,IAAb/B,EAAK+B,MAAqB/B,EAAK+B,IAAM,CAAC,GAC5C/B,EAAK+B,IAAIgyC,SAAQ/zC,EAAK+B,IAAIgyC,QAAS,GACxC/zC,EAAK+B,IAAI4W,KAAO4yB,EAAIxpC,SAErB,CACH,IAAI6kD,EAAUsR,GACVl4D,EAAK8oD,SAAQlC,EAAU5mD,EAAK8oD,OAAOlqD,OACnCoB,EAAK+oD,SAAQnC,EAAU5mD,EAAK+oD,QAC5BnC,EAAQhoD,QAAOgoD,EAAUA,EAAQhoD,OACrC,IACI4vC,EAAQoY,EAAQrb,EAAKvrC,EACzB,CAAE,MAAOvE,GACL7F,KAAK8nD,WAAY,EACjB9nD,KAAK6F,MAAQA,CACjB,CACI+yC,IAAUA,EAAMpC,KAChB2rB,GAAYpa,QAAQnP,EAE5B,MAtBIA,EAAQkqB,GAAWntB,GAuBvB31C,KAAKvC,OAAS,IAAI4kE,GAAS3Y,EAAY9Q,EAAOxuC,GAC9CpK,KAAKozD,QAAU94B,EAAS,CAAC,EAAGyoC,GAAW,CACnC1P,QAAS0P,GACTtlE,OAAQuC,KAAKvC,SAEjBuC,KAAKikB,QAAUjkB,KAAK8J,UAAUma,QAAQ9X,IAAI,SAASgpC,GAC/C,MAA6E,iBAApD,IAAbA,EAA2B,YAAc7Z,EAAS6Z,KAA2BA,EAASgd,QACvF73B,EAAS,CAAC,EAAG6a,EAAUA,EAASgd,QAAQpwB,EAAMtkC,SAE9C03C,CAEf,EACJ,CACA,IAAI7T,EAAS2hC,EAAYvgE,UAqfzB,OApfA4+B,EAAOjgB,MAAQ,WACX,OAAIrhB,KAAK6F,MAAclE,QAAQE,OAAO7B,KAAK6F,OACvC7F,KAAK8nD,UAAkBnmD,QAAQC,QAAQ5B,KAAKvC,SAC3CuC,KAAKszD,aACNtzD,KAAKszD,WAAatzD,KAAKuzD,YAEpBvzD,KAAKszD,WAChB,EACAhyB,EAAOljB,MAAQ,SAAgBo1C,GAC3B,OAAOxzD,KAAKqhB,QAAQjD,MAAMo1C,EAC9B,EACAlyB,EAAOmyB,QAAU,SAAkBC,GAC/B,OAAO1zD,KAAKqhB,QAAQlD,KAAKu1C,EAAWA,EACxC,EACApyB,EAAOqyB,cAAgB,WACnB,MAAM,IAAI/yC,MAAM,uDACpB,EACA0gB,EAAOsyB,YAAc,SAAqB/tD,EAAOs8B,GAC7C,IAAIgT,EAAWn1C,KAAKvC,OAAOmsD,WAC3B,IACQznB,GAAOA,EAAMwY,WAAW90C,GAC5B7F,KAAK6F,MAAQA,EACM,mBAAfA,EAAMxH,MAA8BwH,EAAMtM,OAGnC47C,EAAS0e,gBAFhBhuD,EAAMtM,OAAS47C,EAAS0U,cACxBhkD,EAAM0vC,aAad,CAAE,MAAOv/B,GACDlQ,SAAWA,QAAQD,OAAOC,QAAQD,MAAMmQ,EAChD,CACA,OAAOnQ,CACX,EACAy7B,EAAOwyB,gBAAkB,WACrB,IAAI/xB,EAAQ/hC,KACZA,KAAK+zD,UAAY,CAAC,EAQlB,IAPA,IAOwEhwB,EAPpE5oB,EAAM,SAASg6B,EAAUz5C,EAAM8rD,GAC1BzlB,EAAMgyB,UAAUr4D,KAAOqmC,EAAMgyB,UAAUr4D,GAAQ,IACpDqmC,EAAMgyB,UAAUr4D,GAAMoJ,KAAK,CACvBqwC,EACAqS,GAER,EACQxjB,EAAYrI,EAAqC37B,KAAKikB,WAAmB8f,EAAQC,KAAavmB,MAAM,CACxG,IAAI03B,EAAWpR,EAAM17B,MACrB,GAA6E,iBAApD,IAAb8sC,EAA2B,YAAc7Z,EAAS6Z,IAC1D,IAAI,IAAIz3C,KAASy3C,EAAS,CACtB,IAAKstB,GAAa/kE,IAAU,SAAS2O,KAAK3O,GACtC,MAAM,IAAIkjB,MAAM,iBAAmBljB,EAAQ,OAASy3C,EAAS0U,cAAgB,4BAA8B7pD,KAAK8J,UAAU7R,QAAU,UAExI,IAAKyqE,GAAahlE,GACd,GAAkC,WAA9B49B,EAAS6Z,EAASz3C,IAClB,IAAI,IAAIsO,KAAUmpC,EAASz3C,GAEnByd,EAAIg6B,EADO,MAAXnpC,EACctO,EAEAA,EAAQ,IAAMsO,EAAOoB,cAFd+nC,EAASz3C,GAAOsO,QAKX,mBAApBmpC,EAASz3C,IACvByd,EAAIg6B,EAAUz3C,EAAOy3C,EAASz3C,GAG1C,CAER,CACAsC,KAAKg0D,YAAczzD,OAAOC,KAAKR,KAAK+zD,WAAWr7D,OAAS,CAC5D,EACA4oC,EAAOiyB,SAAW,WACd,IAAIxxB,EAAQ/hC,KACZ,OAAOs5B,EAAoB,WACvB,IAAIwP,EAAIqM,EAAUzzC,EAASmE,EAAO+yC,EAAOp2C,EAAOyxD,EAAUvtB,EAAIvE,EAAO+xB,EAAOlwB,EAAWD,EACvF,OAAO9H,EAAcj8B,KAAM,SAASm0D,GAChC,OAAOA,EAAO93B,OACV,KAAK,EACD0F,EAAMxoC,OAAS,EACfuvC,EAAK,EACLqrB,EAAO93B,MAAQ,EACnB,KAAK,EACD,KAAMyM,EAAK/G,EAAM9d,QAAQvrB,QAAS,MAAO,CACrC,EACA,GAIJ,GAFAy8C,EAAWpT,EAAM9d,QAAQ6kB,IAEpB65B,GADLjhE,EAAUqgC,EAAMqyB,UAAUjf,IACD,MAAO,CAC5B,EACA,GAEJgf,EAAO93B,MAAQ,EACnB,KAAK,EAOD,OANA83B,EAAO53B,KAAKz3B,KAAK,CACb,EACA,EACA,CACA,IAEG,CACH,EACApD,GAER,KAAK,EAED,OADAyyD,EAAO73B,OACA,CACH,EACA,GAER,KAAK,EAED,MADAz2B,EAAQsuD,EAAO73B,OACTyF,EAAM6xB,YAAY/tD,GAC5B,KAAK,EAED,OADAijC,IACO,CACH,EACA,GAER,KAAK,EAED,GADA/G,EAAM+xB,mBACD/xB,EAAMiyB,YAAa,MAAO,CAC3B,EACA,IAEJpb,EAAQ7W,EAAMtkC,OAAOo7C,KACrBsb,EAAO93B,MAAQ,EACnB,KAAK,EACD,GAAMuc,EAAMrC,IAAU,MAAO,CACzB,EACA,IAEJqC,EAAMrC,KAAW,EACjB/zC,EAAQ,CACJqgE,GAAQjqB,IAEZub,EAAO93B,MAAQ,EACnB,KAAK,EACD,KAAM75B,EAAM9J,OAAS,GAAI,MAAO,CAC5B,EACA,IAGJ,IAAKiqE,GADL1O,EAAWlyB,EAAMsyB,UAAU7xD,IACD,MAAO,CAC7B,EACA,IAEJ2xD,EAAO93B,MAAQ,EACnB,KAAK,EAOD,OANA83B,EAAO53B,KAAKz3B,KAAK,CACb,EACA,GACA,CACA,KAEG,CACH,EACAmvD,GAER,KAAK,GAED,OADAE,EAAO73B,OACA,CACH,EACA,IAER,KAAK,GAGD,MAFAoK,EAAKytB,EAAO73B,OACZ6F,EAAQ3/B,EAAMA,EAAM9J,OAAS,GAAGqkD,KAC1Bhb,EAAM6xB,YAAYltB,EAAIvE,GAChC,KAAK,GACD,MAAO,CACH,EACA,GAER,KAAK,GACD,MAAO,CACH,EACA,GAER,KAAK,GACD,IAAKJ,EAAMgyB,UAAU7B,SAAU,MAAO,CAClC,EACA,IAEJgC,EAAQ,WACJ,IAAIvF,EAAaxZ,EAAUmf,EAASC,EAAO7tB,EAC3C,OAAOzK,EAAcj8B,KAAM,SAASm0D,GAChC,OAAOA,EAAO93B,OACV,KAAK,EACDsyB,EAAc5qB,EAAM17B,MAAO8sC,EAAWwZ,EAAY,GAAI2F,EAAU3F,EAAY,GAC5E5sB,EAAMtkC,OAAOmsD,WAAazU,EAC1Bgf,EAAO93B,MAAQ,EACnB,KAAK,EAOD,OANA83B,EAAO53B,KAAKz3B,KAAK,CACb,EACA,EACA,CACA,IAEiB,aAAf8zC,EAAMl9C,KAA6B,CACrC,EACA,IAEJ64D,EAAQ3b,EAAMd,MAAM3rC,IAAI,SAASqoD,GAC7B,OAAOF,EAAQE,EAASzyB,EAAMqxB,QAClC,GACO,CACH,EACAzxD,QAAQ+uD,IAAI6D,KAEpB,KAAK,EAED,OADAJ,EAAO73B,OACA,CACH,EACA,GAER,KAAK,EACD,MAAO,CACH,EACAg4B,EAAQ1b,EAAO7W,EAAMqxB,UAE7B,KAAK,EACDe,EAAO73B,OACP63B,EAAO93B,MAAQ,EACnB,KAAK,EACD,MAAO,CACH,EACA,GAER,KAAK,EAED,MADAqK,EAAKytB,EAAO73B,OACNyF,EAAM6xB,YAAYltB,GAC5B,KAAK,EACD,MAAO,CACH,GAGhB,EACJ,EACA1C,EAAYrI,EAAqCoG,EAAMgyB,UAAU7B,UACjEiC,EAAO93B,MAAQ,GACnB,KAAK,GACD,OAAO0H,EAAQC,KAAavmB,KAAa,CACrC,EACA,IAEG,CACH,EACAmf,EAAWs3B,MAEnB,KAAK,GACDC,EAAO73B,OACP63B,EAAO93B,MAAQ,GACnB,KAAK,GACD,MAAO,CACH,EACA,IAER,KAAK,GAED,OADA0F,EAAM+lB,WAAY,EACX,CACH,EACA/lB,EAAM94B,aAGtB,EACJ,EAjMOqwB,EAkMX,EACAgI,EAAO8yB,UAAY,SAAmBjf,GAClC,IAAIpT,EAAQ/hC,KACZA,KAAKvC,OAAOmsD,WAAazU,EACzB,IACI,GAA6E,iBAApD,IAAbA,EAA2B,YAAc7Z,EAAS6Z,KAA2BA,EAAS8c,KAAM,CACpG,GAA8B,aAA1BjyD,KAAKvC,OAAOo7C,KAAKn9C,KAAqB,CACtC,IAAI64D,EAAQv0D,KAAKvC,OAAOo7C,KAAKf,MAAM3rC,IAAI,SAASysC,GAC5C,OAAOzD,EAAS8c,KAAKrZ,EAAO7W,EAAMqxB,QACtC,GACA,OAAIuP,GAAUpO,EAAM,IACT5yD,QAAQ+uD,IAAI6D,GAEhBA,CACX,CACA,OAAOpf,EAAS8c,KAAKjyD,KAAKvC,OAAOo7C,KAAM74C,KAAKozD,QAChD,CAAO,GAAwB,mBAAbje,EACd,OAAOA,EAASn1C,KAAKvC,OAAOo7C,KAAM74C,KAAKvC,OAE/C,CAAE,MAAOoI,GACL,MAAM7F,KAAK4zD,YAAY/tD,EAC3B,CACJ,EACAy7B,EAAOr4B,UAAY,WACf,GAAIjJ,KAAK6F,MAAO,MAAM7F,KAAK6F,MAC3B,GAAI7F,KAAKizD,YAAa,OAAOjzD,KAAKvC,OAClCuC,KAAKizD,aAAc,EACnBjzD,KAAKy0D,OACL,IAAIrqD,EAAOpK,KAAKvC,OAAO2M,KACnB1G,EAAMw+D,GACN93D,EAAK8oD,SAAQxvD,EAAM0G,EAAK8oD,OAAOjqD,WAC/BmB,EAAKsqD,cAAahxD,EAAM0G,EAAKsqD,aAC7BhxD,EAAIuF,YAAWvF,EAAMA,EAAIuF,WAC7B,IACIpF,EADM,IAAIo+D,GAAev+D,EAAK1D,KAAKvC,OAAOo7C,KAAM74C,KAAKvC,OAAO2M,MACjDo6C,WAGf,OAFAxkD,KAAKvC,OAAOk4C,IAAM9xC,EAAK,GACvB7D,KAAKvC,OAAO0O,IAAMtI,EAAK,GAChB7D,KAAKvC,MAChB,EACA6jC,EAAOmzB,KAAO,WACV,GAAIz0D,KAAK6F,MAAO,MAAM7F,KAAK6F,MAC3B,GAAI7F,KAAK8nD,UAAW,OAAO9nD,KAAKvC,OAEhC,GADAuC,KAAK8nD,WAAY,EACb9nD,KAAKszD,WACL,MAAMtzD,KAAK2zD,gBAEf,IAAI,IAAoE5vB,EAAhEC,EAAYrI,EAAqC37B,KAAKikB,WAAmB8f,EAAQC,KAAavmB,MAAM,CACxG,IAAI03B,EAAWpR,EAAM17B,MAErB,GAAIs6D,GADU3iE,KAAKo0D,UAAUjf,IAEzB,MAAMn1C,KAAK2zD,eAEnB,CAEA,GADA3zD,KAAK8zD,kBACD9zD,KAAKg0D,YAAa,CAElB,IADA,IAAIpb,EAAQ54C,KAAKvC,OAAOo7C,MACjBD,EAAMrC,KACTqC,EAAMrC,KAAW,EACjBv2C,KAAK20D,SAAS/b,GAElB,GAAI54C,KAAK+zD,UAAU7B,SACf,GAAmB,aAAftZ,EAAMl9C,KACN,IAAI,IAAoE21C,EAAhEC,EAAa3V,EAAqCid,EAAMd,SAAkBzG,EAASC,KAAc7zB,MAAM,CAC3G,IAAI+2C,EAAUnjB,EAAOhpC,MACrBrI,KAAK40D,UAAU50D,KAAK+zD,UAAU7B,SAAUsC,EAC5C,MAEAx0D,KAAK40D,UAAU50D,KAAK+zD,UAAU7B,SAAUtZ,EAGpD,CACA,OAAO54C,KAAKvC,MAChB,EACA6jC,EAAOnjB,KAAO,SAAc02C,EAAarB,GAMrC,OAAOxzD,KAAKqhB,QAAQlD,KAAK02C,EAAarB,EAC1C,EACAlyB,EAAOxyB,SAAW,WACd,OAAO9O,KAAK21C,GAChB,EACArU,EAAOszB,UAAY,SAAmBhC,EAAUzwB,GAC5C,IAAI,IAAgE4B,EAA5DC,EAAYrI,EAAqCi3B,KAAoB7uB,EAAQC,KAAavmB,MAAM,CACpG,IAAIkxC,EAAc5qB,EAAM17B,MAAO8sC,EAAWwZ,EAAY,GAAI2F,EAAU3F,EAAY,GAChF3uD,KAAKvC,OAAOmsD,WAAazU,EACzB,IAAIzzC,OAAU,EACd,IACIA,EAAU4yD,EAAQnyB,EAAOniC,KAAKozD,QAClC,CAAE,MAAO1sB,GACL,MAAM1mC,KAAK4zD,YAAYltB,EAAIvE,EAAMykB,QACrC,CACA,GAAmB,SAAfzkB,EAAMzmC,MAAkC,aAAfymC,EAAMzmC,OAAwBymC,EAAM8L,OAC7D,OAAO,EAEX,GAAI00B,GAAUjhE,GACV,MAAM1B,KAAK2zD,eAEnB,CACJ,EACAryB,EAAO+yB,UAAY,SAAmB7xD,GAClC,IAAIsyD,EAAStyD,EAAMA,EAAM9J,OAAS,GAC9BypC,EAAQ2yB,EAAO/X,KAAM6V,EAAWkC,EAAOlC,SAC3C,GAAmB,SAAfzwB,EAAMzmC,MAAkC,aAAfymC,EAAMzmC,MAAwBymC,EAAM8L,OAAjE,CAIA,GAAI2kB,EAASl6D,OAAS,GAAKo8D,EAAOnC,aAAeC,EAASl6D,OAAQ,CAC9D,IAAIq8D,EAAgCnC,EAASkC,EAAOnC,cAAexd,EAAW4f,EAA8B,GAAIT,EAAUS,EAA8B,GACxJD,EAAOnC,cAAgB,EACnBmC,EAAOnC,eAAiBC,EAASl6D,SACjCo8D,EAAOlC,SAAW,GAClBkC,EAAOnC,aAAe,GAE1B3yD,KAAKvC,OAAOmsD,WAAazU,EACzB,IACI,OAAOmf,EAAQnyB,EAAMqZ,UAAWx7C,KAAKozD,QACzC,CAAE,MAAO1sB,GACL,MAAM1mC,KAAK4zD,YAAYltB,EAAIvE,EAC/B,CACJ,CACA,GAAwB,IAApB2yB,EAAOh5B,SAAgB,CAGvB,IAFA,IACIuc,EADAvc,EAAWg5B,EAAOh5B,SAEhBuc,EAAQlW,EAAM2V,MAAM3V,EAAMilB,QAAQtrB,KAEpC,GADAqG,EAAMilB,QAAQtrB,IAAa,GACtBuc,EAAM9B,IAGP,OAFA8B,EAAM9B,KAAW,OACjB/zC,EAAMsC,KAAK+9D,GAAQxqB,IAI3Byc,EAAOh5B,SAAW,SACXqG,EAAMilB,QAAQtrB,EACzB,CAEA,IADA,IAAI90B,EAAS8tD,EAAO9tD,OACd8tD,EAAOpC,WAAa1rD,EAAOtO,QAAO,CACpC,IAAIgF,EAAQsJ,EAAO8tD,EAAOpC,YAE1B,GADAoC,EAAOpC,YAAc,EAnhBlB,IAohBCh1D,EAKA,YAJIykC,EAAM2V,OAAS3V,EAAM2V,MAAMp/C,SAC3BypC,EAAMoU,KAAW,EACjBue,EAAOh5B,SAAWqG,EAAMglB,gBAGzB,GAAInnD,KAAK+zD,UAAUr2D,GAEtB,YADAo3D,EAAOlC,SAAW5yD,KAAK+zD,UAAUr2D,GAGzC,CACA8E,EAAMoQ,KA5CN,MAFIpQ,EAAMoQ,KA+Cd,EACA0uB,EAAOqzB,SAAW,SAAkBxyB,GAChC,IAAIJ,EAAQ/hC,KACZmiC,EAAMoU,KAAW,EAEjB,IADA,IACkExS,EAA1DC,EAAYrI,EADPinC,GAAUzgC,MACoD4B,EAAQC,KAAavmB,MAAM,CAClG,IAAI/f,EAAQqmC,EAAM17B,MAClB,GAviBG,IAuiBC3K,EACIykC,EAAM2V,OACN3V,EAAM+kB,KAAK,SAAS7O,GACXA,EAAM9B,KAAUxU,EAAM4yB,SAAStc,EACxC,OAED,CACH,IAAIua,EAAW5yD,KAAK+zD,UAAUr2D,GAC9B,GAAIk1D,GACI5yD,KAAK40D,UAAUhC,EAAUzwB,EAAMqZ,WAAY,MAEvD,CACJ,CACJ,EACAla,EAAOyoB,SAAW,WACd,OAAO/pD,KAAKy0D,OAAO1K,UACvB,EACAhwB,EAAckpC,EAAa,CACvB,CACI/gE,IAAK,UACLsC,IAAK,WACD,OAAOxE,KAAKiJ,YAAY2kB,OAC5B,GAEJ,CACI1rB,IAAK,MACLsC,IAAK,WACD,OAAOxE,KAAKiJ,YAAY0sC,GAC5B,GAEJ,CACIzzC,IAAK,MACLsC,IAAK,WACD,OAAOxE,KAAKiJ,YAAYkD,GAC5B,GAEJ,CACIjK,IAAK,WACLsC,IAAK,WACD,OAAOxE,KAAKy0D,OAAO9K,QACvB,GAEJ,CACIznD,IAAK,OACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAO2M,IACvB,GAEJ,CACIlI,IAAK,YACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAOqM,SACvB,GAEJ,CACI5H,IAAK,OACLsC,IAAK,WACD,OAAOxE,KAAKy0D,OAAO5b,IACvB,GAEJ,CACI32C,IAAK+H,OAAOyqC,YACZlwC,IAAK,WACD,MAAO,YACX,KAGDy+D,CACX,CAjiBiC,GAkiBjCD,GAAahO,gBAAkB,SAAS1M,GACpCya,GAAYza,CAChB,EACA,IAAI4a,GAAaF,GACjBA,GAAa1uD,QAAU0uD,GACvBT,GAAOtZ,mBAAmB+Z,IAC1BZ,GAAWnZ,mBAAmB+Z,IAC9B,IAAIG,GAAiBvG,GACjBwG,GAAc5I,GAEd6I,GAAUrB,GACVsB,GAAW7lE,GACX8lE,GAA+B,WAC/B,SAASC,EAAc9Z,EAAY/T,EAAKvrC,GAOpC,IAAIwuC,EANJjD,EAAMA,EAAI7mC,WACV9O,KAAKizD,aAAc,EACnBjzD,KAAKw1D,WAAa9L,EAClB1pD,KAAKy1D,KAAO9f,EACZ31C,KAAK01D,MAAQtrD,EACbpK,KAAK21D,UAAO,EAEZ,IAAIjyD,EAAM0/D,GACVpjE,KAAKvC,OAAS,IAAI6lE,GAAStjE,KAAKw1D,WAAY5c,EAAO54C,KAAK01D,OACxD11D,KAAKvC,OAAOk4C,IAAMA,EAClB,IAAI5f,EAAO/1B,KACXO,OAAOg1B,eAAev1B,KAAKvC,OAAQ,OAAQ,CACvC+G,IAAK,WACD,OAAOuxB,EAAK8iB,IAChB,IAEJ,IAAI1sC,EAAM,IAAIg3D,GAAez/D,EAAKk1C,EAAO54C,KAAK01D,MAAO/f,GACrD,GAAIxpC,EAAIgzC,QAAS,CACb,IAAIyW,EAAgBzpD,EAAIq4C,WAAYqR,EAAeD,EAAc,GAAIE,EAAeF,EAAc,GAC9FC,IACA71D,KAAKvC,OAAOk4C,IAAMkgB,GAElBC,IACA91D,KAAKvC,OAAO0O,IAAM2pD,EAE1B,MACI3pD,EAAIo4C,kBACJvkD,KAAKvC,OAAOk4C,IAAMxpC,EAAIwpC,GAE9B,CACA,IAAIrU,EAASkiC,EAAc9gE,UA8F3B,OA7FA4+B,EAAOjgB,MAAQ,WACX,OAAIrhB,KAAK6F,MAAclE,QAAQE,OAAO7B,KAAK6F,OACpClE,QAAQC,QAAQ5B,KAAKvC,OAChC,EACA6jC,EAAOljB,MAAQ,SAAgBo1C,GAC3B,OAAOxzD,KAAKqhB,QAAQjD,MAAMo1C,EAC9B,EACAlyB,EAAOmyB,QAAU,SAAkBC,GAC/B,OAAO1zD,KAAKqhB,QAAQlD,KAAKu1C,EAAWA,EACxC,EACApyB,EAAOmzB,KAAO,WACV,GAAIz0D,KAAK6F,MAAO,MAAM7F,KAAK6F,MAC3B,OAAO7F,KAAKvC,MAChB,EACA6jC,EAAOnjB,KAAO,SAAc02C,EAAarB,GAMrC,OAAOxzD,KAAKqhB,QAAQlD,KAAK02C,EAAarB,EAC1C,EACAlyB,EAAOxyB,SAAW,WACd,OAAO9O,KAAKy1D,IAChB,EACAn0B,EAAOyoB,SAAW,WACd,MAAO,EACX,EACAhwB,EAAcypC,EAAe,CACzB,CACIthE,IAAK,UACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAOk4C,GACvB,GAEJ,CACIzzC,IAAK,MACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAOk4C,GACvB,GAEJ,CACIzzC,IAAK,MACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAO0O,GACvB,GAEJ,CACIjK,IAAK,WACLsC,IAAK,WACD,MAAO,EACX,GAEJ,CACItC,IAAK,OACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAO2M,IACvB,GAEJ,CACIlI,IAAK,YACLsC,IAAK,WACD,OAAOxE,KAAKvC,OAAOqM,SACvB,GAEJ,CACI5H,IAAK,OACLsC,IAAK,WACD,GAAIxE,KAAK+1D,MACL,OAAO/1D,KAAK+1D,MAEhB,IAAInd,EACAoY,EAAUqS,GACd,IACIzqB,EAAQoY,EAAQhxD,KAAKy1D,KAAMz1D,KAAK01D,MACpC,CAAE,MAAO7vD,GACL7F,KAAK6F,MAAQA,CACjB,CACA,GAAI7F,KAAK6F,MACL,MAAM7F,KAAK6F,MAGX,OADA7F,KAAK+1D,MAAQnd,EACNA,CAEf,GAEJ,CACI12C,IAAK+H,OAAOyqC,YACZlwC,IAAK,WACD,MAAO,cACX,KAGDg/D,CACX,CA/HmC,GAgI/BC,GAAeF,GACnBA,GAAejvD,QAAUivD,GACzB,IAAIG,GAAiBD,GACjBE,GAAeT,GACfU,GAAaxF,GACbyF,GAAShrB,GACTirB,GAA4B,WAC5B,SAASC,EAAW9/C,QACA,IAAZA,IAAoBA,EAAU,IAClCjkB,KAAK/H,QAAU,SACf+H,KAAKikB,QAAUjkB,KAAKinD,UAAUhjC,EAClC,CACA,IAAIqd,EAASyiC,EAAWrhE,UAwCxB,OAvCA4+B,EAAO2lB,UAAY,SAAmBhjC,GAElC,IADA,IACmE8f,EAD/Dja,EAAa,GACTka,EAAYrI,EAAqC1X,KAAmB8f,EAAQC,KAAavmB,MAAM,CACnG,IAAIqrB,EAAK/E,EAAM17B,MAMf,IALmB,IAAfygC,EAAGuqB,QACHvqB,EAAKA,IACEA,EAAGuqB,UACVvqB,EAAKA,EAAGuqB,SAEqD,iBAA9C,IAAPvqB,EAAqB,YAAcxN,EAASwN,KAAqBrvC,MAAMC,QAAQovC,EAAG7kB,SAC1F6F,EAAaA,EAAWvhB,OAAOugC,EAAG7kB,cAC/B,GAAiE,iBAA9C,IAAP6kB,EAAqB,YAAcxN,EAASwN,KAAqBA,EAAG+gB,cACnF//B,EAAWhlB,KAAKgkC,QACb,GAAkB,mBAAPA,EACdhf,EAAWhlB,KAAKgkC,QACb,GAAiE,iBAA9C,IAAPA,EAAqB,YAAcxN,EAASwN,MAAsBA,EAAG9/B,QAAS8/B,EAAG7/B,UAKhG,MAAM,IAAI2X,MAAMkoB,EAAK,2BAE7B,CACA,OAAOhf,CACX,EACAwX,EAAOv3B,QAAU,SAAkB4rC,EAAKvrC,GAEpC,YADa,IAATA,IAAiBA,EAAO,CAAC,GACxBpK,KAAKikB,QAAQvrB,QAAW0R,EAAK+oD,QAAW/oD,EAAKsqD,aAAgBtqD,EAAK8oD,OAG5D,IAAIyQ,GAAa3jE,KAAM21C,EAAKvrC,GAF5B,IAAIs5D,GAAe1jE,KAAM21C,EAAKvrC,EAI7C,EACAk3B,EAAO3gB,IAAM,SAAaw0B,GAItB,OAHAn1C,KAAKikB,QAAUjkB,KAAKikB,QAAQ1b,OAAOvI,KAAKinD,UAAU,CAC9C9R,KAEGn1C,IACX,EACO+jE,CACX,CA/CgC,GAgD5Bj6D,GAAYg6D,GAChBA,GAAYxvD,QAAUwvD,GACtBD,GAAO3a,kBAAkB4a,IACzBF,GAAW1a,kBAAkB4a,IAC7B,IAAIE,GAAgB5I,GAChB6I,GAAgBvI,GAChBwI,GAAYj0B,GACZk0B,GAAWnL,GACXoL,GAAUvpB,GACVwpB,GAASxrB,GACTyrB,GAASxuD,GACb,SAASyuD,GAAW/yC,EAAM+qB,GACtB,GAAI9iD,MAAMC,QAAQ83B,GAAO,OAAOA,EAAKrlB,IAAI,SAASmzB,GAC9C,OAAOilC,GAAWjlC,EACtB,GACA,IAAI03B,EAAYxlC,EAAK+qB,OAAQ7B,EAAWvf,EAAiC3J,EAAM,CAC3E,WAEJ,GAAIwlC,EAAW,CACXza,EAAS,GACT,IAAI,IAAiExY,EAA7DC,EAAYrI,EAAqCq7B,KAAqBjzB,EAAQC,KAAavmB,MAAM,CACrG,IACIw5C,EAAgB38B,EAAS,CAAC,EADjByJ,EAAM17B,MACsB,CACrCqyB,UAAW0pC,GAAQ1hE,YAEnBu0D,EAAc9qD,MACd8qD,EAAc9qD,IAAMmuB,EAAS,CAAC,EAAG28B,EAAc9qD,IAAK,CAChDuuB,UAAWupC,GAAcvhE,aAGjC65C,EAAOz3C,KAAKmyD,EAChB,CACJ,CAMA,GALIvc,EAAS5C,QACT4C,EAAS5C,MAAQtmB,EAAKsmB,MAAM3rC,IAAI,SAASmzB,GACrC,OAAOilC,GAAWjlC,EAAIid,EAC1B,IAEA7B,EAASp3C,OAAQ,CACjB,IAAI4zD,EAAmBxc,EAASp3C,OAAQq5C,EAAUua,EAAiBva,QAASr5C,EAAS63B,EAAiC+7B,EAAkB,CACpI,YAEJxc,EAASp3C,OAASA,EACH,MAAXq5C,IACAjC,EAASp3C,OAAOu3C,MAAQ0B,EAAOI,GAEvC,CACA,GAAsB,SAAlBjC,EAASh/C,KACT,OAAO,IAAI2oE,GAAO3pB,GACf,GAAsB,SAAlBA,EAASh/C,KAChB,OAAO,IAAIsoE,GAActpB,GACtB,GAAsB,SAAlBA,EAASh/C,KAChB,OAAO,IAAI4oE,GAAO5pB,GACf,GAAsB,YAAlBA,EAASh/C,KAChB,OAAO,IAAIwoE,GAAUxpB,GAClB,GAAsB,WAAlBA,EAASh/C,KAChB,OAAO,IAAIyoE,GAASzpB,GAEpB,MAAM,IAAI95B,MAAM,sBAAwB4Q,EAAK91B,KAErD,CACA,IAAI8oE,GAAaD,GACjBA,GAAWjwD,QAAUiwD,GACrB,IAAIE,GAAmBxK,GACnByK,GAAgBtJ,GAChBuJ,GAAezB,GACf0B,GAAc9G,GACd+G,GAAc/6D,GACdg7D,GAActK,GACdzB,GAAWyL,GACXO,GAAc3G,GACd4G,GAAYzG,GACZ0G,GAAYh1B,GACZi1B,GAAWlM,GACXmM,GAAW1nE,GACX2nE,GAAUvqB,GACV7xC,GAAQg5D,GACR/mD,GAAO4lD,GACPwE,GAASvvD,GACTwvD,GAASzsB,GACT0sB,GAASxoB,GACb,SAASsW,KACL,IAAI,IAAInX,EAAOlvC,UAAUtU,OAAQurB,EAAU,IAAIxqB,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/El4B,EAAQk4B,GAAQnvC,UAAUmvC,GAK9B,OAHuB,IAAnBl4B,EAAQvrB,QAAgBe,MAAMC,QAAQuqB,EAAQ,MAC9CA,EAAUA,EAAQ,IAEf,IAAI4gD,GAAY5gD,EAC3B,CACAovC,GAAQ95D,OAAS,SAAiB8E,EAAMk6D,GACpC,IAiBIx+C,EAjBAy+C,GAAiB,EACrB,SAASC,IACL,IAAI,IAAIvc,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5Ez2C,EAAKy2C,GAAQnvC,UAAUmvC,GAEvBr2C,SAAWA,QAAQF,OAAS4yD,IAC5BA,GAAiB,EACjB1yD,QAAQF,KAAKvH,EAAO,qHAChB0L,QAAQ2uD,IAAIC,MAAQ5uD,QAAQ2uD,IAAIC,KAAK/0C,WAAW,OAChD9d,QAAQF,KAAKvH,EAAO,uEAG5B,IAAIu6D,EAAcL,EAAYxyD,WAAM,EAAQ,GAAGwC,OAAO7C,IAGtD,OAFAkzD,EAAY/O,cAAgBxrD,EAC5Bu6D,EAAY/E,gBAAiB,IAAIgR,IAAc5sE,QACxC2gE,CACX,CAaA,OAXAr4D,OAAOg1B,eAAekjC,EAAS,UAAW,CACtCj0D,IAAK,WAED,OADKuV,IAAOA,EAAQ0+C,KACb1+C,CACX,IAEJ0+C,EAAQ1uD,QAAU,SAAS4rC,EAAKkjB,EAAaC,GACzC,OAAOzF,GAAQ,CACXoF,EAAQK,KACT/uD,QAAQ4rC,EAAKkjB,EACpB,EACOJ,CACX,EACApF,GAAQpqD,UAAY67D,GACpBzR,GAAQrqD,MAAQA,GAChBqqD,GAAQ0F,SAAWA,GACnB1F,GAAQp4C,KAAOA,GACfo4C,GAAQpjB,QAAU,SAASyK,GACvB,OAAO,IAAIuqB,GAAUvqB,EACzB,EACA2Y,GAAQ2F,OAAS,SAASte,GACtB,OAAO,IAAIwqB,GAASxqB,EACxB,EACA2Y,GAAQ9a,KAAO,SAASmC,GACpB,OAAO,IAAIgqB,GAAchqB,EAC7B,EACA2Y,GAAQv9C,KAAO,SAAS4kC,GACpB,OAAO,IAAI2qB,GAAO3qB,EACtB,EACA2Y,GAAQxa,KAAO,SAAS6B,GACpB,OAAO,IAAI4qB,GAAO5qB,EACtB,EACA2Y,GAAQr1D,SAAW,SAAS08C,GACxB,OAAO,IAAIqqB,GAAYrqB,EAC3B,EACA2Y,GAAQte,eAAiB0vB,GACzBpR,GAAQlW,YAAcunB,GACtBrR,GAAQtM,UAAY6d,GACpBvR,GAAQiD,UAAYuO,GACpBxR,GAAQnrB,SAAW68B,GACnB1R,GAAQ1kB,QAAUs2B,GAClB5R,GAAQhK,QAAU2b,GAClB3R,GAAQ3H,OAASwZ,GACjB7R,GAAQ5J,OAAS0b,GACjB9R,GAAQnS,MAAQkkB,GAChB/R,GAAQnG,KAAOmY,GACfhS,GAAQnH,KAAOoZ,GACfjS,GAAQ91B,KAAOgoC,GACfZ,GAAa3P,gBAAgB3B,IAC7B,IAAImS,GAAYnS,GAChBA,GAAQ/+C,QAAU++C,GAClB,IAAIoS,GAA4BnM,GAAwBkM,IACxDC,GAAUx8D,UACVw8D,GAAU1M,SACV0M,GAAUlsE,OACVksE,GAAUz8D,MACVy8D,GAAUxqD,KACVwqD,GAAUznE,SACVynE,GAAUx1B,QACVw1B,GAAUzM,OACVyM,GAAU3vD,KACV2vD,GAAUltB,KACVktB,GAAU5sB,KACV4sB,GAAU1wB,eACV0wB,GAAUtoB,YACVsoB,GAAU1e,UACV0e,GAAUnP,UACVmP,GAAUv9B,SACVu9B,GAAU92B,QACV82B,GAAUpc,QACVoc,GAAU/Z,OACV+Z,GAAUhc,OACVgc,GAAUvkB,MACVukB,GAAUvY,KACVuY,GAAUvZ,KACVuZ,GAAUloC,KACV,IAAImoC,GAA2B,WAC3B,SAASA,IACL,IAAI,IAAIxpB,EAAOlvC,UAAUtU,OAAQitE,EAAQ,IAAIlsE,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7EwpB,EAAMxpB,GAAQnvC,UAAUmvC,GAE5Bid,GAAep5D,KAAM,gBAAiB,MACtCo5D,GAAep5D,KAAM,aAAc,MACnCo5D,GAAep5D,KAAM,iBACrBo5D,GAAep5D,KAAM,aAAc,MACnCo5D,GAAep5D,KAAM,YAAa,MAClCo5D,GAAep5D,KAAM,kBAAmB,MACxCo5D,GAAep5D,KAAM,cAAe,MACpCo5D,GAAep5D,KAAM,eAAgB,GACrCo5D,GAAep5D,KAAM,YAAa,GAClCo5D,GAAep5D,KAAM,YACrBo5D,GAAep5D,KAAM,YACrBo5D,GAAep5D,KAAM,aACzB,CACA,IAAIshC,EAASokC,EAAWhjE,UAwCxB,OAvCA4+B,EAAOkF,SAAW,SAAkBrE,GAChC,IAAKpH,EAAYoH,EAAOujC,GAAa,OAAO,EACvC,GAAIvjC,EAAM/B,gBAAkBpgC,KAAKogC,cAAe,OAAO,EACvD,GAAI+B,IAAUniC,KAAM,OAAO,EAChC,KAAMmiC,EAAMyjC,YAAW,CACnB,GAAIzjC,EAAMyjC,aAAe5lE,KAAM,OAAO,EACtCmiC,EAAQA,EAAMyjC,UAClB,CACA,OAAO,CACX,EAEAtkC,EAAOzC,YAAc,SAAqBgnC,GACtC,MAAM,IAAIjlD,MAAM,8GACpB,EAEA0gB,EAAO0Z,aAAe,SAAsB6qB,EAAWC,GACnD,MAAM,IAAIllD,MAAM,+GACpB,EAEA0gB,EAAOtC,YAAc,SAAqB+mC,GACtC,MAAM,IAAInlD,MAAM,8GACpB,EACA0gB,EAAOxyB,SAAW,WACd,MAAO,QACX,EACAirB,EAAc2rC,EAAY,CACtB,CACIxjE,IAAK,aACLsC,IAAK,WAGD,IAFA,IAAI8kC,EAAc,GACd08B,EAAgBhmE,KAAKimE,WACnBD,GACF18B,EAAYxkC,KAAKkhE,GACjBA,EAAgBA,EAAcE,YAElC,OAAO58B,CACX,KAGDo8B,CACX,CA3D+B,GA4D3BS,GAAoB,CACpB5oC,KAAM,CACF,aACA,aACA,gBACA,eAEJC,WAAY,CACR,OACA,eAEJC,QAAS,CACL,aACA,gBACA,oBAEJC,iBAAkB,IAElB0oC,GAAkB,CAClB7oC,KAAM,CACF,WACA,eAEJC,WAAY,CACR,gBAEJC,QAAS,GACTC,iBAAkB,CACd,gBAGJ2oC,GAAyB,CAAC,EAI9B,SAASC,GAAsBpkE,GAC3B,GAAImkE,GAAuBnkE,GAAM,OAAOmkE,GAAuBnkE,GAC/D,IAAI47B,EAAaC,WAAW77B,GACxB87B,EAAmBF,EAAWp7B,UAC9Bu7B,EAAgB/7B,KAAOikE,GAAoBA,GAAkBjkE,QAAO,EACpEg8B,EAAuBvkB,QAAQskB,GACnCA,EAAcE,MAAM,SAASC,GACzB,IAAIC,EAAKC,EACT,OAAO3kB,QAAiH,OAAxG2kB,EAA4E,OAAtED,EAAM99B,OAAOg+B,yBAAyBP,EAAkBI,SAAqB,EAASC,EAAI75B,UAAe,EAAS85B,EAAGxvB,WAAWzV,SAAS,iBACnK,IACImlC,EAAct8B,KAAOkkE,GAAkBA,GAAgBlkE,QAAO,EAC9Du8B,EAAqB9kB,QAAQ6kB,GAAeA,EAAYL,MAC5D,SAASO,GACL,IAAIL,EACJ,MAA2C,mBAA7BL,EAAiBU,KAA+D,OAAnCL,EAAML,EAAiBU,SAAmB,EAASL,EAAIvvB,WAAWzV,SAAS,iBAC1I,IACA,GAAI6kC,GAAwBO,IAlBnBV,WAAWY,KAoBhB,OADA0nC,GAAuBnkE,GAAO47B,EAAWp7B,UAClCo7B,EAAWp7B,UAEtB,IACI,IAAIk8B,EAAW5gC,SAASzC,cAAc,UACtCyC,SAASsuB,KAAKuS,YAAYD,GAC1B,IAAIzG,EAAMyG,EAASE,cACnB,IAAK3G,EAAK,OAAO2F,EAAWp7B,UAC5B,IAAIq8B,EAAkB5G,EAAIj2B,GAAKQ,UAE/B,OADA1E,SAASsuB,KAAK0S,YAAYJ,GACrBG,EACEsnC,GAAuBnkE,GAAO68B,EADRf,CAEjC,CAAE,MAAOh7B,GACL,OAAOg7B,CACX,CACJ,CACA,IAAIuoC,GAAyB,CAAC,EAC9B,SAASC,GAAqBtkE,EAAKhB,EAAUk9B,GACzC,IAAIC,EACAxoB,EAAW3T,EAAM,IAAM9J,OAAOgmC,GAClC,GAAImoC,GAAuB1wD,GAAW,OAAO0wD,GAAuB1wD,GAAUjT,KAAK1B,GACnF,IAAIi+B,EAAqBmnC,GAAsBpkE,GAC3Ck9B,EAA6F,OAAxEf,EAAM99B,OAAOg+B,yBAAyBY,EAAoBf,SAAqB,EAASC,EAAI75B,IACrH,OAAK46B,GACLmnC,GAAuB1wD,GAAYupB,EAC5BA,EAAkBx8B,KAAK1B,IAFCA,EAASk9B,EAG5C,CACA,IAAIqoC,GAAuB,CAAC,EAC5B,SAASC,GAAmBxkE,EAAKhB,EAAUw9B,GACvC,IAAI7oB,EAAW3T,EAAM,IAAM9J,OAAOsmC,GAClC,GAAI+nC,GAAqB5wD,GAAW,OAAO4wD,GAAqB5wD,GAAUqI,KAAKhd,GAC/E,IACIylE,EADqBL,GAAsBpkE,GACNw8B,GACzC,MAA+B,mBAApBioC,EAAuCzlE,EAASw9B,IAC3D+nC,GAAqB5wD,GAAY8wD,EAC1BA,EAAgBzoD,KAAKhd,GAChC,CAoCA,SAAS0lE,KACL,OAAON,GAAsB,oBAAoBvmE,WACrD,CACA,SAAS8mE,GAAQvjE,EAAQjF,EAAMyoE,GAC3B,IACI,KAAMzoE,KAAQiF,GACV,OAAO,WAAY,EAEvB,IAAIwhD,EAAWxhD,EAAOjF,GAClB0oE,EAAUD,EAAYhiB,GAW1B,MAVuB,mBAAZiiB,IACPA,EAAQrkE,UAAYqkE,EAAQrkE,WAAa,CAAC,EAC1CnC,OAAOymE,iBAAiBD,EAAS,CAC7BE,mBAAoB,CAChBxxC,YAAY,EACZptB,MAAOy8C,MAInBxhD,EAAOjF,GAAQ0oE,EACR,WACHzjE,EAAOjF,GAAQymD,CACnB,CACJ,CAAE,MAAO9hD,GACL,OAAO,WAAY,CACvB,CACJ,CACA,IAAI+E,GA9DJ,SAAoBu3B,GAChB,OAAOknC,GAAqB,OAAQlnC,EAAI,aAC5C,EA4DIv3B,GA3DJ,SAAoBu3B,GAChB,OAAOknC,GAAqB,OAAQlnC,EAAI,aAC5C,EAyDIv3B,GAxDJ,SAAuBu3B,GACnB,OAAOknC,GAAqB,OAAQlnC,EAAI,gBAC5C,EAsDIv3B,GArDJ,SAAqBu3B,GACjB,OAAOknC,GAAqB,OAAQlnC,EAAI,cAC5C,EAmDIv3B,GAlDJ,SAAkBu3B,EAAIrqB,GAClB,OAAOyxD,GAAmB,OAAQpnC,EAAI,WAA/BonC,CAA2CzxD,EACtD,EAgDIlN,GA/CJ,SAAqBu3B,GACjB,OAAOonC,GAAmB,OAAQpnC,EAAI,cAA/BonC,EACX,EA6CI3+D,GA5CJ,SAAcu3B,GACV,OAAKA,GAAQ,SAAUA,EAChBknC,GAAqB,aAAclnC,EAAI,QADX,IAEvC,EAyCIv3B,GArCJ,SAAoBu3B,GAChB,OAAKA,GAAQ,eAAgBA,EACtBknC,GAAqB,UAAWlnC,EAAI,cADF,IAE7C,EAiDA,SAASv4B,GAAGrL,EAAMoe,EAAIzW,QACH,IAAXA,IAAmBA,EAASrF,UAChC,IAAImD,EAAU,CACV+lE,SAAS,EACTC,SAAS,GAGb,OADA9jE,EAAOuhB,iBAAiBlpB,EAAMoe,EAAI3Y,GAC3B,WACH,OAAOkC,EAAOwhB,oBAAoBnpB,EAAMoe,EAAI3Y,EAChD,CACJ,CACA,IAAIimE,GAAiC,4NACjCC,GAAU,CACVl7D,IAAK,CAAC,EACNo1B,MAAO,WAEH,OADAz7B,QAAQD,MAAMuhE,KACN,CACZ,EACA1lC,QAAS,WAEL,OADA57B,QAAQD,MAAMuhE,IACP,IACX,EACAtlC,kBAAmB,WACfh8B,QAAQD,MAAMuhE,GAClB,EACAz8C,IAAK,WAED,OADA7kB,QAAQD,MAAMuhE,KACP,CACX,EACA71D,MAAO,WACHzL,QAAQD,MAAMuhE,GAClB,GAYJ,SAASE,GAAS5a,EAAM3uC,EAAM5c,QACV,IAAZA,IAAoBA,EAAU,CAAC,GACnC,IAAIomE,EAAU,KACVnjB,EAAW,EACf,OAAO,WACH,IAAI,IAAIlI,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5Ez2C,EAAKy2C,GAAQnvC,UAAUmvC,GAE3B,IAAIzqB,EAAMD,KAAKC,MACV0yB,IAAgC,IAApBjjD,EAAQqmE,UACrBpjB,EAAW1yB,GAEf,IAAI+1C,EAAY1pD,GAAQ2T,EAAM0yB,GAC1B5mD,EAAUwC,KACVynE,GAAa,GAAKA,EAAY1pD,GAC1BwpD,IACAv4C,aAAau4C,GACbA,EAAU,MAEdnjB,EAAW1yB,EACXg7B,EAAK3mD,MAAMvI,EAASkI,IACZ6hE,IAAgC,IAArBpmE,EAAQumE,WAC3BH,EAAUtpD,WAAW,WACjBmmC,GAA+B,IAApBjjD,EAAQqmE,QAAoB,EAAI/1C,KAAKC,MAChD61C,EAAU,KACV7a,EAAK3mD,MAAMvI,EAASkI,EACxB,EAAG+hE,GAEX,CACJ,CACA,SAASE,GAAWtkE,EAAQnB,EAAKuwC,EAAGm1B,EAAWzvC,QAC/B,IAARA,IAAgBA,EAAMt8B,QAC1B,IAAIipD,EAAW3sB,EAAI53B,OAAOg+B,yBAAyBl7B,EAAQnB,GAY3D,OAXAi2B,EAAI53B,OAAOg1B,eAAelyB,EAAQnB,EAAK0lE,EAAYn1B,EAAI,CACnD5tC,IAAK,SAAawD,GACd,IAAI05B,EAAQ/hC,KACZie,WAAW,WACPw0B,EAAE5tC,IAAIjC,KAAKm/B,EAAO15B,EACtB,EAAG,GACCy8C,GAAYA,EAASjgD,KACrBigD,EAASjgD,IAAIjC,KAAK5C,KAAMqI,EAEhC,IAEG,WACH,OAAOs/D,GAAWtkE,EAAQnB,EAAK4iD,GAAY,CAAC,GAAG,EACnD,CACJ,CAzDsB,oBAAXjpD,QAA0BA,OAAO4O,OAAS5O,OAAO89B,UACxD0tC,GAAU,IAAI58D,MAAM48D,GAAS,CACzB7iE,IAAK,SAAanB,EAAQG,EAAMqkE,GAI5B,MAHa,QAATrkE,GACAsC,QAAQD,MAAMuhE,IAEXztC,QAAQn1B,IAAInB,EAAQG,EAAMqkE,EACrC,KAmDR,IAAIC,GAAer2C,KAAKC,IAMxB,SAASq2C,GAAgB5vC,GACrB,IAAIkG,EAAKC,EAAI0pC,EAAIC,EACbpjC,EAAM1M,EAAIn6B,SACd,MAAO,CACHg9B,KAAM6J,EAAIqjC,iBAAmBrjC,EAAIqjC,iBAAiBj7B,gBAAiC,IAApB9U,EAAIgwC,YAAyBhwC,EAAIgwC,YAActjC,EAAIujC,gBAAgBn7B,aAAsB,MAAPpI,OAAc,EAASA,EAAIvY,QAAmD,OAAxC+R,EAAMt2B,GAAoB88B,EAAIvY,YAAiB,EAAS+R,EAAI4O,cAA0D,OAAzC3O,EAAY,MAAPuG,OAAc,EAASA,EAAIvY,WAAgB,EAASgS,EAAG2O,aAAe,EAC/Uo7B,IAAKxjC,EAAIqjC,iBAAmBrjC,EAAIqjC,iBAAiB/6B,eAAgC,IAApBhV,EAAImwC,YAAyBnwC,EAAImwC,aAAsB,MAAPzjC,OAAc,EAASA,EAAIujC,gBAAgBj7B,aAAsB,MAAPtI,OAAc,EAASA,EAAIvY,QAAkD,OAAvC07C,EAAKjgE,GAAoB88B,EAAIvY,YAAiB,EAAS07C,EAAG76B,aAAyD,OAAzC86B,EAAY,MAAPpjC,OAAc,EAASA,EAAIvY,WAAgB,EAAS27C,EAAG96B,YAAc,EAEzW,CACA,SAASo7B,KACL,OAAO1sE,OAAO2sE,aAAexqE,SAASoqE,iBAAmBpqE,SAASoqE,gBAAgBK,cAAgBzqE,SAASsuB,MAAQtuB,SAASsuB,KAAKm8C,YACrI,CACA,SAASC,KACL,OAAO7sE,OAAO8oB,YAAc3mB,SAASoqE,iBAAmBpqE,SAASoqE,gBAAgBO,aAAe3qE,SAASsuB,MAAQtuB,SAASsuB,KAAKq8C,WACnI,CACA,SAASC,GAAqBzmC,GAC1B,OAAKA,EAGIA,EAAM3C,WAAa2C,EAAM1C,aAAe0C,EAAQp6B,GAAoBo6B,GAFlE,IAIf,CACA,SAAS0mC,GAAU1mC,EAAO2E,EAAYC,EAAef,GACjD,IAAK7D,EACD,OAAO,EAEX,IAAImE,EAAKsiC,GAAqBzmC,GAC9B,IAAKmE,EACD,OAAO,EAEX,IACI,GAA0B,iBAAfQ,EAAyB,CAChC,GAAIR,EAAGJ,UAAUM,SAASM,GAAa,OAAO,EAC9C,GAAId,GAAmD,OAAjCM,EAAGC,QAAQ,IAAMO,GAAsB,OAAO,CACxE,MACI,GAAIf,GAAkBO,EAAIQ,EAAYd,GAAiB,OAAO,CAEtE,CAAE,MAAOU,GAAK,CACd,GAAIK,EAAe,CACf,GAAIT,EAAGG,QAAQM,GAAgB,OAAO,EACtC,GAAIf,GAAgD,OAA9BM,EAAGC,QAAQQ,GAAyB,OAAO,CACrE,CACA,OAAO,CACX,CAIA,SAAS+hC,GAAUxpC,EAAIsH,EAASsI,GAC5B,QAAmB,UAAf5P,EAAGxH,UAAuBoX,EAAe65B,sBA7tS9B,IAguSRniC,EAAQrF,MAAMjC,EACzB,CACA,SAAS0pC,GAAkB3lE,EAAQujC,GAC/B,GAAIlH,EAAar8B,GACb,OAAO,EAEX,IAAIm+B,EAAKoF,EAAQrF,MAAMl+B,GACvB,IAAKujC,EAAQjc,IAAI6W,GACb,OAAO,EAEX,IAAIyM,EAASlmC,GAAiB1E,GAC9B,QAAI4qC,GAAUA,EAAOzO,WAAan8B,EAAO2kC,kBAGpCiG,GAGE+6B,GAAkB/6B,EAAQrH,GACrC,CACA,SAASqiC,GAAoBvrE,GACzB,OAAOic,QAAQjc,EAAMwrE,eACzB,CAUA,SAASC,GAAmB7pC,EAAIsH,GAC5B,OAAOjtB,QAAwB,WAAhB2lB,EAAG8pC,UAAyBxiC,EAAQnF,QAAQnC,GAC/D,CACA,SAAS+pC,GAAuB/pC,EAAIsH,GAChC,OAAOjtB,QAAwB,SAAhB2lB,EAAG8pC,UAAuB9pC,EAAGE,WAAaF,EAAGG,cAAgBH,EAAG1I,cAA2C,eAA3B0I,EAAG1I,aAAa,QAA2BgQ,EAAQnF,QAAQnC,GAC9J,CACA,SAASgqC,GAAchqC,GACnB,QAAKA,IACDvE,EAAYuE,EAAIomC,KAAe,eAAgBpmC,EACxC3lB,QAAQ2lB,EAAGiqC,YAEf5vD,QAAQ5R,GAAiBu3B,IACpC,CAlGqB,iBAAiBjzB,KAAKolB,KAAKC,MAAM5iB,cAClDg5D,GAAe,WACX,OAAuB,IAAIr2C,MAAO+3C,SACtC,GAgGJ,IAAIC,GAAiC,WACjC,SAASA,IACL1sC,EAAgB/8B,KAAM,KAAM,GAC5B+8B,EAAgB/8B,KAAM,aAA8B,IAAIqhC,SACxDtE,EAAgB/8B,KAAM,aAA8B,IAAImE,IAC5D,CACA,IAAIm9B,EAASmoC,EAAiB/mE,UA+B9B,OA9BA4+B,EAAOC,MAAQ,SAAeyH,GAC1B,IAAI0gC,EACJ,OAAmE,OAA3DA,EAAuB1pE,KAAK2pE,WAAWnlE,IAAIwkC,IAAuB0gC,GAAwB,CACtG,EACApoC,EAAO3W,IAAM,SAAaqe,GACtB,OAAOhpC,KAAK2pE,WAAWh/C,IAAIqe,EAC/B,EAGE1H,EAAOnmB,IAAM,SAAa6tB,EAAYxH,GACpC,OAAIxhC,KAAK2qB,IAAIqe,GAAoBhpC,KAAKuhC,MAAMyH,IAGxC4gC,OADO,IAAPpoC,EACQxhC,KAAKwhC,KACFA,EACfxhC,KAAK2pE,WAAW9kE,IAAImkC,EAAY4gC,GAChC5pE,KAAK6pE,WAAWhlE,IAAI+kE,EAAO5gC,GACpB4gC,GANP,IAAIA,CAOR,EACAtoC,EAAOwoC,SAAW,SAAkBtoC,GAChC,OAAOxhC,KAAK6pE,WAAWrlE,IAAIg9B,IAAO,IACtC,EACAF,EAAO/vB,MAAQ,WACXvR,KAAK2pE,WAA6B,IAAItoC,QACtCrhC,KAAK6pE,WAA6B,IAAI1lE,IACtCnE,KAAKwhC,GAAK,CACd,EACAF,EAAOyoC,WAAa,WAChB,OAAO/pE,KAAKwhC,IAChB,EACOioC,CACX,CAtCqC,GAuCrC,SAASO,GAAc1qC,GACnB,IAAIjB,EACA4rC,EAAa,KAEjB,MADI,gBAAiB3qC,IAAwC,OAAhCjB,EAAMt2B,GAAkBu3B,SAAe,EAASjB,EAAImB,YAAcjC,KAAK2sC,wBAA0BniE,GAAWA,GAAkBu3B,MAAM2qC,EAAaliE,GAAWA,GAAkBu3B,KACpM2qC,CACX,CAaA,SAASE,GAAM7qC,GACX,IAAIuF,EAAMvF,EAAGc,cACb,QAAKyE,IACE98B,GAAe88B,EAAKvF,IAT/B,SAAyBA,GACrB,IAAIuF,EAAMvF,EAAGc,cACb,IAAKyE,EAAK,OAAO,EACjB,IAAIolC,EATR,SAA2B3qC,GAGvB,IAFA,IACI2qC,EADAG,EAAiB9qC,EAEf2qC,EAAaD,GAAcI,IAAgBA,EAAiBH,EAClE,OAAOG,CACX,CAIqBC,CAAkB/qC,GACnC,OAAOv3B,GAAe88B,EAAKolC,EAC/B,CAIsCK,CAAgBhrC,GACtD,CACA,IAAIirC,GAA4B,SAASC,GAQrC,OAPAA,EAAWA,EAA6B,iBAAI,GAAK,mBACjDA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAyB,aAAI,GAAK,eAC7CA,EAAWA,EAAgC,oBAAI,GAAK,sBACpDA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAmB,OAAI,GAAK,SACvCA,EAAWA,EAAmB,OAAI,GAAK,SAChCA,CACX,CATgC,CAS9BD,IAAa,CAAC,GACZE,GAAoC,SAASC,GAkB7C,OAjBAA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAAyB,KAAI,IAAM,OACtDA,EAAmBA,EAAwB,IAAI,IAAM,MACrDA,EAAmBA,EAAyB,KAAI,IAAM,OACtDA,EAAmBA,EAAqC,iBAAI,IAAM,mBAClEA,EAAmBA,EAA8B,UAAI,IAAM,YAC3DA,EAAmBA,EAAsC,kBAAI,IAAM,oBACnEA,EAAmBA,EAAkC,cAAI,IAAM,gBACxDA,CACX,CAnBwC,CAmBtCD,IAAqB,CAAC,GACpBE,GAAoC,SAASC,GAY7C,OAXAA,EAAmBA,EAA4B,QAAI,GAAK,UACxDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAAgC,YAAI,GAAK,cAC5DA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA+B,WAAI,GAAK,aAC3DA,EAAmBA,EAAuC,mBAAI,GAAK,qBACnEA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAAgC,YAAI,IAAM,cACtDA,CACX,CAbwC,CAatCD,IAAqB,CAAC,GACpBE,GAA+B,SAASC,GAIxC,OAHAA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAqB,MAAI,GAAK,QACrCA,CACX,CALmC,CAKjCD,IAAgB,CAAC,GACfE,GAAgC,SAASC,GAIzC,OAHAA,EAAeA,EAAe,MAAQ,GAAK,KAC3CA,EAAeA,EAAsB,MAAI,GAAK,QAC9CA,EAAeA,EAAuB,OAAI,GAAK,SACxCA,CACX,CALoC,CAKlCD,IAAiB,CAAC,GAChBE,GAAoC,SAASC,GAM7C,OALAA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAAiC,aAAI,GAAK,eAC7DA,EAAmBA,EAA+B,WAAI,GAAK,aACpDA,CACX,CAPwC,CAOtCD,IAAqB,CAAC,GACpBE,GAA2B,SAAS9tC,GAOpC,OANAA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAwB,aAAI,GAAK,eAC3CA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAiB,MAAI,GAAK,QACpCA,EAAUA,EAAmB,QAAI,GAAK,UAC/BA,CACX,CAR+B,CAQ7B8tC,IAAY,CAAC,GACf,SAASC,GAAmB9rC,GACxB,MAAO,SAAUA,CACrB,CACA,IAgoBI+rC,GAhoBAC,GAAiC,WACjC,SAASA,IACLvuC,EAAgB/8B,KAAM,SAAU,GAChC+8B,EAAgB/8B,KAAM,OAAQ,MAC9B+8B,EAAgB/8B,KAAM,OAAQ,KAClC,CACA,IAAIshC,EAASgqC,EAAiB5oE,UAuE9B,OAtEA4+B,EAAO98B,IAAM,SAAashB,GACtB,GAAIA,GAAY9lB,KAAKtH,OACjB,MAAM,IAAIkoB,MAAM,kCAGpB,IADA,IAAI1b,EAAUlF,KAAKurE,KACXr1B,EAAS,EAAGA,EAASpwB,EAAUowB,IACnChxC,GAAsB,MAAXA,OAAkB,EAASA,EAAQC,OAAS,KAE3D,OAAOD,CACX,EACAo8B,EAAOkqC,QAAU,SAAiBlsC,GAC9B,IAAI6C,EAAQ,CACR95B,MAAOi3B,EACP8kB,SAAU,KACVj/C,KAAM,MAGV,GADAm6B,EAAGmsC,KAAOtpC,EACN7C,EAAGosC,iBAAmBN,GAAmB9rC,EAAGosC,iBAAkB,CAC9D,IAAIxmE,EAAUo6B,EAAGosC,gBAAgBD,KAAKtmE,KACtCg9B,EAAMh9B,KAAOD,EACbi9B,EAAMiiB,SAAW9kB,EAAGosC,gBAAgBD,KACpCnsC,EAAGosC,gBAAgBD,KAAKtmE,KAAOg9B,EAC3Bj9B,IACAA,EAAQk/C,SAAWjiB,EAE3B,MAAO,GAAI7C,EAAG4mC,aAAekF,GAAmB9rC,EAAG4mC,cAAgB5mC,EAAG4mC,YAAYuF,KAAKrnB,SAAU,CAC7F,IAAIunB,EAAWrsC,EAAG4mC,YAAYuF,KAAKrnB,SACnCjiB,EAAMiiB,SAAWunB,EACjBxpC,EAAMh9B,KAAOm6B,EAAG4mC,YAAYuF,KAC5BnsC,EAAG4mC,YAAYuF,KAAKrnB,SAAWjiB,EAC3BwpC,IACAA,EAASxmE,KAAOg9B,EAExB,MACQniC,KAAKurE,OACLvrE,KAAKurE,KAAKnnB,SAAWjiB,GAEzBA,EAAMh9B,KAAOnF,KAAKurE,KAClBvrE,KAAKurE,KAAOppC,EAEG,OAAfA,EAAMh9B,OACNnF,KAAK4rE,KAAOzpC,GAEhBniC,KAAKtH,QACT,EACA4oC,EAAOuqC,WAAa,SAAoBvsC,GACpC,IAAIp6B,EAAUo6B,EAAGmsC,KACZzrE,KAAKurE,OAGLrmE,EAAQk/C,UAQTl/C,EAAQk/C,SAASj/C,KAAOD,EAAQC,KAC5BD,EAAQC,KACRD,EAAQC,KAAKi/C,SAAWl/C,EAAQk/C,SAEhCpkD,KAAK4rE,KAAO1mE,EAAQk/C,WAXxBpkD,KAAKurE,KAAOrmE,EAAQC,KAChBnF,KAAKurE,KACLvrE,KAAKurE,KAAKnnB,SAAW,KAErBpkD,KAAK4rE,KAAO,MAUhBtsC,EAAGmsC,aACInsC,EAAGmsC,KAEdzrE,KAAKtH,SACT,EACO4yE,CACX,CA9EqC,GA+EjCQ,GAAU,SAAStqC,EAAIuqC,GACvB,OAAOvqC,EAAK,IAAMuqC,CACtB,EACIC,GAA+B,WAC/B,SAASA,IACL,IAAIjqC,EAAQ/hC,KACZ+8B,EAAgB/8B,KAAM,UAAU,GAChC+8B,EAAgB/8B,KAAM,UAAU,GAChC+8B,EAAgB/8B,KAAM,QAAS,IAC/B+8B,EAAgB/8B,KAAM,aAAc,IACpC+8B,EAAgB/8B,KAAM,eAAgC,IAAIqhC,SAC1DtE,EAAgB/8B,KAAM,UAAW,IACjC+8B,EAAgB/8B,KAAM,aAAc,IACpC+8B,EAAgB/8B,KAAM,WAAY,CAAC,GAiBnC+8B,EAAgB/8B,KAAM,WAA4B,IAAI0qB,KACtDqS,EAAgB/8B,KAAM,WAA4B,IAAI0qB,KACtDqS,EAAgB/8B,KAAM,aAA8B,IAAI0qB,KACxDqS,EAAgB/8B,KAAM,sBAAuC,IAAI0qB,KACjEqS,EAAgB/8B,KAAM,cACtB+8B,EAAgB/8B,KAAM,cACtB+8B,EAAgB/8B,KAAM,iBACtB+8B,EAAgB/8B,KAAM,iBACtB+8B,EAAgB/8B,KAAM,oBACtB+8B,EAAgB/8B,KAAM,oBACtB+8B,EAAgB/8B,KAAM,oBACtB+8B,EAAgB/8B,KAAM,cACtB+8B,EAAgB/8B,KAAM,eACtB+8B,EAAgB/8B,KAAM,mBACtB+8B,EAAgB/8B,KAAM,gBACtB+8B,EAAgB/8B,KAAM,gBACtB+8B,EAAgB/8B,KAAM,kBACtB+8B,EAAgB/8B,KAAM,kBACtB+8B,EAAgB/8B,KAAM,OACtB+8B,EAAgB/8B,KAAM,UACtB+8B,EAAgB/8B,KAAM,iBACtB+8B,EAAgB/8B,KAAM,qBACtB+8B,EAAgB/8B,KAAM,oBACtB+8B,EAAgB/8B,KAAM,iBACtB+8B,EAAgB/8B,KAAM,wBACtB+8B,EAAgB/8B,KAAM,iBACtB+8B,EAAgB/8B,KAAM,mBAAoB,SAASisE,GAC/CA,EAAU7rE,QAAQ2hC,EAAMmqC,iBACxBnqC,EAAM36B,MACV,GACA21B,EAAgB/8B,KAAM,OAAQ,WAC1B,IAAI+hC,EAAMoqC,SAAUpqC,EAAMqqC,OAA1B,CAgFA,IA7EA,IAAIC,EAAO,GACPC,EAA2B,IAAI5hD,IAC/B6hD,EAAU,IAAIjB,GACdkB,EAAY,SAASltC,GAGrB,IAFA,IAAIj/B,EAAKi/B,EACLmtC,GA1iTD,OA2iTGA,GAEFA,GADApsE,EAAKA,GAAMA,EAAG6lE,cACCnkC,EAAM8E,OAAOtF,MAAMlhC,GAEtC,OAAOosE,CACX,EACIC,EAAU,SAASptC,GACnB,IAAI2O,EAASlmC,GAAiBu3B,GAC9B,GAAK2O,GAAWk8B,GAAM7qC,GAAtB,CAGA,IAAIsI,GAAc,EAClB,GAAItI,EAAGE,WAAajC,KAAKyQ,UAAW,CAChC,IAAI2+B,EAAY1+B,EAAOnW,QACvB,GAAkB,aAAd60C,EACA,OACqB,UAAdA,GAAyB5qC,EAAM6qC,SAASjiD,IAAIsjB,KACnDrG,GAAc,EAEtB,CACA,IAAImkC,EAAWrsC,EAAauO,GAAUlM,EAAM8E,OAAOtF,MAAMyoC,GAAc1qC,IAAOyC,EAAM8E,OAAOtF,MAAM0M,GAC7Fw+B,EAASD,EAAUltC,GACvB,IAAkB,IAAdysC,IAA+B,IAAZU,EACnB,OAAOF,EAAQf,QAAQlsC,GAE3B,IAAI0Q,EAAKlB,GAAoBxP,EAAI,CAC7BuF,IAAK9C,EAAM8C,IACXgC,OAAQ9E,EAAM8E,OACdC,WAAY/E,EAAM+E,WAClBC,cAAehF,EAAMgF,cACrBX,cAAerE,EAAMqE,cACrBC,iBAAkBtE,EAAMsE,iBACxB2I,WAAW,EACXtH,mBAAmB,EACnBT,iBAAkBlF,EAAMkF,iBACxBxE,iBAAkBV,EAAMU,iBACxB0E,WAAYpF,EAAMoF,WAClBzE,YAAaX,EAAMW,YACnBwM,eAAgBnN,EAAMmN,eACtB7H,eAAgBtF,EAAMsF,eACtBE,aAAcxF,EAAMwF,aACpBD,aAAcvF,EAAMuF,aACpB+H,YAAa,SAASw9B,GACd1D,GAAmB0D,EAAU9qC,EAAM8E,SACnC9E,EAAM+qC,cAAcC,UAAUF,GAE9BxD,GAAuBwD,EAAU9qC,EAAM8E,SACvC9E,EAAMirC,kBAAkBC,iBAAiBJ,GAEzCvD,GAAchqC,IACdyC,EAAMmrC,iBAAiBC,cAAcplE,GAAiBu3B,GAAKyC,EAAM8C,IAEzE,EACAyK,aAAc,SAAS89B,EAAQC,GAC3BtrC,EAAM+qC,cAAcQ,aAAaF,EAAQC,GACzCtrC,EAAMmrC,iBAAiBK,oBAAoBH,EAC/C,EACA39B,iBAAkB,SAASsC,EAAMs7B,GAC7BtrC,EAAMirC,kBAAkBQ,kBAAkBz7B,EAAMs7B,EACpD,EACAzlC,YAAaA,IAEboI,IACAq8B,EAAKvnE,KAAK,CACNinE,SAAUA,EACVU,OAAQA,EACR1vB,KAAM/M,IAEVs8B,EAASnxD,IAAI60B,EAAGxO,IA1DpB,CA4DJ,EACMO,EAAM0rC,WAAW/0E,QACnBqpC,EAAM8E,OAAO/E,kBAAkBC,EAAM0rC,WAAW7oE,SAEpD,IAAI,IAAsEm/B,EAAlEC,EAAYrI,EAAqCoG,EAAM2rC,YAAoB3pC,EAAQC,KAAavmB,MAAM,CAC1G,IAAI6hB,EAAKyE,EAAM17B,MACXslE,GAAgB5rC,EAAM6rC,oBAAqBtuC,EAAIyC,EAAM8E,UAAY9E,EAAM2rC,SAAS/iD,IAAI5iB,GAAiBu3B,KAGzGotC,EAAQptC,EACZ,CACA,IAAI,IAAuE+R,EAAnEC,EAAa3V,EAAqCoG,EAAM6qC,YAAqBv7B,EAASC,KAAc7zB,MAAM,CAC9G,IAAIowD,EAAMx8B,EAAOhpC,MACZylE,GAAgB/rC,EAAMgsC,WAAYF,IAASF,GAAgB5rC,EAAM6rC,oBAAqBC,EAAK9rC,EAAM8E,QAE3FinC,GAAgB/rC,EAAM2rC,SAAUG,GACvCnB,EAAQmB,GAER9rC,EAAMgsC,WAAW5yD,IAAI0yD,GAJrBnB,EAAQmB,EAMhB,CAEA,IADA,IAAIG,EAAY,KACVzB,EAAQ7zE,QAAO,CACjB,IAAIypC,EAAQ,KACZ,GAAI6rC,EAAW,CACX,IAAIjC,EAAWhqC,EAAM8E,OAAOtF,MAAMx5B,GAAiBimE,EAAU3lE,QACzDokE,EAASD,EAAUwB,EAAU3lE,QACf,IAAd0jE,IAA+B,IAAZU,IACnBtqC,EAAQ6rC,EAEhB,CACA,IAAK7rC,EAED,IADA,IAAI8rC,EAAW1B,EAAQX,KACjBqC,GAAS,CACX,IAAIlI,EAAQkI,EAEZ,GADAA,EAAWA,EAAS7pB,SAChB2hB,EAAO,CACP,IAAImI,EAAYnsC,EAAM8E,OAAOtF,MAAMx5B,GAAiBg+D,EAAM19D,QAE1D,IAAiB,IADHmkE,EAAUzG,EAAM19D,OACV,SACf,IAAmB,IAAf6lE,EAAkB,CACvB/rC,EAAQ4jC,EACR,KACJ,CACI,IAAIoI,EAAgBpI,EAAM19D,MACtB4lC,EAASlmC,GAAiBomE,GAC9B,GAAIlgC,GAAUA,EAAOzO,WAAajC,KAAK2sC,uBAAwB,CAC3D,IAAID,EAAaliE,GAAWkmC,GAE5B,IAAmB,IADHlM,EAAM8E,OAAOtF,MAAM0oC,GACb,CAClB9nC,EAAQ4jC,EACR,KACJ,CACJ,CAER,CACJ,CAEJ,IAAK5jC,EAAO,CACR,KAAMoqC,EAAQhB,MACVgB,EAAQV,WAAWU,EAAQhB,KAAKljE,OAEpC,KACJ,CACA2lE,EAAY7rC,EAAMiiB,SAClBmoB,EAAQV,WAAW1pC,EAAM95B,OACzBqkE,EAAQvqC,EAAM95B,MAClB,CACA,IAAI+lE,EAAU,CACVC,MAAOtsC,EAAMssC,MAAMliE,IAAI,SAASkX,GAC5B,IAAIic,EAAKjc,EAAK05B,KACV9O,EAASlmC,GAAiBu3B,GAI9B,OAHI2O,GAA6B,aAAnBA,EAAOnW,SACjBiK,EAAMusC,yBAAyBrgC,GAE5B,CACHzM,GAAIO,EAAM8E,OAAOtF,MAAMjC,GACvBj3B,MAAOgb,EAAKhb,MAEpB,GAAG2D,OAAO,SAASqX,GACf,OAAQipD,EAAS3hD,IAAItH,EAAKme,GAC9B,GAAGx1B,OAAO,SAASqX,GACf,OAAO0e,EAAM8E,OAAOlc,IAAItH,EAAKme,GACjC,GACAqH,WAAY9G,EAAM8G,WAAW18B,IAAI,SAASoiE,GACtC,IAAI1lC,EAAa0lC,EAAU1lC,WAC3B,GAAgC,iBAArBA,EAAWluB,MAAoB,CACtC,IAAI6zD,EAAYzlE,KAAKE,UAAUslE,EAAUE,WACrCC,EAAiB3lE,KAAKE,UAAUslE,EAAUI,kBAC1CH,EAAU91E,OAASmwC,EAAWluB,MAAMjiB,SAC/B81E,EAAYE,GAAgBr2E,MAAM,QAAQK,SAAWmwC,EAAWluB,MAAMtiB,MAAM,QAAQK,SACrFmwC,EAAWluB,MAAQ4zD,EAAUE,UAGzC,CACA,MAAO,CACHjtC,GAAIO,EAAM8E,OAAOtF,MAAMgtC,EAAUxxB,MACjClU,WAAYA,EAEpB,GAAG78B,OAAO,SAASuiE,GACf,OAAQjC,EAAS3hD,IAAI4jD,EAAU/sC,GACnC,GAAGx1B,OAAO,SAASuiE,GACf,OAAOxsC,EAAM8E,OAAOlc,IAAI4jD,EAAU/sC,GACtC,GACAotC,QAAS7sC,EAAM6sC,QACfvC,KAAMA,IAEL+B,EAAQC,MAAM31E,QAAW01E,EAAQvlC,WAAWnwC,QAAW01E,EAAQQ,QAAQl2E,QAAW01E,EAAQ/B,KAAK3zE,UAGpGqpC,EAAMssC,MAAQ,GACdtsC,EAAM8G,WAAa,GACnB9G,EAAM8sC,aAA+B,IAAIxtC,QACzCU,EAAM6sC,QAAU,GAChB7sC,EAAM6qC,SAA2B,IAAIliD,IACrCqX,EAAM2rC,SAA2B,IAAIhjD,IACrCqX,EAAMgsC,WAA6B,IAAIrjD,IACvCqX,EAAM6rC,oBAAsC,IAAIljD,IAChDqX,EAAM+sC,SAAW,CAAC,EAClB/sC,EAAMgtC,WAAWX,GApMjB,CAqMJ,GACArxC,EAAgB/8B,KAAM,2BAA4B,SAASgvE,GACvD,IAAIC,EAAOltC,EAAM8sC,aAAarqE,IAAIwqE,GAC7BC,IACDA,EAAO,CACHlyB,KAAMiyB,EACNnmC,WAAY,CAAC,EACb4lC,UAAW,CAAC,EACZE,iBAAkB,CAAC,GAEvB5sC,EAAM8G,WAAW/jC,KAAKmqE,GACtBltC,EAAM8sC,aAAahqE,IAAImqE,EAAUC,IAErC,IAAI5mE,EAAQ5O,MAAM4N,KAAKU,GAAiBinE,GAAW,SAASE,GACxD,OAAOnnE,GAAkBmnE,IAAO,EACpC,GAAG/mE,KAAK,IACR8mE,EAAKpmC,WAAWxgC,MAAQi6B,EAAe,CACnCE,QAASwsC,EACTvsC,iBAAkBV,EAAMU,iBACxB3K,QAASk3C,EAASl3C,QAClBp8B,KAAMonC,EAAaksC,GACnB3mE,MAAOA,EACPq6B,YAAaX,EAAMW,aAE3B,GACA3F,EAAgB/8B,KAAM,kBAAmB,SAAS0I,GAC9C,IAAIogE,GAAUpgE,EAAErF,OAAQ0+B,EAAM8E,OAAQ9E,EAAMmN,gBAG5C,OAAOxmC,EAAEhN,MACL,IAAK,gBAEG,IAAI2M,EAAQN,GAAkBW,EAAErF,QAC3BwlE,GAAUngE,EAAErF,OAAQ0+B,EAAM+E,WAAY/E,EAAMgF,eAAe,IAAU1+B,IAAUK,EAAEouB,UAClFiL,EAAMssC,MAAMvpE,KAAK,CACbuD,MAAO89B,GAAgBz9B,EAAErF,OAAQ0+B,EAAMqE,cAAerE,EAAMsE,kBAAkB,IAASh+B,EAAQ05B,EAAMoF,WAAapF,EAAMoF,WAAW9+B,EAAOugE,GAAqBlgE,EAAErF,SAAWgF,EAAM/M,QAAQ,QAAS,KAAO+M,EAC1M00C,KAAMr0C,EAAErF,SAGhB,MAER,IAAK,aAEG,IAAIA,EAASqF,EAAErF,OACX8rE,EAAgBzmE,EAAEymE,cAClBC,EAAS1mE,EAAErF,OAAOuzB,aAAau4C,GACnC,GAAsB,UAAlBA,EAA2B,CAC3B,IAAIzzE,EAAOonC,EAAaz/B,GACxB+rE,EAAS9sC,EAAe,CACpBE,QAASn/B,EACTo/B,iBAAkBV,EAAMU,iBACxB3K,QAASz0B,EAAOy0B,QAChBp8B,KAAMA,EACN2M,MAAO+mE,EACP1sC,YAAaX,EAAMW,aAE3B,CACA,GAAImmC,GAAUngE,EAAErF,OAAQ0+B,EAAM+E,WAAY/E,EAAMgF,eAAe,IAAUqoC,IAAW1mE,EAAEouB,SAClF,OAEJ,IAAIm4C,EAAOltC,EAAM8sC,aAAarqE,IAAIkE,EAAErF,QACpC,GAAuB,WAAnBA,EAAOy0B,SAA0C,QAAlBq3C,IAA4BptC,EAAMyF,gBAAgB4nC,GAAS,CAC1F,GAAK/rE,EAAOqqC,gBAGR,OAFAyhC,EAAgB,QAIxB,CAcA,GAbKF,IACDA,EAAO,CACHlyB,KAAMr0C,EAAErF,OACRwlC,WAAY,CAAC,EACb4lC,UAAW,CAAC,EACZE,iBAAkB,CAAC,GAEvB5sC,EAAM8G,WAAW/jC,KAAKmqE,GACtBltC,EAAM8sC,aAAahqE,IAAI6D,EAAErF,OAAQ4rE,IAEf,SAAlBE,GAA+C,UAAnB9rE,EAAOy0B,SAA4D,cAApCpvB,EAAEouB,UAAY,IAAI1pB,eAC7E/J,EAAO6hC,aAAa,sBAAuB,SAE1CW,GAAgBxiC,EAAOy0B,QAASq3C,GAEjC,GADAF,EAAKpmC,WAAWsmC,GAAiBhqC,GAAmBpD,EAAM8C,IAAKz3B,EAAY/J,EAAOy0B,SAAU1qB,EAAY+hE,GAAgBC,GAClG,UAAlBD,EAA2B,CAC3B,IAAKptC,EAAMstC,cACP,IACIttC,EAAMstC,cAAgBrxE,SAASsxE,eAAeC,oBAClD,CAAE,MAAO7oC,GACL3E,EAAMstC,cAAgBttC,EAAM8C,GAChC,CAEJ,IAAI2qC,EAAMztC,EAAMstC,cAAc9zE,cAAc,QACxCmN,EAAEouB,UACF04C,EAAItqC,aAAa,QAASx8B,EAAEouB,UAEhC,IAAI,IAAgFiN,EAA5EC,EAAYrI,EAAqCliC,MAAM4N,KAAKhE,EAAOsX,UAAkBopB,EAAQC,KAAavmB,MAAM,CACpH,IAAIgyD,EAAQ1rC,EAAM17B,MACdtF,EAAWM,EAAOsX,MAAM+0D,iBAAiBD,GACzCE,EAActsE,EAAOsX,MAAMi1D,oBAAoBH,GAC/C1sE,IAAaysE,EAAI70D,MAAM+0D,iBAAiBD,IAAUE,IAAgBH,EAAI70D,MAAMi1D,oBAAoBH,GAE5FR,EAAKR,UAAUgB,GADC,KAAhBE,EACwB5sE,EAEA,CACpBA,EACA4sE,GAIRV,EAAKN,iBAAiBc,GAAS,CAC3B1sE,EACA4sE,EAGZ,CACA,IAAI,IAA8Et+B,EAA1EC,EAAa3V,EAAqCliC,MAAM4N,KAAKmoE,EAAI70D,UAAmB02B,EAASC,KAAc7zB,MAAM,CACrH,IAAIoyD,EAASx+B,EAAOhpC,MAC0B,KAA1ChF,EAAOsX,MAAM+0D,iBAAiBG,KAC9BZ,EAAKR,UAAUoB,IAAU,EAEjC,CACJ,KAA6B,SAAlBV,GAA+C,WAAnB9rE,EAAOy0B,UACtCz0B,EAAOojC,QAAQ,gBACfwoC,EAAKpmC,WAAyB,aAAI,QAElComC,EAAKpmC,WAAyB,aAAI,aAI9C,MAER,IAAK,YAEG,GAAIggC,GAAUngE,EAAErF,OAAQ0+B,EAAM+E,WAAY/E,EAAMgF,eAAe,GAAO,OACtE,GAAyB,aAArBr+B,EAAErF,OAAOy0B,QAET,YADAiK,EAAMusC,yBAAyB5lE,EAAErF,QAGrCqF,EAAEonE,WAAW1vE,QAAQ,SAASk/B,GAC1B,OAAOyC,EAAMguC,QAAQzwC,EAAI52B,EAAErF,OAC/B,GACAqF,EAAEsnE,aAAa5vE,QAAQ,SAASk/B,GAC5B,IAAI2wC,EAASluC,EAAM8E,OAAOtF,MAAMjC,GAC5BysC,EAAWrsC,EAAah3B,EAAErF,QAAU0+B,EAAM8E,OAAOtF,MAAMx5B,GAAWW,EAAErF,SAAW0+B,EAAM8E,OAAOtF,MAAM74B,EAAErF,QACpGwlE,GAAUngE,EAAErF,OAAQ0+B,EAAM+E,WAAY/E,EAAMgF,eAAe,IAAU+hC,GAAUxpC,EAAIyC,EAAM8E,OAAQ9E,EAAMmN,kBAhqBvI,SAAsB5P,EAAIsH,GACtB,OAA8B,IAAvBA,EAAQrF,MAAMjC,EACzB,CA8pB2J4wC,CAAa5wC,EAAIyC,EAAM8E,UAGlJ9E,EAAM6qC,SAASjiD,IAAI2U,IACnB6wC,GAAWpuC,EAAM6qC,SAAUttC,GAC3ByC,EAAMgsC,WAAW5yD,IAAImkB,IACdyC,EAAM6qC,SAASjiD,IAAIjiB,EAAErF,UAAuB,IAAZ4sE,GAClCjH,GAAkBtgE,EAAErF,OAAQ0+B,EAAM8E,UAClC9E,EAAM2rC,SAAS/iD,IAAI2U,IAAOyC,EAAM+sC,SAAShD,GAAQmE,EAAQlE,IAC9DoE,GAAWpuC,EAAM2rC,SAAUpuC,IAE3ByC,EAAM6sC,QAAQ9pE,KAAK,CACfinE,SAAUA,EACVvqC,GAAIyuC,EACJz+B,YAAU9R,EAAah3B,EAAErF,UAAWu8B,EAAkBl3B,EAAErF,eAAiB,IA0G7G,SAAwBi8B,EAAIvlB,GAIxB,IAHA,IAAI2C,EAAQ,CACR4iB,GAEE5iB,EAAMhkB,QAAO,CACf,IAAIyM,EAAOuX,EAAM9J,MACbmH,EAAM4Q,IAAIxlB,KACd4U,EAAMoB,IAAIhW,GACV4C,GAAiB5C,GAAM/E,QAAQ,SAASgwE,GACpC,OAAO1zD,EAAM5X,KAAKsrE,EACtB,GACJ,CAEJ,CArHgCC,CAAe/wC,EAAIyC,EAAM6rC,uBAE7B7rC,EAAM0rC,WAAW3oE,KAAKw6B,GAC1B,GAIhB,GAGEvC,EAAgB/8B,KAAM,UAAW,SAASs/B,EAAIj8B,GAC5C,IAAI0+B,EAAMuuC,qBAAqBC,cAAcjxC,EAAIyC,KAC7CA,EAAM6qC,SAASjiD,IAAI2U,KAAOyC,EAAM2rC,SAAS/iD,IAAI2U,GAAjD,CACA,GAAIyC,EAAM8E,OAAO3E,QAAQ5C,GAAK,CAC1B,GAAIwpC,GAAUxpC,EAAIyC,EAAM8E,OAAQ9E,EAAMmN,gBAClC,OAEJnN,EAAM2rC,SAASvyD,IAAImkB,GACnB,IAAIkxC,EAAW,KACXntE,GAAU0+B,EAAM8E,OAAO3E,QAAQ7+B,KAC/BmtE,EAAWzuC,EAAM8E,OAAOtF,MAAMl+B,IAE9BmtE,IAA0B,IAAdA,IACZzuC,EAAM+sC,SAAShD,GAAQ/pC,EAAM8E,OAAOtF,MAAMjC,GAAKkxC,KAAa,EAEpE,MACIzuC,EAAM6qC,SAASzxD,IAAImkB,GACnByC,EAAMgsC,WAAWppE,OAAO26B,GAEvBupC,GAAUvpC,EAAIyC,EAAM+E,WAAY/E,EAAMgF,eAAe,KACtDh/B,GAAiBu3B,GAAIl/B,QAAQ,SAASqwE,GAClC,OAAO1uC,EAAMguC,QAAQU,EACzB,GACInH,GAAchqC,IACdv3B,GAAiBA,GAAiBu3B,IAAKl/B,QAAQ,SAASqwE,GACpD1uC,EAAMuuC,qBAAqBn1D,IAAIs1D,EAAQ1uC,GACvCA,EAAMguC,QAAQU,EAAQnxC,EAC1B,GAzBoD,CA4BhE,EACJ,CACA,IAAIgC,EAAS0qC,EAAetpE,UAsD5B,OArDA4+B,EAAOrgC,KAAO,SAAcE,GACxB,IAAI4gC,EAAQ/hC,KACZ,CACI,aACA,aACA,gBACA,gBACA,mBACA,mBACA,mBACA,aACA,cACA,kBACA,eACA,eACA,iBACA,iBACA,MACA,SACA,gBACA,oBACA,mBACA,gBACA,wBACFI,QAAQ,SAAS8B,GACf6/B,EAAM7/B,GAAOf,EAAQe,EACzB,EACJ,EACAo/B,EAAOmT,OAAS,WACZz0C,KAAKmsE,QAAS,EACdnsE,KAAK0wE,cAAcj8B,QACvB,EACAnT,EAAOqvC,SAAW,WACd3wE,KAAKmsE,QAAS,EACdnsE,KAAK0wE,cAAcC,WACnB3wE,KAAKoH,MACT,EACAk6B,EAAOsvC,SAAW,WACd,OAAO5wE,KAAKmsE,MAChB,EACA7qC,EAAOuvC,KAAO,WACV7wE,KAAKosE,QAAS,EACdpsE,KAAK0wE,cAAcG,MACvB,EACAvvC,EAAOwvC,OAAS,WACZ9wE,KAAKosE,QAAS,EACdpsE,KAAK0wE,cAAcI,SACnB9wE,KAAKoH,MACT,EACAk6B,EAAO/vB,MAAQ,WACXvR,KAAKktE,iBAAiB37D,QACtBvR,KAAK0wE,cAAcn/D,OACvB,EACOy6D,CACX,CAlgBmC,GAmgBnC,SAASmE,GAAWY,EAASzxC,GACzByxC,EAAQpsE,OAAO26B,GACfv3B,GAAiBu3B,GAAIl/B,QAAQ,SAASqwE,GAClC,OAAON,GAAWY,EAASN,EAC/B,EACJ,CAeA,SAAS9C,GAAgBiB,EAAStvC,EAAIsH,GAClC,OAAqB,IAAjBgoC,EAAQnuB,MAGhB,SAA0BmuB,EAAStvC,GAC/B,IAAI6C,EAAQp6B,GAAiBu3B,GAC7B,QAAK6C,GACEysC,EAAQjkD,IAAIwX,EACvB,CANW6uC,CAAiBpC,EAAStvC,EACrC,CAMA,SAASwuC,GAAgBjpE,EAAKy6B,GAC1B,OAAiB,IAAbz6B,EAAI47C,MACDwwB,GAAiBpsE,EAAKy6B,EACjC,CACA,SAAS2xC,GAAiBpsE,EAAKy6B,GAC3B,IAAI2O,EAASlmC,GAAiBu3B,GAC9B,QAAK2O,MAGDppC,EAAI8lB,IAAIsjB,IAGLgjC,GAAiBpsE,EAAKopC,GACjC,CAQA,IAAIijC,GAAkB,SAAS1pB,GAC3B,OAAK6jB,GAGc,WACf,IAAI,IAAInvB,EAAOlvC,UAAUtU,OAAQijB,EAAO,IAAIliB,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5ExgC,EAAKwgC,GAAQnvC,UAAUmvC,GAE3B,IACI,OAAOqL,EAAGzhD,WAAM,EAAQ,GAAGwC,OAAOoT,GACtC,CAAE,MAAO9V,GACL,GAAIwlE,KAAwC,IAAxBA,GAAaxlE,GAC7B,OAEJ,MAAMA,CACV,CACJ,EAdW2hD,CAgBf,EACI2pB,GAAkB,GACtB,SAASC,GAAe1zE,GACpB,IACI,GAAI,iBAAkBA,EAAO,CACzB,IAAI4E,EAAO5E,EAAM2zE,eACjB,GAAI/uE,EAAK5J,OACL,OAAO4J,EAAK,EAEpB,MAAO,GAAI,SAAU5E,GAASA,EAAM4E,KAAK5J,OACrC,OAAOgF,EAAM4E,KAAK,EAE1B,CAAE,MAAOU,GAAI,CACb,OAAOtF,GAASA,EAAM2F,MAC1B,CACA,SAASiuE,GAAqBnwE,EAASowE,GACnC,IAAIC,EAAiB,IAAIxF,GACzBmF,GAAgBrsE,KAAK0sE,GACrBA,EAAevwE,KAAKE,GACpB,IAAIoG,EAAW,IAAKq/D,KAAL,CAA6BsK,GAAgBM,EAAeC,iBAAiBvzD,KAAKszD,KASjG,OARAjqE,EAASmqE,QAAQH,EAAQ,CACrB1oC,YAAY,EACZ8oC,mBAAmB,EACnBC,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,IAENxqE,CACX,CAqIA,SAASyqE,GAAmBzvC,GACxB,IAAI0vC,EAAW1vC,EAAM0vC,SAAUptC,EAAMtC,EAAMsC,IAAK+B,EAAUrE,EAAMsE,OAAQC,EAAavE,EAAMuE,WAAYC,EAAgBxE,EAAMwE,cAAemrC,EAAW3vC,EAAM2vC,SAsB7J,OAAOnrE,GAAG,SArBWmqE,GAAgB5J,GAAS4J,GAAgB,SAASiB,GACnE,IAAI9uE,EAAS+tE,GAAee,GAC5B,GAAK9uE,IAAUwlE,GAAUxlE,EAAQyjC,EAAYC,GAAe,GAA5D,CAGA,IAAIvF,EAAKoF,EAAQrF,MAAMl+B,GACvB,GAAIA,IAAWwhC,GAAOA,EAAIutC,YAAa,CACnC,IAAIC,EAAgBtK,GAAgBljC,EAAIutC,aACxCH,EAAS,CACLzwC,GAAIA,EACJi4B,EAAG4Y,EAAcr3C,KACjBmB,EAAGk2C,EAAchK,KAEzB,MACI4J,EAAS,CACLzwC,GAAIA,EACJi4B,EAAGp2D,EAAO4pC,WACV9Q,EAAG94B,EAAO8pC,WAblB,CAgBJ,GAAI+kC,EAASI,QAAU,MACaztC,EACxC,CAoBA,IAAI0tC,GAAa,CACb,QACA,WACA,UAEAC,GAAoC,IAAInxC,QAkI5C,SAASoxC,GAA0BnyC,GAc/B,OAZA,SAAiBoyC,EAAWttC,GACxB,GAAIutC,GAAiB,oBAAsB53C,EAAY23C,EAAUE,WAAYC,kBAAoBF,GAAiB,iBAAmB53C,EAAY23C,EAAUE,WAAYE,eAAiBH,GAAiB,oBAAsB53C,EAAY23C,EAAUE,WAAYG,kBAAoBJ,GAAiB,qBAAuB53C,EAAY23C,EAAUE,WAAYI,kBAAmB,CAC9W,IACI98B,EADSz8C,MAAM4N,KAAKqrE,EAAUE,WAAW3yC,UACzB99B,QAAQuwE,GAC5BttC,EAAIrkB,QAAQm1B,EAChB,MAAO,GAAIw8B,EAAUO,iBAAkB,CACnC,IACIC,EADUz5E,MAAM4N,KAAKqrE,EAAUO,iBAAiBhzC,UAC9B99B,QAAQuwE,GAC9BttC,EAAIrkB,QAAQmyD,EAChB,CACA,OAAO9tC,CACX,CACO+tC,CAAQ7yC,EAbC,GAcpB,CACA,SAAS8yC,GAAgBhqC,EAAOxC,EAASysC,GACrC,IAAI7xC,EAAI8xC,EACR,OAAKlqC,GACDA,EAAMjJ,UAAWqB,EAAKoF,EAAQrF,MAAM6H,EAAMjJ,WACzCmzC,EAAUD,EAAY9xC,MAAM6H,GAC1B,CACHkqC,QAASA,EACT9xC,GAAIA,IALW,CAAC,CAOxB,CA4KA,SAAS+xC,GAA8BhxC,EAAOixC,GAC1C,IACIn1C,EAAKC,EAAI0pC,EACTyL,EAFA7sC,EAAUrE,EAAMsE,OAAQmmC,EAAoBzqC,EAAMyqC,kBAGlByG,EAAb,cAAnBD,EAAMpK,SAAmCxiC,EAAQrF,MAAMiyC,GAC7C5sC,EAAQrF,MAAMx5B,GAAWyrE,IACvC,IAAIE,EAAiC,cAAnBF,EAAMpK,SAAwD,OAA5B/qC,EAAMm1C,EAAMpB,kBAAuB,EAAS/zC,EAAI6J,SAAkF,OAAtE8/B,EAAmC,OAA7B1pC,EAAKk1C,EAAMpzC,oBAAyB,EAAS9B,EAAG8zC,kBAAuB,EAASpK,EAAGxqC,WACrMm2C,GAA6C,MAAfD,OAAsB,EAASA,EAAYhxE,WAAanC,OAAOg+B,yBAAwC,MAAfm1C,OAAsB,EAASA,EAAYhxE,UAAW,2BAAwB,EACxM,OAAe,OAAX+wE,IAA+B,IAAZA,GAAkBC,GAAgBC,GACzDpzE,OAAOg1B,eAAei+C,EAAO,qBAAsB,CAC/C99C,aAAci+C,EAA2Bj+C,aACzCD,WAAYk+C,EAA2Bl+C,WACvCjxB,IAAK,WACD,IAAIovE,EACJ,OAAiD,OAAzCA,EAAMD,EAA2BnvE,UAAe,EAASovE,EAAIhxE,KAAK5C,KAC9E,EACA6E,IAAK,SAAagvE,GACd,IAAID,EACAt3B,EAAoD,OAAzCs3B,EAAMD,EAA2B9uE,UAAe,EAAS+uE,EAAIhxE,KAAK5C,KAAM6zE,GACvF,GAAe,OAAXJ,IAA+B,IAAZA,EACnB,IACIzG,EAAkB8G,iBAAiBD,EAAQJ,EAC/C,CAAE,MAAO/sC,GAAK,CAElB,OAAO4V,CACX,IAEG40B,GAAgB,WACnB3wE,OAAOg1B,eAAei+C,EAAO,qBAAsB,CAC/C99C,aAAci+C,EAA2Bj+C,aACzCD,WAAYk+C,EAA2Bl+C,WAEvCjxB,IAAKmvE,EAA2BnvE,IAEhCK,IAAK8uE,EAA2B9uE,KAExC,IA5B4F,WAAY,CA6B5G,CAoUA,SAASkvE,GAAcC,EAAIC,QACT,IAAVA,IAAkBA,EAAQ,CAAC,GAC/B,IAKIC,EALAC,EAAgBH,EAAGnvC,IAAIutC,YAC3B,IAAK+B,EACD,OAAO,WAAY,GAzI3B,SAAoBH,EAAIC,GACpB,IAAIlF,EAAaiF,EAAGjF,WAAYqF,EAAcJ,EAAGI,YAAaC,EAAqBL,EAAGK,mBAAoBpC,EAAW+B,EAAG/B,SAAUqC,EAAmBN,EAAGM,iBAAkBC,EAAUP,EAAGO,QAASC,EAAqBR,EAAGQ,mBAAoBC,EAAmBT,EAAGS,iBAAkBC,EAAqBV,EAAGU,mBAAoBC,EAAmBX,EAAGW,iBAAkBC,EAASZ,EAAGY,OAAQC,EAAcb,EAAGa,YAAaC,EAAkBd,EAAGc,gBAC/ad,EAAGjF,WAAa,WACZ,IAAI,IAAI7yB,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMe,WAELD,EAASd,GAAOe,SAASjvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAEtDk1E,EAAWhpE,WAAM,EAAQ,GAAGwC,OAAO1O,GACvC,EACAm6E,EAAGI,YAAc,WACb,IAAI,IAAIl4B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMgB,YAELF,EAASd,GAAOgB,UAAUlvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAEvDu6E,EAAYruE,WAAM,EAAQ,GAAGwC,OAAO1O,GACxC,EACAm6E,EAAGK,mBAAqB,WACpB,IAAI,IAAIn4B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMiB,mBAELH,EAASd,GAAOiB,iBAAiBnvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAE9Dw6E,EAAmBtuE,WAAM,EAAQ,GAAGwC,OAAO1O,GAC/C,EACAm6E,EAAG/B,SAAW,WACV,IAAI,IAAI/1B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAM3B,SAELyC,EAASd,GAAO3B,OAAOvsE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAEpDo4E,EAASlsE,WAAM,EAAQ,GAAGwC,OAAO1O,GACrC,EACAm6E,EAAGM,iBAAmB,WAClB,IAAI,IAAIp4B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMkB,iBAELJ,EAASd,GAAOkB,eAAepvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAE5Dy6E,EAAiBvuE,WAAM,EAAQ,GAAGwC,OAAO1O,GAC7C,EACAm6E,EAAGO,QAAU,WACT,IAAI,IAAIr4B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMp5B,QAELk6B,EAASd,GAAOp5B,MAAM90C,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAEnD06E,EAAQxuE,WAAM,EAAQ,GAAGwC,OAAO1O,GACpC,EACAm6E,EAAGQ,mBAAqB,WACpB,IAAI,IAAIt4B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMmB,kBAELL,EAASd,GAAOmB,gBAAgBrvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAE7D26E,EAAmBzuE,WAAM,EAAQ,GAAGwC,OAAO1O,GAC/C,EACAm6E,EAAGS,iBAAmB,WAClB,IAAI,IAAIv4B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMoB,iBAELN,EAASd,GAAOoB,eAAetvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAE5D46E,EAAiB1uE,WAAM,EAAQ,GAAGwC,OAAO1O,GAC7C,EACAm6E,EAAGU,mBAAqB,WACpB,IAAI,IAAIx4B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMqB,mBAELP,EAASd,GAAOqB,iBAAiBvvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAE9D66E,EAAmB3uE,WAAM,EAAQ,GAAGwC,OAAO1O,GAC/C,EACAm6E,EAAGW,iBAAmB,WAClB,IAAI,IAAIz4B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMsB,iBAELR,EAASd,GAAOsB,eAAexvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAE5D86E,EAAiB5uE,WAAM,EAAQ,GAAGwC,OAAO1O,GAC7C,EACAm6E,EAAGY,OAAS,WACR,IAAI,IAAI14B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMuB,OAELT,EAASd,GAAOuB,KAAKzvE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAElD+6E,EAAO7uE,WAAM,EAAQ,GAAGwC,OAAO1O,GACnC,EACAm6E,EAAGa,YAAc,WACb,IAAI,IAAI34B,EAAOlvC,UAAUtU,OAAQmB,EAAI,IAAIJ,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACzEtiD,EAAEsiD,GAAQnvC,UAAUmvC,GAGpB,IAAI44B,EADJd,EAAMwB,YAELV,EAASd,GAAOwB,UAAU1vE,MAAMgvE,EAAQ,GAAGxsE,OAAO1O,IAEvDg7E,EAAY9uE,WAAM,EAAQ,GAAGwC,OAAO1O,GACxC,EACAm6E,EAAGc,gBAAkB,WACjB,IAAI,IAAI54B,EAAOlvC,UAAUtU,OAAQgtC,EAAK,IAAIjsC,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC1EzW,EAAGyW,GAAQnvC,UAAUmvC,GAGrB,IAAI44B,EADJd,EAAMyB,gBAELX,EAASd,GAAOyB,cAAc3vE,MAAMgvE,EAAQ,GAAGxsE,OAAOm9B,IAE3DovC,EAAgB/uE,WAAM,EAAQ,GAAGwC,OAAOm9B,GAC5C,CACJ,CAOIiwC,CAAW3B,EAAIC,GAEXD,EAAG4B,YACH1B,EAAmB5C,GAAqB0C,EAAIA,EAAGnvC,MAEnD,IAhRkCtC,EAC9BiyC,EAA+C1tC,EAA+BC,EAAqCH,EAAwBsrC,EAA2BrtC,EACtKv6B,EAkBAurE,EA4PAC,EAh3BR,SAA0BvzC,GACtB,IAAI6xC,EAAc7xC,EAAM6xC,YAAalC,EAAW3vC,EAAM2vC,SAAUrtC,EAAMtC,EAAMsC,IAAK+B,EAAUrE,EAAMsE,OACjG,IAA2B,IAAvBqrC,EAAS+C,UACT,OAAO,WAAY,EAEvB,IAGIc,EAHAC,EAA0C,iBAAvB9D,EAAS+C,UAAyB/C,EAAS+C,UAAY,GAC1EgB,EAA0D,iBAA/B/D,EAASgE,kBAAiChE,EAASgE,kBAAoB,IAClGC,EAAY,GAEZC,EAAY9O,GAAS4J,GAAgB,SAAS5tE,GAC9C,IAAI+yE,EAAc5kD,KAAKC,MAAQqkD,EAC/B3B,EAAY+B,EAAUhqE,IAAI,SAAStS,GAE/B,OADAA,EAAEy8E,YAAcD,EACTx8E,CACX,GAAIyJ,GACJ6yE,EAAY,GACZJ,EAAe,IACnB,GAAIE,GACAM,EAAiBrF,GAAgB5J,GAAS4J,GAAgB,SAASiB,GACnE,IAAI9uE,EAAS+tE,GAAee,GACxBjvC,EAAO+lC,GAAoBkJ,GAAOA,EAAIjJ,eAAe,GAAKiJ,EAAKqE,EAAUtzC,EAAKszC,QAASC,EAAUvzC,EAAKuzC,QACrGV,IACDA,EAAejO,MAEnBqO,EAAUrxE,KAAK,CACX20D,EAAG+c,EACHr6C,EAAGs6C,EACHj1C,GAAIoF,EAAQrF,MAAMl+B,GAClBizE,WAAYxO,KAAiBiO,IAEjCK,EAA+B,oBAAdM,WAA6B37C,EAAYo3C,EAAKuE,WAAajM,GAAkBkM,KAAO57C,EAAYo3C,EAAKyE,YAAcnM,GAAkBoM,UAAYpM,GAAkBqM,UACxL,GAAId,EAAW,CACXtO,UAAU,KAEVmO,EAAW,CACX9uE,GAAG,YAAawvE,EAAgB1xC,GAChC99B,GAAG,YAAawvE,EAAgB1xC,GAChC99B,GAAG,OAAQwvE,EAAgB1xC,IAE/B,OAAOqsC,GAAgB,WACnB2E,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,EACJ,CAo0B2BC,CAAiBhD,GACpCiD,EAp0BR,SAAsC10C,GAClC,IAAI8xC,EAAqB9xC,EAAM8xC,mBAAoBxvC,EAAMtC,EAAMsC,IAAK+B,EAAUrE,EAAMsE,OAAQC,EAAavE,EAAMuE,WAAYC,EAAgBxE,EAAMwE,cAAemrC,EAAW3vC,EAAM2vC,SACjL,IAAkC,IAA9BA,EAASgD,iBACT,OAAO,WAAY,EAEvB,IAAIgC,GAA2C,IAA9BhF,EAASgD,uBAA2D,IAA9BhD,EAASgD,iBAA8B,CAAC,EAAIhD,EAASgD,iBACxGW,EAAW,GACXsB,EAAqB,KA0EzB,OAlBA52E,OAAOC,KAAKmqE,IAAmB3+D,OAAO,SAAS9J,GAC3C,OAAOjI,OAAO4hB,MAAM5hB,OAAOiI,MAAUA,EAAIk1E,SAAS,eAAoC,IAApBF,EAAWh1E,EACjF,GAAG9B,QAAQ,SAASi3E,GAChB,IAAIC,EAAYlqE,EAAYiqE,GACxB/sE,EA3DS,SAAS+sE,GACtB,OAAO,SAAS35E,GACZ,IAAI2F,EAAS+tE,GAAe1zE,GAC5B,IAAImrE,GAAUxlE,EAAQyjC,EAAYC,GAAe,GAAjD,CAGA,IAAIwwC,EAAc,KACdC,EAAeH,EACnB,GAAI,gBAAiB35E,EAAO,CACxB,OAAOA,EAAM65E,aACT,IAAK,QACDA,EAAc1M,GAAa4M,MAC3B,MACJ,IAAK,QACDF,EAAc1M,GAAa6M,MAC3B,MACJ,IAAK,MACDH,EAAc1M,GAAa8M,IAG/BJ,IAAgB1M,GAAa6M,MACzB/M,GAAkB0M,KAAc1M,GAAkBiN,UAClDJ,EAAe,aACR7M,GAAkB0M,KAAc1M,GAAkBkN,UACzDL,EAAe,YAEI3M,GAAa8M,GAC5C,MAAW1O,GAAoBvrE,KAC3B65E,EAAc1M,GAAa6M,OAEX,OAAhBH,GACAJ,EAAqBI,GACjBC,EAAa5zD,WAAW,UAAY2zD,IAAgB1M,GAAa6M,OAASF,EAAa5zD,WAAW,UAAY2zD,IAAgB1M,GAAa4M,SAC3IF,EAAc,OAEX5M,GAAkB0M,KAAc1M,GAAkBmN,QACzDP,EAAcJ,EACdA,EAAqB,MAEzB,IAAIzwC,EAAKuiC,GAAoBvrE,GAASA,EAAMwrE,eAAe,GAAKxrE,EAChE,GAAKgpC,EAAL,CAGA,IAAIlF,EAAKoF,EAAQrF,MAAMl+B,GACnBmzE,EAAU9vC,EAAG8vC,QAASC,EAAU/vC,EAAG+vC,QACvCvF,GAAgBmD,EAAhBnD,CAAoC52C,EAAS,CACzC5+B,KAAMivE,GAAkB6M,GACxBh2C,GAAIA,EACJi4B,EAAG+c,EACHr6C,EAAGs6C,GACY,OAAhBc,GAAwB,CACvBA,YAAaA,IATjB,CArCA,CAgDJ,CACJ,CAKkBQ,CAAWV,GACzB,GAAIx7E,OAAOm8E,aACP,OAAOrN,GAAkB0M,IACrB,KAAK1M,GAAkBiN,UACvB,KAAKjN,GAAkBkN,QACnBP,EAAYA,EAAUh8E,QAAQ,QAAS,WACvC,MACJ,KAAKqvE,GAAkBsN,WACvB,KAAKtN,GAAkBuN,SACnB,OAGZrC,EAAS/wE,KAAKiC,GAAGuwE,EAAWhtE,EAASu6B,GACzC,GACOqsC,GAAgB,WACnB2E,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,EACJ,CA8uBkCoB,CAA6BnE,GACvDoE,EAAgBpG,GAAmBgC,GACnCqE,EAttBR,SAAoC91C,EAAO+1C,GACvC,IAAIhE,EAAmB/xC,EAAM+xC,iBACzBn8C,EAAMmgD,EAAOngD,IACbogD,GAAS,EACTC,GAAS,EAab,OAAOzxE,GAAG,SAZYmqE,GAAgB5J,GAAS4J,GAAgB,WAC3D,IAAIpqD,EAASyhD,KACT1iD,EAAQ6iD,KACR6P,IAAUzxD,GAAU0xD,IAAU3yD,IAC9ByuD,EAAiB,CACbzuD,MAAO5rB,OAAO4rB,GACdiB,OAAQ7sB,OAAO6sB,KAEnByxD,EAAQzxD,EACR0xD,EAAQ3yD,EAEhB,GAAI,MACiCsS,EACzC,CAosBgCsgD,CAA2BzE,EAAI,CACvD77C,IAAKg8C,IAELuE,EAhsBR,SAA2Bn2C,GACvB,IAAIgyC,EAAUhyC,EAAMgyC,QAAS1vC,EAAMtC,EAAMsC,IAAK+B,EAAUrE,EAAMsE,OAAQC,EAAavE,EAAMuE,WAAYC,EAAgBxE,EAAMwE,cAAe4xC,EAAcp2C,EAAMo2C,YAAaC,EAAiBr2C,EAAMq2C,eAAgBn2C,EAAmBF,EAAME,iBAAkBC,EAAcH,EAAMG,YAAawvC,EAAW3vC,EAAM2vC,SAAU2G,EAAuBt2C,EAAMs2C,qBACtV,SAASC,EAAap7E,GAClB,IAAI2F,EAAS+tE,GAAe1zE,GACxBq7E,EAAgBr7E,EAAMs7E,UACtBlhD,EAAUz0B,GAAUA,EAAOy0B,QAI/B,GAHIz0B,GAAsB,WAAZy0B,IACVz0B,EAAS0E,GAAoB1E,IAE5BA,GAAWy0B,KAAWy6C,GAAWpwE,QAAQ21B,GAAW,KAAK+wC,GAAUxlE,EAAQyjC,EAAYC,GAAe,MAGvG1jC,EAAO6iC,UAAUM,SAASmyC,IAAgBC,GAAkBv1E,EAAOojC,QAAQmyC,IAA/E,CAGA,IAAIv1D,EAAOhgB,EAAOgF,MACd4wE,GAAY,EACZv9E,EAAOonC,EAAaz/B,IAAW,GACtB,UAAT3H,GAA6B,aAATA,EACpBu9E,EAAY51E,EAAOknC,SACZ9H,EAAiB3K,EAAQ1qB,gBAAkBq1B,EAAiB/mC,MACnE2nB,EAAOif,EAAe,CAClBE,QAASn/B,EACTo/B,iBAAkBA,EAClB3K,QAASA,EACTp8B,KAAMA,EACN2M,MAAOgb,EACPqf,YAAaA,KAGrBw2C,EAAY71E,EAAQw1E,EAAuB,CACvCx1D,KAAMA,EACN41D,UAAWA,EACXF,cAAeA,GACf,CACA11D,KAAMA,EACN41D,UAAWA,IAEf,IAAI56E,EAAOgF,EAAOhF,KACL,UAAT3C,GAAoB2C,GAAQ46E,GAC5Bp0C,EAAIs0C,iBAAiB,6BAA+B96E,EAAO,MAAM+B,QAAQ,SAASkmC,GAC9E,GAAIA,IAAOjjC,EAAQ,CACf,IAAI+1E,EAAQ9yC,EAAGj+B,MACf6wE,EAAY5yC,EAAIuyC,EAAuB,CACnCx1D,KAAM+1D,EACNH,WAAYA,EACZF,eAAe,GACf,CACA11D,KAAM+1D,EACNH,WAAYA,GAEpB,CACJ,EAtCJ,CAwCJ,CACA,SAASC,EAAY71E,EAAQ/K,GACzB,IAAI+gF,EAAiB7G,GAAkBhuE,IAAInB,GAC3C,IAAKg2E,GAAkBA,EAAeh2D,OAAS/qB,EAAG+qB,MAAQg2D,EAAeJ,YAAc3gF,EAAG2gF,UAAW,CACjGzG,GAAkB3tE,IAAIxB,EAAQ/K,GAC9B,IAAIkpC,EAAKoF,EAAQrF,MAAMl+B,GACvB6tE,GAAgBqD,EAAhBrD,CAAyB52C,EAAS,CAAC,EAAGhiC,EAAI,CACtCkpC,GAAIA,IAEZ,CACJ,CACA,IAMIq0C,GAN4B,SAAnB3D,EAASr3B,MAAmB,CACrC,UACA,CACA,QACA,WAEkB1uC,IAAI,SAASmrE,GAC/B,OAAOvwE,GAAGuwE,EAAWpG,GAAgB4H,GAAej0C,EACxD,GACIsvC,EAAgBtvC,EAAIutC,YACxB,IAAK+B,EACD,OAAO,WACH0B,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,EAEJ,IA6BQuC,EA7BJC,EAAqBpF,EAAc5zE,OAAOg+B,yBAAyB41C,EAAcqF,iBAAiB92E,UAAW,SAC7G+2E,EAAiB,CACjB,CACItF,EAAcqF,iBAAiB92E,UAC/B,SAEJ,CACIyxE,EAAcqF,iBAAiB92E,UAC/B,WAEJ,CACIyxE,EAAcuF,kBAAkBh3E,UAChC,SAEJ,CACIyxE,EAAcwF,oBAAoBj3E,UAClC,SAGJ,CACIyxE,EAAcuF,kBAAkBh3E,UAChC,iBAEJ,CACIyxE,EAAcyF,kBAAkBl3E,UAChC,aAgBR,OAbI62E,GAAsBA,EAAmB10E,MAExCy0E,EAAYzD,GAAU/wE,KAAKiB,MAAMuzE,EAAW,GAAG/wE,OAAOkxE,EAAettE,IAAI,SAAStS,GAC/E,OAAO8tE,GAAW9tE,EAAE,GAAIA,EAAE,GAAI,CAC1BgL,IAAK,WACDqsE,GAAgB4H,EAAhB5H,CAA8B,CAC1B7tE,OAAQrD,KACRg5E,WAAW,GAEnB,IACD,EAAO7E,EACd,KAEGjD,GAAgB,WACnB2E,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,EACJ,CAgkBuB8C,CAAkB7F,GACjC8F,GAtRAtF,GAD8BjyC,EAuRyByxC,GAtR5BQ,mBAAoB1tC,EAAavE,EAAMuE,WAAYC,EAAgBxE,EAAMwE,cAAeH,EAAUrE,EAAMsE,OAAQqrC,EAAW3vC,EAAM2vC,SAAUrtC,EAAMtC,EAAMsC,IAClLv6B,EAAU4mE,GAAgB,SAASx1E,GACnC,OAAO4rE,GAAS4J,GAAgB,SAASxzE,GACrC,IAAI2F,EAAS+tE,GAAe1zE,GAC5B,GAAK2F,IAAUwlE,GAAUxlE,EAAQyjC,EAAYC,GAAe,GAA5D,CAGA,IAAIyF,EAAcnpC,EAAOmpC,YAAaQ,EAAS3pC,EAAO2pC,OAAQJ,EAAQvpC,EAAOupC,MAAOF,EAAerpC,EAAOqpC,aAAcI,EAAOzpC,EAAOypC,KACtI0nC,EAAmB,CACf94E,KAAMA,EACN8lC,GAAIoF,EAAQrF,MAAMl+B,GAClBmpC,YAAaA,EACbQ,OAAQA,EACRJ,MAAOA,EACPF,aAAcA,EACdI,KAAMA,GATV,CAWJ,GAAIolC,EAASvpD,OAAS,IAC1B,GACIktD,EAAW,CACX9uE,GAAG,OAAQuD,EAAQ2gE,GAAkB8O,MAAOl1C,GAC5C99B,GAAG,QAASuD,EAAQ2gE,GAAkB+O,OAAQn1C,GAC9C99B,GAAG,SAAUuD,EAAQ2gE,GAAkBgP,QAASp1C,GAChD99B,GAAG,eAAgBuD,EAAQ2gE,GAAkBiP,cAAer1C,GAC5D99B,GAAG,aAAcuD,EAAQ2gE,GAAkBkP,YAAat1C,IAErDqsC,GAAgB,WACnB2E,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,IAyPIqD,EAAqB,WAAY,EACjCC,EAA4B,WAAY,EACxCC,EAA2B,WAAY,EACvCC,EAAe,WAAY,EAC3BvG,EAAG4B,YACHwE,EA5iBR,SAAgC73C,EAAO+1C,GACnC,IAAI7D,EAAmBlyC,EAAMkyC,iBAAkB7tC,EAAUrE,EAAMsE,OAAQmmC,EAAoBzqC,EAAMyqC,kBAC7F70C,EAAMmgD,EAAOngD,IACjB,IAAKA,EAAIqiD,gBAAkBriD,EAAIqiD,cAAc93E,UACzC,OAAO,WAAY,EAEvB,IAAI+3E,EAAatiD,EAAIqiD,cAAc93E,UAAU+3E,WAC7CtiD,EAAIqiD,cAAc93E,UAAU+3E,WAAa,IAAIhwE,MAAMgwE,EAAY,CAC3D10E,MAAOmrE,GAAgB,SAAS7tE,EAAQ64B,EAASw+C,GAC7C,IAAIp6C,EAAQo6C,EAAc,GAAIxkC,EAASwkC,EAAc,GACjDC,EAAmBvH,GAAgBl3C,EAAS0K,EAASomC,EAAkBqG,aAAc7xC,EAAKm5C,EAAiBn5C,GAAI8xC,EAAUqH,EAAiBrH,QAa9I,OAZI9xC,IAAc,IAARA,GAAa8xC,IAAwB,IAAbA,IAC9BmB,EAAiB,CACbjzC,GAAIA,EACJ8xC,QAASA,EACTjH,KAAM,CACF,CACIv2D,KAAMwqB,EACNv4B,MAAOmuC,MAKhB7yC,EAAO0C,MAAMm2B,EAASw+C,EACjC,KAEJviD,EAAIqiD,cAAc93E,UAAU8S,QAAU,SAASrL,EAAUywE,EAAY1kC,QAClD,IAAXA,IAAmBA,EAASl2C,KAAKigC,SAASvnC,QAC9C,IAAI4nC,EAAQn2B,EAAW,MAAQywE,EAAa,KAC5C,OAAOziD,EAAIqiD,cAAc93E,UAAU+3E,WAAW10E,MAAM/F,KAAM,CACtDsgC,EACA4V,GAER,EACA,IAwBI56C,EAkBAu/E,EA1CAC,EAAa3iD,EAAIqiD,cAAc93E,UAAUo4E,WAC7C3iD,EAAIqiD,cAAc93E,UAAUo4E,WAAa,IAAIrwE,MAAMqwE,EAAY,CAC3D/0E,MAAOmrE,GAAgB,SAAS7tE,EAAQ64B,EAASw+C,GAC7C,IAAIxkC,EAASwkC,EAAc,GACvBC,EAAmBvH,GAAgBl3C,EAAS0K,EAASomC,EAAkBqG,aAAc7xC,EAAKm5C,EAAiBn5C,GAAI8xC,EAAUqH,EAAiBrH,QAY9I,OAXI9xC,IAAc,IAARA,GAAa8xC,IAAwB,IAAbA,IAC9BmB,EAAiB,CACbjzC,GAAIA,EACJ8xC,QAASA,EACT1E,QAAS,CACL,CACI7mE,MAAOmuC,MAKhB7yC,EAAO0C,MAAMm2B,EAASw+C,EACjC,KAEJviD,EAAIqiD,cAAc93E,UAAUq4E,WAAa,SAAS7kC,GAC9C,OAAO/d,EAAIqiD,cAAc93E,UAAUo4E,WAAW/0E,MAAM/F,KAAM,CACtDk2C,GAER,EAEI/d,EAAIqiD,cAAc93E,UAAUpH,UAC5BA,EAAU68B,EAAIqiD,cAAc93E,UAAUpH,QACtC68B,EAAIqiD,cAAc93E,UAAUpH,QAAU,IAAImP,MAAMnP,EAAS,CACrDyK,MAAOmrE,GAAgB,SAAS7tE,EAAQ64B,EAASw+C,GAC7C,IAAIr3D,EAAOq3D,EAAc,GACrBC,EAAmBvH,GAAgBl3C,EAAS0K,EAASomC,EAAkBqG,aAAc7xC,EAAKm5C,EAAiBn5C,GAAI8xC,EAAUqH,EAAiBrH,QAQ9I,OAPI9xC,IAAc,IAARA,GAAa8xC,IAAwB,IAAbA,IAC9BmB,EAAiB,CACbjzC,GAAIA,EACJ8xC,QAASA,EACTh4E,QAAS+nB,IAGVhgB,EAAO0C,MAAMm2B,EAASw+C,EACjC,MAIJviD,EAAIqiD,cAAc93E,UAAUm4E,cAC5BA,EAAc1iD,EAAIqiD,cAAc93E,UAAUm4E,YAC1C1iD,EAAIqiD,cAAc93E,UAAUm4E,YAAc,IAAIpwE,MAAMowE,EAAa,CAC7D90E,MAAOmrE,GAAgB,SAAS7tE,EAAQ64B,EAASw+C,GAC7C,IAAIr3D,EAAOq3D,EAAc,GACrBC,EAAmBvH,GAAgBl3C,EAAS0K,EAASomC,EAAkBqG,aAAc7xC,EAAKm5C,EAAiBn5C,GAAI8xC,EAAUqH,EAAiBrH,QAQ9I,OAPI9xC,IAAc,IAARA,GAAa8xC,IAAwB,IAAbA,IAC9BmB,EAAiB,CACbjzC,GAAIA,EACJ8xC,QAASA,EACTuH,YAAax3D,IAGdhgB,EAAO0C,MAAMm2B,EAASw+C,EACjC,MAGR,IAAIM,EAA8B,CAAC,EAC/BC,GAA4B,mBAC5BD,EAA4BnI,gBAAkB16C,EAAI06C,iBAE9CoI,GAA4B,kBAC5BD,EAA4BlI,aAAe36C,EAAI26C,cAE/CmI,GAA4B,sBAC5BD,EAA4BhI,iBAAmB76C,EAAI66C,kBAEnDiI,GAA4B,qBAC5BD,EAA4BjI,gBAAkB56C,EAAI46C,kBAG1D,IAAImI,EAAsB,CAAC,EAmD3B,OAlDA36E,OAAO+G,QAAQ0zE,GAA6B56E,QAAQ,SAASmiC,GACzD,IAAI44C,EAAU54C,EAAM,GAAI7mC,EAAO6mC,EAAM,GACrC24C,EAAoBC,GAAW,CAE3BV,WAAY/+E,EAAKgH,UAAU+3E,WAE3BK,WAAYp/E,EAAKgH,UAAUo4E,YAE/Bp/E,EAAKgH,UAAU+3E,WAAa,IAAIhwE,MAAMywE,EAAoBC,GAASV,WAAY,CAC3E10E,MAAOmrE,GAAgB,SAAS7tE,EAAQ64B,EAASw+C,GAC7C,IAAIp6C,EAAQo6C,EAAc,GAAIxkC,EAASwkC,EAAc,GACjDC,EAAmBvH,GAAgBl3C,EAAQ+2C,iBAAkBrsC,EAASomC,EAAkBqG,aAAc7xC,EAAKm5C,EAAiBn5C,GAAI8xC,EAAUqH,EAAiBrH,QAe/J,OAdI9xC,IAAc,IAARA,GAAa8xC,IAAwB,IAAbA,IAC9BmB,EAAiB,CACbjzC,GAAIA,EACJ8xC,QAASA,EACTjH,KAAM,CACF,CACIv2D,KAAMwqB,EACNv4B,MAAO,GAAGQ,OAAOkqE,GAA0Bv2C,GAAU,CACjDga,GAAU,QAMvB7yC,EAAO0C,MAAMm2B,EAASw+C,EACjC,KAEJh/E,EAAKgH,UAAUo4E,WAAa,IAAIrwE,MAAMywE,EAAoBC,GAASL,WAAY,CAC3E/0E,MAAOmrE,GAAgB,SAAS7tE,EAAQ64B,EAASw+C,GAC7C,IAAIxkC,EAASwkC,EAAc,GACvBC,EAAmBvH,GAAgBl3C,EAAQ+2C,iBAAkBrsC,EAASomC,EAAkBqG,aAAc7xC,EAAKm5C,EAAiBn5C,GAAI8xC,EAAUqH,EAAiBrH,QAc/J,OAbI9xC,IAAc,IAARA,GAAa8xC,IAAwB,IAAbA,IAC9BmB,EAAiB,CACbjzC,GAAIA,EACJ8xC,QAASA,EACT1E,QAAS,CACL,CACI7mE,MAAO,GAAGQ,OAAOkqE,GAA0Bv2C,GAAU,CACjDga,QAMb7yC,EAAO0C,MAAMm2B,EAASw+C,EACjC,IAER,GACOxJ,GAAgB,WACnB/4C,EAAIqiD,cAAc93E,UAAU+3E,WAAaA,EACzCtiD,EAAIqiD,cAAc93E,UAAUo4E,WAAaA,EACzCx/E,IAAY68B,EAAIqiD,cAAc93E,UAAUpH,QAAUA,GAClDu/E,IAAgB1iD,EAAIqiD,cAAc93E,UAAUm4E,YAAcA,GAC1Dt6E,OAAO+G,QAAQ0zE,GAA6B56E,QAAQ,SAASmiC,GACzD,IAAI44C,EAAU54C,EAAM,GAAI7mC,EAAO6mC,EAAM,GACrC7mC,EAAKgH,UAAU+3E,WAAaS,EAAoBC,GAASV,WACzD/+E,EAAKgH,UAAUo4E,WAAaI,EAAoBC,GAASL,UAC7D,EACJ,EACJ,CAkY6BM,CAAuBpH,EAAI,CAC5C77C,IAAKg8C,IAETkG,EAA4B9G,GAA8BS,EAAIA,EAAGnvC,KACjEy1C,EA/VR,SAAsC/3C,EAAO+1C,GACzC,IAAI5D,EAAqBnyC,EAAMmyC,mBAAoB9tC,EAAUrE,EAAMsE,OAAQw0C,EAAsB94C,EAAM84C,oBAAqBrO,EAAoBzqC,EAAMyqC,kBAClJ70C,EAAMmgD,EAAOngD,IACbmjD,EAAcnjD,EAAIojD,oBAAoB74E,UAAU44E,YACpDnjD,EAAIojD,oBAAoB74E,UAAU44E,YAAc,IAAI7wE,MAAM6wE,EAAa,CACnEv1E,MAAOmrE,GAAgB,SAAS7tE,EAAQ64B,EAASw+C,GAC7C,IAAIr8C,EACAkS,EAAWmqC,EAAc,GAAIryE,EAAQqyE,EAAc,GAAIc,EAAWd,EAAc,GACpF,GAAIW,EAAoB1wD,IAAI4lB,GACxB,OAAO+qC,EAAYv1E,MAAMm2B,EAAS,CAC9BqU,EACAloC,EACAmzE,IAGR,IAAIb,EAAmBvH,GAA8C,OAA7B/0C,EAAMnC,EAAQ02C,iBAAsB,EAASv0C,EAAI40C,iBAAkBrsC,EAASomC,EAAkBqG,aAAc7xC,EAAKm5C,EAAiBn5C,GAAI8xC,EAAUqH,EAAiBrH,QAczM,OAbI9xC,IAAc,IAARA,GAAa8xC,IAAwB,IAAbA,IAC9BoB,EAAmB,CACflzC,GAAIA,EACJ8xC,QAASA,EACTzuE,IAAK,CACD0rC,SAAUA,EACVloC,MAAOA,EACPmzE,SAAUA,GAGdzzE,MAAO0qE,GAA0Bv2C,EAAQ02C,cAG1CvvE,EAAO0C,MAAMm2B,EAASw+C,EACjC,KAEJ,IAAIe,EAAiBtjD,EAAIojD,oBAAoB74E,UAAU+4E,eAyBvD,OAxBAtjD,EAAIojD,oBAAoB74E,UAAU+4E,eAAiB,IAAIhxE,MAAMgxE,EAAgB,CACzE11E,MAAOmrE,GAAgB,SAAS7tE,EAAQ64B,EAASw+C,GAC7C,IAAIr8C,EACAkS,EAAWmqC,EAAc,GAC7B,GAAIW,EAAoB1wD,IAAI4lB,GACxB,OAAOkrC,EAAe11E,MAAMm2B,EAAS,CACjCqU,IAGR,IAAIoqC,EAAmBvH,GAA8C,OAA7B/0C,EAAMnC,EAAQ02C,iBAAsB,EAASv0C,EAAI40C,iBAAkBrsC,EAASomC,EAAkBqG,aAAc7xC,EAAKm5C,EAAiBn5C,GAAI8xC,EAAUqH,EAAiBrH,QAYzM,OAXI9xC,IAAc,IAARA,GAAa8xC,IAAwB,IAAbA,IAC9BoB,EAAmB,CACflzC,GAAIA,EACJ8xC,QAASA,EACTt3B,OAAQ,CACJzL,SAAUA,GAGdxoC,MAAO0qE,GAA0Bv2C,EAAQ02C,cAG1CvvE,EAAO0C,MAAMm2B,EAASw+C,EACjC,KAEGxJ,GAAgB,WACnB/4C,EAAIojD,oBAAoB74E,UAAU44E,YAAcA,EAChDnjD,EAAIojD,oBAAoB74E,UAAU+4E,eAAiBA,CACvD,EACJ,CAkSmCC,CAA6B1H,EAAI,CACxD77C,IAAKg8C,IAELH,EAAG2H,eACHpB,EApQZ,SAA0Bh4C,GACtB,IAAIqyC,EAASryC,EAAMqyC,OAAQ/vC,EAAMtC,EAAMsC,IACnC1M,EAAM0M,EAAIutC,YACd,IAAKj6C,EACD,OAAO,WAAY,EAEvB,IAAI09C,EAAW,GACX+F,EAA0B,IAAIv6C,QAC9Bw6C,EAAmB1jD,EAAI2jD,SAC3B3jD,EAAI2jD,SAAW,SAAmBC,EAAQz4E,EAAQ04E,GAC9C,IAAIC,EAAW,IAAIJ,EAAiBE,EAAQz4E,EAAQ04E,GAOpD,OANAJ,EAAQ/2E,IAAIo3E,EAAU,CAClBF,OAAQA,EACR7wC,OAA0B,iBAAX5nC,EACf04E,YAAaA,EACbE,WAA8B,iBAAX54E,EAAsBA,EAASyF,KAAKE,UAAUxP,MAAM4N,KAAK,IAAI80E,WAAW74E,OAExF24E,CACX,EACA,IAAIG,EAAiBvV,GAAQhiC,EAAIw3C,MAAO,MAAO,SAASv3B,GACpD,OAAO,SAASm3B,GAQZ,OAPAh+D,WAAWizD,GAAgB,WACvB,IAAIr3E,EAAI+hF,EAAQp3E,IAAIy3E,GAChBpiF,IACA+6E,EAAO/6E,GACP+hF,EAAQj3E,OAAOs3E,GAEvB,GAAI,GACGn3B,EAAS/+C,MAAM/F,KAAM,CACxBi8E,GAER,CACJ,GAKA,OAJApG,EAAS/wE,KAAK,WACVqzB,EAAI2jD,SAAWD,CACnB,GACAhG,EAAS/wE,KAAKs3E,GACPlL,GAAgB,WACnB2E,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,EACJ,CA0N2BuF,CAAiBtI,KAMxC,IAHA,IAGsEjwC,EAHlEw4C,EA5NR,SAA+Bh6C,GAC3B,IAAIsC,EAAMtC,EAAMsC,IAAK+B,EAAUrE,EAAMsE,OAAQC,EAAavE,EAAMuE,WAAYC,EAAgBxE,EAAMwE,cAAe8tC,EAActyC,EAAMsyC,YACjI2H,GAAY,EACZC,EAAkBvL,GAAgB,WAClC,IAAIuE,EAAY5wC,EAAI63C,eACpB,MAAKjH,GAAa+G,IAA2B,MAAb/G,OAAoB,EAASA,EAAUkH,cAAvE,CACAH,EAAY/G,EAAUkH,cAAe,EAGrC,IAFA,IAAIC,EAAS,GACT1uE,EAAQunE,EAAUoH,YAAc,EAC5B/zC,EAAK,EAAGA,EAAK56B,EAAO46B,IAAK,CAC7B,IAAI9tB,EAAQy6D,EAAUqH,WAAWh0C,GAC7Bi0C,EAAiB/hE,EAAM+hE,eAAgBC,EAAchiE,EAAMgiE,YAAaC,EAAejiE,EAAMiiE,aAAcC,EAAYliE,EAAMkiE,UACnHrU,GAAUkU,EAAgBj2C,EAAYC,GAAe,IAAS8hC,GAAUoU,EAAcn2C,EAAYC,GAAe,IAE/H61C,EAAO93E,KAAK,CACRixC,MAAOnP,EAAQrF,MAAMw7C,GACrBC,YAAaA,EACbhnC,IAAKpP,EAAQrF,MAAM07C,GACnBC,UAAWA,GAEnB,CACArI,EAAY,CACR+H,OAAQA,GAjB+E,CAmB/F,GAEA,OADAH,IACO11E,GAAG,kBAAmB01E,EACjC,CAiM4BU,CAAsBnJ,GAC1CoJ,EAjMR,SAAmC76C,GAC/B,IAAIsC,EAAMtC,EAAMsC,IAAKiwC,EAAkBvyC,EAAMuyC,gBACzC38C,EAAM0M,EAAIutC,YACd,OAAKj6C,GAAQA,EAAIH,eACI6uC,GAAQ1uC,EAAIH,eAAgB,SAAU,SAAS8sB,GAChE,OAAO,SAASzmD,EAAM0B,EAAaoB,GAC/B,IACI2zE,EAAgB,CACZ78C,OAAQ,CACJ55B,KAAMA,IAGlB,CAAE,MAAOqoC,GACL5gC,QAAQF,KAAK,sCAAwCvH,EACzD,CACA,OAAOymD,EAAS/+C,MAAM/F,KAAM,CACxB3B,EACA0B,EACAoB,GAER,CACJ,GAlBwC,WAAY,CAoBxD,CA0KgCk8E,CAA0BrJ,GAClDsJ,EAAiB,GACbt5C,EAAYrI,EAAqCq4C,EAAG/vD,WAAmB8f,EAAQC,KAAavmB,MAAM,CACtG,IAAI8/D,EAAUx5C,EAAM17B,MACpBi1E,EAAex4E,KAAKy4E,EAAQh2E,SAASg2E,EAAQ1gE,SAAUs3D,EAAeoJ,EAAQp8E,SAClF,CACA,OAAO+vE,GAAgB,WACnBC,GAAgB/wE,QAAQ,SAASolB,GAC7B,OAAOA,EAAEjU,OACb,GACoB,MAApB2iE,GAAoCA,EAAiBsJ,aACrD1H,IACAmB,IACAmB,IACAC,IACAK,IACAoB,IACAM,IACAC,IACAC,IACAC,IACAgC,IACAa,IACAE,EAAel9E,QAAQ,SAAS22E,GAC5B,OAAOA,GACX,EACJ,EACJ,CACA,SAASpE,GAAiBnvE,GACtB,YAA+B,IAAjB3H,OAAO2H,EACzB,CACA,SAASy3E,GAA4Bz3E,GACjC,OAAOmW,aAAgC,IAAjB9d,OAAO2H,IAE7B3H,OAAO2H,GAAMd,WAAa,eAAgB7G,OAAO2H,GAAMd,WAAa,eAAgB7G,OAAO2H,GAAMd,UACrG,CAqZA,IApZA,IAAI+6E,GAAwC,WACxC,SAASA,EAAwBC,GAC7B3gD,EAAgB/8B,KAAM,wBAAyC,IAAIqhC,SACnEtE,EAAgB/8B,KAAM,wBAAyC,IAAIqhC,SACnErhC,KAAK09E,aAAeA,CACxB,CACA,IAAIp8C,EAASm8C,EAAwB/6E,UA2DrC,OA1DA4+B,EAAOC,MAAQ,SAAe6rC,EAAQuQ,EAAUC,EAAeC,GAC3D,IAAIC,EAAkBF,GAAiB59E,KAAK+9E,mBAAmB3Q,GAC3D4Q,EAAkBH,GAAiB79E,KAAKi+E,mBAAmB7Q,GAC3D5rC,EAAKs8C,EAAgBt5E,IAAIm5E,GAM7B,OALKn8C,IACDA,EAAKxhC,KAAK09E,eACVI,EAAgBj5E,IAAI84E,EAAUn8C,GAC9Bw8C,EAAgBn5E,IAAI28B,EAAIm8C,IAErBn8C,CACX,EACAF,EAAOM,OAAS,SAAgBwrC,EAAQuQ,GACpC,IAAI57C,EAAQ/hC,KACR89E,EAAkB99E,KAAK+9E,mBAAmB3Q,GAC1C4Q,EAAkBh+E,KAAKi+E,mBAAmB7Q,GAC9C,OAAOuQ,EAASxxE,IAAI,SAASq1B,GACzB,OAAOO,EAAMR,MAAM6rC,EAAQ5rC,EAAIs8C,EAAiBE,EACpD,EACJ,EACA18C,EAAO48C,YAAc,SAAqB9Q,EAAQ5rC,EAAIr1B,GAClD,IAAI6xE,EAAkB7xE,GAAOnM,KAAKi+E,mBAAmB7Q,GACrD,MAAkB,iBAAP5rC,EAAwBA,EACpBw8C,EAAgBx5E,IAAIg9B,KACZ,CAE3B,EACAF,EAAO68C,aAAe,SAAsB/Q,EAAQgR,GAChD,IAAIr8C,EAAQ/hC,KACRg+E,EAAkBh+E,KAAKi+E,mBAAmB7Q,GAC9C,OAAOgR,EAAIjyE,IAAI,SAASq1B,GACpB,OAAOO,EAAMm8C,YAAY9Q,EAAQ5rC,EAAIw8C,EACzC,EACJ,EACA18C,EAAO/vB,MAAQ,SAAe67D,GAC1B,IAAKA,EAGD,OAFAptE,KAAKq+E,sBAAwC,IAAIh9C,aACjDrhC,KAAKs+E,sBAAwC,IAAIj9C,SAGrDrhC,KAAKq+E,sBAAsB15E,OAAOyoE,GAClCptE,KAAKs+E,sBAAsB35E,OAAOyoE,EACtC,EACA9rC,EAAOy8C,mBAAqB,SAA4B3Q,GACpD,IAAI0Q,EAAkB99E,KAAKq+E,sBAAsB75E,IAAI4oE,GAKrD,OAJK0Q,IACDA,EAAkC,IAAI35E,IACtCnE,KAAKq+E,sBAAsBx5E,IAAIuoE,EAAQ0Q,IAEpCA,CACX,EACAx8C,EAAO28C,mBAAqB,SAA4B7Q,GACpD,IAAI4Q,EAAkBh+E,KAAKs+E,sBAAsB95E,IAAI4oE,GAKrD,OAJK4Q,IACDA,EAAkC,IAAI75E,IACtCnE,KAAKs+E,sBAAsBz5E,IAAIuoE,EAAQ4Q,IAEpCA,CACX,EACOP,CACX,CAlE4C,GAmExCc,GAA8B,WAC9B,SAASA,EAAcp9E,GACnB47B,EAAgB/8B,KAAM,UAA2B,IAAIqhC,SACrDtE,EAAgB/8B,KAAM,uBAAwC,IAAIqhC,SAClEtE,EAAgB/8B,KAAM,0BAA2B,IAAIy9E,GAAwBj5C,KAC7EzH,EAAgB/8B,KAAM,gCACtB+8B,EAAgB/8B,KAAM,6BAA8C,IAAIqhC,SACxEtE,EAAgB/8B,KAAM,UACtB+8B,EAAgB/8B,KAAM,cACtB+8B,EAAgB/8B,KAAM,eACtB+8B,EAAgB/8B,KAAM,gBACtB+8B,EAAgB/8B,KAAM,qBACtB+8B,EAAgB/8B,KAAM,4BACtBA,KAAK+uE,WAAa5tE,EAAQ4tE,WAC1B/uE,KAAKw+E,YAAcr9E,EAAQq9E,YAC3Bx+E,KAAKgtE,kBAAoB7rE,EAAQ6rE,kBACjChtE,KAAKy+E,yBAA2Bt9E,EAAQs9E,yBACxCz+E,KAAK0+E,6BAA+B,IAAIjB,GAAwBz9E,KAAKgtE,kBAAkBqG,YAAYtJ,WAAW7rD,KAAKle,KAAKgtE,kBAAkBqG,cAC1IrzE,KAAK6mC,OAAS1lC,EAAQ0lC,OAClB7mC,KAAKy+E,0BACL5iF,OAAO+oB,iBAAiB,UAAW5kB,KAAK2+E,cAAczgE,KAAKle,MAEnE,CACA,IAAIshC,EAASi9C,EAAc77E,UAwO3B,OAvOA4+B,EAAOyrC,UAAY,SAAmBnuC,GAClC5+B,KAAK4+E,QAAQ/5E,IAAI+5B,GAAU,GACvBA,EAASE,eAAe9+B,KAAK6+E,qBAAqBh6E,IAAI+5B,EAASE,cAAeF,EACtF,EACA0C,EAAOw9C,gBAAkB,SAAyBt3B,GAC9CxnD,KAAK++E,aAAev3B,CACxB,EACAlmB,EAAOgsC,aAAe,SAAsB1uC,EAAUyuC,GAClD,IAAIhvC,EAAKC,EACTt+B,KAAK+uE,WAAW,CACZ1C,KAAM,CACF,CACIN,SAAU/rE,KAAK6mC,OAAOtF,MAAM3C,GAC5B6tC,OAAQ,KACR1vB,KAAMswB,IAGduB,QAAS,GACTP,MAAO,GACPxlC,WAAY,GACZm2C,gBAAgB,IAEhBh/E,KAAKy+E,2BAA4D,OAAjCpgD,EAAMO,EAASE,gBAAkCT,EAAIzZ,iBAAiB,UAAW5kB,KAAK2+E,cAAczgE,KAAKle,QACjH,OAA3Bs+B,EAAKt+B,KAAK++E,eAAiCzgD,EAAG17B,KAAK5C,KAAM4+B,GACtDA,EAAS8O,iBAAmB9O,EAAS8O,gBAAgBuxC,oBAAsBrgD,EAAS8O,gBAAgBuxC,mBAAmBvmF,OAAS,GAAGsH,KAAKgtE,kBAAkB8G,iBAAiBl1C,EAAS8O,gBAAgBuxC,mBAAoBj/E,KAAK6mC,OAAOtF,MAAM3C,EAAS8O,iBAC3P,EACApM,EAAOq9C,cAAgB,SAAuBxgF,GAC1C,IAAI+gF,EAA0B/gF,EAC9B,GAA0C,UAAtC+gF,EAAwBr7E,KAAKnI,MACjCwjF,EAAwBp7D,SAAWo7D,EAAwBr7E,KAAKigB,QACvC3lB,EAAQmF,OACjC,CACA,IAAIs7B,EAAW5+B,KAAK6+E,qBAAqBr6E,IAAIrG,EAAQmF,QACrD,GAAKs7B,EAAL,CACA,IAAIugD,EAAmBn/E,KAAKo/E,0BAA0BxgD,EAAUsgD,EAAwBr7E,KAAKnG,OACzFyhF,GAAkBn/E,KAAKw+E,YAAYW,EAAkBD,EAAwBr7E,KAAKw7E,WAFjE,CAFU,CAKnC,EACA/9C,EAAO89C,0BAA4B,SAAmCxgD,EAAU8H,GAC5E,IACIrI,EADA0D,EAAQ/hC,KAEZ,OAAO0mC,EAAGhrC,MACN,KAAK6uE,GAAU+U,aAEPt/E,KAAKu/E,wBAAwBhuE,MAAMqtB,GACnC5+B,KAAK0+E,6BAA6BntE,MAAMqtB,GACxC5+B,KAAKw/E,gBAAgB94C,EAAG7iC,KAAKk5C,KAAMne,GACnC,IAAIiJ,EAASnB,EAAG7iC,KAAKk5C,KAAKvb,GAG1B,OAFAxhC,KAAKy/E,2BAA2B56E,IAAI+5B,EAAUiJ,GAC9C7nC,KAAK0/E,kBAAkBh5C,EAAG7iC,KAAKk5C,KAAMlV,GAC9B,CACH83C,UAAWj5C,EAAGi5C,UACdjkF,KAAM6uE,GAAUqV,oBAChB/7E,KAAM,CACFP,OAAQmnE,GAAkBoV,SAC1BxT,KAAM,CACF,CACIN,SAAU/rE,KAAK6mC,OAAOtF,MAAM3C,GAC5B6tC,OAAQ,KACR1vB,KAAMrW,EAAG7iC,KAAKk5C,OAGtB6xB,QAAS,GACTP,MAAO,GACPxlC,WAAY,GACZm2C,gBAAgB,IAIhC,KAAKzU,GAAUuV,KACf,KAAKvV,GAAUwV,KACf,KAAKxV,GAAUyV,iBAEP,OAAO,EAEf,KAAKzV,GAAU0V,OAEP,OAAOv5C,EAEf,KAAK6jC,GAAU2V,OAQP,OANAlgF,KAAKmgF,WAAWz5C,EAAG7iC,KAAKuqE,QAASxvC,EAAU,CACvC,KACA,WACA,aACA,WAEG8H,EAEf,KAAK6jC,GAAUqV,oBAEP,OAAOl5C,EAAG7iC,KAAKP,QACX,KAAKmnE,GAAkBoV,SA4Bf,OA1BAn5C,EAAG7iC,KAAKwoE,KAAKjsE,QAAQ,SAASk/B,GAC1ByC,EAAMo+C,WAAW7gD,EAAIV,EAAU,CAC3B,WACA,SACA,eAEJmD,EAAMy9C,gBAAgBlgD,EAAGyd,KAAMne,GAC/B,IAAIiJ,EAAS9F,EAAM09C,2BAA2Bj7E,IAAIo6B,GAClDiJ,GAAU9F,EAAM29C,kBAAkBpgD,EAAGyd,KAAMlV,EAC/C,GACAnB,EAAG7iC,KAAK+qE,QAAQxuE,QAAQ,SAASk/B,GAC7ByC,EAAMo+C,WAAW7gD,EAAIV,EAAU,CAC3B,WACA,MAER,GACA8H,EAAG7iC,KAAKglC,WAAWzoC,QAAQ,SAASk/B,GAChCyC,EAAMo+C,WAAW7gD,EAAIV,EAAU,CAC3B,MAER,GACA8H,EAAG7iC,KAAKwqE,MAAMjuE,QAAQ,SAASk/B,GAC3ByC,EAAMo+C,WAAW7gD,EAAIV,EAAU,CAC3B,MAER,GACO8H,EAEf,KAAK+jC,GAAkBkM,KACvB,KAAKlM,GAAkBqM,UACvB,KAAKrM,GAAkBoM,UAOf,OALAnwC,EAAG7iC,KAAKsyE,UAAU/1E,QAAQ,SAASvG,GAC/BkoC,EAAMo+C,WAAWtmF,EAAG+kC,EAAU,CAC1B,MAER,GACO8H,EAEf,KAAK+jC,GAAkB2V,eAEf,OAAO,EAEf,KAAK3V,GAAkB4V,iBACvB,KAAK5V,GAAkB6V,iBACvB,KAAK7V,GAAkB8V,OACvB,KAAK9V,GAAkB+V,eACvB,KAAK/V,GAAkBvpB,MAKf,OAHAlhD,KAAKmgF,WAAWz5C,EAAG7iC,KAAM+6B,EAAU,CAC/B,OAEG8H,EAEf,KAAK+jC,GAAkBgW,eACvB,KAAKhW,GAAkBiW,iBAQf,OANA1gF,KAAKmgF,WAAWz5C,EAAG7iC,KAAM+6B,EAAU,CAC/B,OAEJ5+B,KAAK2gF,gBAAgBj6C,EAAG7iC,KAAM+6B,EAAU,CACpC,YAEG8H,EAEf,KAAK+jC,GAAkBmW,KAEf,OAAOl6C,EAEf,KAAK+jC,GAAkBoW,UAQf,OANAn6C,EAAG7iC,KAAK+4E,OAAOx8E,QAAQ,SAAS4a,GAC5B+mB,EAAMo+C,WAAWnlE,EAAO4jB,EAAU,CAC9B,QACA,OAER,GACO8H,EAEf,KAAK+jC,GAAkBqW,kBAaf,OAXA9gF,KAAKmgF,WAAWz5C,EAAG7iC,KAAM+6B,EAAU,CAC/B,OAEJ5+B,KAAK2gF,gBAAgBj6C,EAAG7iC,KAAM+6B,EAAU,CACpC,aAEsB,OAAzBP,EAAMqI,EAAG7iC,KAAKk9E,SAA2B1iD,EAAIj+B,QAAQ,SAASua,GAC3DonB,EAAM4+C,gBAAgBhmE,EAAOikB,EAAU,CACnC,WAER,GACO8H,GAK/B,OAAO,CACX,EACApF,EAAOhmC,QAAU,SAAiB0lF,EAAc1/E,EAAKs9B,EAAUp+B,GAC3D,IAAI,IAA4DujC,EAAxDC,EAAYrI,EAAqCn7B,KAAgBujC,EAAQC,KAAavmB,MAAM,CAChG,IAAIvb,EAAM6hC,EAAM17B,OACX5O,MAAMC,QAAQ4H,EAAIY,KAA6B,iBAAbZ,EAAIY,MACvCzI,MAAMC,QAAQ4H,EAAIY,IAClBZ,EAAIY,GAAO8+E,EAAap/C,OAAOhD,EAAUt9B,EAAIY,IAE7CZ,EAAIY,GAAO8+E,EAAaz/C,MAAM3C,EAAUt9B,EAAIY,IAEpD,CACA,OAAOZ,CACX,EACAggC,EAAO6+C,WAAa,SAAoB7+E,EAAKs9B,EAAUp+B,GACnD,OAAOR,KAAK1E,QAAQ0E,KAAKu/E,wBAAyBj+E,EAAKs9B,EAAUp+B,EACrE,EACA8gC,EAAOq/C,gBAAkB,SAAyBr/E,EAAKs9B,EAAUp+B,GAC7D,OAAOR,KAAK1E,QAAQ0E,KAAK0+E,6BAA8Bp9E,EAAKs9B,EAAUp+B,EAC1E,EACA8gC,EAAOk+C,gBAAkB,SAAyBr9C,EAAOvD,GACrD,IAAImD,EAAQ/hC,KACZA,KAAKmgF,WAAWh+C,EAAOvD,EAAU,CAC7B,KACA,WAEA,eAAgBuD,GAChBA,EAAMH,WAAW5hC,QAAQ,SAASi4C,GAC9BtW,EAAMy9C,gBAAgBnnC,EAAOzZ,EACjC,EAER,EACA0C,EAAOo+C,kBAAoB,SAA2Bv9C,EAAO0F,GACzD,IAAI9F,EAAQ/hC,KACRmiC,EAAMzmC,OAASyvE,GAASjjC,UAAa/F,EAAM0F,SAAQ1F,EAAM0F,OAASA,GAClE,eAAgB1F,GAChBA,EAAMH,WAAW5hC,QAAQ,SAASi4C,GAC9BtW,EAAM29C,kBAAkBrnC,EAAOxQ,EACnC,EAER,EACO02C,CACX,CAhQkC,GAiQ9B0C,GAAiC,WACjC,SAASA,EAAiB9/E,GACtB47B,EAAgB/8B,KAAM,aAA8B,IAAIkhF,SACxDnkD,EAAgB/8B,KAAM,cACtB+8B,EAAgB/8B,KAAM,YACtB+8B,EAAgB/8B,KAAM,iBACtB+8B,EAAgB/8B,KAAM,UACtB+8B,EAAgB/8B,KAAM,kBAAmB,IACzCA,KAAK+uE,WAAa5tE,EAAQ4tE,WAC1B/uE,KAAKiyE,SAAW9wE,EAAQ8wE,SACxBjyE,KAAKkxC,cAAgB/vC,EAAQ+vC,cAC7BlxC,KAAK6mC,OAAS1lC,EAAQ0lC,OACtB7mC,KAAKiB,MACT,CACA,IAAIqgC,EAAS2/C,EAAiBv+E,UA8D9B,OA7DA4+B,EAAOrgC,KAAO,WACVjB,KAAKuR,QACLvR,KAAKmhF,kBAAkB1jD,QAASz/B,SACpC,EACAsjC,EAAO6rC,cAAgB,SAAuBttC,EAAagF,GACvD,IAAI9C,EAAQ/hC,KACZ,GAAK4/B,EAAkBC,KACnB7/B,KAAKohF,WAAWz2D,IAAIkV,GAAxB,CACA7/B,KAAKohF,WAAWjmE,IAAI0kB,GACpB,IAAIt4B,EAAW+pE,GAAqBh3C,EAAS,CAAC,EAAGt6B,KAAKkxC,cAAe,CACjErM,IAAKA,EACLkqC,WAAY/uE,KAAK+uE,WACjBloC,OAAQ7mC,KAAK6mC,OACbqmC,iBAAkBltE,OAClB6/B,GACJ7/B,KAAKqhF,gBAAgBv8E,KAAK,WACtB,OAAOyC,EAASi2E,YACpB,GACAx9E,KAAKqhF,gBAAgBv8E,KAAKktE,GAAmB13C,EAAS,CAAC,EAAGt6B,KAAKkxC,cAAe,CAC1E+gC,SAAUjyE,KAAKiyE,SAGfptC,IAAKhF,EACLgH,OAAQ7mC,KAAK6mC,WAEjB5oB,WAAW,WACH4hB,EAAYo/C,oBAAsBp/C,EAAYo/C,mBAAmBvmF,OAAS,GAAGqpC,EAAMmP,cAAc87B,kBAAkB8G,iBAAiBj0C,EAAYo/C,mBAAoBl9C,EAAM8E,OAAOtF,MAAMx5B,GAAW83B,KACtMkC,EAAMs/C,gBAAgBv8E,KAAKyuE,GAA8B,CACrD1sC,OAAQ9E,EAAM8E,OACdmmC,kBAAmBjrC,EAAMmP,cAAc87B,mBACxCntC,GACP,EAAG,EAxByC,CAyBhD,EAGEyB,EAAOisC,oBAAsB,SAA6B+T,GACnDA,EAAcxiD,eAAkBwiD,EAAc5zC,iBACnD1tC,KAAKmhF,kBAAkBG,EAAcxiD,cAAcrB,QAAS6jD,EAAc5zC,gBAC9E,EAGEpM,EAAO6/C,kBAAoB,SAA2B3+C,EAASqC,GAC7D,IAAI08C,EAAUvhF,KACdA,KAAKqhF,gBAAgBv8E,KAAK+hE,GAAQrkC,EAAQ9/B,UAAW,eAAgB,SAASoiD,GAC1E,OAAO,SAAS5xC,GACZ,IAAIsuE,EAAQ18B,EAASliD,KAAK5C,KAAMkT,GAC5B69B,EAAehpC,GAAiB/H,MAEpC,OADI+wC,GAAgBo5B,GAAMnqE,OAAOuhF,EAAQpU,cAAcp8B,EAAclM,GAC9D28C,CACX,CACJ,GACJ,EACAlgD,EAAO/vB,MAAQ,WACXvR,KAAKqhF,gBAAgBjhF,QAAQ,SAASkK,GAClC,IACIA,GACJ,CAAE,MAAOo8B,GAAK,CAClB,GACA1mC,KAAKqhF,gBAAkB,GACvBrhF,KAAKohF,WAA6B,IAAIF,OAC1C,EACOD,CACX,CA7EqC,GA8EjCl9E,GAAQ,mEACR09E,GAA+B,oBAAftF,WAA6B,GAAK,IAAIA,WAAW,KAC7DuF,GAAM,EAAGA,GAAM39E,GAAc29E,KACjCD,GAAO19E,GAAMshD,WAAWq8B,KAAQA,GAEpC,IAeIC,GAA+B,IAAIx9E,IAYnCy9E,GAAe,SAASv5E,EAAO8vB,EAAKyS,GACpC,GAAKviC,IAAWw5E,GAAwBx5E,EAAO8vB,IAA2E,iBAAjD,IAAV9vB,EAAwB,YAAcizB,EAASjzB,KAA9G,CACA,IACIy5E,EAdR,SAA2Bl3C,EAAKm3C,GAC5B,IAAIC,EAAaL,GAAan9E,IAAIomC,GAQlC,OAPKo3C,IACDA,EAA6B,IAAI79E,IACjCw9E,GAAa98E,IAAI+lC,EAAKo3C,IAErBA,EAAWr3D,IAAIo3D,IAChBC,EAAWn9E,IAAIk9E,EAAM,IAElBC,EAAWx9E,IAAIu9E,EAC1B,CAIgBE,CAAkBr3C,EADnBviC,EAAMtI,YAAY1B,MAEzB63C,EAAS4rC,EAAM3/E,QAAQkG,GAK3B,OAJgB,IAAZ6tC,IACAA,EAAS4rC,EAAMppF,OACfopF,EAAMh9E,KAAKuD,IAER6tC,CARoI,CAS/I,EACA,SAASgsC,GAAa75E,EAAO8vB,EAAKyS,GAC9B,OAAI7P,EAAY1yB,EAAO5O,OACZ4O,EAAM8D,IAAI,SAASktB,GACtB,OAAO6oD,GAAa7oD,EAAKlB,EAAKyS,EAClC,GACiB,OAAVviC,EACAA,EACA0yB,EAAY1yB,EAAO85E,eAAiBpnD,EAAY1yB,EAAO+5E,eAAiBrnD,EAAY1yB,EAAOg6E,aAAetnD,EAAY1yB,EAAO4iC,cAAgBlQ,EAAY1yB,EAAO8zE,aAAephD,EAAY1yB,EAAOi6E,cAAgBvnD,EAAY1yB,EAAOk6E,aAAexnD,EAAY1yB,EAAOm6E,YAAcznD,EAAY1yB,EAAOo6E,mBAExS,CACHC,QAFOr6E,EAAMtI,YAAY1B,KAGzBqH,KAAM,CACFnF,OAAO2pB,OAAO7hB,KAM1B0yB,EAAY1yB,EAAOs6E,aAGR,CACHD,QAHQr6E,EAAMtI,YAAY1B,KAI1BukF,OA7DC,SAAgBC,GACzB,IAAyC/5C,EAArCg6C,EAAQ,IAAI3G,WAAW0G,GAAkB9pD,EAAM+pD,EAAMpqF,OAAQkqF,EAAS,GAC1E,IAAI95C,EAAK,EAAGA,EAAK/P,EAAK+P,GAAM,EACxB85C,GAAU7+E,GAAM++E,EAAMh6C,IAAO,GAC7B85C,GAAU7+E,IAAmB,EAAZ++E,EAAMh6C,KAAY,EAAIg6C,EAAMh6C,EAAK,IAAM,GACxD85C,GAAU7+E,IAAuB,GAAhB++E,EAAMh6C,EAAK,KAAY,EAAIg6C,EAAMh6C,EAAK,IAAM,GAC7D85C,GAAU7+E,GAAsB,GAAhB++E,EAAMh6C,EAAK,IAO/B,OALI/P,EAAM,GAAM,EACZ6pD,EAASA,EAAOr2E,UAAU,EAAGq2E,EAAOlqF,OAAS,GAAK,IAC3CqgC,EAAM,GAAM,IACnB6pD,EAASA,EAAOr2E,UAAU,EAAGq2E,EAAOlqF,OAAS,GAAK,MAE/CkqF,CACX,CA4CqBG,CAAO16E,IAKb0yB,EAAY1yB,EAAO26E,UAEnB,CACHN,QAFQr6E,EAAMtI,YAAY1B,KAG1BqH,KAAM,CACFw8E,GAAa75E,EAAM6iC,OAAQ/S,EAAKyS,GAChCviC,EAAM46E,WACN56E,EAAM66E,aAGPnoD,EAAY1yB,EAAO86E,kBAGnB,CACHT,QAHQr6E,EAAMtI,YAAY1B,KAI1BiB,IAHM+I,EAAM/I,KAKTy7B,EAAY1yB,EAAO+6E,mBAGnB,CACHV,QAHQ,mBAIRpjF,IAHO+I,EAAMijC,aAKVvQ,EAAY1yB,EAAOg7E,WAEnB,CACHX,QAFQr6E,EAAMtI,YAAY1B,KAG1BqH,KAAM,CACFw8E,GAAa75E,EAAMxE,KAAMs0B,EAAKyS,GAC9BviC,EAAMwd,MACNxd,EAAMye,SAGP+6D,GAAwBx5E,EAAO8vB,IAA2E,iBAAjD,IAAV9vB,EAAwB,YAAcizB,EAASjzB,IAG9F,CACHq6E,QAHQr6E,EAAMtI,YAAY1B,KAI1B0J,MAHS65E,GAAav5E,EAAO8vB,EAAKyS,IAMnCviC,CACX,CACA,IAAIi7E,GAAgB,SAAS59E,EAAMyyB,EAAKyS,GACpC,OAAOllC,EAAKyG,IAAI,SAASktB,GACrB,OAAO6oD,GAAa7oD,EAAKlB,EAAKyS,EAClC,EACJ,EACIi3C,GAA0B,SAASx5E,EAAO8vB,GAC1C,IAcIorD,EAdwB,CACxB,kBACA,cACA,mBACA,eACA,oBACA,cACA,6BACA,eACA,uBACA,yBAEA,6BAEuDv3E,OAAO,SAAS3N,GACvE,MAA4B,mBAAd85B,EAAI95B,EACtB,GACA,OAAOsb,QAAQ4pE,EAA+B3pF,KAAK,SAASyE,GACxD,OAAO08B,EAAY1yB,EAAO8vB,EAAI95B,GAClC,GACJ,EAwDA,SAASmlF,GAA0BrrD,EAAK2O,EAAYC,EAAe08C,GAC/D,IAAI5N,EAAW,GACf,IACI,IAAIuG,EAAiBvV,GAAQ1uC,EAAIirD,kBAAkB1gF,UAAW,aAAc,SAASoiD,GACjF,OAAO,SAAS4+B,GACZ,IAAI,IAAIxnC,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAC/Fz2C,EAAKy2C,EAAO,GAAKnvC,UAAUmvC,GAE/B,IAAK0sB,GAAU7oE,KAAM8mC,EAAYC,GAAe,GAAO,CACnD,IAAI48C,EAZxB,SAAkCD,GAC9B,MAAuB,uBAAhBA,EAAuC,QAAUA,CAC5D,CAUkCE,CAAyBF,GAEvC,GADM,cAAe1jF,OAAOA,KAAK0qC,UAAYi5C,GACzCF,GAAkC,CAClC,QACA,UACFpqF,SAASsqF,GACP,GAAIj+E,EAAK,IAA4B,WAAtB41B,EAAS51B,EAAK,IAAkB,CAC3C,IAAIm+E,EAAoBn+E,EAAK,GACxBm+E,EAAkBC,wBACnBD,EAAkBC,uBAAwB,EAElD,MACIp+E,EAAKsC,OAAO,EAAG,EAAG,CACd87E,uBAAuB,GAIvC,CACA,OAAOh/B,EAAS/+C,MAAM/F,KAAM,GAAGuI,OAAO,CAClCm7E,GACDh+E,GACP,CACJ,GACAmwE,EAAS/wE,KAAKs3E,EAClB,CAAE,MAAOp5E,GACL8C,QAAQD,MAAM,yDAClB,CACA,OAAO,WACHgwE,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,CACJ,CACA,SAASgN,GAAiBrhF,EAAWhH,EAAM8rD,EAAI1gB,EAAYC,EAAe5O,GAsDtE,IArDA,IAqDiE4L,EArD7DmwB,EAAQ,WACR,IAAI1wD,EAAOugC,EAAM17B,MACjB,GACA,CACI,gBACA,SACA,qBACA,uBACFhP,SAASmK,GACP,MAAO,WAEX,IACI,GAA+B,mBAApBd,EAAUc,GACjB,MAAO,WAEX,IAAI44E,EAAiBvV,GAAQnkE,EAAWc,EAAM,SAASshD,GACnD,OAAO,WACH,IAAI,IAAI5I,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5Ez2C,EAAKy2C,GAAQnvC,UAAUmvC,GAE3B,IAAIG,EAAUwI,EAAS/+C,MAAM/F,KAAM0F,GAEnC,GADAk8E,GAAatlC,EAASnkB,EAAKn4B,MACvB,YAAaA,KAAK2qC,SAAWk+B,GAAU7oE,KAAK2qC,OAAQ7D,EAAYC,GAAe,GAAO,CACtF,IAAIi9C,EAAaV,GAAc59E,EAAMyyB,EAAKn4B,MACtCg1E,EAAW,CACXt5E,KAAMA,EACN60C,SAAU/sC,EACVkC,KAAMs+E,GAEVx8B,EAAGxnD,KAAK2qC,OAAQqqC,EACpB,CACA,OAAO14B,CACX,CACJ,GACAu5B,EAAS/wE,KAAKs3E,EAClB,CAAE,MAAOp5E,GACL,IAAIihF,EAActc,GAAWjlE,EAAWc,EAAM,CAC1CqB,IAAK,SAAavM,GACdkvD,EAAGxnD,KAAK2qC,OAAQ,CACZjvC,KAAMA,EACN60C,SAAU/sC,EACVkC,KAAM,CACFpN,GAEJ4rF,QAAQ,GAEhB,IAEJrO,EAAS/wE,KAAKm/E,EAClB,CACJ,EACIpO,EAAW,GAEP7xC,EAAYrI,EADRp7B,OAAOgf,oBAAoB7c,MACmCqhC,EAAQC,KAAavmB,MAAMy2C,IACrG,OAAO2hB,CACX,CAeA,IAC4B+M,GADxBuB,GAAY,2jHAMZC,GAAyB,oBAAXvoF,QAA0BA,OAAOwoF,MAAQ,IAAIA,KAAK,EALxCzB,GAMXuB,GALNhI,WAAW90E,KAAK03C,KAAK6jC,IAAS,SAASl9C,GAC1C,OAAOA,EAAG2f,WAAW,EACzB,KAID,CACC3pD,KAAM,kCAEV,SAAS4oF,GAAcnjF,GACnB,IAAIojF,EACJ,IAEI,KADAA,EAASH,KAASvoF,OAAOssB,KAAOtsB,OAAO2oF,WAAWC,gBAAgBL,KACrD,KAAM,GACnB,IAAIM,EAAS,IAAIC,OAAOJ,EAAQ,CAC5BlmF,KAAiB,MAAX8C,OAAkB,EAASA,EAAQ9C,OAK7C,OAHAqmF,EAAO9/D,iBAAiB,QAAS,YAC5B/oB,OAAOssB,KAAOtsB,OAAO2oF,WAAWI,gBAAgBL,EACrD,GACOG,CACX,CAAE,MAAOh+C,GACL,OAAO,IAAIi+C,OAAO,+BAAiCR,GAAW,CAC1D9lF,KAAiB,MAAX8C,OAAkB,EAASA,EAAQ9C,MAEjD,CAAE,QACEkmF,IAAW1oF,OAAOssB,KAAOtsB,OAAO2oF,WAAWI,gBAAgBL,EAC/D,CACJ,CACA,IA2TI/F,GACAqG,GACAnU,GA7TAoU,GAA8B,WAC9B,SAASA,EAAc3jF,GACnB,IAAI4gC,EAAQ/hC,KACZ+8B,EAAgB/8B,KAAM,yBAA0C,IAAImE,KACpE44B,EAAgB/8B,KAAM,YAAa,CAC/B+kF,SAAU,EACVC,SAAU,OAEdjoD,EAAgB/8B,KAAM,UACtB+8B,EAAgB/8B,KAAM,cACtB+8B,EAAgB/8B,KAAM,kBACtB+8B,EAAgB/8B,KAAM,UAAU,GAChC+8B,EAAgB/8B,KAAM,UAAU,GAChC+8B,EAAgB/8B,KAAM,kBAAmB,SAASqD,EAAQ2xE,KACvCjzC,EAAMkjD,UAAUD,UAAYjjD,EAAMkjD,UAAUF,WAAahjD,EAAMkjD,UAAUD,WACvEjjD,EAAMkjD,UAAUD,WAAUjjD,EAAMkjD,UAAUD,SAAWjjD,EAAMkjD,UAAUF,UACjFhjD,EAAMmjD,uBAAuBv6D,IAAItnB,IAClC0+B,EAAMmjD,uBAAuBrgF,IAAIxB,EAAQ,IAE7C0+B,EAAMmjD,uBAAuB1gF,IAAInB,GAAQyB,KAAKkwE,EAClD,GACA,IAAImQ,EAAoBhkF,EAAQ+wE,SAAUA,OAAiC,IAAtBiT,EAA+B,MAAQA,EAAmBhtD,EAAMh3B,EAAQg3B,IAAK2O,EAAa3lC,EAAQ2lC,WAAYC,EAAgB5lC,EAAQ4lC,cAAeQ,EAAepmC,EAAQomC,aAAcF,EAAiBlmC,EAAQkmC,eACxQrnC,KAAK+uE,WAAa5tE,EAAQ4tE,WAC1B/uE,KAAK6mC,OAAS1lC,EAAQ0lC,OAClBU,GAA6B,QAAb2qC,GAAoBlyE,KAAKolF,2BAA2BjtD,EAAK2O,EAAYC,GACrFQ,GAAoC,iBAAb2qC,GAAuBlyE,KAAKqlF,sBAAsBnT,EAAU/5C,EAAK2O,EAAYC,EAAe,CACnHM,eAAgBA,GAExB,CACA,IAAI/F,EAASwjD,EAAcpiF,UAiM3B,OAhMA4+B,EAAO/vB,MAAQ,WACXvR,KAAKklF,uBAAuBI,QAC5BtlF,KAAKulF,gBAAkBvlF,KAAKulF,gBAChC,EACAjkD,EAAOmT,OAAS,WACZz0C,KAAKmsE,QAAS,CAClB,EACA7qC,EAAOqvC,SAAW,WACd3wE,KAAKmsE,QAAS,CAClB,EACA7qC,EAAOuvC,KAAO,WACV7wE,KAAKosE,QAAS,CAClB,EACA9qC,EAAOwvC,OAAS,WACZ9wE,KAAKosE,QAAS,CAClB,EACA9qC,EAAO+jD,sBAAwB,SAA+BG,EAAKrtD,EAAK2O,EAAYC,EAAe5lC,GAC/F,IAAI4gC,EAAQ/hC,KACRylF,EAAqBjC,GAA0BrrD,EAAK2O,EAAYC,GAAe,GAC/E2+C,EAAwC,IAAIvhF,IAC5CugF,EAAS,IAAIJ,GACjBI,EAAOiB,UAAY,SAASj/C,GACxB,IAAIlF,EAAKkF,EAAG7iC,KAAK29B,GAEjB,GADAkkD,EAAsB7gF,IAAI28B,GAAI,GACxB,WAAYkF,EAAG7iC,KAArB,CACA,IAAI+hF,EAAWl/C,EAAG7iC,KAAM++E,EAASgD,EAAShD,OAAQlnF,EAAOkqF,EAASlqF,KAAMmqB,EAAQ+/D,EAAS//D,MAAOiB,EAAS8+D,EAAS9+D,OAClHib,EAAMgtC,WAAW,CACbvtC,GAAIA,EACJ9lC,KAAMqvE,GAAc,MACpB8a,SAAU,CACN,CACIt1C,SAAU,YAEV7qC,KAAM,CACF,EACA,EACAmgB,EACAiB,IAGR,CACIypB,SAAU,YAEV7qC,KAAM,CACF,CACIg9E,QAAS,cACTh9E,KAAM,CACF,CACIg9E,QAAS,OACT7+E,KAAM,CACF,CACI6+E,QAAS,cACTE,OAAQA,IAGhBlnF,KAAMA,KAIlB,EACA,MApCkB,CAyCtC,EACA,IAEIoqF,EAFAC,EAAuB,IAAMP,EAC7BQ,EAAmB,EAWnBC,EAAsB,SAAStG,GAC/B,GAAIqG,GAAoBrG,EAAYqG,EAAmBD,EACnDD,EAAQI,sBAAsBD,OADlC,CAIAD,EAAmBrG,EACnB,IAdIwG,EAcAC,EAASrkD,GAdTokD,EAAgB,GACpBhuD,EAAIn6B,SAASm7E,iBAAiB,UAAU/4E,QAAQ,SAASuqC,GAChDk+B,GAAUl+B,EAAQ7D,EAAYC,GAAe,IAC9Co/C,EAAcrhF,KAAK6lC,EAE3B,GACOw7C,GASK/lF,QAAsBk5B,EAAoB,SAASqR,GAC3D,IAAItM,EAAKmD,EAAIhkC,EAAS6oF,EACtB,OAAOpqD,EAAcj8B,KAAM,SAASm0D,GAChC,OAAOA,EAAO93B,OACV,KAAK,EAED,OADAmF,EAAK4kD,EAAOv/C,OAAOtF,MAAMoJ,GACrB+6C,EAAsBlhF,IAAIg9B,IAGT,IAAjBmJ,EAAO9kB,OAAiC,IAAlB8kB,EAAO7jB,OAHS,CACtC,IAKJ4+D,EAAsB7gF,IAAI28B,GAAI,GAC1B,CACA,QACA,UACFnoC,SAASsxC,EAAOD,aACdltC,EAAUmtC,EAAOE,WAAWF,EAAOD,YACsF,KAA/C,OAApErM,EAAiB,MAAX7gC,OAAkB,EAASA,EAAQ8oF,6BAAkC,EAASjoD,EAAIylD,wBAC1FtmF,EAAQ8nF,MAAM9nF,EAAQ+oF,mBAGvB,CACH,EACAC,kBAAkB77C,KAE1B,KAAK,EAWD,OAVA07C,EAASlyB,EAAO73B,OAChBooD,EAAO+B,YAAY,CACfjlD,GAAIA,EACJ6kD,OAAQA,EACRxgE,MAAO8kB,EAAO9kB,MACdiB,OAAQ6jB,EAAO7jB,OACfugB,eAAgBlmC,EAAQkmC,gBACzB,CACCg/C,IAEG,CACH,GAGhB,EACJ,IACAP,EAAQI,sBAAsBD,EA9C9B,CA+CJ,EACAH,EAAQI,sBAAsBD,GAC9BjmF,KAAKulF,eAAiB,WAClBE,IACAiB,qBAAqBZ,EACzB,CACJ,EACAxkD,EAAO8jD,2BAA6B,SAAoCjtD,EAAK2O,EAAYC,GACrF/mC,KAAK2mF,uBACL3mF,KAAK4mF,oCACL,IAAInB,EAAqBjC,GAA0BrrD,EAAK2O,EAAYC,GAAe,GAC/E8/C,EAjXZ,SAAsCr/B,EAAIrvB,EAAK2O,EAAYC,GA6CvD,IA5CA,IA4CmEhD,EA5C/DmwB,EAAQ,WACR,IAAI1wD,EAAOugC,EAAM17B,MACjB,IACI,GAA4D,mBAAjD8vB,EAAI2uD,yBAAyBpkF,UAAUc,GAC9C,MAAO,WAEX,IAAI44E,EAAiBvV,GAAQ1uC,EAAI2uD,yBAAyBpkF,UAAWc,EAAM,SAASshD,GAChF,OAAO,WAEH,IADA,IAAI/iB,EAAQ/hC,KACJk8C,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5Ez2C,EAAKy2C,GAAQnvC,UAAUmvC,GAY3B,OAVK0sB,GAAU7oE,KAAK2qC,OAAQ7D,EAAYC,GAAe,IACnD9oB,WAAW,WACP,IAAI+lE,EAAaV,GAAc59E,EAAMyyB,EAAK4J,GAC1CylB,EAAGzlB,EAAM4I,OAAQ,CACbjvC,KAAMqvE,GAAc,MACpBx6B,SAAU/sC,EACVkC,KAAMs+E,GAEd,EAAG,GAEAl/B,EAAS/+C,MAAM/F,KAAM0F,EAChC,CACJ,GACAmwE,EAAS/wE,KAAKs3E,EAClB,CAAE,MAAOp5E,GACL,IAAIihF,EAActc,GAAWxvC,EAAI2uD,yBAAyBpkF,UAAWc,EAAM,CACvEqB,IAAK,SAAavM,GACdkvD,EAAGxnD,KAAK2qC,OAAQ,CACZjvC,KAAMqvE,GAAc,MACpBx6B,SAAU/sC,EACVkC,KAAM,CACFpN,GAEJ4rF,QAAQ,GAEhB,IAEJrO,EAAS/wE,KAAKm/E,EAClB,CACJ,EACIpO,EAAW,GAEP7xC,EAAYrI,EADNp7B,OAAOgf,oBAAoB4Y,EAAI2uD,yBAAyBpkF,cACMqhC,EAAQC,KAAavmB,MAAMy2C,IACvG,OAAO,WACH2hB,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,CACJ,CA8T4BgQ,CAA6B/mF,KAAKksE,gBAAgBhuD,KAAKle,MAAOm4B,EAAK2O,EAAYC,GAC/FigD,EAxNZ,SAAyCx/B,EAAIrvB,EAAK2O,EAAYC,GAC1D,IAAIuyC,EAII2N,EAHJpR,EAAW,GAMf,OALCyD,EAAYzD,GAAU/wE,KAAKiB,MAAMuzE,EAAW,GAAG/wE,OAAOw7E,GAAiB5rD,EAAI+uD,sBAAsBxkF,UAAWqoE,GAAcoc,MAAO3/B,EAAI1gB,EAAYC,EAAe5O,UACvH,IAA/BA,EAAIivD,yBAEVH,EAAapR,GAAU/wE,KAAKiB,MAAMkhF,EAAY,GAAG1+E,OAAOw7E,GAAiB5rD,EAAIivD,uBAAuB1kF,UAAWqoE,GAAcsc,OAAQ7/B,EAAI1gB,EAAYC,EAAe5O,KAElK,WACH09C,EAASz1E,QAAQ,SAAS22E,GACtB,OAAOA,GACX,EACJ,CACJ,CA2MoCuQ,CAAgCtnF,KAAKksE,gBAAgBhuD,KAAKle,MAAOm4B,EAAK2O,EAAYC,GAC9G/mC,KAAKulF,eAAiB,WAClBE,IACAoB,IACAG,GACJ,CACJ,EACA1lD,EAAOslD,kCAAoC,WACvC,IAAI7kD,EAAQ/hC,KACZkmF,sBAAsB,WAClB,OAAOnkD,EAAMwlD,6BACjB,EACJ,EACAjmD,EAAOqlD,qBAAuB,WAC1B,IAAI5kD,EAAQ/hC,KACRwnF,EAAwB,SAAS7H,GACjC59C,EAAMkjD,UAAUF,SAAWpF,EAC3BuG,sBAAsBsB,EAC1B,EACAtB,sBAAsBsB,EAC1B,EACAlmD,EAAOimD,4BAA8B,WACjC,IAAIxlD,EAAQ/hC,KACZA,KAAKklF,uBAAuB9kF,QAAQ,SAASqnF,EAAS98C,GAClD,IAAInJ,EAAKO,EAAM8E,OAAOtF,MAAMoJ,GAC5B5I,EAAM2lD,8BAA8B/8C,EAAQnJ,EAChD,GACA0kD,sBAAsB,WAClB,OAAOnkD,EAAMwlD,6BACjB,EACJ,EACAjmD,EAAOomD,8BAAgC,SAAuC/8C,EAAQnJ,GAClF,IAAIxhC,KAAKmsE,SAAUnsE,KAAKosE,OAAxB,CAGA,IAAIub,EAAiB3nF,KAAKklF,uBAAuB1gF,IAAImmC,GACrD,GAAKg9C,IAA0B,IAARnmD,EAAvB,CACA,IAAItX,EAASy9D,EAAex7E,IAAI,SAAS9D,GAIrC,OAHAA,EAAM3M,KAAiBy/B,EAAiC9yB,EAAO,CAC3D,QAGR,GACI3M,EAAOisF,EAAe,GAAGjsF,KAC7BsE,KAAK+uE,WAAW,CACZvtC,GAAIA,EACJ9lC,KAAMA,EACNmqF,SAAU37D,IAEdlqB,KAAKklF,uBAAuBvgF,OAAOgmC,EAbK,CAFxC,CAgBJ,EACOm6C,CACX,CA/NkC,GAgO9B8C,GAAkC,WAClC,SAASA,EAAkBzmF,GACvB47B,EAAgB/8B,KAAM,sBAAuC,IAAIkhF,SACjEnkD,EAAgB/8B,KAAM,cACtB+8B,EAAgB/8B,KAAM,uBACtB+8B,EAAgB/8B,KAAM,cAAe,IAAIypE,IACzCzpE,KAAK+uE,WAAa5tE,EAAQ4tE,WAC1B/uE,KAAK6nF,oBAAsB1mF,EAAQ0mF,mBACvC,CACA,IAAIvmD,EAASsmD,EAAkBllF,UAsD/B,OArDA4+B,EAAOksC,kBAAoB,SAA2Bsa,EAAQza,GACtD,aAAcA,EAAQxkC,YAAY7oC,KAAK+uE,WAAW,CAClD1C,KAAM,GACNuC,QAAS,GACTP,MAAO,GACPxlC,WAAY,CACR,CACIrH,GAAI6rC,EAAQ7rC,GACZqH,WAAYwkC,EAAQxkC,eAIhC7oC,KAAKitE,iBAAiB6a,EAC1B,EACAxmD,EAAO2rC,iBAAmB,SAA0B6a,GAC5C9nF,KAAK+nF,oBAAoBp9D,IAAIm9D,KACjC9nF,KAAK+nF,oBAAoB5sE,IAAI2sE,GAC7B9nF,KAAKgoF,6BAA6BF,GACtC,EACAxmD,EAAOwyC,iBAAmB,SAA0BD,EAAQJ,GACxD,IAAI1xC,EAAOmyB,EAAQ,WACf,IAAI9qB,EAAQrF,EAAM17B,MACdirE,OAAU,EACTvxC,EAAMsxC,YAAY1oD,IAAIye,GAWpBkqC,EAAUvxC,EAAMsxC,YAAY9xC,MAAM6H,IAVrCkqC,EAAUvxC,EAAMsxC,YAAYl4D,IAAIiuB,GAChC23C,EAAOj8E,KAAK,CACRwuE,QAASA,EACT79D,MAAOhc,MAAM4N,KAAK+hC,EAAM3zB,OAASwyE,QAAS,SAASC,EAAIhyC,GACnD,MAAO,CACHpgC,KAAMyqB,EAAc2nD,EAAI9+C,EAAMrtC,MAC9BgM,MAAOmuC,EAEf,MAGRiyC,EAAsBC,SAAStjF,KAAKwuE,EACxC,EACA,GAAsB,IAAlBO,EAAOn7E,OAAX,CAMA,IALA,IAKkEqrC,EAL9DokD,EAAwB,CACxB3mD,GAAIiyC,EACJ2U,SAAU,IAEVrH,EAAS,GACL/8C,EAAYrI,EAAqCk4C,KAAkB9vC,EAAQC,KAAavmB,MAAMskB,EAAQ/hC,KAAMk0D,IAChH6sB,EAAOroF,OAAS,IAAGyvF,EAAsBpH,OAASA,GACtD/gF,KAAK6nF,oBAAoBM,EARM,CASnC,EACA7mD,EAAO/vB,MAAQ,WACXvR,KAAKqzE,YAAY9hE,QACjBvR,KAAK+nF,oBAAsC,IAAI7G,OACnD,EAEA5/C,EAAO0mD,6BAA+B,SAAsCK,GAAU,EAC/ET,CACX,CAhEsC,GAiElCU,GAAqC,WACrC,SAASA,IACLvrD,EAAgB/8B,KAAM,UAA2B,IAAIqhC,SACrDtE,EAAgB/8B,KAAM,UAAU,EACpC,CACA,IAAIshC,EAASgnD,EAAqB5lF,UAmBlC,OAlBA4+B,EAAOivC,cAAgB,SAAuBpuC,EAAOomD,GACjD,IAAIC,EAAUxoF,KAAKyoF,QAAQjkF,IAAI29B,GAC/B,OAAOqmD,GAAW/uF,MAAM4N,KAAKmhF,GAASxjE,KAAK,SAASkmB,GAChD,OAAOA,IAAWq9C,CACtB,EACJ,EACAjnD,EAAOnmB,IAAM,SAAagnB,EAAO+I,GAC7B,IAAInJ,EAAQ/hC,KACPA,KAAK0oF,SACN1oF,KAAK0oF,QAAS,EACdxC,sBAAsB,WAClBnkD,EAAM0mD,QAA0B,IAAIpnD,QACpCU,EAAM2mD,QAAS,CACnB,IAEJ1oF,KAAKyoF,QAAQ5jF,IAAIs9B,GAAQniC,KAAKyoF,QAAQjkF,IAAI29B,IAA0B,IAAIzX,KAAOvP,IAAI+vB,GACvF,EACA5J,EAAOqnD,QAAU,WAAoB,EAC9BL,CACX,CAzByC,GA6BrCM,IAAY,EAChB,IACI,GAIU,IAJNnvF,MAAM4N,KAAK,CACX,GACD,SAASyjC,GACR,OAAY,EAALA,CACX,GAAG,GAAU,CACT,IAAI+9C,GAAa7qF,SAASzC,cAAc,UACxCyC,SAASsuB,KAAKuS,YAAYgqD,IAC1BpvF,MAAM4N,MAA2C,OAAlCw1B,EAAKgsD,GAAW/pD,oBAAyB,EAASjC,EAAGpjC,MAAM4N,OAAS5N,MAAM4N,KACzFrJ,SAASsuB,KAAK0S,YAAY6pD,GAC9B,CACJ,CAAE,MAAO7yE,GACLlQ,QAAQM,MAAM,gCAAiC4P,EACnD,CACA,IA6dI2H,GACMmrE,GA9dNjiD,GA1uYO,IAAIzF,EA2uYf,SAAS2nD,GAAO5nF,QACI,IAAZA,IAAoBA,EAAU,CAAC,GACnC,IAAIiG,EAAOjG,EAAQiG,KAAM4hF,EAAmB7nF,EAAQ6nF,iBAAkBC,EAAmB9nF,EAAQ8nF,iBAAkBC,EAAsB/nF,EAAQ2lC,WAAYA,OAAqC,IAAxBoiD,EAAiC,WAAaA,EAAqBC,EAAyBhoF,EAAQ4lC,cAAeA,OAA2C,IAA3BoiD,EAAoC,KAAOA,EAAwBC,EAAuBjoF,EAAQw3E,YAAaA,OAAuC,IAAzByQ,EAAkC,YAAcA,EAAsBC,EAA0BloF,EAAQy3E,eAAgBA,OAA6C,IAA5ByQ,EAAqC,KAAOA,EAAyBC,EAAyBnoF,EAAQilC,cAAeA,OAA2C,IAA3BkjD,EAAoC,UAAYA,EAAwBC,EAA4BpoF,EAAQklC,iBAAkBA,OAAiD,IAA9BkjD,EAAuC,KAAOA,EAA2Bt6C,EAA4B9tC,EAAQ8lC,iBAAkBA,OAAiD,IAA9BgI,GAA8CA,EAA2Bu6C,EAAgBroF,EAAQqoF,cAAeC,EAAoBtoF,EAAQshC,iBAAkBinD,EAAkBvoF,EAAQ+tC,eAAgBxM,EAAcvhC,EAAQuhC,YAAayE,EAAahmC,EAAQgmC,WAAY8sC,EAAQ9yE,EAAQ8yE,MAAO0V,EAASxoF,EAAQwoF,OAAQxE,EAAoBhkF,EAAQ+wE,SAAUA,OAAiC,IAAtBiT,EAA+B,CAAC,EAAIA,EAAmB/9C,EAA0BjmC,EAAQkmC,eAAgBA,OAA6C,IAA5BD,EAAqC,CAAC,EAAIA,EAAyBwiD,EAAgBzoF,EAAQyoF,cAAeC,EAAqB1oF,EAAQy0E,UAAWA,OAAmC,IAAvBiU,GAAuCA,EAAoBz6C,EAAwBjuC,EAAQomC,aAAcA,OAAyC,IAA1B6H,GAA2CA,EAAuB06C,EAAoC3oF,EAAQs9E,yBAA0BA,OAAiE,IAAtCqL,GAAuDA,EAAmCC,EAAuB5oF,EAAQ6oF,YAAaA,OAAuC,IAAzBD,EAA0D,qBAAxB5oF,EAAQ6oF,YAAqC7oF,EAAQ6oF,YAAc,OAASD,EAAsBE,EAAgC9oF,EAAQ03E,qBAAsBA,OAAyD,IAAlCoR,GAAmDA,EAA+BC,EAAwB/oF,EAAQw6E,aAAcA,OAAyC,IAA1BuO,GAA2CA,EAAuB/6C,EAAwBhuC,EAAQmmC,aAAcA,OAAyC,IAA1B6H,GAA2CA,EAAuBlrB,EAAU9iB,EAAQ8iB,QAAS2rB,EAA2BzuC,EAAQqmC,gBAAiBA,OAA+C,IAA7BoI,EAAsC,WAC3rF,OAAO,CACX,EAAIA,EAA0Bu6C,EAA+BhpF,EAAQk6E,oBAAqBA,OAAuD,IAAjC8O,EAA0D,IAAIz/D,IAAI,IAAMy/D,EAA8BC,EAAgBjpF,EAAQkqE,aAxhE9OA,GAyhEqB+e,EACrB,IAAIC,GAAkB5L,GAA2B5iF,OAAOoyC,SAAWpyC,OAC/DyuF,IAAoB,EACxB,IAAKD,EACD,IACQxuF,OAAOoyC,OAAOjwC,WACdssF,IAAoB,EAE5B,CAAE,MAAO5jD,GACL4jD,IAAoB,CACxB,CAEJ,GAAID,IAAoBjjF,EACpB,MAAM,IAAIwZ,MAAM,6BAEpB,IAAKypE,IAAoBC,GACrB,OAAO,WAAY,OAED,IAAlBV,QAAmD,IAAvB1X,EAAS+C,YACrC/C,EAAS+C,UAAY2U,GAEzB/iD,GAAOt1B,QACP,IAqCIg5E,GArCA9nD,IAAqC,IAAlB+mD,EAAyB,CAC5C9zC,OAAO,EACP80C,MAAM,EACN,kBAAkB,EAClBC,OAAO,EACPC,OAAO,EACPlwE,QAAQ,EACRQ,OAAO,EACPoW,QAAQ,EACRu5D,KAAK,EACLtnE,MAAM,EACNunE,MAAM,EACN1iE,KAAK,EACL2iE,MAAM,EACN7b,UAAU,EACV75D,QAAQ,EACR21E,UAAU,EACV33C,QAAQ,QACc,IAAtBs2C,EAA+BA,EAAoB,CACnDqB,UAAU,GAEV57C,IAAqC,IAApBw6C,GAAgD,QAApBA,EAA4B,CACzEx5C,QAAQ,EACRD,SAAS,EACTG,aAAa,EACba,gBAAgB,EAChBX,gBAAgB,EAChBE,gBAAgB,EAChBC,mBAAmB,EACnBE,sBAAsB,EAGtBD,mBAAwC,QAApBg5C,EACpBr5C,qBAA0C,QAApBq5C,EACtB3gB,mBAAwC,QAApB2gB,GACpBA,GAAoC,CAAC,GAp3F7C,SAAoBvxD,QACJ,IAARA,IAAgBA,EAAMt8B,QACtB,aAAcs8B,IAAQA,EAAI4yD,SAASroF,UAAUtC,UAC7C+3B,EAAI4yD,SAASroF,UAAUtC,QAAU3G,MAAMiJ,UAAUtC,SAEjD,iBAAkB+3B,IAAQA,EAAI6yD,aAAatoF,UAAUtC,UACrD+3B,EAAI6yD,aAAatoF,UAAUtC,QAAU3G,MAAMiJ,UAAUtC,QAE7D,CA62FI6qF,GAEA,IAAIC,GAA2B,EAC3BC,GAAiB,SAASzkD,GAC1B,IAAI,IAAqE3C,EAAjEC,EAAYrI,EAAqC1X,GAAW,MAAc8f,EAAQC,KAAavmB,MAAM,CACzG,IAAI8/D,EAAUx5C,EAAM17B,MAChBk1E,EAAQ4N,iBACRzkD,EAAK62C,EAAQ4N,eAAezkD,GAEpC,CAKA,OAJIijD,IACHW,KACG5jD,EAAKijD,EAAOjjD,IAETA,CACX,EACA83C,GAAc,SAAS0J,EAAI7I,GACvB,IAAIhhD,EACAqI,EAAKwhD,EAOT,GANAxhD,EAAGi5C,UAAY7X,OACoB,OAA7BzpC,EAAM8yC,GAAgB,SAAc,EAAS9yC,EAAIuyC,aAAelqC,EAAGhrC,OAAS6uE,GAAU+U,cAAkB54C,EAAGhrC,OAAS6uE,GAAUqV,qBAAuBl5C,EAAG7iC,KAAKP,SAAWmnE,GAAkBoV,UAC5L1O,GAAgB/wE,QAAQ,SAAS+3C,GAC7B,OAAOA,EAAIw4B,UACf,GAEA0Z,EACQ,MAARjjF,GAAwBA,EAAK+jF,GAAezkD,GAAK24C,QAC9C,GAAIiL,GAAmB,CAC1B,IAAInsF,EAAU,CACVzC,KAAM,QACNgC,MAAOytF,GAAezkD,GACtB5iB,OAAQjoB,OAAOC,SAASgoB,OACxBu7D,WAAYA,GAEhBxjF,OAAOoyC,OAAOw4C,YAAYtoF,EAAS,IACvC,CACA,GAAIuoC,EAAGhrC,OAAS6uE,GAAU+U,aACtBiL,GAAwB7jD,EACxBwkD,GAA2B,OACxB,GAAIxkD,EAAGhrC,OAAS6uE,GAAUqV,oBAAqB,CAClD,GAAIl5C,EAAG7iC,KAAKP,SAAWmnE,GAAkBoV,UAAYn5C,EAAG7iC,KAAKm7E,eACzD,OAEJkM,KACA,IAAIE,EAAcnC,GAAoBiC,IAA4BjC,EAC9DoC,EAAarC,GAAoBtiD,EAAGi5C,UAAY4K,GAAsB5K,UAAYqJ,GAClFoC,GAAeC,IACfxG,IAAmB,EAE3B,CACJ,EA4CA,IA3CA,IA2CyE9gD,GA3CrEunD,GAAsB,SAAS5iF,GAC/B81E,GAAY,CACR9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkBoV,UAC3Bn3E,IAEX,EACI6iF,GAAoB,SAAS1xF,GAC7B,OAAO2kF,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkB8V,QAC3B1mF,IAEX,EACI2xF,GAA4B,SAAS3xF,GACrC,OAAO2kF,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkB+V,gBAC3B3mF,IAEX,EASImzE,GAAoB,IAAI4a,GAAkB,CAC1C7Y,WAAYuc,GACZzD,oBAV+B,SAAS5iD,GACxC,OAAOu5C,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkBqW,mBAC3B77C,IAEX,IAKI6nC,GAAgB,IAAIyR,GAAc,CAClC13C,OAAQA,GACRkoC,WAAYuc,GACZte,kBAAmBA,GACnByR,yBAA0BA,EAC1BD,YAAaA,KAETx6C,GAAYrI,EAAqC1X,GAAW,MAAc8f,GAAQC,MAAavmB,MAAM,CACzG,IAAI8/D,GAAUx5C,GAAM17B,MAChBk1E,GAAQkO,WAAWlO,GAAQkO,UAAU,CACrCC,WAAY7kD,GACZ04C,wBAAyBzS,GAAcyS,wBACvCb,6BAA8B5R,GAAc4R,8BAEpD,CACA,IAAIpO,GAAuB,IAAIgY,GAC/B5X,GAAgB,IAAIoU,GAAc,CAC9Bv9C,aAAcA,EACdwnC,WAAYyc,GACZrzD,IAAKt8B,OACLirC,WAAYA,EACZC,cAAeA,EACfF,OAAQA,GACRqrC,SAAUA,EAASvnC,OACnBtD,eAAgBA,IAEpB,IAAI6lC,GAAmB,IAAI+T,GAAiB,CACxClS,WAAYuc,GACZrZ,SAAUsZ,GACVr6C,cAAe,CACXpK,WAAYA,EACZC,cAAeA,EACfX,cAAeA,EACfC,iBAAkBA,EAClBY,iBAAkBA,EAClBxE,iBAAkBA,GAClB4E,eAAgBA,EAChBF,WAAYA,EACZzE,YAAaA,EACb6E,aAAcA,EACdD,aAAcA,EACd4qC,SAAUA,EACVhjC,eAAgBA,GAChB49B,cAAeA,GACfE,kBAAmBA,GACnB0D,cAAeA,GACflpC,gBAAiBA,EACjB8oC,qBAAsBA,IAE1BzpC,OAAQA,KAEZg+C,GAAqB,SAASxF,GAE1B,QADmB,IAAfA,IAAuBA,GAAa,GACnCzJ,EAAL,CAGA4I,GAAY,CACR9iF,KAAM6uE,GAAUuV,KAChBj8E,KAAM,CACF9H,KAAMF,OAAOC,SAASC,KACtB8pB,MAAO6iD,KACP5hD,OAAQyhD,OAEb8W,GACHrS,GAAkBz7D,QAClB27D,GAAiBjsE,OACjBkwE,GAAgB/wE,QAAQ,SAAS+3C,GAC7B,OAAOA,EAAI04B,MACf,GACA,IAAI1uC,EAjkXZ,SAAkB7C,EAAIn+B,GAClB,IAAI+hC,EAAO/hC,GAAW,CAAC,EAAGwqF,EAAMzoD,EAAK2D,OAAQD,OAAkB,IAAR+kD,EAAiB,IAAIvqD,EAAWuqD,EAAKC,EAAkB1oD,EAAK4D,WAAoF+kD,EAAqB3oD,EAAK6D,cAA0F+kD,EAAqB5oD,EAAKkD,cAA+F2lD,EAAwB7oD,EAAKmD,iBAAsG2lD,EAAwB9oD,EAAK+D,iBAAsGglD,EAAoB/oD,EAAKoE,aAAuF4kD,EAAoBhpD,EAAKqE,aAAuF4kD,EAAqBjpD,EAAKsmD,cAAeA,OAAuC,IAAvB2C,GAAwCA,EAAkFC,EAAelpD,EAAKmpD,QAASA,OAA2B,IAAjBD,GAAkCA,EAA8SE,EAAuBppD,EAAKsE,gBAsCh+C,OAAOsH,GAAoBxP,EAAI,CAC3BuF,IAAKvF,EACLuH,OAAQD,EACRE,gBAzC4J,IAApB8kD,EAA6B,WAAaA,EA0ClL7kD,mBA1CmR,IAAvB8kD,EAAgC,KAAOA,EA2CnSzlD,mBA3CuY,IAAvB0lD,EAAgC,UAAYA,EA4C5ZzlD,sBA5C4gB,IAA1B0lD,EAAmC,KAAOA,EA6C5hB/8C,WAAW,EACX/H,sBA9C+oB,IAA1B+kD,GAA0CA,EA+C/pBvpD,kBA5CqC,IAAlB+mD,EAAyB,CAC5C9zC,OAAO,EACP80C,MAAM,EACN,kBAAkB,EAClBC,OAAO,EACPC,OAAO,EACPlwE,QAAQ,EACRQ,OAAO,EACPoW,QAAQ,EACRu5D,KAAK,EACLtnE,MAAM,EACNunE,MAAM,EACN1iE,KAAK,EACL2iE,MAAM,EACN7b,UAAU,EACV75D,QAAQ,EACR21E,UAAU,EACV33C,QAAQ,IACU,IAAlBq2C,EAA0B,CAC1BsB,UAAU,GACVtB,EAyBAriD,WAhDwhCjE,EAAKiE,WAiD7hCzE,YAjDujCQ,EAAKR,YAkD5jCwM,gBA1B6B,IAAZm9C,GAAgC,QAAZA,EACzC,CACIn8C,QAAQ,EACRD,SAAS,EACTG,aAAa,EACba,gBAAgB,EAChBZ,qBAAkC,QAAZg8C,EAEtB/7C,gBAAgB,EAChBE,gBAAgB,EAChBC,mBAAmB,EACnBC,oBAAoB,EACpBC,sBAAsB,IACV,IAAZ07C,EAAoB,CAAC,EAAIA,EAczBhlD,eAnDirCnE,EAAKmE,eAoDtrCC,kBApDkwB,IAAtB2kD,GAAuCA,EAqDnxB1kD,kBArDk3B,IAAtB2kD,GAAuCA,EAsDn4Bp8C,mBAtD2tC5M,EAAK4M,mBAuDhuCT,YAvDkwCnM,EAAKmM,YAwDvwCC,aAxDmyCpM,EAAKoM,aAyDxyCE,kBAzD00CtM,EAAKsM,kBA0D/0CC,iBA1Dq3CvM,EAAKuM,iBA2D13CE,sBA3Do6CzM,EAAKyM,sBA4Dz6CnI,qBA5DwhD,IAAzB8kD,EAAkC,WACjiD,OAAO,CACX,EAAIA,EA2DA5kD,mBAAmB,GAE3B,CAigXoB6kD,CAASvuF,SAAU,CAC3B6oC,OAAQA,GACRC,WAAYA,EACZC,cAAeA,EACfX,cAAeA,EACfC,iBAAkBA,EAClBY,iBAAkBA,EAClBuiD,cAAe/mD,GACf0E,WAAYA,EACZzE,YAAaA,EACb2pD,QAASn9C,GACT7H,eAAgBA,EAChBE,aAAcA,EACdD,aAAcA,EACd+H,YAAa,SAAS/P,GACd6pC,GAAmB7pC,EAAIuH,KACvBimC,GAAcC,UAAUztC,GAExB+pC,GAAuB/pC,EAAIuH,KAC3BmmC,GAAkBC,iBAAiB3tC,GAEnCgqC,GAAchqC,IACd4tC,GAAiBC,cAAcplE,GAAiBu3B,GAAKthC,SAE7D,EACAsxC,aAAc,SAAS89B,EAAQC,GAC3BP,GAAcQ,aAAaF,EAAQC,GACnCH,GAAiBK,oBAAoBH,EACzC,EACA39B,iBAAkB,SAASq4C,EAAQza,GAC/BL,GAAkBQ,kBAAkBsa,EAAQza,EAChD,EACA7lC,gBAAiBA,IAErB,IAAKrF,EACD,OAAOr8B,QAAQF,KAAK,mCAExB44E,GAAY,CACR9iF,KAAM6uE,GAAU+U,aAChBz7E,KAAM,CACFk5C,KAAM5a,EACNqqD,cAAezkB,GAAgBlsE,UAEpCwjF,GACHlO,GAAgB/wE,QAAQ,SAAS+3C,GAC7B,OAAOA,EAAI24B,QACf,GACI9yE,SAASihF,oBAAsBjhF,SAASihF,mBAAmBvmF,OAAS,GAAGs0E,GAAkB8G,iBAAiB91E,SAASihF,mBAAoBp4C,GAAOtF,MAAMvjC,UA7DxJ,CA8DJ,EACA,IACI,IAAI63E,GAAW,GACXnE,GAAU,SAAS7sC,GACnB,IAAIxG,EACJ,OAAO6yC,GAAgB6C,GAAhB7C,CAA+B,CAClCnC,WAAYuc,GACZlX,YAAa,SAAS+B,EAAW7yE,GAC7B,OAAOk7E,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAM,CACFP,OAAQA,EACR6yE,UAAWA,IAGvB,EACA9B,mBAAoB,SAAS5hC,GACzB,OAAO+rC,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkB6V,kBAC3B7tC,IAEX,EACAw/B,SAAUsZ,GACVjX,iBAAkB,SAAS7hC,GACvB,OAAO+rC,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkB2V,gBAC3B3tC,IAEX,EACA8hC,QAAS,SAASj8E,GACd,OAAOkmF,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkBvpB,OAC3B5oD,IAEX,EACAk8E,mBAAoB,SAAS36E,GACzB,OAAO2kF,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkB4V,kBAC3BxmF,IAEX,EACA46E,iBAAkB,SAASyT,GACvB,OAAO1J,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkBgW,gBAC3ByH,IAEX,EACAxT,mBAAoB,SAASwT,GACzB,OAAO1J,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkBiW,kBAC3BwH,IAEX,EACAvT,iBAAkB6W,GAClB5W,OAAQ,SAAS/6E,GACb,OAAO2kF,GAAY,CACf9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkBmW,MAC3B/mF,IAEX,EACAg7E,YAAa,SAASh7E,GAClB2kF,GAAY,CACR9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkBoW,WAC3BhnF,IAEX,EACAi7E,gBAAiB,SAASpvC,GACtB84C,GAAY,CACR9iF,KAAM6uE,GAAUqV,oBAChB/7E,KAAMy2B,EAAS,CACXh3B,OAAQmnE,GAAkBgiB,eAC3B/mD,IAEX,EACAoB,WAAYA,EACZ6xC,YAAaA,EACbC,eAAgBA,EAChBxyC,cAAeA,EACfC,iBAAkBA,EAClB5D,iBAAkBA,GAClBwE,iBAAkBA,EAClBirC,SAAUA,EACV0D,UAAWA,EACXruC,aAAcA,EACdD,aAAcA,EACduxC,qBAAsBA,EACtB8C,aAAcA,EACd92C,IAAKA,EACLnC,YAAaA,EACbyE,WAAYA,EACZK,gBAAiBA,EACjBT,cAAeA,EACfmI,eAAgBA,GAChB7H,eAAgBA,EAChBR,OAAQA,GACRimC,cAAeA,GACfE,kBAAmBA,GACnBE,iBAAkBA,GAClBoD,qBAAsBA,GACtBI,cAAeA,GACf2K,oBAAqBA,EACrBp3D,SAEO,OAFIoa,EAAiB,MAAXpa,OAAkB,EAASA,EAAQjY,OAAO,SAASnS,GAChE,OAAOA,EAAE0N,QACb,SAAc,EAAS82B,EAAIlyB,IAAI,SAAStS,GACpC,MAAO,CACH0N,SAAU1N,EAAE0N,SACZpG,QAAStH,EAAEsH,QACX0b,SAAU,SAASuxD,GACf,OAAOoQ,GAAY,CACf9iF,KAAM6uE,GAAU0V,OAChBp8E,KAAM,CACFtK,OAAQM,EAAEwE,KACV+vE,QAASA,IAGrB,EAER,KAAO,IACR6F,EACP,EACAnH,GAAcgS,gBAAgB,SAASlgD,GACnC,IACIi3C,GAAS/wE,KAAK4sE,GAAQ9yC,EAAS8O,iBACnC,CAAE,MAAO7nC,GACLC,QAAQF,KAAKC,EACjB,CACJ,GACA,IAAI5E,GAAO,WACP4jF,KACAhP,GAAS/wE,KAAK4sE,GAAQ1zE,WACtB4qF,IAAY,CAChB,EAmBA,MAlB4B,gBAAxB5qF,SAASyzC,YAAwD,aAAxBzzC,SAASyzC,WAClDxwC,MAEA40E,GAAS/wE,KAAKiC,GAAG,mBAAoB,WACjCy3E,GAAY,CACR9iF,KAAM6uE,GAAUyV,iBAChBn8E,KAAM,CAAC,IAES,qBAAhBmmF,GAAoC/oF,IAC5C,IACA40E,GAAS/wE,KAAKiC,GAAG,OAAQ,WACrBy3E,GAAY,CACR9iF,KAAM6uE,GAAUwV,KAChBl8E,KAAM,CAAC,IAES,SAAhBmmF,GAAwB/oF,IAChC,EAAGpF,UAEA,WACHg6E,GAASz1E,QAAQ,SAASkK,GACtB,IACIA,GACJ,CAAE,MAAOzE,GACKzN,OAAOyN,GAAOuH,cACf/T,SAAS,iBACdyM,QAAQF,KAAKC,EAErB,CACJ,GACAyqE,GAAqBqY,UACrBC,IAAY,EA98EpBvd,QAAe,CAg9EX,CACJ,CAAE,MAAOxlE,GACLC,QAAQF,KAAKC,EACjB,CACJ,CACAkjF,GAAO2D,eAAiB,SAASC,EAAKve,GAClC,IAAKwa,GACD,MAAM,IAAIhoE,MAAM,iDAEpB49D,GAAY,CACR9iF,KAAM6uE,GAAU2V,OAChBr8E,KAAM,CACF8oF,IAAKA,EACLve,QAASA,IAGrB,EACA2a,GAAO6D,WAAa,WAChBzb,GAAgB/wE,QAAQ,SAAS+3C,GAC7B,OAAOA,EAAI1D,QACf,EACJ,EACAs0C,GAAO8D,iBAAmB,SAASxN,GAC/B,IAAKuJ,GACD,MAAM,IAAIhoE,MAAM,mDAEpBikE,GAAmBxF,EACvB,EACA0J,GAAOliD,OAASA,IAENiiD,GAERnrE,KAAMA,GAAI,CAAC,IADNmrE,GAAGgE,WAAa,GAAK,aAAchE,GAAGA,GAAGiE,QAAU,GAAK,UAAWjE,GAAGA,GAAGkE,QAAU,GAAK,UAE/FjE,GAAO2D,eACP3D,GAAO6D,WACP7D,GAAO8D,iBACP,IAAIv3D,GAAY/0B,OAAOg1B,eASnBC,GAAgB,SAASl0B,EAAKY,EAAKmG,GACnC,OATkB,SAAS/G,EAAKY,EAAKmG,GACrC,OAAOnG,KAAOZ,EAAMg0B,GAAUh0B,EAAKY,EAAK,CACpCuzB,YAAY,EACZC,cAAc,EACdC,UAAU,EACVttB,MAAOA,IACN/G,EAAIY,GAAOmG,CACpB,CAEWutB,CAAgBt0B,EAAoE,iBAA/C,IAARY,EAAsB,YAAco5B,EAASp5B,IAAqBA,EAAM,GAAKA,EAAKmG,EAC1H,EAyBI4kF,GAA2B,WAC3B,SAASA,EAAW3rF,GAChBk0B,GAAcx1B,KAAM,YACpBw1B,GAAcx1B,KAAM,gBACpBw1B,GAAcx1B,KAAM,cACpBw1B,GAAcx1B,KAAM,gBACpBA,KAAKktF,SAAW5rF,EAAI4rF,UAAY,GAChCltF,KAAKmtF,aAAe7rF,EAAI6rF,cAAgB,GACxCntF,KAAKotF,WAAa9rF,EAAI8rF,WACtBptF,KAAKqtF,aAAe/rF,EAAI+rF,YAC5B,CAQA,OAPaJ,EAAWvqF,UACjBoM,SAAW,WACd,IAAIs+E,EAAaptF,KAAKotF,YAAc,GAChCC,EAAertF,KAAKqtF,cAAgB,GACxC,OAAIrtF,KAAKmtF,aAAqBntF,KAAKmtF,aAAe,KAAOntF,KAAKktF,SAAW,IAAME,EAAa,IAAMC,EAAe,IAC1GrtF,KAAKktF,SAAW,IAAME,EAAa,IAAMC,CACpD,EACOJ,CACX,CAnB+B,GAoB3BK,GAA8B,eAC9BC,GAAyB,iCACzBC,GAA4B,8BAC5BC,GAAmB,CAGjBzkF,MAAO,SAAenD,GACpB,OAAKA,OAKuB,IAArBA,EAAM6nF,iBAEuB,IAA7B7nF,EAAM,mBACF7F,KAAK2tF,WAAW9nF,GAChBA,EAAMrD,OAASqD,EAAMrD,MAAMiK,MAAM8gF,IACjCvtF,KAAK4tF,YAAY/nF,GACjBA,EAAMrD,MACNxC,KAAK6tF,gBAAgBhoF,IAE5BC,QAAQF,KAAK,yDAA0DC,GAChE,IAdA,EAgBf,EAEAioF,gBAAiB,SAAyBC,GACtC,IAA8B,IAA1BA,EAAQ5rF,QAAQ,KAChB,MAAO,CACH4rF,GAGR,IACInhF,EADS,+BACMiM,KAAKk1E,EAAQzyF,QAAQ,QAAS,KACjD,IAAKsR,EAAO,MAAM,IAAIgU,MAAM,2BAA6BmtE,GACzD,MAAO,CACHnhF,EAAM,GACNA,EAAM,SAAM,EACZA,EAAM,SAAM,EAEpB,EACAghF,YAAa,SAAqB/nF,GAI9B,OAHeA,EAAMrD,MAAMnK,MAAM,MAAM2T,OAAO,SAASgpC,GACnD,QAASA,EAAKvoC,MAAM8gF,GACxB,EAAGvtF,MACamM,IAAI,SAAS6oC,GACrBA,EAAK7yC,QAAQ,WAAa,IAC1B6yC,EAAOA,EAAK15C,QAAQ,aAAc,QAAQA,QAAQ,+BAAgC,KAEtF,IAAI0yF,EAAgBh5C,EAAK15C,QAAQ,OAAQ,IAAIA,QAAQ,eAAgB,KACjEQ,EAAWkyF,EAAcvhF,MAAM,4BAE/BxH,GADJ+oF,EAAgBlyF,EAAWkyF,EAAc1yF,QAAQQ,EAAS,GAAI,IAAMkyF,GACzC31F,MAAM,OAAO4K,MAAM,GAC1CgrF,EAAgBjuF,KAAK8tF,gBAAgBhyF,EAAWA,EAAS,GAAKmJ,EAAO2N,OACrEu6E,EAAeloF,EAAOkD,KAAK,WAAQ,EACnC+kF,EAAW,CACX,OACA,eACF/qF,QAAQ8rF,EAAc,KAAO,OAAI,EAASA,EAAc,GAC1D,OAAO,IAAIhB,GAAW,CAClBE,aAAcA,EACdD,SAAUA,EACVE,WAAYa,EAAc,GAC1BZ,aAAcY,EAAc,IAEpC,EAAGjuF,KACP,EACA6tF,gBAAiB,SAAyBhoF,GAItC,OAHeA,EAAMrD,MAAMnK,MAAM,MAAM2T,OAAO,SAASgpC,GACnD,OAAQA,EAAKvoC,MAAM+gF,GACvB,EAAGxtF,MACamM,IAAI,SAAS6oC,GAIzB,GAHIA,EAAK7yC,QAAQ,YAAc,IAC3B6yC,EAAOA,EAAK15C,QAAQ,mDAAoD,SAEjD,IAAvB05C,EAAK7yC,QAAQ,OAAsC,IAAvB6yC,EAAK7yC,QAAQ,KACzC,OAAO,IAAI8qF,GAAW,CAClBE,aAAcn4C,IAGlB,IAAIk5C,EAAoB,6BACpBznD,EAAUuO,EAAKvoC,MAAMyhF,GACrBf,EAAe1mD,GAAWA,EAAQ,GAAKA,EAAQ,QAAK,EACpDwnD,EAAgBjuF,KAAK8tF,gBAAgB94C,EAAK15C,QAAQ4yF,EAAmB,KACzE,OAAO,IAAIjB,GAAW,CAClBE,aAAcA,EACdD,SAAUe,EAAc,GACxBb,WAAYa,EAAc,GAC1BZ,aAAcY,EAAc,IAGxC,EAAGjuF,KACP,EACA2tF,WAAY,SAAoB3qF,GAC5B,OAAKA,EAAE0qF,YAAc1qF,EAAE7E,QAAQgE,QAAQ,OAAS,GAAKa,EAAE7E,QAAQ9F,MAAM,MAAMK,OAASsK,EAAE0qF,WAAWr1F,MAAM,MAAMK,OAClGsH,KAAKmuF,YAAYnrF,GAChBA,EAAER,MAGHxC,KAAKouF,aAAaprF,GAFlBhD,KAAKquF,aAAarrF,EAIjC,EACAmrF,YAAa,SAAqBnrF,GAI9B,IAHA,IAAIsrF,EAAS,oCACTx4C,EAAQ9yC,EAAE7E,QAAQ9F,MAAM,MACxBoF,EAAS,GACLlF,EAAI,EAAGwgC,EAAM+c,EAAMp9C,OAAQH,EAAIwgC,EAAKxgC,GAAK,EAAE,CAC/C,IAAIkU,EAAQ6hF,EAAOz1E,KAAKi9B,EAAMv9C,IAC1BkU,GACAhP,EAAOqH,KAAK,IAAImoF,GAAW,CACvBC,SAAUzgF,EAAM,GAChB2gF,WAAYmB,WAAW9hF,EAAM,MAGzC,CACA,OAAOhP,CACX,EACA4wF,aAAc,SAAsBrrF,GAIhC,IAHA,IAAIsrF,EAAS,6DACTx4C,EAAQ9yC,EAAE0qF,WAAWr1F,MAAM,MAC3BoF,EAAS,GACLlF,EAAI,EAAGwgC,EAAM+c,EAAMp9C,OAAQH,EAAIwgC,EAAKxgC,GAAK,EAAE,CAC/C,IAAIkU,EAAQ6hF,EAAOz1E,KAAKi9B,EAAMv9C,IAC1BkU,GACAhP,EAAOqH,KAAK,IAAImoF,GAAW,CACvBE,aAAc1gF,EAAM,SAAM,EAC1BygF,SAAUzgF,EAAM,GAChB2gF,WAAYmB,WAAW9hF,EAAM,MAGzC,CACA,OAAOhP,CACX,EAEA2wF,aAAc,SAAsBvoF,GAIhC,OAHeA,EAAMrD,MAAMnK,MAAM,MAAM2T,OAAO,SAASgpC,GACnD,QAASA,EAAKvoC,MAAM6gF,MAAiCt4C,EAAKvoC,MAAM,oBACpE,EAAGzM,MACamM,IAAI,SAAS6oC,GACzB,IAAI/vC,EAAS+vC,EAAK38C,MAAM,KACpB41F,EAAgBjuF,KAAK8tF,gBAAgB7oF,EAAO2N,OAE5Cu6E,GADeloF,EAAOL,SAAW,IACLtJ,QAAQ,iCAAkC,MAAMA,QAAQ,aAAc,UAAO,EAC7G,OAAO,IAAI2xF,GAAW,CAClBE,aAAcA,EACdD,SAAUe,EAAc,GACxBb,WAAYa,EAAc,GAC1BZ,aAAcY,EAAc,IAEpC,EAAGjuF,KACP,GAEJ,SAASwuF,GAAezxC,GACpB,IAAKA,IAASA,EAAK0xC,UACf,MAAO,GAGX,IADA,IAAInsF,EAAO,GACLy6C,EAAK2xC,eAAc,CACrB,IAAIrwF,EAAO0+C,EAAK4xC,UAChB,IAAKtwF,EACD,MAEJA,EAAOA,EAAK+O,cACZ,IAAI6gC,EAAS8O,EAAK2xC,cACdE,EAAc,GAClB,GAAI3gD,EAAO+Y,UAAY/Y,EAAO+Y,SAAStuD,OAAS,EAC5C,IAAI,IAAIH,EAAI,EAAGA,EAAI01C,EAAO+Y,SAAStuD,OAAQH,IAAI,CAC3C,IAAIs2F,EAAU5gD,EAAO+Y,SAASzuD,GAC1Bs2F,EAAQF,WAAaE,EAAQF,UAAUvhF,aACnCyhF,EAAQF,UAAUvhF,gBAAkB/O,GACpCuwF,EAAY9pF,KAAK+pF,EAG7B,CAEAD,EAAYl2F,OAAS,IACrB2F,GAAQ,OAASuwF,EAAYzsF,QAAQ46C,GAAQ,KAEjDz6C,EAAOjE,GAAQiE,EAAO,IAAMA,EAAO,IACnCy6C,EAAO9O,CACX,CACA,OAAO3rC,CACX,CACA,SAASwsF,GAASxtF,GACd,MAA+C,oBAAxCf,OAAOmC,UAAUoM,SAASlM,KAAKtB,EAC1C,CACA,SAASytF,GAAaztF,EAAK0tF,GACvB,GAAc,IAAVA,EACA,OAAO,EAGX,IADA,IACgEjrD,EAAxDC,EAAYrI,EADTp7B,OAAOC,KAAKc,MACkDyiC,EAAQC,KAAavmB,MAAM,CAChG,IAAIvb,EAAM6hC,EAAM17B,MAChB,GAAIymF,GAASxtF,EAAIY,KAAS6sF,GAAaztF,EAAIY,GAAM8sF,EAAQ,GACrD,OAAO,CAEf,CACA,OAAO,CACX,CACA,SAAS/lF,GAAU3H,EAAK2tF,GACpB,IAAI9tF,EAAU,CACV+tF,eAAgB,GAChBC,aAAc,GAElB5uF,OAAOg6B,OAAOp5B,EAAS8tF,GACvB,IAAIzsF,EAAQ,GACRhC,EAAO,GACX,OAAOuI,KAAKE,UAAU3H,EAAK,SAASY,EAAKmG,GACrC,GAAI7F,EAAM9J,OAAS,EAAG,CAClB,IAAI02F,EAAU5sF,EAAML,QAAQnC,OAC3BovF,EAAU5sF,EAAMwF,OAAOonF,EAAU,GAAK5sF,EAAMsC,KAAK9E,OACjDovF,EAAU5uF,EAAKwH,OAAOonF,EAAS1pE,IAAUxjB,GAAO1B,EAAKsE,KAAK5C,IACtDM,EAAML,QAAQkG,KAEXA,EADA7F,EAAM,KAAO6F,EACL,eAEA,eAAiB7H,EAAKyC,MAAM,EAAGT,EAAML,QAAQkG,IAAQF,KAAK,KAAO,IAGrF,MACI3F,EAAMsC,KAAKuD,GAEf,GAAc,OAAVA,EAAgB,OAAOA,EAC3B,QAAc,IAAVA,EAAkB,MAAO,YAC7B,GA4BIymF,GADcO,EA3BDhnF,IA4BK9H,OAAOC,KAAK6uF,GAAM32F,OAASyI,EAAQ+tF,gBAGrC,mBAATG,GAGPP,GAASO,IAASN,GAAaM,EAAMluF,EAAQguF,cAjC7C,OAsCR,SAAkBE,GACd,IAAI3rF,EAAM2rF,EAAKvgF,WAIf,OAHI3N,EAAQmuF,mBAAqB5rF,EAAIhL,OAASyI,EAAQmuF,oBAClD5rF,EAAWA,EAAIT,MAAM,EAAG9B,EAAQmuF,mBAAqB,OAElD5rF,CACX,CA5CeoL,CAASzG,GA0BxB,IAAsBgnF,EAxBlB,GAAuE,iBAAjD,IAAVhnF,EAAwB,YAAcizB,EAASjzB,IACvD,OAAOA,EAAMyG,WAAa,IAE9B,GAAIisB,EAAY1yB,EAAOknF,OAAQ,CAC3B,IAAIC,EAAc,CAAC,EACnB,IAAI,IAAInY,KAAYhvE,EAAM,CACtB,IAAIonF,EAAapnF,EAAMgvE,GACnB59E,MAAMC,QAAQ+1F,GACdD,EAAYnY,GAAYmX,GAAeiB,EAAW/2F,OAAS+2F,EAAW,GAAK,MAE3ED,EAAYnY,GAAYoY,CAEhC,CACA,OAAOD,CACX,CAAO,OAAIz0D,EAAY1yB,EAAOk1B,MACtBxC,EAAY1yB,EAAOiuB,aACZjuB,EAAQA,EAAMomF,UAAY,GAE9BpmF,EAAM+gE,SACNruC,EAAY1yB,EAAOuY,OACnBvY,EAAM7F,MAAQ6F,EAAM7F,MAAQ,kCAAoC6F,EAAMhK,KAAO,KAAOgK,EAAMlK,QAE9FkK,CACX,EAoBJ,CACA,IAAIqnF,GAAoB,CACpBC,MAAO,CACH,SACA,QACA,QACA,aACA,QACA,MACA,SACA,QACA,QACA,iBACA,WACA,OACA,MACA,QACA,OACA,UACA,UACA,QACA,QAEJC,gBAAiB,IACjBzpF,OAAQ,WAEZ,SAAS0pF,GAAgBroC,EAAIrvB,EAAKh3B,GAC9B,IAKIgF,EALA2pF,EAAa3uF,EAAUZ,OAAOg6B,OAAO,CAAC,EAAGm1D,GAAmBvuF,GAAWuuF,GACvEK,EAAaD,EAAW3pF,OAC5B,IAAK4pF,EACD,OAAO,WAAY,EAInB5pF,EADsB,iBAAf4pF,EACE53D,EAAI43D,GAEJA,EAEb,IAAIC,EAAW,EACXC,GAAU,EACVC,EAAiB,GACrB,GAAIJ,EAAWH,MAAMt2F,SAAS,SAAU,CACpC,IAAIgyE,EAAe,SAAS3tE,GACxB,IAAIS,EAAUT,EAAMS,QAAS0H,EAAQnI,EAAMmI,MACvCsqF,EAAQ1C,GAAiBzkF,MAAMnD,GAAOsG,IAAI,SAASikF,GACnD,OAAOA,EAAWthF,UACtB,GACIs/D,EAAU,CACVnlE,GAAU9K,EAAS2xF,EAAWb,mBAElCznC,EAAG,CACCmoC,MAAO,QACPQ,MAAOA,EACP/hB,QAASA,GAEjB,EACAj2C,EAAIvT,iBAAiB,QAASymD,GAC9B6kB,EAAeprF,KAAK,WAChBqzB,EAAItT,oBAAoB,QAASwmD,EACrC,GACA,IAAIglB,EAA4B,SAAS3yF,GACrC,IAAImI,EACAuoE,EACArzC,EAAYr9B,EAAM03C,OAAQx0B,OAE1BwtD,EAAU,CACNnlE,GAAU,0BAFdpD,EAAQnI,EAAM03C,QAEiC/2C,KAAO,KAAOwH,EAAM1H,QAAS2xF,EAAWb,oBAGvFppF,EAAQ,IAAI+a,MACZwtD,EAAU,CACNnlE,GAAU,wBAAyB6mF,EAAWb,kBAC9ChmF,GAAUvL,EAAM03C,OAAQ06C,EAAWb,oBAG3C,IAAIkB,EAAQ1C,GAAiBzkF,MAAMnD,GAAOsG,IAAI,SAASikF,GACnD,OAAOA,EAAWthF,UACtB,GACA04C,EAAG,CACCmoC,MAAO,QACPQ,MAAOA,EACP/hB,QAASA,GAEjB,EACAj2C,EAAIvT,iBAAiB,qBAAsByrE,GAC3CH,EAAeprF,KAAK,WAChBqzB,EAAItT,oBAAoB,qBAAsBwrE,EAClD,EACJ,CACA,IAAI,IAAwEtsD,EAApEC,EAAYrI,EAAqCm0D,EAAWH,SAAiB5rD,EAAQC,KAAavmB,MAAM,CAC5G,IAAI6yE,EAAYvsD,EAAM17B,MACtB6nF,EAAeprF,KAAKxJ,EAAQ6K,EAAQmqF,GACxC,CACA,OAAO,WACHJ,EAAe9vF,QAAQ,SAAS22E,GAC5B,OAAOA,GACX,EACJ,EACA,SAASz7E,EAAQi1F,EAASZ,GACtB,IAAI5tD,EAAQ/hC,KACZ,OAAKuwF,EAAQZ,GA9ZrB,SAAersF,EAAQjF,GACnB,IACI,KAAMA,KAAQiF,GACV,OAAO,WAAY,EAEvB,IAAIwhD,EAAWxhD,EAAOjF,GAClB0oE,EA2ZyB,SAASjiB,GAClC,IAAIshC,EAASrkD,EACb,OAAO,WACH,IAAI,IAAIma,EAAOlvC,UAAUtU,OAAQgN,EAAO,IAAIjM,MAAMyiD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC5Ez2C,EAAKy2C,GAAQnvC,UAAUmvC,GAG3B,GADA2I,EAAS/+C,MAAMqgF,EAAQ1gF,KACT,WAAViqF,GAAwBjqF,EAAK,IAG7BuqF,GAAJ,CAGAA,GAAU,EACV,IACI,IAAIE,EAAQ1C,GAAiBzkF,MAAM,IAAI4X,OAASzU,IAAI,SAASikF,GACzD,OAAOA,EAAWthF,UACtB,GAAG9G,OAAO,GAENomE,GAD2B,WAAVuhB,EAAqBjqF,EAAKzC,MAAM,GAAKyC,GAC7ByG,IAAI,SAASrI,GACtC,OAAOmF,GAAUnF,EAAGgsF,EAAWb,iBACnC,KACAe,EACeF,EAAWF,gBACtBpoC,EAAG,CACCmoC,MAAOA,EACPQ,MAAOA,EACP/hB,QAASA,IAEN4hB,IAAaF,EAAWF,iBAC/BpoC,EAAG,CACCmoC,MAAO,OACPQ,MAAO,GACP/hB,QAAS,CACLnlE,GAAU,sDAI1B,CAAE,MAAOpD,GACLi/C,EAAS/+C,WAAM,EAAQ,GAAGwC,OAAO,CAC7B,sBACA1C,GACDH,GACP,CAAE,QACEuqF,GAAU,CACd,CAjCA,CAkCJ,CACJ,CA1ccnpB,CAAYhiB,GAW1B,MAVuB,mBAAZiiB,IACPA,EAAQrkE,UAAYqkE,EAAQrkE,WAAa,CAAC,EAC1CnC,OAAOymE,iBAAiBD,EAAS,CAC7BE,mBAAoB,CAChBxxC,YAAY,EACZptB,MAAOy8C,MAInBxhD,EAAOjF,GAAQ0oE,EACR,WACHzjE,EAAOjF,GAAQymD,CACnB,CACJ,CAAE,MAAO9hD,GACL,OAAO,WAAY,CACvB,CACJ,CA0YewtF,CAAMD,EAASZ,GAFX,WAAY,CAkD3B,CACJ,CACA,IAUIc,GAAaC,GAAOC,GADpBC,GAAez4D,EAAkB,aAEjC04D,GAAWtwF,OAAOmC,UAAUoM,SAC5BigB,QAAiC,IAAjB6hE,GACZ,SAAe92E,GAAM,OAAO82E,GAAa92E,EAAK,EAC9CmE,WAGR,IACI1d,OAAOg1B,eAAe,CAAC,EAAE,IAAI,CAAC,GAC9Bk7D,GAAc,SAAqBnvF,EAAIjD,EAAKwY,EAAIi6E,GAC5C,OAAOvwF,OAAOg1B,eAAej0B,EAAIjD,EAAK,CAClCgK,MAAOwO,EACP8e,UAAU,EACVD,cAAyB,IAAXo7D,GAEtB,CACJ,CACA,MAAO96E,GACHy6E,GAAc,SAAqBnvF,EAAIjD,EAAKwY,GAExC,OADAvV,EAAIjD,GAAQwY,EACLvV,CACX,CACJ,CAoCA,SAASyvF,GAASj3E,EAAGic,GACjB46D,GAAgBx1E,IAAIrB,EAAGic,GAClB26D,KACDA,GAAQ3hE,GAAM4hE,GAAgBK,OAEtC,CAGA,SAASC,GAAW5lF,GAChB,IAAI6lF,EAAOC,SAAe9lF,EAK1B,OAHU,OAANA,GAAyB,WAAV8lF,GAAgC,aAAVA,IACrCD,EAAQ7lF,EAAE8S,MAEU,mBAAV+yE,GAAuBA,CACzC,CAEA,SAASE,KACL,IAAK,IAAI74F,EAAE,EAAGA,EAAEyH,KAAKqxF,MAAM34F,OAAQH,IAC/B+4F,GACItxF,KACgB,IAAfA,KAAKqK,MAAerK,KAAKqxF,MAAM94F,GAAGq5B,QAAU5xB,KAAKqxF,MAAM94F,GAAGg5F,QAC3DvxF,KAAKqxF,MAAM94F,IAGnByH,KAAKqxF,MAAM34F,OAAS,CACxB,CAKA,SAAS44F,GAAev7D,EAAKyxB,EAAG6pC,GAC5B,IAAIvyE,EAAKoyE,EACT,KACe,IAAP1pC,EACA6pC,EAAMxvF,OAAOk0B,EAAKy7D,MAId1yE,GADO,IAAP0oC,EACMzxB,EAAKy7D,IAGLhqC,EAAG5kD,UAAK,EAAOmzB,EAAKy7D,QAGlBH,EAAM3vF,QACd2vF,EAAMxvF,OAAOi5B,UAAU,yBAGlBo2D,EAAQD,GAAWnyE,IACxBoyE,EAAMtuF,KAAKkc,EAAIuyE,EAAMzvF,QAAQyvF,EAAMxvF,QAGnCwvF,EAAMzvF,QAAQkd,EAG1B,CACA,MAAO9I,GACHq7E,EAAMxvF,OAAOmU,EACjB,CACJ,CAEA,SAASpU,GAAQ4vF,GACb,IAAIN,EAAOn7D,EAAO/1B,KAGlB,IAAI+1B,EAAK07D,UAAT,CAEA17D,EAAK07D,WAAY,EAGb17D,EAAK27D,MACL37D,EAAOA,EAAK27D,KAGhB,KAEQR,EAAQD,GAAWO,IACnBT,GAAS,WACL,IAAIY,EAAa,IAAIC,GAAe77D,GACpC,IACIm7D,EAAMtuF,KAAK4uF,EACP,WAAsB5vF,GAAQmE,MAAM4rF,EAAW3kF,UAAY,EAC3D,WAAqBnL,GAAOkE,MAAM4rF,EAAW3kF,UAAY,EAEjE,CACA,MAAOgJ,GACHnU,GAAOe,KAAK+uF,EAAW37E,EAC3B,CACJ,IAGA+f,EAAKy7D,IAAMA,EACXz7D,EAAK1rB,MAAQ,EACT0rB,EAAKs7D,MAAM34F,OAAS,GACpBq4F,GAASK,GAAOr7D,GAG5B,CACA,MAAO/f,GACHnU,GAAOe,KAAK,IAAIgvF,GAAe77D,GAAM/f,EACzC,CAnC8B,CAoClC,CAEA,SAASnU,GAAO2vF,GACZ,IAAIz7D,EAAO/1B,KAGP+1B,EAAK07D,YAET17D,EAAK07D,WAAY,EAGb17D,EAAK27D,MACL37D,EAAOA,EAAK27D,KAGhB37D,EAAKy7D,IAAMA,EACXz7D,EAAK1rB,MAAQ,EACT0rB,EAAKs7D,MAAM34F,OAAS,GACpBq4F,GAASK,GAAOr7D,GAExB,CAEA,SAAS87D,GAAgB73D,EAAYlB,EAAI9a,EAAS8zE,GAC9C,IAAK,IAAIC,EAAI,EAAGA,EAAIj5D,EAAIpgC,OAAQq5F,KAC5B,SAAeA,GACX/3D,EAAYp4B,QAAQk3B,EAAIi5D,IACnB5zE,KACG,SAAoBqzE,GAChBxzE,EAAS+zE,EAAIP,EACjB,EACAM,EAEX,EARD,CAQGC,EAEX,CAEA,SAASH,GAAe77D,GACpB/1B,KAAK0xF,IAAM37D,EACX/1B,KAAKyxF,WAAY,CACrB,CAEA,SAASO,GAAQj8D,GACb/1B,KAAK0B,QAAUq0B,EACf/1B,KAAKqK,MAAQ,EACbrK,KAAKyxF,WAAY,EACjBzxF,KAAKqxF,MAAQ,GACbrxF,KAAKwxF,SAAM,CACf,CAEA,SAASS,GAAWC,GAChB,GAAwB,mBAAbA,EACP,MAAMp3D,UAAU,kBAGpB,GAAwB,IAApB96B,KAAc,QACd,MAAM86B,UAAU,iBAKpB96B,KAAc,QAAI,EAElB,IAAI0xF,EAAM,IAAIM,GAAQhyF,MAEtBA,KAAW,KAAI,SAAc4xB,EAAQ2/D,GACjC,IAAIlmF,EAAI,CACJumB,QAA4B,mBAAZA,GAAyBA,EACzC2/D,QAA4B,mBAAZA,GAAyBA,GAmB7C,OAdAlmF,EAAE3J,QAAU,IAAI1B,KAAKD,YAAY,SAAsB6B,EAAQC,GAC3D,GAAuB,mBAAZD,GAA4C,mBAAXC,EACxC,MAAMi5B,UAAU,kBAGpBzvB,EAAEzJ,QAAUA,EACZyJ,EAAExJ,OAASA,CACf,GACA6vF,EAAIL,MAAMvsF,KAAKuG,GAEG,IAAdqmF,EAAIrnF,OACJ0mF,GAASK,GAAOM,GAGbrmF,EAAE3J,OACb,EACA1B,KAAY,MAAI,SAAiBuxF,GAC7B,OAAOvxF,KAAKme,UAAK,EAAOozE,EAC5B,EAEA,IACIW,EAAStvF,UACL,EACA,SAAuB4uF,GACnB5vF,GAAQgB,KAAK8uF,EAAIF,EACrB,EACA,SAAsBA,GAClB3vF,GAAOe,KAAK8uF,EAAIF,EACpB,EAER,CACA,MAAOx7E,GACHnU,GAAOe,KAAK8uF,EAAI17E,EACpB,CACJ,CAjPA26E,GAAkB,WACd,IAAIh4C,EAAOz1C,EAAM+rE,EAEjB,SAASkjB,EAAKr4E,EAAGic,GACb/1B,KAAK8Z,GAAKA,EACV9Z,KAAK+1B,KAAOA,EACZ/1B,KAAKmF,UAAO,CAChB,CAEA,MAAO,CACHgW,IAAK,SAAarB,EAAGic,GACjBk5C,EAAO,IAAIkjB,EAAKr4E,EAAGic,GACf7yB,EACAA,EAAKiC,KAAO8pE,EAGZt2B,EAAQs2B,EAEZ/rE,EAAO+rE,EACPA,OAAO,CACX,EACA+hB,MAAO,WACH,IAAIx4E,EAAImgC,EAGR,IAFAA,EAAQz1C,EAAOwtF,QAAQ,EAEhBl4E,GACHA,EAAEsB,GAAGlX,KAAK4V,EAAEud,MACZvd,EAAIA,EAAErT,IAEd,EAEP,CA/BiB,GAmPlB,IAsFIitF,GAtFAC,GAAmB5B,GAAY,CAAC,EAAE,cAAcwB,IAC/B,GAIrBA,GAAWvvF,UAAY2vF,GAGvB5B,GAAY4B,GAAiB,UAAU,GAClB,GAGrB5B,GAAYwB,GAAW,UAAU,SAAyBT,GAKtD,OAAIA,GAAsB,iBAARA,GAAuC,IAAnBA,EAAa,QACxCA,EAGJ,IARWxxF,KAQK,SAAkB4B,EAAQC,GAC7C,GAAuB,mBAAZD,GAA4C,mBAAXC,EACxC,MAAMi5B,UAAU,kBAGpBl5B,EAAQ4vF,EACZ,EACJ,GAEAf,GAAYwB,GAAW,SAAS,SAAwBT,GACpD,OAAO,IAAIxxF,KAAK,SAAkB4B,EAAQC,GACtC,GAAuB,mBAAZD,GAA4C,mBAAXC,EACxC,MAAMi5B,UAAU,kBAGpBj5B,EAAO2vF,EACX,EACJ,GAEAf,GAAYwB,GAAW,MAAM,SAAqBn5D,GAC9C,IAAIkB,EAAch6B,KAGlB,MAA2B,mBAAvB6wF,GAASjuF,KAAKk2B,GACPkB,EAAYn4B,OAAOi5B,UAAU,iBAErB,IAAfhC,EAAIpgC,OACGshC,EAAYp4B,QAAQ,IAGxB,IAAIo4B,EAAY,SAAkBp4B,EAAQC,GAC7C,GAAuB,mBAAZD,GAA4C,mBAAXC,EACxC,MAAMi5B,UAAU,kBAGpB,IAAI/B,EAAMD,EAAIpgC,OAAQ45F,EAAO74F,MAAMs/B,GAAM7qB,EAAQ,EAEjD2jF,GAAgB73D,EAAYlB,EAAI,SAAkBi5D,EAAIP,GAClDc,EAAKP,GAAOP,IACNtjF,IAAU6qB,GACZn3B,EAAQ0wF,EAEhB,EAAEzwF,EACN,EACJ,GAEA4uF,GAAYwB,GAAW,OAAO,SAAsBn5D,GAChD,IAAIkB,EAAch6B,KAGlB,MAA2B,mBAAvB6wF,GAASjuF,KAAKk2B,GACPkB,EAAYn4B,OAAOi5B,UAAU,iBAGjC,IAAId,EAAY,SAAkBp4B,EAAQC,GAC7C,GAAuB,mBAAZD,GAA4C,mBAAXC,EACxC,MAAMi5B,UAAU,kBAGpB+2D,GAAgB73D,EAAYlB,EAAI,SAAkBi5D,EAAIP,GAClD5vF,EAAQ4vF,EACZ,EAAE3vF,EACN,EACJ,GAIIuwF,GADmB,oBAAZzwF,UAA4E,IAAjDA,QAAQmN,WAAW3M,QAAQ,iBAC3CR,QAEAswF,GAGtB,IAmhBQM,GACAC,GAWAnvE,GA6HAhb,GAvIAoqF,GAWA5sF,GAMAV,GAWAqV,GAuCAg+B,GAqCA5E,GA7nBJ8+C,GAAS,CACTC,OAAO,EACPC,YAAa,UAMbC,GAAmB,MASnBC,GAAar5F,MAAMiJ,UACnBqwF,GAAYl5D,SAASn3B,UACrBswF,GAAWzyF,OAAOmC,UAClBO,GAAQ6vF,GAAW7vF,MACnB6L,GAAWkkF,GAASlkF,SACpBnM,GAAiBqwF,GAASrwF,eAC1BswF,GAAgB96D,EAAIryB,QACpB0yB,GAAYL,EAAIK,UAChB06D,GAAa/6D,EAAIn6B,SACjBm1F,GAAch7D,EAAIi7D,MAClBx6D,GAAST,EAAIS,OACbH,GAAYD,GAAUC,UAEtB46D,GAAaN,GAAU70E,KACvBo1E,GAAgBR,GAAW1yF,QAC3BmzF,GAAgBT,GAAW3wF,QAC3BqxF,GAAYV,GAAW3mF,IACvBsnF,GAAgBh6F,MAAMC,QACtBg6F,GAAU,CAAC,EAEXxtE,GAAI,CACJlnB,KAAM,SAAS0E,GAEX,OAAOA,EAAIpI,QAAQ,qCAAsC,GAC7D,GAIAq4F,GAAY,CAEZluF,IAAK,WACD,GAAIitF,GAAOC,QAAUzsE,GAAE0tE,YAAYX,KAAkBA,GACjD,IACIA,GAAcxtF,IAAIM,MAAMktF,GAAejmF,UAC3C,CAAE,MAAOgJ,GACLkQ,GAAEghC,KAAKl6C,UAAW,SAASqsB,GACvB45D,GAAcxtF,IAAI4zB,EACtB,EACJ,CAER,EAEAzzB,KAAM,WACF,GAAI8sF,GAAOC,QAAUzsE,GAAE0tE,YAAYX,KAAkBA,GAAe,CAChE,IAAIvtF,EAAO,CAAC,qBAAqB6C,OAAO2d,GAAE2tE,QAAQ7mF,YAClD,IACIimF,GAAcrtF,KAAKG,MAAMktF,GAAevtF,EAC5C,CAAE,MAAOsQ,GACLkQ,GAAEghC,KAAKxhD,EAAM,SAAS2zB,GAClB45D,GAAcrtF,KAAKyzB,EACvB,EACJ,CACJ,CACJ,EAEAxzB,MAAO,WACH,GAAI6sF,GAAOC,QAAUzsE,GAAE0tE,YAAYX,KAAkBA,GAAe,CAChE,IAAIvtF,EAAO,CAAC,mBAAmB6C,OAAO2d,GAAE2tE,QAAQ7mF,YAChD,IACIimF,GAAcptF,MAAME,MAAMktF,GAAevtF,EAC7C,CAAE,MAAOsQ,GACLkQ,GAAEghC,KAAKxhD,EAAM,SAAS2zB,GAClB45D,GAAcptF,MAAMwzB,EACxB,EACJ,CACJ,CACJ,EAEAy6D,SAAU,WACN,IAAK5tE,GAAE0tE,YAAYX,KAAkBA,GAAe,CAChD,IAAIvtF,EAAO,CAAC,mBAAmB6C,OAAO2d,GAAE2tE,QAAQ7mF,YAChD,IACIimF,GAAcptF,MAAME,MAAMktF,GAAevtF,EAC7C,CAAE,MAAOsQ,GACLkQ,GAAEghC,KAAKxhD,EAAM,SAAS2zB,GAClB45D,GAAcptF,MAAMwzB,EACxB,EACJ,CACJ,CACJ,GAGA06D,GAAuB,SAASrnC,EAAMxmD,GACtC,OAAO,WAEH,OADA8G,UAAU,GAAK,IAAM9G,EAAS,KAAO8G,UAAU,GACxC0/C,EAAK3mD,MAAM4tF,GAAW3mF,UACjC,CACJ,EACIgnF,GAAsB,SAAS9tF,GAC/B,MAAO,CACHT,IAAKsuF,GAAqBJ,GAAUluF,IAAKS,GACzCL,MAAOkuF,GAAqBJ,GAAU9tF,MAAOK,GAC7C4tF,SAAUC,GAAqBJ,GAAUG,SAAU5tF,GAE3D,EAGI+tF,GAAW,SAASz7E,GACpB,OAAO,WACH,IACI,OAAOA,EAAEzS,MAAM/F,KAAMgN,UACzB,CAAE,MAAOhK,GACL2wF,GAAUG,SAAS,gFACfpB,GAAOC,OACPgB,GAAUG,SAAS9wF,EAE3B,CACJ,CACJ,EAEIkxF,GAAgB,SAASC,GACzB,IAAIC,EAAQD,EAAMzxF,UAClB,IAAK,IAAIgqD,KAAQ0nC,EACe,mBAAjBA,EAAM1nC,KACb0nC,EAAM1nC,GAAQunC,GAASG,EAAM1nC,IAGzC,EAKAxmC,GAAEhI,KAAO,SAASwuC,EAAMlvD,GACpB,IAAIkI,EAAM2uF,EACV,GAAIhB,IAAc3mC,EAAKxuC,OAASm1E,GAC5B,OAAOA,GAAWttF,MAAM2mD,EAAMzpD,GAAML,KAAKoK,UAAW,IAExD,IAAKkZ,GAAEouE,WAAW5nC,GACd,MAAM,IAAI5xB,UAiBd,OAfAp1B,EAAOzC,GAAML,KAAKoK,UAAW,GAC7BqnF,EAAQ,WACJ,KAAMr0F,gBAAgBq0F,GAClB,OAAO3nC,EAAK3mD,MAAMvI,EAASkI,EAAK6C,OAAOtF,GAAML,KAAKoK,aAEtD,IAAI+0E,EAAO,CAAC,EACZA,EAAKr/E,UAAYgqD,EAAKhqD,UACtB,IAAIqzB,EAAO,IAAIgsD,EACfA,EAAKr/E,UAAY,KACjB,IAAIjF,EAASivD,EAAK3mD,MAAMgwB,EAAMrwB,EAAK6C,OAAOtF,GAAML,KAAKoK,aACrD,OAAIzM,OAAO9C,KAAYA,EACZA,EAEJs4B,CACX,EACOs+D,CACX,EAOAnuE,GAAEghC,KAAO,SAAS5lD,EAAKw6B,EAAUt+B,GAC7B,GAAI8D,QAGJ,GAAIgyF,IAAiBhyF,EAAIlB,UAAYkzF,GACjChyF,EAAIlB,QAAQ07B,EAAUt+B,QACnB,GAAI8D,EAAI5I,UAAY4I,EAAI5I,QAC3B,IAAK,IAAIH,EAAI,EAAGuX,EAAIxO,EAAI5I,OAAQH,EAAIuX,EAAGvX,IACnC,GAAIA,KAAK+I,GAAOw6B,EAASl5B,KAAKpF,EAAS8D,EAAI/I,GAAIA,EAAG+I,KAASoyF,GACvD,YAIR,IAAK,IAAIxxF,KAAOZ,EACZ,GAAIqB,GAAeC,KAAKtB,EAAKY,IACrB45B,EAASl5B,KAAKpF,EAAS8D,EAAIY,GAAMA,EAAKZ,KAASoyF,GAC/C,MAKpB,EAEAxtE,GAAEquE,OAAS,SAASjzF,GAQhB,OAPA4kB,GAAEghC,KAAKjkD,GAAML,KAAKoK,UAAW,GAAI,SAAS1J,GACtC,IAAK,IAAIE,KAAQF,OACQ,IAAjBA,EAAOE,KACPlC,EAAIkC,GAAQF,EAAOE,GAG/B,GACOlC,CACX,EAEA4kB,GAAExsB,QAAU+5F,IAAiB,SAASnyF,GAClC,MAA8B,mBAAvBwN,GAASlM,KAAKtB,EACzB,EAKA4kB,GAAEouE,WAAa,SAAS97E,GACpB,IACI,MAAO,mBAAmBnM,KAAKmM,EACnC,CAAE,MAAOihD,GACL,OAAO,CACX,CACJ,EAEAvzC,GAAEsuE,YAAc,SAASlzF,GACrB,SAAUA,IAAOqB,GAAeC,KAAKtB,EAAK,UAC9C,EAEA4kB,GAAE2tE,QAAU,SAASY,GACjB,OAAKA,EAGDA,EAASZ,QACFY,EAASZ,UAEhB3tE,GAAExsB,QAAQ+6F,IAGVvuE,GAAEsuE,YAAYC,GAFPxxF,GAAML,KAAK6xF,GAKfvuE,GAAEgE,OAAOuqE,GAXL,EAYf,EAEAvuE,GAAE/Z,IAAM,SAAS2sB,EAAKjc,EAAUrf,GAC5B,GAAIg2F,IAAa16D,EAAI3sB,MAAQqnF,GACzB,OAAO16D,EAAI3sB,IAAI0Q,EAAUrf,GAEzB,IAAI+vB,EAAU,GAId,OAHArH,GAAEghC,KAAKpuB,EAAK,SAASm2C,GACjB1hD,EAAQzoB,KAAK+X,EAASja,KAAKpF,EAASyxE,GACxC,GACO1hD,CAEf,EAEArH,GAAE1lB,KAAO,SAASc,GACd,IAAIisB,EAAU,GACd,OAAY,OAARjsB,GAGJ4kB,GAAEghC,KAAK5lD,EAAK,SAAS+G,EAAOnG,GACxBqrB,EAAQA,EAAQ70B,QAAUwJ,CAC9B,GAJWqrB,CAMf,EAEArH,GAAEgE,OAAS,SAAS5oB,GAChB,IAAIisB,EAAU,GACd,OAAY,OAARjsB,GAGJ4kB,GAAEghC,KAAK5lD,EAAK,SAAS+G,GACjBklB,EAAQA,EAAQ70B,QAAU2P,CAC9B,GAJWklB,CAMf,EAEArH,GAAEwuE,QAAU,SAASpzF,EAAK+B,GACtB,IAAIwO,GAAQ,EACZ,OAAY,OAARvQ,EACOuQ,EAEP0hF,IAAiBjyF,EAAIa,UAAYoxF,IACF,GAAxBjyF,EAAIa,QAAQkB,IAEvB6iB,GAAEghC,KAAK5lD,EAAK,SAAS+G,GACjB,GAAIwJ,IAAUA,EAASxJ,IAAUhF,GAC7B,OAAOqwF,EAEf,GACO7hF,EACX,EAEAqU,GAAE7sB,SAAW,SAASqK,EAAKixF,GACvB,OAAgC,IAAzBjxF,EAAIvB,QAAQwyF,EACvB,EAGAzuE,GAAE0uE,QAAU,SAASC,EAAUC,GAI3B,OAHAD,EAASnyF,UAAY,IAAIoyF,EACzBD,EAASnyF,UAAU3C,YAAc80F,EACjCA,EAASC,WAAaA,EAAWpyF,UAC1BmyF,CACX,EAEA3uE,GAAE4oE,SAAW,SAASxtF,GAClB,OAAQA,IAAQf,OAAOe,KAAS4kB,GAAExsB,QAAQ4H,EAC9C,EAEA4kB,GAAE6uE,cAAgB,SAASzzF,GACvB,GAAI4kB,GAAE4oE,SAASxtF,GAAM,CACjB,IAAK,IAAIY,KAAOZ,EACZ,GAAIqB,GAAeC,KAAKtB,EAAKY,GACzB,OAAO,EAGf,OAAO,CACX,CACA,OAAO,CACX,EAEAgkB,GAAE0tE,YAAc,SAAStyF,GACrB,YAAe,IAARA,CACX,EAEA4kB,GAAE7kB,SAAW,SAASC,GAClB,MAA6B,mBAAtBwN,GAASlM,KAAKtB,EACzB,EAEA4kB,GAAE8uE,OAAS,SAAS1zF,GAChB,MAA6B,iBAAtBwN,GAASlM,KAAKtB,EACzB,EAEA4kB,GAAE+uE,SAAW,SAAS3zF,GAClB,MAA6B,mBAAtBwN,GAASlM,KAAKtB,EACzB,EAEA4kB,GAAEqZ,UAAY,SAASj+B,GACnB,SAAUA,GAAwB,IAAjBA,EAAIk+B,SACzB,EAEAtZ,GAAEgvE,YAAc,SAAS5zF,GAQrB,OAPA4kB,GAAEghC,KAAK5lD,EAAK,SAASiI,EAAG1G,GAChBqjB,GAAE8uE,OAAOzrF,GACTjI,EAAIuB,GAAKqjB,GAAEivE,WAAW5rF,GACf2c,GAAE4oE,SAASvlF,KAClBjI,EAAIuB,GAAKqjB,GAAEgvE,YAAY3rF,GAE/B,GACOjI,CACX,EAEA4kB,GAAEy5D,UAAY,WAIV,OAHAluD,KAAKC,IAAMD,KAAKC,KAAO,WACnB,OAAQ,IAAID,IAChB,EACOA,KAAKC,KAChB,EAEAxL,GAAEivE,WAAa,SAAS1iD,GAEpB,SAAS2iD,EAAIz3E,GACT,OAAOA,EAAI,GAAK,IAAMA,EAAIA,CAC9B,CACA,OAAO80B,EAAE4iD,iBAAmB,IACxBD,EAAI3iD,EAAE6iD,cAAgB,GAAK,IAC3BF,EAAI3iD,EAAE8iD,cAAgB,IACtBH,EAAI3iD,EAAE+iD,eAAiB,IACvBJ,EAAI3iD,EAAEgjD,iBAAmB,IACzBL,EAAI3iD,EAAEijD,gBACd,EAEAxvE,GAAEyvE,uBAAyB,SAAS97F,GAChC,IAAIilB,EAAM,CAAC,EAMX,OALAoH,GAAEghC,KAAKrtD,EAAG,SAAS0P,EAAG1G,GACdqjB,GAAE7kB,SAASkI,IAAMA,EAAE7Q,OAAS,IAC5BomB,EAAIjc,GAAK0G,EAEjB,GACOuV,CACX,EAOAoH,GAAE0vE,SAAW,SAASt0F,EAAK5I,GACvB,IAAIomB,EAkBJ,MAhBoB,iBAAV,EACNA,EAAMxd,EAAI2B,MAAM,EAAGvK,GACZwtB,GAAExsB,QAAQ4H,IACjBwd,EAAM,GACNoH,GAAEghC,KAAK5lD,EAAK,SAASuV,GACjBiI,EAAIha,KAAKohB,GAAE0vE,SAAS/+E,EAAKne,GAC7B,IACOwtB,GAAE4oE,SAASxtF,IAClBwd,EAAM,CAAC,EACPoH,GAAEghC,KAAK5lD,EAAK,SAASuV,EAAK3U,GACtB4c,EAAI5c,GAAOgkB,GAAE0vE,SAAS/+E,EAAKne,EAC/B,IAEAomB,EAAMxd,EAGHwd,CACX,EAEAoH,GAAE2vE,WACS,SAASC,GACZ,IACIjnC,EAAQ,SAASrW,GACjB,IAAIu9C,EAAY,0HACZ3zD,EAAO,CACP,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,KAAM,MACN,IAAK,MACL,KAAM,QAIV,OADA2zD,EAAU79E,UAAY,EACf69E,EAAU1pF,KAAKmsC,GAClB,IAAMA,EAAOl9C,QAAQy6F,EAAW,SAAS/qF,GACrC,IAAIiB,EAAIm2B,EAAKp3B,GACb,MAAoB,iBAANiB,EAAiBA,EAC3B,OAAS,OAASjB,EAAEq6C,WAAW,GAAGv2C,SAAS,KAAK7L,OAAO,EAC/D,GAAK,IACL,IAAMu1C,EAAS,GACvB,EAEI90C,EAAM,SAASxB,EAAK8zF,GACpB,IAAI/vE,EAAM,GAEN1tB,EAAI,EACJsK,EAAI,GACJ0G,EAAI,GACJ7Q,EAAS,EACTu9F,EAAOhwE,EACPiwE,EAAU,GACV7tF,EAAQ2tF,EAAO9zF,GASnB,OANImG,GAA0B,iBAAVA,GACQ,mBAAjBA,EAAMmB,SACbnB,EAAQA,EAAMmB,OAAOtH,WAIVmG,GACX,IAAK,SACD,OAAOwmD,EAAMxmD,GAEjB,IAAK,SAED,OAAO8tF,SAAS9tF,GAASjQ,OAAOiQ,GAAS,OAE7C,IAAK,UACL,IAAK,OAKD,OAAOjQ,OAAOiQ,GAElB,IAAK,SAKD,IAAKA,EACD,MAAO,OAQX,GAJA4d,GA1CK,OA2CLiwE,EAAU,GAGoB,mBAA1BpnF,GAAS/I,MAAMsC,GAA6B,CAK5C,IADA3P,EAAS2P,EAAM3P,OACVH,EAAI,EAAGA,EAAIG,EAAQH,GAAK,EACzB29F,EAAQ39F,GAAKmL,EAAInL,EAAG8P,IAAU,OAWlC,OANAkB,EAAuB,IAAnB2sF,EAAQx9F,OAAe,KACvButB,EAAM,MAAQA,EACdiwE,EAAQ/tF,KAAK,MAAQ8d,GAAO,KAC5BgwE,EAAO,IACH,IAAMC,EAAQ/tF,KAAK,KAAO,IAClC8d,EAAMgwE,EACC1sF,CACX,CAGA,IAAK1G,KAAKwF,EACF1F,GAAeC,KAAKyF,EAAOxF,KAC3B0G,EAAI7F,EAAIb,EAAGwF,KAEP6tF,EAAQpxF,KAAK+pD,EAAMhsD,IAAMojB,EAAM,KAAO,KAAO1c,GAWzD,OAJAA,EAAuB,IAAnB2sF,EAAQx9F,OAAe,KACvButB,EAAM,IAAMiwE,EAAQ/tF,KAAK,KACzB8tF,EAAO,IAAM,IAAMC,EAAQ/tF,KAAK,KAAO,IAC3C8d,EAAMgwE,EACC1sF,EAEnB,EAIA,OAAO7F,EAAI,GAAI,CACX,GAlHQoyF,GAoHhB,EAOJ5vE,GAAEkwE,YAGM3D,GAAU,CACN,IAAK,IACL,KAAM,KACN,IAAK,IACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,KACL,EAAK,MAGT5sF,GAAQ,SAAS6C,GACb,IAAI1F,EAAI,IAAIqzF,YAAY3tF,GAGxB,MAFA1F,EAAEuvF,GAAKA,GACPvvF,EAAEqgB,KAAOA,GACHrgB,CACV,EACAmC,GAAO,SAAS8G,GASZ,OAPIA,GAAKA,IAAMumF,IACX3sF,GAAM,aAAgBoG,EAAI,iBAAqBumF,GAAK,KAIxDA,GAAKnvE,GAAKsiB,OAAO4sD,IACjBA,IAAM,EACCC,EACX,EACAh4E,GAAS,WAEL,IAAIA,EACAg+B,EAAS,GAMb,IAJW,MAAPg6C,KACAh6C,EAAS,IACTrzC,GAAK,MAEFqtF,IAAM,KAAOA,IAAM,KACtBh6C,GAAUg6C,GACVrtF,KAEJ,GAAW,MAAPqtF,GAEA,IADAh6C,GAAU,IACHrzC,MAAUqtF,IAAM,KAAOA,IAAM,KAChCh6C,GAAUg6C,GAGlB,GAAW,MAAPA,IAAqB,MAAPA,GAOd,IANAh6C,GAAUg6C,GACVrtF,KACW,MAAPqtF,IAAqB,MAAPA,KACdh6C,GAAUg6C,GACVrtF,MAEGqtF,IAAM,KAAOA,IAAM,KACtBh6C,GAAUg6C,GACVrtF,KAIR,GADAqV,GAAUg+B,EACL29C,SAAS37E,GAGV,OAAOA,EAFP3U,GAAM,aAId,EAEA2yC,GAAS,WAEL,IAAI89C,EACA/9F,EAEAg+F,EADA/9C,EAAS,GAGb,GAAW,MAAPg6C,GACA,KAAOrtF,MAAQ,CACX,GAAW,MAAPqtF,GAEA,OADArtF,KACOqzC,EAEX,GAAW,OAAPg6C,GAEA,GADArtF,KACW,MAAPqtF,GAAY,CAEZ,IADA+D,EAAQ,EACHh+F,EAAI,EAAGA,EAAI,IACZ+9F,EAAM19F,SAASuM,KAAQ,IAClBgxF,SAASG,IAFC/9F,GAAK,EAKpBg+F,EAAgB,GAARA,EAAaD,EAEzB99C,GAAUpgD,OAAOm3D,aAAagnC,EAClC,KAAO,IAA2B,iBAAhB9D,GAAQD,IAGtB,MAFAh6C,GAAUi6C,GAAQD,GAGtB,MAEAh6C,GAAUg6C,EAElB,CAEJ3sF,GAAM,aACV,EACA+tC,GAAQ,WAEJ,KAAO4+C,IAAMA,IAAM,KACfrtF,IAER,EAmFJkD,GAAQ,WAIJ,OADAurC,KACQ4+C,IACJ,IAAK,IACD,OAtCC,WAEL,IAAItwF,EACAH,EAAS,CAAC,EAEd,GAAW,MAAPywF,GAAY,CAGZ,GAFArtF,GAAK,KACLyuC,KACW,MAAP4+C,GAEA,OADArtF,GAAK,KACEpD,EAEX,KAAOywF,IAAI,CASP,GARAtwF,EAAMs2C,KACN5E,KACAzuC,GAAK,KACD5E,OAAOoC,eAAeC,KAAKb,EAAQG,IACnC2D,GAAM,kBAAoB3D,EAAM,KAEpCH,EAAOG,GAAOmG,KACdurC,KACW,MAAP4+C,GAEA,OADArtF,GAAK,KACEpD,EAEXoD,GAAK,KACLyuC,IACJ,CACJ,CACA/tC,GAAM,aACV,CAQe9D,GACX,IAAK,IACD,OAhEA,WAEJ,IAAI0qD,EAAQ,GAEZ,GAAW,MAAP+lC,GAAY,CAGZ,GAFArtF,GAAK,KACLyuC,KACW,MAAP4+C,GAEA,OADArtF,GAAK,KACEsnD,EAEX,KAAO+lC,IAAI,CAGP,GAFA/lC,EAAM3nD,KAAKuD,MACXurC,KACW,MAAP4+C,GAEA,OADArtF,GAAK,KACEsnD,EAEXtnD,GAAK,KACLyuC,IACJ,CACJ,CACA/tC,GAAM,YACV,CAyCe4mD,GACX,IAAK,IACD,OAAOjU,KACX,IAAK,IACD,OAAOh+B,KACX,QACI,OAAOg4E,IAAM,KAAOA,IAAM,IAAMh4E,KAhGjC,WAEH,OAAQg4E,IACJ,IAAK,IAKD,OAJArtF,GAAK,KACLA,GAAK,KACLA,GAAK,KACLA,GAAK,MACE,EACX,IAAK,IAMD,OALAA,GAAK,KACLA,GAAK,KACLA,GAAK,KACLA,GAAK,KACLA,GAAK,MACE,EACX,IAAK,IAKD,OAJAA,GAAK,KACLA,GAAK,KACLA,GAAK,KACLA,GAAK,KACE,KAEfU,GAAM,eAAiB2sF,GAAK,IAChC,CAwEmD32C,GAEvD,EAIO,SAASv4C,GACZ,IAAI7F,EAWJ,OATA4lB,GAAO/f,EACPivF,GAAK,EACLC,GAAK,IACL/0F,EAAS4K,KACTurC,KACI4+C,IACA3sF,GAAM,gBAGHpI,CACX,GAGJyoB,GAAEswE,aAAe,SAAS3yF,GACtB,IACgB4yF,EAAIC,EAAIC,EAAIC,EAAIC,EAD5BC,EAAM,oEAC4Bv+F,EAAI,EACtCw+F,EAAK,EACLC,EAAM,GACNC,EAAU,GAEd,IAAKpzF,EACD,OAAOA,EAGXA,EAAOqiB,GAAEgxE,WAAWrzF,GAEpB,GAOI4yF,GAFAI,EAJKhzF,EAAKwhD,WAAW9sD,MAIR,GAHRsL,EAAKwhD,WAAW9sD,MAGG,EAFnBsL,EAAKwhD,WAAW9sD,OAIR,GAAK,GAClBm+F,EAAKG,GAAQ,GAAK,GAClBF,EAAKE,GAAQ,EAAI,GACjBD,EAAY,GAAPC,EAGLI,EAAQF,KAAQD,EAAInxD,OAAO8wD,GAAMK,EAAInxD,OAAO+wD,GAAMI,EAAInxD,OAAOgxD,GAAMG,EAAInxD,OAAOixD,SACzEr+F,EAAIsL,EAAKnL,QAIlB,OAFAs+F,EAAMC,EAAQ9uF,KAAK,IAEXtE,EAAKnL,OAAS,GAClB,KAAK,EACDs+F,EAAMA,EAAI/zF,MAAM,GAAI,GAAK,KACzB,MACJ,KAAK,EACD+zF,EAAMA,EAAI/zF,MAAM,GAAI,GAAK,IAIjC,OAAO+zF,CACX,EAEA9wE,GAAEgxE,WAAa,SAAS1+C,GAGpB,IACIzC,EACAC,EACAmhD,EACAx5E,EAJAy5E,EAAU,GASd,IAHArhD,EAAQC,EAAM,EACdmhD,GATA3+C,GAAUA,EAAS,IAAIl9C,QAAQ,QAAS,MAAMA,QAAQ,MAAO,OAS5C5C,OAEZilB,EAAI,EAAGA,EAAIw5E,EAASx5E,IAAK,CAC1B,IAAI05E,EAAK7+C,EAAO6M,WAAW1nC,GACvBq5E,EAAM,KAENK,EAAK,IACLrhD,IAEAghD,EADQK,EAAK,KAASA,EAAK,KACrBj/F,OAAOm3D,aAAc8nC,GAAM,EAAK,IAAW,GAALA,EAAW,KAEjDj/F,OAAOm3D,aAAc8nC,GAAM,GAAM,IAAOA,GAAM,EAAK,GAAM,IAAW,GAALA,EAAW,KAExE,OAARL,IACIhhD,EAAMD,IACNqhD,GAAW5+C,EAAOjsC,UAAUwpC,EAAOC,IAEvCohD,GAAWJ,EACXjhD,EAAQC,EAAMr4B,EAAI,EAE1B,CAMA,OAJIq4B,EAAMD,IACNqhD,GAAW5+C,EAAOjsC,UAAUwpC,EAAOyC,EAAO9/C,SAGvC0+F,CACX,EAEAlxE,GAAEoxE,KAAO,WACL,IAEI,OAAOn/D,EAAY,OAAc,YACrC,CAAE,MAAOniB,GAIL,IADA,IAAIuhF,EAAO,IAAI99F,MAAM,IACZlB,EAAI,EAAGA,EAAI,GAAIA,IACpBg/F,EAAKh/F,GAAKC,KAAK2xC,MAAsB,GAAhB3xC,KAAKkoD,UAO9B,OALA62C,EAAK,IAAM,EACXA,EAAK,IAAMA,EAAK,MAAQ,EACxBA,EAAK,IAAMA,EAAK,KAAO,EACvBA,EAAK,GAAKA,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAM,IAEpCrxE,GAAE/Z,IAAIorF,EAAM,SAAS99B,GACxB,OAAOA,EAAE3qD,SAAS,GACtB,GAAG3G,KAAK,GACZ,CACJ,EAKA,IAAIqvF,GAAkB,CAClB,YACA,kBACA,YACA,cACA,UACA,cACA,oBACA,mBACA,WACA,YACA,iBACA,eACA,SAIA,gBACA,cACA,mBACA,qBACA,iBACA,qBACA,oBACA,YACA,iBACA,uBACA,mBAEJtxE,GAAEuxE,YAAc,SAASC,GACrB,IAAIn/F,EAEJ,IADAm/F,EAAKA,EAAGtqF,cACH7U,EAAI,EAAGA,EAAIi/F,GAAgB9+F,OAAQH,IACpC,IAAwC,IAApCm/F,EAAGv1F,QAAQq1F,GAAgBj/F,IAC3B,OAAO,EAGf,OAAO,CACX,EAMA2tB,GAAEyxE,eAAiB,SAASC,EAAUC,GAClC,IAAIC,EAASC,EAASd,EAAU,GAYhC,OAVI/wE,GAAE0tE,YAAYiE,KACdA,EAAgB,KAGpB3xE,GAAEghC,KAAK0wC,EAAU,SAAS/gF,EAAK3U,GAC3B41F,EAAUlyC,mBAAmB/uC,EAAI/H,YACjCipF,EAAUnyC,mBAAmB1jD,GAC7B+0F,EAAQA,EAAQv+F,QAAUq/F,EAAU,IAAMD,CAC9C,GAEOb,EAAQ9uF,KAAK0vF,EACxB,EAEA3xE,GAAE8xE,cAAgB,SAAS9vE,EAAKqa,GAG5BA,EAAQA,EAAMjnC,QAAQ,OAAQ,OAAOA,QAAQ,QAAS,OACtD,IAEIiyB,EADQ,IAAI7oB,OADH,SAAW69B,EAAQ,aAEZ1pB,KAAKqP,GACzB,GAAgB,OAAZqF,GAAqBA,GAAkC,iBAAhBA,EAAQ,IAAoBA,EAAQ,GAAG70B,OAC9E,MAAO,GAEP,IAAI+E,EAAS8vB,EAAQ,GACrB,IACI9vB,EAASkhD,mBAAmBlhD,EAChC,CAAE,MAAMuY,GACJ29E,GAAU9tF,MAAM,gDAAkDpI,EACtE,CACA,OAAOA,EAAOnC,QAAQ,MAAO,IAErC,EAKA4qB,GAAE+xE,OAAS,CACPzzF,IAAK,SAASnG,GAGV,IAFA,IAAI65F,EAAS75F,EAAO,IAChB85F,EAAKjF,GAAW+E,OAAO5/F,MAAM,KACxBE,EAAI,EAAGA,EAAI4/F,EAAGz/F,OAAQH,IAAK,CAEhC,IADA,IAAI0T,EAAIksF,EAAG5/F,GACW,KAAf0T,EAAE05B,OAAO,IACZ15B,EAAIA,EAAEM,UAAU,EAAGN,EAAEvT,QAEzB,GAA0B,IAAtBuT,EAAE9J,QAAQ+1F,GACV,OAAOv5C,mBAAmB1yC,EAAEM,UAAU2rF,EAAOx/F,OAAQuT,EAAEvT,QAE/D,CACA,OAAO,IACX,EAEAsQ,MAAO,SAAS3K,GACZ,IAAI45F,EACJ,IACIA,EAAS/xE,GAAEkwE,WAAWlwE,GAAE+xE,OAAOzzF,IAAInG,KAAU,CAAC,CAClD,CAAE,MAAO2X,GAET,CACA,OAAOiiF,CACX,EAEAG,YAAa,SAAS/5F,EAAMgK,EAAOgwF,EAASC,EAAoBC,EAAWC,EAAeC,GACtF,IAAIC,EAAU,GACVC,EAAU,GACVC,EAAS,GAEb,GAAIH,EACAC,EAAU,YAAcD,OACrB,GAAIH,EAAoB,CAC3B,IAAIO,EAASC,GAAe5F,GAAWp3F,SAASu8B,UAChDqgE,EAAUG,EAAS,aAAeA,EAAS,EAC/C,CAEA,GAAIR,EAAS,CACT,IAAI7N,EAAO,IAAI/4D,KACf+4D,EAAKuO,QAAQvO,EAAKhhB,UAAuB,IAAV6uB,GAC/BM,EAAU,aAAenO,EAAKwO,aAClC,CAEIR,IACAD,GAAY,EACZK,EAAS,mBAETL,IACAK,GAAU,YAGd1F,GAAW+E,OAAS55F,EAAO,IAAMunD,mBAAmBv9C,GAASswF,EAAU,WAAaD,EAAUE,CAClG,EAEA/zF,IAAK,SAASxG,EAAMgK,EAAO4wF,EAAMX,EAAoBC,EAAWC,EAAeC,GAC3E,IAAIC,EAAU,GAAIC,EAAU,GAAIC,EAAS,GAEzC,GAAIH,EACAC,EAAU,YAAcD,OACrB,GAAIH,EAAoB,CAC3B,IAAIO,EAASC,GAAe5F,GAAWp3F,SAASu8B,UAChDqgE,EAAUG,EAAS,aAAeA,EAAS,EAC/C,CAEA,GAAII,EAAM,CACN,IAAIzO,EAAO,IAAI/4D,KACf+4D,EAAKuO,QAAQvO,EAAKhhB,UAAoB,GAAPyvB,EAAY,GAAK,GAAK,KACrDN,EAAU,aAAenO,EAAKwO,aAClC,CAEIR,IACAD,GAAY,EACZK,EAAS,mBAETL,IACAK,GAAU,YAGd,IAAIM,EAAiB76F,EAAO,IAAMunD,mBAAmBv9C,GAASswF,EAAU,WAAaD,EAAUE,EAE/F,OADA1F,GAAW+E,OAASiB,EACbA,CACX,EAEAl9C,OAAQ,SAAS39C,EAAMi6F,EAAoBG,GACvCvyE,GAAE+xE,OAAOpzF,IAAIxG,EAAM,IAAK,EAAGi6F,GAAoB,GAAO,EAAOG,EACjE,GAGJ,IAAIU,GAAwB,SAAUC,GAClC,IAAIC,GAAY,EAChB,IACI,IAAIn3F,EAAM,WAAao3F,GAAW,GAElCF,EAAQG,QAAQr3F,EADN,eAENk3F,EAAQ7mE,QAAQrwB,KAChBm3F,GAAY,GAEhBD,EAAQxtE,WAAW1pB,EACvB,CAAE,MAAO8T,GACLqjF,GAAY,CAChB,CACA,OAAOA,CACX,EAEIG,GAAyB,KACzBC,GAAwB,SAASL,EAASM,GAC1C,OAA+B,OAA3BF,IAAoCE,EAGjCF,GAAyBL,GAAsBC,GAAWjhE,EAAIwhE,cAF1DH,EAGf,EAEII,GAA2B,KAQ/B,SAASC,GAAgBT,EAAS/6F,EAAMy7F,GACpC,IAAIC,EAAY,SAASvI,GACrBmC,GAAU9tF,MAAMxH,EAAO,WAAamzF,EACxC,EAEA,MAAO,CACHwI,aAAc,SAASN,GACnB,IAAIL,EAAYS,EAAgBV,EAASM,GAIzC,OAHKL,GACD1F,GAAU9tF,MAAMxH,EAAO,gBAEpBg7F,CACX,EACAxzF,MAAOk0F,EACPv1F,IAAK,SAAStC,GACV,IACI,OAAOk3F,EAAQ7mE,QAAQrwB,EAC3B,CAAE,MAAO8T,GACL+jF,EAAU/jF,EACd,CACA,OAAO,IACX,EACAhN,MAAO,SAAS9G,GACZ,IACI,OAAOgkB,GAAEkwE,WAAWgD,EAAQ7mE,QAAQrwB,KAAS,CAAC,CAClD,CAAE,MAAO8T,GAET,CACA,OAAO,IACX,EACAnR,IAAK,SAAS3C,EAAKmG,GACf,IACI+wF,EAAQG,QAAQr3F,EAAKmG,EACzB,CAAE,MAAO2N,GACL+jF,EAAU/jF,EACd,CACJ,EACAgmC,OAAQ,SAAS95C,GACb,IACIk3F,EAAQxtE,WAAW1pB,EACvB,CAAE,MAAO8T,GACL+jF,EAAU/jF,EACd,CACJ,EAER,CAEAkQ,GAAEyzE,aAAeE,GAAgB1hE,EAAIwhE,aAAc,eAAgBF,IACnEvzE,GAAEyF,eAAiBkuE,GAAgB1hE,EAAIxM,eAAgB,iBAvDzB,SAASytE,EAASM,GAC5C,OAAiC,OAA7BE,IAAsCF,EAGnCE,GAA2BT,GAAsBC,GAAWjhE,EAAIxM,gBAF5DiuE,EAGf,GAoDA1zE,GAAE+zE,eAAiB,WA6Df,SAASC,EAASx8F,GAKd,OAJIA,IACAA,EAAMuwB,eAAiBisE,EAASjsE,eAChCvwB,EAAMy8F,gBAAkBD,EAASC,iBAE9Bz8F,CACX,CAQA,OAPAw8F,EAASjsE,eAAiB,WACtBjuB,KAAKo6F,aAAc,CACvB,EACAF,EAASC,gBAAkB,WACvBn6F,KAAKq6F,cAAe,CACxB,EA1DqB,SAAS73D,EAAS9mC,EAAM4O,EAASgwF,EAAWC,GAC7D,GAAK/3D,EAKL,GAAIA,EAAQ5d,mBAAqB01E,EAC7B93D,EAAQ5d,iBAAiBlpB,EAAM4O,IAAWiwF,OACvC,CACH,IAAIC,EAAS,KAAO9+F,EAChB++F,EAAcj4D,EAAQg4D,GAC1Bh4D,EAAQg4D,GAIhB,SAAqBh4D,EAASk4D,EAAaC,GA4BvC,OA3Bc,SAASj9F,GAQnB,GAPAA,EAAQA,GAASw8F,EAAS/hE,EAAIz6B,OAO9B,CAIA,IACIk9F,EAAYC,EADZ/7E,GAAM,EAYV,OATIoH,GAAEouE,WAAWqG,KACbC,EAAaD,EAAaj9F,IAE9Bm9F,EAAaH,EAAY93F,KAAK4/B,EAAS9kC,IAElC,IAAUk9F,IAAgB,IAAUC,IACrC/7E,GAAM,GAGHA,CAdP,CAeJ,CAGJ,CAjC0Bg8E,CAAYt4D,EAASl4B,EAASmwF,EACpD,MAVI9G,GAAU9tF,MAAM,8CAWxB,CAgDH,CA5EkB,GA+EnB,IAAIk1F,GAAoB,IAAIr2F,OAAO,2DAEnCwhB,GAAE80E,UAAY,WAyBV,SAASC,EAAej4F,GAEpB,OAAOA,EAAE0tD,IAAM1tD,EAAE0tD,IAAM1tD,EAAEk4F,qBAAqB,IAClD,CAEA,IAAIC,EAAiB,YAErB,SAASC,EAAS1hF,EAAMvP,GACpB,IAAI3O,EAAY,IAAM2O,EAAW,IACjC,OAAS,IAAMuP,EAAKle,UAAY,KAAKF,QAAQ6/F,EAAgB,KAAKh5F,QAAQ3G,IAAc,CAC5F,CAEA,SAAS6/F,EAAsBlxF,GAE3B,IAAK+oF,GAAWgI,qBACZ,MAAO,GAGX,IACIltC,EAAO6oC,EAAM/+D,EAASjmB,EAAOypF,EAAY/iG,EAAG8M,EAAGxC,EAAG04F,EAAUC,EAD5Dv2F,EAASkF,EAAS9R,MAAM,KAExBojG,EAAiB,CAACvI,IACtB,IAAK36F,EAAI,EAAGA,EAAI0M,EAAOvM,OAAQH,IAE3B,IADAy1D,EAAQ/oD,EAAO1M,GAAG+C,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,KAC5C6G,QAAQ,MAAQ,EAA1B,CAGI21B,GADA++D,EAAO7oC,EAAM31D,MAAM,MACJ,GACf,IAAImpC,EAAKq1D,EAAK,GACVr0D,EAAU0wD,GAAWwI,eAAel6D,GACxC,IAAKgB,GAAY1K,GAAW0K,EAAQ4mC,SAASh8D,eAAiB0qB,EAE1D,MAAO,GAGX2jE,EAAiB,CAACj5D,EAEtB,MACA,GAAIwrB,EAAM7rD,QAAQ,MAAQ,EAA1B,CAGI21B,GADA++D,EAAO7oC,EAAM31D,MAAM,MACJ,GACf,IAAImD,EAAYq7F,EAAK,GAOrB,IANK/+D,IACDA,EAAU,KAGdjmB,EAAQ,GACRypF,EAAa,EACRj2F,EAAI,EAAGA,EAAIo2F,EAAe/iG,OAAQ2M,IAMnC,IAJIk2F,EADW,KAAXzjE,EACWmjE,EAAeQ,EAAep2F,IAE9Bo2F,EAAep2F,GAAG61F,qBAAqBpjE,GAEjDj1B,EAAI,EAAGA,EAAI04F,EAAS7iG,OAAQmK,IAC7BgP,EAAMypF,KAAgBC,EAAS14F,GAKvC,IAFA44F,EAAiB,GACjBD,EAAsB,EACjBn2F,EAAI,EAAGA,EAAIwM,EAAMnZ,OAAQ2M,IACtBwM,EAAMxM,GAAG7J,WACT0qB,GAAE7kB,SAASwQ,EAAMxM,GAAG7J,YACpB4/F,EAASvpF,EAAMxM,GAAI7J,KAEnBigG,EAAeD,KAAyB3pF,EAAMxM,GAI1D,KAhCA,CAkCA,IAAIs2F,EAAc3tC,EAAMvhD,MAAMsuF,IAC9B,GAAIY,EAAJ,CACI7jE,EAAU6jE,EAAY,GACtB,IAqBIC,EArBAC,EAAWF,EAAY,GACvBG,EAAeH,EAAY,GAC3BI,EAAYJ,EAAY,GAO5B,IANK7jE,IACDA,EAAU,KAGdjmB,EAAQ,GACRypF,EAAa,EACRj2F,EAAI,EAAGA,EAAIo2F,EAAe/iG,OAAQ2M,IAMnC,IAJIk2F,EADW,KAAXzjE,EACWmjE,EAAeQ,EAAep2F,IAE9Bo2F,EAAep2F,GAAG61F,qBAAqBpjE,GAEjDj1B,EAAI,EAAGA,EAAI04F,EAAS7iG,OAAQmK,IAC7BgP,EAAMypF,KAAgBC,EAAS14F,GAMvC,OAHA44F,EAAiB,GACjBD,EAAsB,EAEdM,GACJ,IAAK,IACDF,EAAgB,SAAS54F,GACrB,OAAQA,EAAE4zB,aAAailE,IAAaE,CACxC,EACA,MACJ,IAAK,IACDH,EAAgB,SAAS54F,GACrB,OAAQA,EAAE4zB,aAAailE,GAAUpvF,MAAM,IAAI/H,OAAO,MAAQq3F,EAAY,OAC1E,EACA,MACJ,IAAK,IACDH,EAAgB,SAAS54F,GACrB,OAAQA,EAAE4zB,aAAailE,GAAUpvF,MAAM,IAAI/H,OAAO,IAAMq3F,EAAY,MACxE,EACA,MACJ,IAAK,IACDH,EAAgB,SAAS54F,GACrB,OAAwD,IAAhDA,EAAE4zB,aAAailE,GAAU15F,QAAQ45F,EAC7C,EACA,MACJ,IAAK,IACDH,EAAgB,SAAS54F,GACrB,OAAQA,EAAE4zB,aAAailE,GAAUpiF,YAAYsiF,IAAc/4F,EAAE4zB,aAAailE,GAAUnjG,OAASqjG,EAAUrjG,MAC3G,EACA,MACJ,IAAK,IACDkjG,EAAgB,SAAS54F,GACrB,OAAQA,EAAE4zB,aAAailE,GAAU15F,QAAQ45F,IAAc,CAC3D,EACA,MACJ,QAEIH,EAAgB,SAAS54F,GACrB,OAAOA,EAAE4zB,aAAailE,EAC1B,EAIR,IAFAJ,EAAiB,GACjBD,EAAsB,EACjBn2F,EAAI,EAAGA,EAAIwM,EAAMnZ,OAAQ2M,IACtBu2F,EAAc/pF,EAAMxM,MACpBo2F,EAAeD,KAAyB3pF,EAAMxM,GAK1D,KAtEA,CA2EA,IAHAyyB,EAAUk2B,EACVn8C,EAAQ,GACRypF,EAAa,EACRj2F,EAAI,EAAGA,EAAIo2F,EAAe/iG,OAAQ2M,IAEnC,IADAk2F,EAAWE,EAAep2F,GAAG61F,qBAAqBpjE,GAC7Cj1B,EAAI,EAAGA,EAAI04F,EAAS7iG,OAAQmK,IAC7BgP,EAAMypF,KAAgBC,EAAS14F,GAGvC44F,EAAiB5pF,CAXjB,CAzEA,CAsFJ,OAAO4pF,CACX,CAEA,OAAO,SAASO,GACZ,OAAI91E,GAAEqZ,UAAUy8D,GACL,CAACA,GACD91E,GAAE4oE,SAASkN,KAAW91E,GAAE0tE,YAAYoI,EAAMtjG,QAC1CsjG,EAEAX,EAAsBz4F,KAAK5C,KAAMg8F,EAEhD,CACH,CAhMa,GAkMd,IAAIC,GAAoB,CAAC,aAAc,aAAc,eAAgB,cAAe,WAAY,SAAU,sBAAsB,kBAAmB,sBAAuB,wBACtKC,GAAY,CAAC,QAAS,SAAU,QAAS,cAAe,YAAa,UAAW,QAAS,SAAU,SAAU,UAEjHh2E,GAAEgN,KAAO,CACLipE,eAAgB,SAASC,GACrB,IAAIC,EAAK,GACL3kD,EAAS,CAAC,EAUd,OATAxxB,GAAEghC,KAAK+0C,GAAmB,SAASK,IAC/BD,EAAKn2E,GAAE8xE,cAAc9E,GAAW/qE,IAAKm0E,IAC9B5jG,OACHg/C,EAAO4kD,GAASD,OACShiG,IAAlB+hG,IACP1kD,EAAO4kD,GAASF,EAExB,GAEO1kD,CACX,EAEA6kD,YAAa,WACT,IAAI/6D,EAAK,GACLkW,EAAS,CAAC,EAQd,OAPAxxB,GAAEghC,KAAKg1C,GAAW,SAASM,IACvBh7D,EAAKtb,GAAE8xE,cAAc9E,GAAW/qE,IAAKq0E,IAC9B9jG,SACHg/C,EAAO8kD,GAASh7D,EAExB,GAEOkW,CACX,EAEA+kD,gBAAiB,WACb,OAAOv2E,GAAEquE,OAAOruE,GAAEgN,KAAKipE,iBAAkBj2E,GAAEgN,KAAKqpE,cACpD,EAEAG,aAAc,SAAS/jE,GACnB,OAAwD,IAApDA,EAASvH,OAAO,gCACT,SAC6C,IAA7CuH,EAASvH,OAAO,yBAChB,OAC8C,IAA9CuH,EAASvH,OAAO,0BAChB,QACmD,IAAnDuH,EAASvH,OAAO,+BAChB,aAEA,IAEf,EAEAurE,WAAY,SAAShkE,GACjB,IAAIvH,EAASlL,GAAEgN,KAAKwpE,aAAa/jE,GAC7B4J,EAAmB,SAAVnR,EAAqB,IAAM,IACpCtS,EAAM,CAAC,EAEX,GAAe,OAAXsS,EAAiB,CACjBtS,EAAoB,eAAIsS,EAExB,IAAIwrE,EAAU12E,GAAE8xE,cAAcr/D,EAAU4J,GACpCq6D,EAAQlkG,SACRomB,EAAgB,WAAI89E,EAE5B,CAEA,OAAO99E,CACX,EAOA+9E,QAAS,SAASC,EAAYC,EAAQ3J,GAElC,OADA2J,EAASA,GAAU,GACf3J,GAASltE,GAAE7sB,SAASyjG,EAAY,SAC5B52E,GAAE7sB,SAASyjG,EAAY,QAChB,aAEJ,QACA,8BAA8BzwF,KAAKywF,GACnC,aACA52E,GAAE7sB,SAASyjG,EAAY,aAAe52E,GAAE7sB,SAASyjG,EAAY,aAC7D,2BACA52E,GAAE7sB,SAASyjG,EAAY,mBAEvB,mBACA52E,GAAE7sB,SAASyjG,EAAY,SAAW52E,GAAE7sB,SAASyjG,EAAY,QACzD,iBACA52E,GAAE7sB,SAASyjG,EAAY,SACvB,kBACA52E,GAAE7sB,SAASyjG,EAAY,UAEvB,gBACA52E,GAAE7sB,SAASyjG,EAAY,UACvB,SACA52E,GAAE7sB,SAASyjG,EAAY,SACvB,aACA52E,GAAE7sB,SAASyjG,EAAY,UAAY52E,GAAE7sB,SAASyjG,EAAY,aAC1D,aACA52E,GAAE7sB,SAASyjG,EAAY,SACvB,cACA52E,GAAE7sB,SAAS0jG,EAAQ,SACtB72E,GAAE7sB,SAASyjG,EAAY,UAChB,gBAEJ,SACA52E,GAAE7sB,SAASyjG,EAAY,WACvB,iBACA52E,GAAE7sB,SAASyjG,EAAY,aACvB,YACA52E,GAAE7sB,SAASyjG,EAAY,WACvB,UACA52E,GAAE7sB,SAASyjG,EAAY,SAAW52E,GAAE7sB,SAASyjG,EAAY,YACzD,oBACA52E,GAAE7sB,SAASyjG,EAAY,SACvB,UAEA,EAEf,EAOAE,eAAgB,SAASvkE,EAAWskE,EAAQ3J,GACxC,IAoBI16E,EAnBgB,CAChB,2BAA4B,mBAC5B,iBAAkB,uBAClB,OAAU,wBACV,aAAc,uBACd,aAAe,mCACf,OAAU,yBACV,gBAAiB,yBACjB,MAAS,6BACT,QAAW,yBACX,cAAe,uBACf,UAAa,0BACb,WAAc,2BACd,iBAAkB,yBAClB,mBAAoB,gCACpB,oBAAqB,2BACrB,QAAW,mBACX,gBAAiB,wBAlBPwN,GAAEgN,KAAK2pE,QAAQpkE,EAAWskE,EAAQ3J,IAqBhD,QAAc/4F,IAAVqe,EACA,OAAO,KAEX,IAAI+tB,EAAUhO,EAAUhsB,MAAMiM,GAC9B,OAAK+tB,EAGE8nD,WAAW9nD,EAAQA,EAAQ/tC,OAAS,IAFhC,IAGf,EAEAukG,GAAI,WACA,IAAIjyF,EAAIytB,GACR,MAAI,WAAWpsB,KAAKrB,GACZ,QAAQqB,KAAKrB,IAAM,YAAYqB,KAAKrB,GAC7B,gBAEJ,UACA,qBAAqBqB,KAAKrB,GAC1B,MACA,UAAUqB,KAAKrB,GACf,UACA,8BAA8BqB,KAAKrB,GACnC,aACA,OAAOqB,KAAKrB,GACZ,WACA,QAAQqB,KAAKrB,GACb,QACA,OAAOqB,KAAKrB,GACZ,YAEA,EAEf,EAEAkyF,OAAQ,SAASJ,GACb,MAAI,iBAAiBzwF,KAAKywF,IAAe,YAAYzwF,KAAKywF,GAC/C,gBACA,OAAOzwF,KAAKywF,GACZ,OACA,OAAOzwF,KAAKywF,GACZ,aACA,SAASzwF,KAAKywF,GACd,SACA,8BAA8BzwF,KAAKywF,GACnC,aACA,UAAUzwF,KAAKywF,GACf,UAEA,EAEf,EAEAK,gBAAiB,SAASxkE,GACtB,IAAItgC,EAAQsgC,EAAStgC,MAAM,KAC3B,OAAIA,EAAMK,QAAU,EACTL,EAAM,GAEV,EACX,EAEA+kG,WAAY,WACR,OAAOjlE,EAAIr8B,SAASC,IACxB,EAEAshG,WAAY,SAASC,GAIjB,MAH2B,iBAAhBA,IACPA,EAAc,CAAC,GAEZp3E,GAAEquE,OAAOruE,GAAEyvE,uBAAuB,CACrC,IAAOzvE,GAAEgN,KAAK+pE,KACd,SAAY/2E,GAAEgN,KAAK2pE,QAAQpkE,GAAWD,GAAUukE,OAAQ5J,IACxD,UAAaD,GAAWv6D,SACxB,kBAAqBzS,GAAEgN,KAAKiqE,gBAAgBjK,GAAWv6D,UACvD,QAAWzS,GAAEgN,KAAKgqE,OAAOzkE,MACzB,CACA,aAAgBvS,GAAEgN,KAAKkqE,aACvB,iBAAoBl3E,GAAEgN,KAAK8pE,eAAevkE,GAAWD,GAAUukE,OAAQ5J,IACvE,eAAkBv6D,GAAO9R,OACzB,cAAiB8R,GAAO/S,MACxB,OAAU,MACV,aAAgB6sE,GAAOE,YACvB,WAAc0G,KACd,KAAQpzE,GAAEy5D,YAAc,KACzBz5D,GAAEyvE,uBAAuB2H,GAChC,EAEAC,kBAAmB,WACf,OAAOr3E,GAAEquE,OAAOruE,GAAEyvE,uBAAuB,CACrC,IAAOzvE,GAAEgN,KAAK+pE,KACd,SAAY/2E,GAAEgN,KAAK2pE,QAAQpkE,GAAWD,GAAUukE,OAAQ5J,MACxD,CACA,iBAAoBjtE,GAAEgN,KAAK8pE,eAAevkE,GAAWD,GAAUukE,OAAQ5J,KAE/E,EAEAqK,qBAAsB,WAClB,OAAOt3E,GAAEyvE,uBAAuB,CAC5B,mBAAsBzC,GAAW/rE,MACjC,eAAkBgR,EAAIr8B,SAASu8B,SAC/B,iBAAoBF,EAAIr8B,SAASqnC,SACjC,qBAAwBhL,EAAIr8B,SAASomD,SACrC,mBAAsB/pB,EAAIr8B,SAASs1B,QAE3C,GAOJ,IAqBIkoE,GAAa,SAASmE,GACtB,IAAIC,EAAOllG,KAAKkoD,SAAS5xC,SAAS,IAAIvC,UAAU,EAAG,IAAM/T,KAAKkoD,SAAS5xC,SAAS,IAAIvC,UAAU,EAAG,IACjG,OAAOkxF,EAASC,EAAKnxF,UAAU,EAAGkxF,GAAUC,CAChD,EAiBIC,GAA4B,+BAE5BC,GAAqB,oCAcrB9E,GAAiB,SAASzgE,GAC1B,IAAIwlE,EAAeD,GACfhxF,EAAQyrB,EAAShgC,MAAM,KACvBylG,EAAMlxF,EAAMA,EAAMlU,OAAS,IAC3BolG,EAAIplG,OAAS,GAAa,QAARolG,GAAyB,QAARA,KACnCD,EAAeF,IAEnB,IAAIl3D,EAAUpO,EAAS5rB,MAAMoxF,GAC7B,OAAOp3D,EAAUA,EAAQ,GAAK,EAClC,EAWIs3D,GAAY,WAAa,EAEzBC,GAAgB,KAAMC,GAAY,KAClB,oBAATl1F,OACPi1F,GAAgBj1F,KAAKE,UACrBg1F,GAAYl1F,KAAKC,OAErBg1F,GAAgBA,IAAiB93E,GAAE2vE,WACnCoI,GAAYA,IAAa/3E,GAAEkwE,WAyB3BlwE,GAAQ,KAAsBA,GAAEgN,KAChChN,GAAQ,KAAW,QAAWA,GAAEgN,KAAK2pE,QACrC32E,GAAQ,KAAkB,eAAIA,GAAEgN,KAAK8pE,eACrC92E,GAAQ,KAAU,OAAYA,GAAEgN,KAAKgqE,OACrCh3E,GAAQ,KAAc,WAAQA,GAAEgN,KAAKmqE,WACrCn3E,GAAe,YAAeA,GAAEuxE,YAChCvxE,GAAiB,cAAaA,GAAE6uE,cAChC7uE,GAAY,SAAkBA,GAAE4oE,SAChC5oE,GAAc,WAAgBA,GAAEkwE,WAChClwE,GAAc,WAAgBA,GAAE2vE,WAChC3vE,GAAW,QAAmBA,GAAE2tE,QAChC3tE,GAAO,IAAuB+rE,GAE9B,IAEIiM,GAA8B,0BAC9BC,GAAgC,4BAIhCC,GAAgB,CAACF,GAA6BC,IAK9CE,GAAoB,SAAUC,GAI9Bt+F,KAAKu+F,UAAY,KACjBv+F,KAAKs+F,UAAYA,CACrB,EAsJA,SAASE,GAAMxwC,EAAO7sD,GAClBs9F,IAAU,EAAMzwC,EAAO7sD,EAC3B,CAcA,SAASu9F,GAAO1wC,EAAO7sD,GACnBs9F,IAAU,EAAOzwC,EAAO7sD,EAC5B,CAUA,SAASw9F,GAAW3wC,EAAO7sD,GACvB,MAA4C,MAArCy9F,GAAiB5wC,EAAO7sD,EACnC,CAWA,SAAS09F,GAAY7wC,EAAO7sD,GACxB,GAgHJ,SAA8BA,GAC1B,GAAIA,GAAWA,EAAQ29F,UACnB,OAAO,EAEX,IAAIC,EAAS59F,GAAWA,EAAQtF,QAAWs8B,EACvC6mE,EAAMD,EAAiB,WAAK,CAAC,EAC7BE,GAAW,EAYf,OAVA/4E,GAAEghC,KAAK,CACH83C,EAAgB,WAChBA,EAAkB,aAClBD,EAAkB,YACnB,SAASG,GACJh5E,GAAE7sB,SAAS,EAAC,EAAM,EAAG,IAAK,OAAQ6lG,KAClCD,GAAW,EAEnB,GAEOA,CACX,CAnIQE,CAAqBh+F,GAErB,OADAwyF,GAAU/tF,KAAK,yNACR,EAEX,IAAIw5F,EAAgD,MAArCR,GAAiB5wC,EAAO7sD,GAIvC,OAHIi+F,GACAzL,GAAU/tF,KAAK,qGAEZw5F,CACX,CASA,SAASC,GAA0B3gE,GAC/B,OAAO4gE,GAAgB5gE,EAAQ,SAASrgC,GACpC,OAAO2B,KAAKu/F,WAAWlhG,EAC3B,EACJ,CASA,SAASmhG,GAA6B9gE,GAClC,OAAO4gE,GAAgB5gE,EAAQ,SAASrgC,GACpC,OAAO2B,KAAKy/F,YAAYphG,EAC5B,EACJ,CASA,SAASqhG,GAA4BhhE,GACjC,OAAO4gE,GAAgB5gE,EAAQ,SAASrgC,GACpC,OAAO2B,KAAKy/F,YAAYphG,EAC5B,EACJ,CAcA,SAASshG,GAAc3xC,EAAO7sD,GAE1By+F,GADAz+F,EAAUA,GAAW,CAAC,GACD66C,OACjB6jD,GAAe7xC,EAAO7sD,KAAYA,EAAQ2+F,qBAAsB3+F,EAAQ4+F,aAEhF,CAUA,SAASH,GAAYz+F,GAEjB,MAAmC,kBADnCA,EAAUA,GAAW,CAAC,GACP6+F,gBAAqC95E,GAAEyzE,aAAezzE,GAAE+xE,MAC3E,CASA,SAAS4H,GAAe7xC,EAAO7sD,GAE3B,QADAA,EAAUA,GAAW,CAAC,GACN8+F,mBAtJkB,oBAsJsCjyC,CAC5E,CASA,SAAS4wC,GAAiB5wC,EAAO7sD,GAC7B,OAAOy+F,GAAYz+F,GAASqD,IAAIq7F,GAAe7xC,EAAO7sD,GAC1D,CA6CA,SAASs9F,GAAUyB,EAAUlyC,EAAO7sD,GAC3B+kB,GAAE7kB,SAAS2sD,IAAWA,EAAMt1D,QAOjCknG,GAFAz+F,EAAUA,GAAW,CAAC,GAED0D,IACjBg7F,GAAe7xC,EAAO7sD,GACtB++F,EAAW,EAAI,EACfh6E,GAAE+uE,SAAS9zF,EAAQg/F,kBAAoBh/F,EAAQg/F,iBAAmB,OAChEh/F,EAAQ2+F,uBACR3+F,EAAQi/F,eACRj/F,EAAQk/F,gBACVl/F,EAAQ4+F,cAGR5+F,EAAQm/F,OAASJ,GACjB/+F,EAAQm/F,MAAMn/F,EAAQo/F,gBAAkB,UAAWp/F,EAAQq/F,gBAAiB,CACxE,kBAAoB,KAlBxB7M,GAAU9tF,MAAM,SAAWq6F,EAAW,QAAU,UAAY,gCAqBpE,CAUA,SAASZ,GAAgB5gE,EAAQ+hE,GAC7B,OAAO,WACH,IAAIrB,GAAW,EAEf,IACI,IAAIpxC,EAAQyyC,EAAe79F,KAAK5C,KAAM,SAClC8+F,EAAY2B,EAAe79F,KAAK5C,KAAM,cACtCggG,EAAkBS,EAAe79F,KAAK5C,KAAM,qCAC5CigG,EAAoBQ,EAAe79F,KAAK5C,KAAM,kCAC9Cm4B,EAAMsoE,EAAe79F,KAAK5C,KAAM,UAEhCguD,IACAoxC,EAAWP,GAAY7wC,EAAO,CAC1B8wC,UAAWA,EACXkB,gBAAiBA,EACjBC,kBAAmBA,EACnBpkG,OAAQs8B,IAGpB,CAAE,MAAMniB,GACJ29E,GAAU9tF,MAAM,2DAA6DmQ,EACjF,CAEA,IAAKopF,EACD,OAAO1gE,EAAO34B,MAAM/F,KAAMgN,WAG9B,IAAI6P,EAAW7P,UAAUA,UAAUtU,OAAS,GACnB,mBAAf,GACNmkB,EAAS,EAIjB,CACJ,CArZAwhF,GAAkB37F,UAAUg+F,QAAU,WAClC,OAAO,IAAItO,GAAgB,SAAUxwF,EAASC,GAC1C,IAAI8+F,EAAcxoE,EAAIyoE,UAAU3qE,KAtBjB,oBAMN,GAiBT0qE,EAAqB,QAAI,WACrB9+F,EAAO8+F,EAAY96F,MACvB,EAEA86F,EAAuB,UAAI,WACvB/+F,EAAQ++F,EAAYljG,OACxB,EAEAkjG,EAA6B,gBAAI,SAAUE,GACvC,IAAIC,EAAKD,EAAGx9F,OAAO5F,OAEnB2gG,GAAch+F,QAAQ,SAAUk+F,GAC5BwC,EAAGC,kBAAkBzC,EACzB,EACJ,CACJ,EACJ,EAEAD,GAAkB37F,UAAUzB,KAAO,WAC/B,OAAKk3B,EAAIyoE,WAIJ5gG,KAAKu+F,YACNv+F,KAAKu+F,UAAYv+F,KAAK0gG,WAGnB1gG,KAAKu+F,UACPpgF,KAAK,SAAU6iF,GACZ,OAAIA,aAAqB7oE,EAAiB,YAC/Bi6D,GAAgBxwF,UAEhBwwF,GAAgBvwF,OAAOm/F,EAEtC,IAdO5O,GAAgBvwF,OAAO,6CAetC,EAEAw8F,GAAkB37F,UAAU+c,cAAgB,WACxC,QAASzf,KAAKu+F,SAClB,EAMAF,GAAkB37F,UAAUu+F,gBAAkB,SAAUC,EAAMC,GAC1D,IAAI7C,EAAYt+F,KAAKs+F,UACjB8C,EAAgB,SAAUN,GAC1B,OAAO,IAAI1O,GAAgB,SAAUxwF,EAASC,GAC1C,IAAIw/F,EAAcP,EAAGO,YAAY/C,EAAW4C,GAC5CG,EAAYC,WAAa,WACrB1/F,EAAQy/F,EACZ,EACAA,EAAYE,QAAUF,EAAYG,QAAU,WACxC3/F,EAAOw/F,EAAYx7F,MACvB,EAEAs7F,EAAQE,EAAYI,YAAYnD,GACpC,EACJ,EAEA,OAAOt+F,KAAKu+F,UACPpgF,KAAKijF,GACLhjF,MAAM,SAAUpI,GACb,OAAIA,GAAuB,sBAAhBA,EAAU,MAEjBhW,KAAKu+F,UAAYv+F,KAAK0gG,UACf1gG,KAAKu+F,UAAUpgF,KAAKijF,IAEpBhP,GAAgBvwF,OAAOmU,EAEtC,EAAEkI,KAAKle,MACf,EAEAq+F,GAAkB37F,UAAU62F,QAAU,SAAUr3F,EAAKmG,GACjD,OAAOrI,KAAKihG,gBAAgB,YAAa,SAAUQ,GAC/CA,EAAYrrE,IAAI/tB,EAAOnG,EAC3B,EACJ,EAEAm8F,GAAkB37F,UAAU6vB,QAAU,SAAUrwB,GAC5C,IAAIw/F,EACJ,OAAO1hG,KAAKihG,gBAAgB,WAAY,SAAUQ,GAC9CC,EAAMD,EAAYj9F,IAAItC,EAC1B,GAAGic,KAAK,WACJ,OAAOujF,EAAIjkG,MACf,EACJ,EAEA4gG,GAAkB37F,UAAUkpB,WAAa,SAAU1pB,GAC/C,OAAOlC,KAAKihG,gBAAgB,YAAa,SAAUQ,GAC/CA,EAAY98F,OAAOzC,EACvB,EACJ,EAEAm8F,GAAkB37F,UAAUi/F,OAAS,WACjC,IAAID,EACJ,OAAO1hG,KAAKihG,gBAAgB,WAAY,SAAUQ,GAC9CC,EAAMD,EAAYE,QACtB,GAAGxjF,KAAK,WACJ,OAAOujF,EAAIjkG,MACf,EACJ,EA8SA,IAAImkG,GAAW5N,GAAoB,QAsB/B6N,GAAa,SAAS3/F,EAAKf,GAC3BA,EAAUA,GAAW,CAAC,EAEtBnB,KAAK8hG,WAAa5/F,EAClBlC,KAAKo5F,QAAUj4F,EAAQi4F,SAAWjhE,EAAIwhE,aACtC35F,KAAK+hG,eAAiB5gG,EAAQ4gG,gBAAkB,IAChD/hG,KAAKgiG,UAAY7gG,EAAQ6gG,WAAa,IAGtChiG,KAAKiiG,YAAc9gG,EAAQ8gG,aAAe7P,EAC9C,EAIAyP,GAAWn/F,UAAUw/F,SAAW,SAASC,EAAUC,GAE/C,OAAO,IAAIzgG,EADG3B,KAAKiiG,aACA/7E,GAAEhI,KAAK,SAAUtc,EAASC,GACzC,IAAItJ,EAAI6pG,IAAQ,IAAI3wE,MAAO+3C,UAAY,IAAMhxE,KAAKkoD,SAC9C2hD,GAAY,IAAI5wE,MAAO+3C,UACvBtnE,EAAMlC,KAAK8hG,WACXC,EAAiB/hG,KAAK+hG,eACtBC,EAAYhiG,KAAKgiG,UACjB5I,EAAUp5F,KAAKo5F,QAEfkJ,EAAOpgG,EAAM,KACbqgG,EAAOrgG,EAAM,KACbsgG,EAAOtgG,EAAM,KAEbugG,EAAQ,SAASj7C,GACjB,IAAI,IAAI/1B,MAAO+3C,UAAY64B,EAAYL,EAKnC,OAJAJ,GAAS/7F,MAAM,gCAAkC3D,EAAM,qBAAuB3J,EAAI,KAClF6gG,EAAQxtE,WAAW42E,GACnBpJ,EAAQxtE,WAAW22E,QACnBz1D,IAGJ7uB,WAAW,WACP,IACIupC,GACJ,CAAE,MAAMxxC,GACJnU,EAAOmU,EACX,CACJ,EAAG+rF,GAAkBvpG,KAAKkoD,SAAW,IACzC,EAEIgiD,EAAU,SAASC,EAAWn7C,GAC1Bm7C,IACAn7C,IAEAi7C,EAAM,WACFC,EAAQC,EAAWn7C,EACvB,EAER,EAEIo7C,EAAU,WACV,IAAIC,EAAOzJ,EAAQ7mE,QAAQgwE,GAC3B,QAAIM,GAAQA,IAAStqG,IAGjB6gG,EAAQG,QAAQgJ,EAAMhqG,GAClB6gG,EAAQ7mE,QAAQgwE,KAAUhqG,IAGrBkhG,GAAsBL,GAAS,IAChCv3F,EAAO,IAAI+e,MAAM,sDAEd,IAGnB,EAEIksB,EAAO,WACPssD,EAAQG,QAAQ+I,EAAM/pG,GAEtBmqG,EAAQE,EAAS,WACTxJ,EAAQ7mE,QAAQ+vE,KAAU/pG,EAK9BkqG,EAAM,WACErJ,EAAQ7mE,QAAQgwE,KAAUhqG,EAI9BmqG,EAAQ,WACJ,OAAQtJ,EAAQ7mE,QAAQiwE,EAC5B,EAAGM,GALCh2D,GAMR,GAZIg2D,GAaR,EACJ,EAEIA,EAAkB,WAClB1J,EAAQG,QAAQiJ,EAAM,KACtB,IAAIO,EAAa,WACb3J,EAAQxtE,WAAW42E,GACfpJ,EAAQ7mE,QAAQgwE,KAAUhqG,GAC1B6gG,EAAQxtE,WAAW22E,GAEnBnJ,EAAQ7mE,QAAQ+vE,KAAU/pG,GAC1B6gG,EAAQxtE,WAAW02E,EAE3B,EAEAH,IACKhkF,KAAK,SAAUW,GACZikF,IACAnhG,EAAQkd,EACZ,GACCV,MAAM,SAAUpI,GACb+sF,IACAlhG,EAAOmU,EACX,EACR,EAEA,IACI,IAAIyjF,GAAsBL,GAAS,GAG/B,MAAM,IAAIx4E,MAAM,qCAFhBksB,GAIR,CAAE,MAAM92B,GACJnU,EAAOmU,EACX,CACJ,EAAGhW,MACP,EAKA,IAAIgjG,GAAsB,SAAUC,GAChCjjG,KAAKo5F,QAAU6J,GAAmB9qE,EAAIwhE,YAC1C,EAEAqJ,GAAoBtgG,UAAUzB,KAAO,WACjC,OAAOmxF,GAAgBxwF,SAC3B,EAEAohG,GAAoBtgG,UAAU+c,cAAgB,WAC1C,OAAO,CACX,EAEAujF,GAAoBtgG,UAAU62F,QAAU,SAAUr3F,EAAKmG,GACnD,OAAO,IAAI+pF,GAAgBlsE,GAAEhI,KAAK,SAAUtc,EAASC,GACjD,IACI7B,KAAKo5F,QAAQG,QAAQr3F,EAAK87F,GAAc31F,GAC5C,CAAE,MAAOrF,GACLnB,EAAOmB,EACX,CACApB,GACJ,EAAG5B,MACP,EAEAgjG,GAAoBtgG,UAAU6vB,QAAU,SAAUrwB,GAC9C,OAAO,IAAIkwF,GAAgBlsE,GAAEhI,KAAK,SAAUtc,EAASC,GACjD,IAAIotE,EACJ,IACIA,EAAOgvB,GAAUj+F,KAAKo5F,QAAQ7mE,QAAQrwB,GAC1C,CAAE,MAAOc,GACLnB,EAAOmB,EACX,CACApB,EAAQqtE,EACZ,EAAGjvE,MACP,EAEAgjG,GAAoBtgG,UAAUkpB,WAAa,SAAU1pB,GACjD,OAAO,IAAIkwF,GAAgBlsE,GAAEhI,KAAK,SAAUtc,EAASC,GACjD,IACI7B,KAAKo5F,QAAQxtE,WAAW1pB,EAC5B,CAAE,MAAOc,GACLnB,EAAOmB,EACX,CACApB,GACJ,EAAG5B,MACP,EAEA,IAAIkjG,GAAWlP,GAAoB,SAkB/BmP,GAAe,SAAUrB,EAAY3gG,GA/vBnB,IAAU2Y,EAAIspF,EAC5BC,EACAC,EA8vBJniG,EAAUA,GAAW,CAAC,EACtBnB,KAAK8hG,WAAaA,EAClB9hG,KAAKujG,eAAiBpiG,EAAQoiG,eAC1BvjG,KAAKujG,iBACLvjG,KAAKwjG,aAAeriG,EAAQqiG,cAAgB,IAAIR,GAChDhjG,KAAK6wE,KAAO,IAAIgxB,GAAWC,EAAY,CACnC1I,QAASj4F,EAAQsiG,mBAAqBtrE,EAAIwhE,aAC1CqI,UAAW7gG,EAAQuiG,uBAG3B1jG,KAAK2jG,YAAcxiG,EAAQyiG,eAAiB19E,GAAEhI,KAAKglF,GAASr9F,MAAOq9F,IAEnEljG,KAAKoiG,IAAMjhG,EAAQihG,KAAO,KAE1BpiG,KAAK6jG,SAAW,GAChB7jG,KAAK8jG,aAAc,EAEf3iG,EAAQ4iG,kBACR/jG,KAAKgkG,kBAlxBmBlqF,EAkxBgBoM,GAAEhI,KAAKle,KAAKikG,kBAAmBjkG,MAlxB3CojG,EAkxBkDjiG,EAAQ4iG,kBAjxBtFV,EAAiB,KACjBC,EAAiB,GACd,SAAUr0B,GACb,IAAIl5C,EAAO/1B,KAaX,OAZAsjG,EAAex+F,KAAKmqE,GAEfo0B,IACDA,EAAiB,IAAIjR,GAAgB,SAAUxwF,GAC3Cqc,WAAW,WACP,IAAIm8E,EAActgF,EAAG/T,MAAMgwB,EAAM,CAACutE,IAClCD,EAAiB,KACjBC,EAAiB,GACjB1hG,EAAQw4F,EACZ,EAAGgJ,EACP,IAEGC,CACX,GAkwBIrjG,KAAKgkG,iBAAmB99E,GAAEhI,KAAK,SAAUgmF,GACrC,OAAOlkG,KAAKikG,kBAAkB,CAACC,GACnC,EAAGlkG,KAEX,EAEAmjG,GAAazgG,UAAUyhG,WAAa,WAChC,OAAInkG,KAAK8jG,cAAgB9jG,KAAKujG,eACnBnR,GAAgBxwF,UAGpB5B,KAAKwjG,aACPviG,OACAkd,KAAK+H,GAAEhI,KAAK,WACTle,KAAK8jG,aAAc,CACvB,EAAG9jG,OACFoe,MAAM8H,GAAEhI,KAAK,SAAUlI,GACpBhW,KAAK2jG,YAAY,8DAA+D3tF,GAChFhW,KAAK8jG,aAAc,EACnB9jG,KAAKujG,gBAAiB,CAC1B,EAAGvjG,MACX,EAcAmjG,GAAazgG,UAAU0hG,QAAU,SAAUn1B,EAAMo1B,GAC7C,IAAIH,EAAa,CACb,GAAM5K,KACN,YAAc,IAAI7nE,MAAO+3C,UAA4B,EAAhB66B,EACrC,QAAWp1B,GAGf,OAAKjvE,KAAKujG,eAICvjG,KAAKgkG,iBAAiBE,IAH7BlkG,KAAK6jG,SAAS/+F,KAAKo/F,GACZ9R,GAAgBxwF,SAAQ,GAIvC,EAEAuhG,GAAazgG,UAAUuhG,kBAAoB,SAAUK,GACjD,IAAIC,EAAcr+E,GAAEhI,KAAK,WACrB,OAAOle,KAAKmkG,aACPhmF,KAAK+H,GAAEhI,KAAK,WACT,OAAOle,KAAKwkG,iBAChB,EAAGxkG,OACFme,KAAK+H,GAAEhI,KAAK,SAAUumF,GACnB,OAAOzkG,KAAK0kG,cAAcD,EAAYl8F,OAAO+7F,GACjD,EAAGtkG,OACFme,KAAK+H,GAAEhI,KAAK,SAAUymF,GAMnB,OAJIA,IACA3kG,KAAK6jG,SAAW7jG,KAAK6jG,SAASt7F,OAAO+7F,IAGlCK,CACX,EAAG3kG,OACFoe,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,yBAA0B3tF,EAAKsuF,IACzC,CACX,EAAGtkG,MACX,EAAGA,MAEH,OAAOA,KAAK6wE,KACPqxB,SAASqC,EAAavkG,KAAKoiG,KAC3BhkF,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,+BAAgC3tF,IAC1C,CACX,EAAGhW,MACX,EAQAmjG,GAAazgG,UAAUkiG,UAAY,SAAUC,GACzC,IAAIC,EAAQ9kG,KAAK6jG,SAAS5gG,MAAM,EAAG4hG,GACnC,OAAI7kG,KAAKujG,gBAAkBuB,EAAMpsG,OAASmsG,EAI/B7kG,KAAKmkG,aACPhmF,KAAK+H,GAAEhI,KAAK,WACT,OAAOle,KAAKwkG,iBAChB,EAAGxkG,OACFme,KAAK+H,GAAEhI,KAAK,SAAUumF,GACnB,GAAIA,EAAY/rG,OAAQ,CAEpB,IAAIqsG,EAAa,CAAC,EAClB7+E,GAAEghC,KAAK49C,EAAO,SAAU71B,GACpB81B,EAAW91B,EAAS,KAAK,CAC7B,GAEA,IAAK,IAAI12E,EAAI,EAAGA,EAAIksG,EAAY/rG,OAAQH,IAAK,CACzC,IAAI02E,EAAOw1B,EAAYlsG,GACvB,IAAI,IAAIk5B,MAAO+3C,UAAYyF,EAAiB,aAAM81B,EAAW91B,EAAS,MAClEA,EAAK+1B,UAAW,EAChBF,EAAMhgG,KAAKmqE,GACP61B,EAAMpsG,QAAUmsG,GAChB,KAGZ,CACJ,CAEA,OAAOC,CACX,EAAG9kG,OAEAoyF,GAAgBxwF,QAAQkjG,EAEvC,EAOA,IAAIG,GAAyB,SAAUp7E,EAAOq7E,GAC1C,IAAIC,EAAgB,GAMpB,OALAj/E,GAAEghC,KAAKr9B,EAAO,SAAUolD,GAChBA,EAAS,KAAMi2B,EAAMj2B,EAAS,KAC9Bk2B,EAAcrgG,KAAKmqE,EAE3B,GACOk2B,CACX,EAMAhC,GAAazgG,UAAU0iG,gBAAkB,SAAUhnB,GAC/C,IAAI8mB,EAAQ,CAAC,EAMb,GALAh/E,GAAEghC,KAAKk3B,EAAK,SAAU58C,GAClB0jE,EAAM1jE,IAAM,CAChB,GAEAxhC,KAAK6jG,SAAWoB,GAAuBjlG,KAAK6jG,SAAUqB,GACjDllG,KAAKujG,eAEH,CACH,IAAI8B,EAAoBn/E,GAAEhI,KAAK,WAC3B,OAAOle,KAAKmkG,aACPhmF,KAAK+H,GAAEhI,KAAK,WACT,OAAOle,KAAKwkG,iBAChB,EAAGxkG,OACFme,KAAK+H,GAAEhI,KAAK,SAAUumF,GAEnB,OADAA,EAAcQ,GAAuBR,EAAaS,GAC3CllG,KAAK0kG,cAAcD,EAC9B,EAAGzkG,OACFme,KAAK+H,GAAEhI,KAAK,WACT,OAAOle,KAAKwkG,iBAChB,EAAGxkG,OACFme,KAAK+H,GAAEhI,KAAK,SAAUumF,GAGnB,IAAK,IAAIlsG,EAAI,EAAGA,EAAIksG,EAAY/rG,OAAQH,IAAK,CACzC,IAAI02E,EAAOw1B,EAAYlsG,GACvB,GAAI02E,EAAS,IAAOi2B,EAAMj2B,EAAS,IAC/B,MAAM,IAAIruD,MAAM,gCAExB,CACA,OAAO,CACX,EAAG5gB,OACFoe,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,uBAAwB3tF,EAAKooE,IACvC,CACX,EAAGp+E,MACX,EAAGA,MAEH,OAAOA,KAAK6wE,KACPqxB,SAASmD,EAAmBrlG,KAAKoiG,KACjChkF,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,+BAAgC3tF,IAC5CyjF,GAAsBz5F,KAAK6wE,KAAKuoB,SAAS,IAKnCiM,IACFlnF,KAAK+H,GAAEhI,KAAK,SAAU0T,GACnB,OAAKA,GAGM5xB,KAAKwjG,aAAa53E,WAAW5rB,KAAK8hG,YAAY3jF,KAAK,WACtD,OAAOyT,CACX,EAGR,EAAG5xB,OACFoe,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,uBAAwB3tF,IAClC,CACX,EAAGhW,MAIf,EAAGA,MACX,CA3DI,OAAOoyF,GAAgBxwF,SAAQ,EA4DvC,EAGA,IAAI0jG,GAAiB,SAAUC,EAAeC,GAC1C,IAAIC,EAAW,GAcf,OAbAv/E,GAAEghC,KAAKq+C,EAAe,SAAUt2B,GAC5B,IAAIztC,EAAKytC,EAAS,GAClB,GAAIztC,KAAMgkE,EAAe,CACrB,IAAIE,EAAaF,EAAchkE,GACZ,OAAfkkE,IACAz2B,EAAc,QAAIy2B,EAClBD,EAAS3gG,KAAKmqE,GAEtB,MAEIw2B,EAAS3gG,KAAKmqE,EAEtB,GACOw2B,CACX,EAMAtC,GAAazgG,UAAU4iG,eAAiB,SAAUE,GAE9C,OADAxlG,KAAK6jG,SAAWyB,GAAetlG,KAAK6jG,SAAU2B,GACzCxlG,KAAKujG,eAGCvjG,KAAK6wE,KACPqxB,SAASh8E,GAAEhI,KAAK,WACb,OAAOle,KAAKmkG,aACPhmF,KAAK+H,GAAEhI,KAAK,WACT,OAAOle,KAAKwkG,iBAChB,EAAGxkG,OACFme,KAAK+H,GAAEhI,KAAK,SAAUumF,GAEnB,OADAA,EAAca,GAAeb,EAAae,GACnCxlG,KAAK0kG,cAAcD,EAC9B,EAAGzkG,OACFoe,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,uBAAwB6B,EAAexvF,IACjD,CACX,EAAGhW,MACX,EAAGA,MAAOA,KAAKoiG,KACdhkF,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,+BAAgC3tF,IAC1C,CACX,EAAGhW,OApBAoyF,GAAgBxwF,SAAQ,EAsBvC,EAMAuhG,GAAazgG,UAAU8hG,gBAAkB,WACrC,OAAOxkG,KAAKmkG,aACPhmF,KAAK+H,GAAEhI,KAAK,WACT,OAAOle,KAAKwjG,aAAajxE,QAAQvyB,KAAK8hG,WAC1C,EAAG9hG,OACFme,KAAK+H,GAAEhI,KAAK,SAAUynF,GAOnB,OANIA,IACKz/E,GAAExsB,QAAQisG,KACX3lG,KAAK2jG,YAAY,yBAA0BgC,GAC3CA,EAAe,OAGhBA,GAAgB,EAC3B,EAAG3lG,OACFoe,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,yBAA0B3tF,GACpC,EACX,EAAGhW,MACX,EAKAmjG,GAAazgG,UAAUgiG,cAAgB,SAAUhoF,GAC7C,OAAO1c,KAAKmkG,aACPhmF,KAAK+H,GAAEhI,KAAK,WACT,OAAOle,KAAKwjG,aAAajK,QAAQv5F,KAAK8hG,WAAYplF,EACtD,EAAG1c,OACFme,KAAK,WACF,OAAO,CACX,GACCC,MAAM8H,GAAEhI,KAAK,SAAUlI,GAEpB,OADAhW,KAAK2jG,YAAY,qBAAsB3tF,IAChC,CACX,EAAGhW,MACX,EAKAmjG,GAAazgG,UAAU4iF,MAAQ,WAG3B,OAFAtlF,KAAK6jG,SAAW,GAEZ7jG,KAAKujG,eACEvjG,KAAKmkG,aACPhmF,KAAK+H,GAAEhI,KAAK,WACT,OAAOle,KAAKwjG,aAAa53E,WAAW5rB,KAAK8hG,WAC7C,EAAG9hG,OAEAoyF,GAAgBxwF,SAE/B,EAGA,IAEIgkG,GAAW5R,GAAoB,SAQ/B6R,GAAiB,SAAS/D,EAAY3gG,GACtCnB,KAAK4jG,cAAgBziG,EAAQyiG,cAC7B5jG,KAAK0c,MAAQ,IAAIymF,GAAarB,EAAY,CACtC8B,cAAe19E,GAAEhI,KAAKle,KAAK2jG,YAAa3jG,MACxCwjG,aAAcriG,EAAQqiG,aACtBC,kBAAmBtiG,EAAQsiG,kBAC3BC,oBAAqBviG,EAAQuiG,oBAC7BH,eAAgBpiG,EAAQoiG,eACxBQ,kBAAmB5iG,EAAQ4iG,oBAG/B/jG,KAAK8lG,UAAY3kG,EAAQ2kG,UACzB9lG,KAAK+lG,YAAc5kG,EAAQ6kG,gBAC3BhmG,KAAKimG,eAAiB9kG,EAAQ8kG,eAC9BjmG,KAAKkmG,gBAAkB/kG,EAAQglG,oBAG/BnmG,KAAK6kG,UAAY7kG,KAAK8lG,UAAsB,WAC5C9lG,KAAKqkG,cAAgBrkG,KAAK8lG,UAAmC,wBAE7D9lG,KAAKomG,SAAWpmG,KAAK8lG,UAA2B,gBAChD9lG,KAAKqmG,2BAA6B,EAGlCrmG,KAAKsmG,wBAA0B,CAAC,EAKhCtmG,KAAKumG,oBAAsBplG,EAAQolG,sBAAuB,EAE1DvmG,KAAKwmG,cAAgB,IACzB,EAKAX,GAAenjG,UAAU0hG,QAAU,SAASn1B,GACxC,OAAOjvE,KAAK0c,MAAM0nF,QAAQn1B,EAAMjvE,KAAKqkG,cACzC,EAMAwB,GAAenjG,UAAUqzC,MAAQ,WAG7B,OAFA/1C,KAAKomG,SAAU,EACfpmG,KAAKqmG,2BAA6B,EAC3BrmG,KAAKymG,OAChB,EAKAZ,GAAenjG,UAAUgkG,KAAO,WAC5B1mG,KAAKomG,SAAU,EACXpmG,KAAK2mG,YACL33E,aAAahvB,KAAK2mG,WAClB3mG,KAAK2mG,UAAY,KAEzB,EAKAd,GAAenjG,UAAU4iF,MAAQ,WAC7B,OAAOtlF,KAAK0c,MAAM4oE,OACtB,EAKAugB,GAAenjG,UAAUkkG,eAAiB,WACtC5mG,KAAK6kG,UAAY7kG,KAAK8lG,UAAsB,UAChD,EAKAD,GAAenjG,UAAUmkG,WAAa,WAClC7mG,KAAK8mG,cAAc9mG,KAAK8lG,UAAmC,wBAC/D,EAKAD,GAAenjG,UAAUokG,cAAgB,SAASC,GAC9C/mG,KAAKqkG,cAAgB0C,EAChB/mG,KAAKomG,UACNpmG,KAAK2mG,UAAY1oF,WAAWiI,GAAEhI,KAAK,WAC1Ble,KAAKomG,UACNpmG,KAAKwmG,cAAgBxmG,KAAKymG,QAElC,EAAGzmG,MAAOA,KAAKqkG,eAEvB,EAMAwB,GAAenjG,UAAUskG,mBAAqB,SAASnjG,EAAM1C,GACzD,OAAO,IAAIixF,GAAgBlsE,GAAEhI,KAAK,SAAStc,GACvC5B,KAAK+lG,YAAYliG,EAAM1C,EAASS,EACpC,EAAG5B,MACP,EAaA6lG,GAAenjG,UAAU+jG,MAAQ,SAAStlG,GACtC,GAAInB,KAAKinG,kBAEL,OADArB,GAASngG,IAAI,sCACN2sF,GAAgBxwF,UAG3B5B,KAAKinG,mBAAoB,EAEzB9lG,EAAUA,GAAW,CAAC,EACtB,IAAI6gG,EAAYhiG,KAAK8lG,UAAoC,yBACrDzD,GAAY,IAAI5wE,MAAO+3C,UACvB09B,EAAmBlnG,KAAK6kG,UAE5B,OAAO7kG,KAAK0c,MAAMkoF,UAAUsC,GACvB/oF,KAAK+H,GAAEhI,KAAK,SAAS4mF,GAIlB,IAAIqC,EAAwBrC,EAAMpsG,SAAWwuG,EACzCE,EAAiB,GACjBC,EAAmB,CAAC,EAuCxB,GAtCAnhF,GAAEghC,KAAK49C,EAAO,SAAS71B,GACnB,IAAIb,EAAUa,EAAc,QAI5B,GAHIjvE,KAAKimG,iBAAmBh3B,EAAK+1B,WAC7B52B,EAAUpuE,KAAKimG,eAAe73B,IAE9BA,EAAS,CAILA,EAAe,OAAKA,EAAoB,aACxCA,EAAoB,WAAIloD,GAAEquE,OACtB,CAAC,EACDnmB,EAAoB,WACpB,CAAC,uBAA0BskB,GAAOE,eAG1C,IAAI0U,GAAa,EACbC,EAASt4B,EAAS,GAClBs4B,GACKvnG,KAAKsmG,wBAAwBiB,IAAW,GAAK,IAC9CvnG,KAAK2jG,YAAY,kDAAmD,CAChE10B,KAAMA,EACN41B,UAAWC,EAAMpsG,OACjB8uG,UAAWxnG,KAAKsmG,wBAAwBiB,KAE5CD,GAAa,GAGjBtnG,KAAK2jG,YAAY,+BAAgC,CAAC10B,KAAMA,IAGxDq4B,GACAF,EAAetiG,KAAKspE,EAE5B,CACAi5B,EAAiBp4B,EAAS,IAAKb,CACnC,EAAGpuE,MAEConG,EAAe1uG,OAAS,EAGxB,OAFAsH,KAAKinG,mBAAoB,EACzBjnG,KAAK6mG,aACEzU,GAAgBxwF,UAG3B,IAAI6lG,EAAuBvhF,GAAEhI,KAAK,WAC9B,OAAOle,KAAK0c,MACP0oF,gBACGl/E,GAAE/Z,IAAI24F,EAAO,SAAU71B,GACnB,OAAOA,EAAS,EACpB,IAEH9wD,KAAK+H,GAAEhI,KAAK,SAAUymF,GAmBnB,OAjBAz+E,GAAEghC,KAAK49C,EAAO5+E,GAAEhI,KAAK,SAAS+wD,GAC1B,IAAIs4B,EAASt4B,EAAS,GAClBs4B,GACAvnG,KAAKsmG,wBAAwBiB,GAAUvnG,KAAKsmG,wBAAwBiB,IAAW,EAC/EvnG,KAAKsmG,wBAAwBiB,KACzBvnG,KAAKsmG,wBAAwBiB,GAAU,GACvCvnG,KAAK2jG,YAAY,qCAAsC,CACnD10B,KAAMA,EACN41B,UAAWC,EAAMpsG,OACjB8uG,UAAWxnG,KAAKsmG,wBAAwBiB,MAIhDvnG,KAAK2jG,YAAY,8CAA+C,CAAC10B,KAAMA,GAE/E,EAAGjvE,OAEC2kG,GACA3kG,KAAKqmG,2BAA6B,EAC9BrmG,KAAKumG,sBAAwBY,GAC7BnnG,KAAK6mG,aACEzU,GAAgBxwF,WAEhB5B,KAAKymG,YAGVzmG,KAAKqmG,2BAA6B,GACpCrmG,KAAK2jG,YAAY,uDACjB3jG,KAAKkmG,mBAELlmG,KAAK6mG,aAEFzU,GAAgBxwF,UAE/B,EAAG5B,MACX,EAAGA,MAEC0nG,EAAoBxhF,GAAEhI,KAAK,SAAS1c,GACpCxB,KAAKinG,mBAAoB,EAEzB,IAKI,GAAI9lG,EAAQwmG,UAER,OAAO3nG,KAAK0c,MAAM4oF,eAAe+B,GAC9B,GACHnhF,GAAE4oE,SAASttF,IACO,YAAdA,EAAIqE,QACJ,IAAI4rB,MAAO+3C,UAAY64B,GAAaL,EAGxC,OADAhiG,KAAK2jG,YAAY,6BACV3jG,KAAKymG,QACT,GACHvgF,GAAE4oE,SAASttF,KAEHA,EAAIomG,gBAAkB,KACI,MAAvBpmG,EAAIomG,gBACHpmG,EAAIomG,gBAAkB,IAlxClDlvE,EAASP,EAAIK,UAAkB,QAC5BtS,GAAE0tE,YAAYl7D,KAAWA,IAkxCa,YAAdl3B,EAAIqE,OAEjB,CAEE,IAAIgiG,EAA+B,EAArB7nG,KAAKqkG,cAOnB,OANI7iG,EAAIsmG,aACJD,EAA0C,IAA/BjvG,SAAS4I,EAAIsmG,WAAY,KAAeD,GAEvDA,EAAUrvG,KAAK0wB,IA/QX,IA+QsC2+E,GAC1C7nG,KAAK2jG,YAAY,mBAAqBkE,EAAU,OAChD7nG,KAAK8mG,cAAce,GACZzV,GAAgBxwF,SAC3B,CAAO,GAAIskB,GAAE4oE,SAASttF,IAA+B,MAAvBA,EAAIomG,eAAwB,CAEtD,GAAI9C,EAAMpsG,OAAS,EAAG,CAClB,IAAIqvG,EAAkBvvG,KAAKC,IAAI,EAAGD,KAAK2xC,MAAM+8D,EAAmB,IAIhE,OAHAlnG,KAAK6kG,UAAYrsG,KAAK0wB,IAAIlpB,KAAK6kG,UAAWkD,EAAiBjD,EAAMpsG,OAAS,GAC1EsH,KAAK2jG,YAAY,wCAA0C3jG,KAAK6kG,WAChE7kG,KAAK6mG,aACEzU,GAAgBxwF,SAC3B,CAGI,OAFA5B,KAAK2jG,YAAY,2CAA4CmB,GAC7D9kG,KAAK4mG,iBACEa,GAEf,CAGI,OAAOA,GAEf,CAAE,MAAMzxF,GACJhW,KAAK2jG,YAAY,8BAA+B3tF,GAChDhW,KAAK6mG,YACT,CArzCD,IACPnuE,CAqzCI,EAAG14B,MACCgoG,EAAiB,CACjBtpE,OAAQ,OACRupE,SAAS,EACTC,oBAAoB,EACpBC,WAAYnG,GAMhB,OAJI7gG,EAAQwmG,YACRK,EAAeI,UAAY,cAE/BxC,GAASngG,IAAI,oBAAqB2hG,GAC3BpnG,KAAKgnG,mBAAmBI,EAAgBY,GAAgB7pF,KAAKupF,EACxE,EAAG1nG,OACFoe,MAAM8H,GAAEhI,KAAK,SAASlI,GACnBhW,KAAK2jG,YAAY,+BAAgC3tF,GACjDhW,KAAK6mG,YACT,EAAG7mG,MACX,EAKA6lG,GAAenjG,UAAUihG,YAAc,SAASnS,EAAKx7E,GAEjD,GADA4vF,GAAS//F,MAAME,MAAM6/F,GAAS//F,MAAOmH,WACjChN,KAAK4jG,cACL,IACU5tF,aAAe4K,QACjB5K,EAAM,IAAI4K,MAAM4wE,IAEpBxxF,KAAK4jG,cAAcpS,EAAKx7E,EAC5B,CAAE,MAAMA,GACJ4vF,GAAS//F,MAAMmQ,EACnB,CAER,EAMA,IAAIqyF,GAAqB,SAASC,GAC9B,IAAI52E,EAAMD,KAAKC,MACf,OAAQ42E,GAAuB52E,EAAM42E,EAAgC,YAAK52E,EAAM42E,EAAiC,WACrH,EAIIC,GAAWvU,GAAoB,YAC/BwU,GAAoBrwE,EAAuB,kBAE3CswE,GAA8B,CAC9B,WAAc,IACd,wBAA2B,IAC3B,yBAA4B,IAC5B,iBAAmB,GAGnBC,GAAiB,IAAIh+E,IAAI,CACzB+/C,GAAkBoM,UAClBpM,GAAkB6V,iBAClB7V,GAAkB8V,OAClB9V,GAAkB2V,eAClB3V,GAAkBvpB,MAClBupB,GAAkBqM,UAClBrM,GAAkB4V,iBAClB5V,GAAkBkM,KAClBlM,GAAkBoW,YAmDlB8nB,GAAmB,SAASxnG,GAC5BnB,KAAK4oG,UAAYznG,EAAQ0nG,iBACzB7oG,KAAK8oG,eAAiB3nG,EAAQ4nG,eAAiBhL,GAC/C/9F,KAAKgpG,oBAAsB7nG,EAAQ8nG,oBAAsBlL,GACzD/9F,KAAKkpG,aAAe/nG,EAAQgoG,aAAepL,GAC3C/9F,KAAKopG,aAAejoG,EAAQkoG,aAAe,KAG3CrpG,KAAKspG,eAAiB,KACtBtpG,KAAKupG,SAAWpoG,EAAQooG,SAExBvpG,KAAKwpG,cAAgBroG,EAAQqoG,eAAiB,KAC9CxpG,KAAKypG,eAAiBtoG,EAAQsoG,gBAAkB,KAChDzpG,KAAK0pG,YAAcvoG,EAAQuoG,aAAe,KAC1C1pG,KAAK2pG,WAAaxoG,EAAQwoG,YAAc,KACxC3pG,KAAK4pG,gBAAkBzoG,EAAQyoG,iBAAmB,KAClD5pG,KAAK6pG,mBAAqB1oG,EAAQ0oG,oBAAsB,KACxD7pG,KAAK8pG,MAAQ3oG,EAAQ2oG,OAAS,EAE9B9pG,KAAK+pG,cAAgB,KACrB/pG,KAAKgqG,aAAe,KAEpBhqG,KAAKiqG,YAAcpX,GACnB7yF,KAAKkqG,YAAc,EAInB,IAAI3G,EAAiB9J,GAAsBt4F,EAAQsiG,mBAAmB,KAAUzjG,KAAKmqG,UAAU,uBAG/FnqG,KAAKoqG,WAAa,WAAapqG,KAAKmqG,UAAU,QAAU,IAAMnqG,KAAKmqG,UAAU,SAAW,IAAMnqG,KAAKupG,SACnGvpG,KAAKwjG,aAAe,IAAInF,GAAkBH,IAC1Cl+F,KAAKqqG,QAAU,IAAIxE,GAAe7lG,KAAKoqG,WAAY,CAC/CxG,cAAe5jG,KAAK2jG,YAAYzlF,KAAKle,MACrCumG,qBAAqB,EACrBT,UAAW2C,GACXzC,gBAAiBhmG,KAAKsqG,sBAAsBpsF,KAAKle,MACjDwjG,aAAcxjG,KAAKwjG,aACnBC,kBAAmBtiG,EAAQsiG,kBAC3BF,eAAgBA,EAChB4C,oBAAqBnmG,KAAKuqG,cAAcrsF,KAAKle,MAK7C+jG,kBArHyB,IAsHzBL,oBAAqB,KAE7B,EAKAiF,GAAiBjmG,UAAU8nG,cAAgB,WACvC,GAAIxqG,KAAKyqG,qBACL,OAAOzqG,KAAKyqG,qBAGhB,IAAIC,EAAa,CACb,YAAetyG,OAAO4H,KAAK4oG,UAAU+B,oBAIrCC,EAAW5qG,KAAK4oG,UAAUiC,aAAa,cACvCD,IACAF,EAAuB,WAAIE,GAE/B,IAAIE,EAAS9qG,KAAK4oG,UAAUiC,aAAa,YAIzC,OAHIC,IACAJ,EAAqB,SAAII,GAEtBJ,CACX,EAEA/B,GAAiBjmG,UAAUqoG,oBAAsB,WAG7C,OAFA/qG,KAAKqqG,QAAQ3D,OAEN1mG,KAAKwjG,aAAaviG,OAAOmd,MAAM,WAClCpe,KAAK2jG,YAAY,qEACrB,EAAEzlF,KAAKle,OAAOme,KAAK,WAEf,OAAIne,KAAKgrG,gBAAkBhrG,KAAKirG,kBACrBjrG,KAAKwjG,aAAa53E,WAAW5rB,KAAKoqG,YAGtCpqG,KAAKqqG,QAAQ5D,QACftoF,KAAK,WACF,OAAOne,KAAKwjG,aAAa53E,WAAW5rB,KAAKoqG,WAC7C,EAAElsF,KAAKle,MACf,EAAEke,KAAKle,MACX,EAEA2oG,GAAiBjmG,UAAUynG,UAAY,SAASe,GAC5C,OAAOlrG,KAAK4oG,UAAUrJ,WAAW2L,EACrC,EAKAvC,GAAiBjmG,UAAU68F,WAAa,SAAS2L,GAC7C,OAAOlrG,KAAKmqG,UAAUe,EAC1B,EAEAvC,GAAiBjmG,UAAUyoG,eAAiB,SAAUC,GAClD,GAA0B,OAAtBprG,KAAKopG,aAKT,GAA4B,OAAxBppG,KAAKspG,eAAT,CAKAtpG,KAAKiqG,YAAcjqG,KAAKmqG,UAAU,iBAC9BnqG,KAAKiqG,YAAcpX,KACnB7yF,KAAKiqG,YAAcpX,GACnB0V,GAASzU,SAAS,wCAA0CjB,GAAmB,uBAG9E7yF,KAAK2pG,aACN3pG,KAAK2pG,YAAa,IAAIl4E,MAAO+3C,UAAYxpE,KAAKiqG,aAGlDjqG,KAAKkqG,YAAclqG,KAAKirG,kBAEnBjrG,KAAK4pG,kBACN5pG,KAAK4pG,iBAAkB,IAAIn4E,MAAO+3C,UAClCxpE,KAAKwpG,cAAgBtjF,GAAEgN,KAAKkqE,aAC5Bp9F,KAAKypG,eAAiBvjF,GAAEgN,KAAKkqE,cAG7BgO,GAAqBprG,KAAKkqG,YAAc,EAMxClqG,KAAKqqG,QAAQ3D,OAEb1mG,KAAKqqG,QAAQt0D,QAGjB,IAAIs1D,EAAmB,WACnBr8E,aAAahvB,KAAK+pG,eAClB,IAAIuB,EAAgBtrG,KAAKmqG,UAAU,0BACnCnqG,KAAK+pG,cAAgB9rF,WAAWje,KAAK8oG,eAAgBwC,GACrDtrG,KAAK0pG,aAAc,IAAIj4E,MAAO+3C,UAAY8hC,CAC9C,EAAEptF,KAAKle,MACPqrG,IAEA,IAnnHkClqG,EAmnH9B4lC,EAAgB/mC,KAAKmqG,UAAU,yBACb,KAAlBpjE,GAA0C,OAAlBA,IACxBA,OAAgB1sC,GAGpB,IACI2F,KAAKspG,eAAiBtpG,KAAKopG,aAAa,CACpC,KAAQ,SAAUvI,GACV7gG,KAAK0pG,aAAe1pG,KAAK0pG,YAAc7I,EAAGlhB,UAC1C3/E,KAAK8oG,kBAhNzB,SAAqBjI,GACjB,OAAOA,EAAGnlG,OAAS6uE,GAAUqV,qBAAuB8oB,GAAe/9E,IAAIk2E,EAAGh9F,KAAKP,OACnF,CAiNoBioG,CAAY1K,KACR7gG,KAAKqqG,QAAQjE,UAAW,IAAI30E,MAAO+3C,UAAYxpE,KAAK4pG,iBAAmB5pG,KAAKkqG,aAE5ElqG,KAAKqqG,QAAQt0D,QAEjBs1D,KAGJrrG,KAAKwrG,iBAAmBxrG,KAAKqqG,QAAQjG,QAAQvD,IAGb,OAA5B7gG,KAAK6pG,oBAA+BhJ,EAAGlhB,UAAY3/E,KAAK6pG,sBACxD7pG,KAAK6pG,mBAAqBhJ,EAAGlhB,WAErC,EAAEzhE,KAAKle,MACP,WAAcA,KAAKmqG,UAAU,sBAC7B,cAAiBpjE,EACjB,aAAgB/mC,KAAKmqG,UAAU,wBAC/B,eAAkB,CACd,KAAQ,aACR,QAAW,IAEf,eAAiB,EACjB,cAAiBnqG,KAAKmqG,UAAU,0BAChC,iBAAoBnqG,KAAKmqG,UAAU,6BACnC,aAAgBnqG,KAAKmqG,UAAU,iBAC/B,SAAY,CACR,OAAU,IAEd,QAAWnqG,KAAKmqG,UAAU,kBAAoB,EA5pHpBhpG,EA6pHC,CACnB8tF,iBAAkB,CACdK,kBAAmB,IACnBJ,eAAgB,GAChBC,aAAc,IAhqH3B,CACH9wF,KAHU,kBAIVkJ,SAAUsoF,GACV1uF,QAASA,KAgqHD,IAEZ,CAAE,MAAO6U,GACLhW,KAAK2jG,YAAY,kDAAmD3tF,EACxE,CAEA,GAAmC,mBAAxBhW,KAAKspG,eAIZ,OAHAtpG,KAAK2jG,YAAY,mDACjB3jG,KAAKspG,eAAiB,UACtBtpG,KAAKuqG,gBAIT,IAAIkB,EAAezrG,KAAK2pG,YAAa,IAAIl4E,MAAO+3C,UAChDxpE,KAAKgqG,aAAe/rF,WAAWje,KAAKgpG,oBAAoB9qF,KAAKle,MAAOyrG,EAtGpE,MAFIlD,GAAS9iG,IAAI,gEALbzF,KAAK2jG,YAAY,uCA8GzB,EAEAgF,GAAiBjmG,UAAU6nG,cAAgB,SAAUmB,GAIjD,GAFA1rG,KAAKyqG,qBAAuBzqG,KAAKwqG,iBAE5BxqG,KAAK2rG,iBAAkB,CACxB,IACI3rG,KAAKspG,gBACT,CAAE,MAAOtzF,GACLhW,KAAK2jG,YAAY,iCAAkC3tF,EACvD,CACAhW,KAAKspG,eAAiB,IAC1B,CAEA,IAAIsC,EAYJ,OAXI5rG,KAAKqqG,QAAQjE,QAEbwF,EAAe5rG,KAAKqqG,QAAQ/kB,QACpBomB,IAERE,EAAe5rG,KAAKqqG,QAAQ5D,SAEhCzmG,KAAKqqG,QAAQ3D,OAEb13E,aAAahvB,KAAK+pG,eAClB/6E,aAAahvB,KAAKgqG,cACX4B,CACX,EAEAjD,GAAiBjmG,UAAUipG,eAAiB,WACxC,OAA+B,OAAxB3rG,KAAKspG,cAChB,EAOAX,GAAiBjmG,UAAU4nG,sBAAwB,SAAUzmG,EAAM1C,EAASqmD,GACxE,IAAIqkD,EAAW,SAAUtmG,GAER,IAATA,IACAvF,KAAKuqG,gBACL/iD,EAAG,CAAC3hD,MAAO,qDAEnB,EAAEqY,KAAKle,MAEPA,KAAK8rG,aAAajoG,EAAM1C,EAASqmD,EAAIqkD,EACzC,EAKAlD,GAAiBjmG,UAAUqpG,UAAY,WAEnC,IAAIC,EACJ,IACIA,EAAQhsG,KAAK4oG,UAAUqD,YAC3B,CAAE,MAAOjpG,GACLhD,KAAK2jG,YAAY,0CAA2C3gG,GAC5DgpG,EAAQ,IACZ,CAEA,MAAO,CACH,SAAYhsG,KAAKupG,SACjB,MAASvpG,KAAK8pG,MACd,gBAAmB9pG,KAAK4pG,gBACxB,cAAiB5pG,KAAKwpG,cACtB,eAAkBxpG,KAAKypG,eACvB,mBAAsBzpG,KAAK6pG,mBAC3B,YAAe7pG,KAAK0pG,YACpB,WAAc1pG,KAAK2pG,WACnB,MAASqC,EAEjB,EASArD,GAAiBuD,YAAc,SAAU5D,EAAqBnnG,GAa1D,OAZgB,IAAIwnG,GAAiBziF,GAAEquE,OAAO,CAAC,EAAGpzF,EAAS,CACvDooG,SAAUjB,EAA8B,SACxCkB,cAAelB,EAAmC,cAClDmB,eAAgBnB,EAAoC,eACpDoB,YAAapB,EAAiC,YAC9CqB,WAAYrB,EAAgC,WAC5CsB,gBAAiBtB,EAAqC,gBACtDuB,mBAAoBvB,EAAwC,mBAC5DwB,MAAOxB,EAA2B,MAClC7E,kBAAmBtiG,EAAQsiG,oBAInC,EAEAkF,GAAiBjmG,UAAUypG,aAAe,SAASC,EAAiBC,EAAWC,EAASzvF,GACpF,IAAI0vF,EAAY,SAAUr2E,EAAUs2E,GAIR,MAApBt2E,EAASu2E,QAAkBzsG,KAAKupG,WAAa6C,IAC7CpsG,KAAK8pG,QACL9pG,KAAKwpG,cAAgBtjF,GAAEgN,KAAKkqE,cAGhCp9F,KAAKkpG,eACLrsF,EAAS,CACL4vF,OAAQ,EACR7E,eAAgB1xE,EAASu2E,OACzBD,aAAcA,EACd1E,WAAY5xE,EAASw2E,QAAQloG,IAAI,gBAEzC,EAAE0Z,KAAKle,MACH2sG,EAAW3sG,KAAK4oG,UAAUgE,cAAgB5sG,KAAK4oG,UAAUgE,aAAa,WAAc5sG,KAAKmqG,UAAU,YACvGhyE,EAAW,MAAEw0E,EAAU,IAAM3sG,KAAKmqG,UAAU,cAAsB,OAAI,IAAM,IAAIh5E,gBAAgBk7E,GAAY,CACxG,OAAU,OACV,QAAW,CACP,cAAiB,SAAW1mD,KAAK3lD,KAAKmqG,UAAU,SAAW,KAC3D,eAAgB,4BAEpB,KAAQmC,IACTnuF,KAAK,SAAU+X,GACdA,EAAS1E,OAAOrT,KAAK,SAAUquF,GAC3BD,EAAUr2E,EAAUs2E,EACxB,GAAGpuF,MAAM,SAAUvY,GACfgX,EAAS,CAAChX,MAAOA,GACrB,EACJ,GAAGuY,MAAM,SAAUvY,GACfgX,EAAS,CAAChX,MAAOA,EAAO+hG,eAAgB,GAC5C,EACJ,EAEAe,GAAiBjmG,UAAUopG,aAAezM,GAA0B,SAAUx7F,EAAM1C,EAAS0b,GACzF,IAAIgwF,EAAYhpG,EAAKnL,OAErB,GAAIm0G,EAAY,EAAG,CAOf,IANA,IAAItD,EAAWvpG,KAAKupG,SAGhBuD,EAAiBpnF,IACjBqnF,GAAe,IACfC,GAAkB,EACbz0G,EAAI,EAAGA,EAAIs0G,EAAWt0G,IAC3Bu0G,EAAiBt0G,KAAK0wB,IAAI4jF,EAAgBjpG,EAAKtL,GAAGonF,WAClDotB,EAAev0G,KAAKC,IAAIs0G,EAAclpG,EAAKtL,GAAGonF,WAC1C97E,EAAKtL,GAAGmD,OAAS6uE,GAAU+U,eAC3B0tB,GAAkB,GAI1B,GAAmB,IAAfhtG,KAAK8pG,MAAa,CAClB,IAAKkD,EAGD,OAFAnwF,EAAS,CAAChX,MAAO,2EACjB7F,KAAKuqG,eAAc,GAGvBvqG,KAAK4pG,gBAAkBkD,CAC3B,MAAY9sG,KAAK4pG,kBACb5pG,KAAK2jG,YAAY,+FACjB3jG,KAAK4pG,gBAAkBkD,GAG3B,IAAIG,EAAiBF,EAAe/sG,KAAK4pG,gBAErCyC,EAAY,CACZ,aAAgBrsG,KAAKwpG,cACrB,aAAgB9W,GAAOE,YACvB,iBAAoBka,EAAiB,IACrC,OAAU,MACV,UAAavD,EACb,iBAAoB0D,EACpB,kBAAqBjtG,KAAK4pG,gBAAkB,IAC5C,iBAAoB5pG,KAAKypG,eACzB,IAAOzpG,KAAK8pG,OAEZoD,EAAankG,KAAKE,UAAUpF,GAGhC,GAFAtD,OAAOg6B,OAAO8xE,EAAWrsG,KAAKwqG,iBAlyDR,SAAS/xE,EAAWskE,EAAQ3J,GACtD,IAAKj7D,EAAIqwE,kBACL,OAAO,EAGX,IAAI3L,EAAU32E,GAAEgN,KAAK2pE,QAAQpkE,EAAWskE,EAAQ3J,GAC5Cn7F,EAAUiuB,GAAEgN,KAAK8pE,eAAevkE,EAAWskE,EAAQ3J,GACvD,SAAgB,WAAZyJ,GAAoC,kBAAZA,IACpB5kG,GAAW,MAAQA,EAAU,KAMzC,CAsxDYk1G,CAAwB10E,GAAWD,GAAUukE,OAAQ5J,IAAc,CACnE,IACIia,EADa,IAAI/oB,KAAK,CAAC6oB,GAAa,CAACxxG,KAAM,qBAAqB2xG,SACxCC,YAAY,IAAI9E,GAAkB,SAC9D,IAAI+E,SAASH,GACRhpB,OACAjmE,KAAK,SAASqvF,GACXnB,EAAkB,OAAI,OACtBrsG,KAAKmsG,aAAa5C,EAAU8C,EAAWmB,EAAgB3wF,EAC3D,EAAEqB,KAAKle,MACf,MACIqsG,EAAkB,OAAI,OACtBrsG,KAAKmsG,aAAa5C,EAAU8C,EAAWa,EAAYrwF,EAE3D,CACJ,GAGA8rF,GAAiBjmG,UAAUihG,YAAc,SAASnS,EAAKx7E,GACnDuyF,GAAS1iG,MAAME,MAAMwiG,GAAS1iG,MAAOmH,WACrC,IACSgJ,GAASw7E,aAAe5wE,QACzB4wE,EAAM,IAAI5wE,MAAM4wE,IAEpBxxF,KAAKmqG,UAAU,iBAAfnqG,CAAiCwxF,EAAKx7E,EAC1C,CAAE,MAAMA,GACJuyF,GAAS1iG,MAAMmQ,EACnB,CACJ,EAMA2yF,GAAiBjmG,UAAUsoG,cAAgB,WACvC,OAA6B,OAAzBhrG,KAAK4pG,gBACE,EAIqB,OAA5B5pG,KAAK6pG,oBACE,IAAIp4E,MAAO+3C,UAAYxpE,KAAK4pG,gBAGhC5pG,KAAK6pG,mBAAqB7pG,KAAK4pG,eAC1C,EAMAjB,GAAiBjmG,UAAUuoG,gBAAkB,WACzC,IAAIwC,EAAcztG,KAAKmqG,UAAU,iBAEjC,OAAIsD,EAniH6B,KAoiH7BlF,GAASzU,SAAS,+DApiHW,KAwiH1B2Z,CACX,EAMA,IAAIC,GAAoB,SAAUvsG,GAE9BnB,KAAK2tG,IAAM,IAAItP,GAAkBF,IACjCn+F,KAAK4jG,cAAgBziG,EAAQyiG,cAC7B5jG,KAAK6oG,iBAAmB1nG,EAAQ0nG,iBAChC7oG,KAAKyjG,kBAAoBtiG,EAAQsiG,iBACrC,EAEAiK,GAAkBhrG,UAAUkrG,qBAAuB,WAC/C,OAAQ5tG,KAAK6oG,iBAAiBtJ,WAAW,sBAC7C,EAEAmO,GAAkBhrG,UAAUkxD,YAAc,SAAU59C,GAChDhW,KAAK4jG,cAAc,oBAAqB5tF,EAC5C,EAKA03F,GAAkBhrG,UAAUmrG,mBAAqB,SAAUvF,GACvD,IAAKtoG,KAAK4tG,uBACN,OAAOxb,GAAgBxwF,UAG3B,IAAIoqG,EAAQ1D,EAA2B,MACvC,OAAK0D,EAKEhsG,KAAK2tG,IAAI1sG,OACXkd,KAAK,WACF,OAAOne,KAAK2tG,IAAIpU,QAAQyS,EAAO1D,EACnC,EAAEpqF,KAAKle,OACNoe,MAAMpe,KAAK4zD,YAAY11C,KAAKle,QAR7B8F,QAAQF,KAAK,wDACNwsF,GAAgBxwF,UAQ/B,EAKA8rG,GAAkBhrG,UAAUorG,mBAAqB,WAC7C,OAAK9tG,KAAK4tG,uBAIH5tG,KAAK2tG,IAAI1sG,OACXkd,KAAK,WACF,OAAOne,KAAK2tG,IAAIp7E,QAAQvyB,KAAK6oG,iBAAiBoD,aAClD,EAAE/tF,KAAKle,OACNme,KAAK,SAAUmqF,GACZ,OAAOD,GAAmBC,GAAuB,KAAOA,CAC5D,EAAEpqF,KAAKle,OACNoe,MAAMpe,KAAK4zD,YAAY11C,KAAKle,OAVtBoyF,GAAgBxwF,QAAQ,KAWvC,EAEA8rG,GAAkBhrG,UAAUqrG,qBAAuB,WAC/C,OAAI/tG,KAAK4tG,uBAGE5tG,KAAKguG,6BAELhuG,KAAKiuG,uBAEpB,EAEAP,GAAkBhrG,UAAUsrG,2BAA6B,WACrD,OAAOhuG,KAAK8tG,qBACP3vF,KAAK,SAAUmqF,GACZ,GAAIA,EAEA,OADAA,EAAgC,WAAI,EAC7BtoG,KAAK6tG,mBAAmBvF,EAEvC,EAAEpqF,KAAKle,OACNoe,MAAMpe,KAAK4zD,YAAY11C,KAAKle,MACrC,EAEA0tG,GAAkBhrG,UAAUurG,sBAAwB,WAEhD,OAAIjuG,KAAK2tG,IAAIluF,gBACFzf,KAAK2tG,IAAI/hF,WAAW5rB,KAAK6oG,iBAAiBoD,cAC5C7tF,MAAMpe,KAAK4zD,YAAY11C,KAAKle,OAE1BoyF,GAAgBxwF,SAE/B,EAMA8rG,GAAkBhrG,UAAUwrG,wBAA0B,WAClD,OAAKluG,KAAK4tG,uBAIH5tG,KAAK2tG,IAAI1sG,OACXkd,KAAK,WACF,OAAOne,KAAK2tG,IAAIhM,QACpB,EAAEzjF,KAAKle,OACNme,KAAK,SAAUgwF,GAEZ,IAAIC,EAAiBD,EAChBniG,OAAO,SAAUs8F,GACd,OAAOD,GAAmBC,EAC9B,GACCn8F,IAAI,SAAUm8F,GAKX,OAJuBK,GAAiBuD,YAAY5D,EAAqB,CACrEO,iBAAkB7oG,KAAK6oG,iBACvBpF,kBAAmBzjG,KAAKyjG,oBAEJsH,sBACnB5sF,KAAK,WAEF,OAAOne,KAAK2tG,IAAI/hF,WAAW08E,EAA2B,MAC1D,EAAEpqF,KAAKle,OACNoe,MAAMpe,KAAK4zD,YAAY11C,KAAKle,MACrC,EAAEke,KAAKle,OAEX,OAAOoyF,GAAgB1hC,IAAI09C,EAC/B,EAAElwF,KAAKle,OACNoe,MAAMpe,KAAK4zD,YAAY11C,KAAKle,OA5BtBoyF,GAAgBxwF,QAAQ,GA6BvC,EAEA,IAAIysG,GAAWra,GAAoB,YAM/Bsa,GAAmB,SAASzF,EAAkBQ,EAAa5F,GAC3DzjG,KAAK6oG,iBAAmBA,EACxB7oG,KAAKqpG,YAAcA,GAAetgB,GAClC/oF,KAAKyjG,kBAAoBA,EAKzBzjG,KAAKuuG,kBAAoB,IAAIb,GAAkB,CAC3C7E,iBAAkB7oG,KAAK6oG,iBACvBjF,cAAeyK,GAASxoG,MACxB49F,kBAAmBA,IAEvBzjG,KAAKwuG,sBAAwBxuG,KAAKuuG,kBAAkBL,0BAEpDluG,KAAKyuG,gBAAkB,KACvBzuG,KAAK0uG,yBAA0B,CACnC,EAEAJ,GAAiB5rG,UAAUyoG,eAAiB,SAAShqG,GAEjD,GADAA,EAAUA,GAAW,CAAC,GAClBnB,KAAKyuG,iBAAoBzuG,KAAKyuG,gBAAgB9C,iBAAlD,CAKA,IAAI5C,EAAgB,WAChBsF,GAAS5oG,IAAI,+CACbzF,KAAK2uG,gBACT,EAAEzwF,KAAKle,MAEHipG,EAAqB,WACrBoF,GAAS5oG,IAAI,qDACbzF,KAAK2uG,gBACT,EAAEzwF,KAAKle,MAEHmpG,EAAc,WACdnpG,KAAKuuG,kBAAkBV,mBAAmB7tG,KAAKyuG,gBAAgB1C,aAC/D/rG,KAAqB,eAAIA,KAAKyuG,gBAAgBpE,QAAQ7D,aAC1D,EAAEtoF,KAAKle,MAKH4uG,EAA0B,CAC1B/F,iBAAkB7oG,KAAK6oG,iBACvBM,YAAaA,EACbJ,cAAeA,EACfE,mBAAoBA,EACpBM,SAAUrjF,GAAEoxE,OACZ+R,YAAarpG,KAAKqpG,YAClB5F,kBAAmBzjG,KAAKyjG,mBAU5B,OAPItiG,EAAQ0tG,0BACR7uG,KAAKyuG,gBAAkB9F,GAAiBuD,YAAY/qG,EAAQ0tG,0BAA2BD,GAEvF5uG,KAAKyuG,gBAAkB,IAAI9F,GAAiBiG,GAGhD5uG,KAAKyuG,gBAAgBtD,eAAehqG,EAAQiqG,mBACrCprG,KAAKuuG,kBAAkBV,mBAAmB7tG,KAAKyuG,gBAAgB1C,YArCtE,CAFIsC,GAAS5oG,IAAI,0DAwCrB,EAEA6oG,GAAiB5rG,UAAU6nG,cAAgB,WAGvC,OADAvqG,KAAK0uG,yBAA0B,EACxB1uG,KAAK8uG,uBAAsB,GAAO,GAAM3wF,KAAK,WAChD,OAAOne,KAAKuuG,kBAAkBR,sBAClC,EAAE7vF,KAAKle,OAAOme,KAAK,WACfne,KAAK0uG,yBAA0B,CACnC,EAAExwF,KAAKle,MACX,EAEAsuG,GAAiB5rG,UAAUqsG,eAAiB,WACxC,OAAO/uG,KAAK8uG,uBAAsB,EACtC,EAEAR,GAAiB5rG,UAAUosG,sBAAwB,SAASpD,EAAWsD,GACnE,GAAIhvG,KAAKyuG,gBAAiB,CACtB,IAAIQ,EAAuBjvG,KAAKyuG,gBAAgBlE,cAAcmB,GAI9D,OAHIsD,IACAhvG,KAAKyuG,gBAAkB,MAEpBQ,CACX,CACA,OAAO7c,GAAgBxwF,SAC3B,EAEA0sG,GAAiB5rG,UAAUwsG,gBAAkB,SAAUC,GACnD,OAAInvG,KAAKyuG,iBAAmBzuG,KAAKyuG,gBAAgB9C,kBAC7C3rG,KAAKyuG,gBAAgBtD,gBAAe,GAC7B/Y,GAAgBxwF,QAAQ,OAG5B5B,KAAKuuG,kBAAkBT,qBACzB3vF,KAAK,SAAU0wF,GACZ,OAAIA,IAA8B7uG,KAAK0uG,wBAC5B1uG,KAAKmrG,eAAe,CAAC0D,0BAA2BA,IAChDM,EACAnvG,KAAKmrG,eAAe,CAACC,mBAAmB,KAE/CiD,GAAS5oG,IAAI,iCACN,KAEf,EAAEyY,KAAKle,MACf,EAGAsuG,GAAiB5rG,UAAUisG,eAAiB,WACxC3uG,KAAKuqG,gBACLvqG,KAAKmrG,eAAe,CAACC,mBAAmB,GAC5C,EAEAkD,GAAiB5rG,UAAU0sG,kBAAoB,WAC3C,OAAIpvG,KAAKyuG,kBAAoBzuG,KAAKyuG,gBAAgB9C,iBACvC3rG,KAAKyuG,gBAAgBlF,SAErB,IAEf,EAIAhpG,OAAOg1B,eAAe+4E,GAAiB5rG,UAAW,WAAY,CAC1D8B,IAAK,WACD,OAAOxE,KAAKovG,mBAChB,IAGJj3E,EAAmB,cAAIm2E,GAMvB,IAAIe,GAAY,SACZC,GAAW,QACXC,GAAgB,aAEhBC,GAAU,OACVC,GAAwB,oBACxBC,GAAc,WAEdC,GAAe,YACfC,GAAY,SAEZC,GAAY,SAEZC,GAAsB,mBAEtBC,GAAoB,CACpB,UAAW,UACX,UAAW,UACX,QAAS,QACT,UAAW,UACX,IAAK,KAELC,GAAiB,CAAC,cAClBC,GAAkB,CAAC,eACnBC,GAAyBD,GAAgB1nG,OAAO,CAAC,iBACjD4nG,GAAgB,CAChB,aAAc,kBAAmB,mBACjC,OAAQ,OAAQ,OAAQ,QAAS,QAGjCC,GAAyB,CACzB,QAAU,EACV,UAAY,EACZ,UAAY,EACZ,MAAQ,EACR,MAAQ,EACR,SAAW,EACX,MAAQ,EACR,SAAW,EACX,UAAY,EACZ,kBAAoB,EACpB,eAAiB,EACjB,YAAc,EACd,QAAU,EACV,OAAS,EACT,YAAc,EACd,WAAa,EACb,QAAU,EACV,YAAc,EACd,QAAU,EACV,KAAO,EACP,SAAW,EACX,SAAW,EACX,MAAQ,EACR,UAAY,EACZ,UAAY,GAGZC,GAA8B,CAE9B,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,MAAQ,EACR,QAAU,EACV,OAAS,EACT,OAAS,EAET,IAAM,EACN,IAAM,EACN,KAAO,EAEP,UAAY,EACZ,SAAW,EACX,QAAU,EACV,UAAY,EACZ,OAAS,GAITC,GAAsB,CACtB,SAAW,EACX,KAAO,EACP,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,GAAK,EACL,SAAW,EACX,MAAQ,GAGRC,GAA2B,CAC3B,UAAW,cAAe,YAAa,gBAAiB,cAAe,aAAc,gBAKrFC,GAAWxc,GAAoB,eAGnC,SAASyc,GAAWnqE,GAGhB,IAFA,IAAIoqE,EAAU,CAAC,EACXxqE,EAAYyqE,GAAarqE,GAAIjuC,MAAM,KAC9BE,EAAI,EAAGA,EAAI2tC,EAAUxtC,OAAQH,IAAK,CACvC,IAAIq4G,EAAM1qE,EAAU3tC,GAChBq4G,IACAF,EAAQE,IAAO,EAEvB,CACA,OAAOF,CACX,CAOA,SAASC,GAAarqE,GAClB,cAAcA,EAAG9qC,WACb,IAAK,SACD,OAAO8qC,EAAG9qC,UACd,IAAK,SACD,OAAO8qC,EAAG9qC,UAAUq1G,SAAWvqE,EAAG1P,aAAa,UAAY,GAC/D,QACI,MAAO,GAEnB,CAEA,SAASk6E,GAA0BxqE,GAC/B,GAAIA,EAAGyqE,uBACH,OAAOzqE,EAAGyqE,uBAEV,GACIzqE,EAAKA,EAAGolC,sBACHplC,IAAO0qE,GAAc1qE,IAC9B,OAAOA,CAEf,CAEA,SAAS2qE,GAAyB3qE,EAAIu6D,EAAIqQ,EAAeC,EAAYC,EAAsBC,GACvF,IAAIl3E,EAAQ,CACR,SAAYw2E,GAAarqE,GAAIjuC,MAAM,KACnC,UAAaiuC,EAAGxO,QAAQ1qB,eAExBkkG,EAAOhrE,EAAG9E,GACV8vE,IACAn3E,EAAW,IAAIm3E,GAGfC,GAA0BjrE,EAAIu6D,EAAIuQ,EAAsBC,IACxDnrF,GAAEghC,KAAKipD,GAAc5nG,OAAO4oG,GAAa,SAASpoE,GAC9C,GAAIzC,EAAGvD,aAAagG,KAAUmoE,EAAcnoE,GAAO,CAC/C,IAAIyoE,EAAUlrE,EAAG1P,aAAamS,GAC1B0oE,GAAiBD,KACjBr3E,EAAM,SAAW4O,GAAQyoE,EAEjC,CACJ,GAMJ,IAHA,IAAIE,EAAW,EACXC,EAAY,EACZC,EAActrE,EACXsrE,EAAcd,GAA0Bc,IAC3CF,IACIE,EAAY95E,UAAYwO,EAAGxO,SAC3B65E,IAMR,OAHAx3E,EAAkB,WAAIu3E,EACtBv3E,EAAoB,aAAIw3E,EAEjBx3E,CACX,CA2IA,SAAS03E,GAAYvrE,EAAIu6D,EAAIuQ,EAAsBC,GAC/C,IAAIS,EAAS,GAgBb,OAdIP,GAA0BjrE,EAAIu6D,EAAIuQ,EAAsBC,IAAmB/qE,EAAGtE,YAAcsE,EAAGtE,WAAWtpC,QAC1GwtB,GAAEghC,KAAK5gB,EAAGtE,WAAY,SAASqW,GACvB05D,GAAW15D,IAAUA,EAAM1O,cAC3BmoE,GAAU5rF,GAAElnB,KAAKq5C,EAAM1O,aAElBtxC,MAAM,SAAS2T,OAAOylG,IAAkBtpG,KAAK,IAE7C7M,QAAQ,UAAW,KAAKA,QAAQ,QAAS,KAEzCiR,UAAU,EAAG,KAE1B,GAGG2Z,GAAElnB,KAAK8yG,EAClB,CAwBA,SAASE,GAAiB1rE,EAAIu6D,EAAIuQ,EAAsBC,GACpD,GAAID,EACA,IACI,IAAKA,EAAqB9qE,EAAIu6D,GAC1B,OAAO,CAEf,CAAE,MAAO7qF,GAEL,OADAw6F,GAAS1c,SAAS,uDAAwD99E,IACnE,CACX,CAGJ,IAAKq7F,EAAe34G,OAEhB,OAAO,EAGX,IAAK,IAAIH,EAAI,EAAGA,EAAI84G,EAAe34G,OAAQH,IAAK,CAC5C,IAAI05G,EAAMZ,EAAe94G,GACzB,IACI,GAAI+tC,EAAY,QAAE2rE,GACd,OAAO,CAEf,CAAE,MAAOj8F,GACLw6F,GAAS1c,SAAS,kCAAoCme,EAAKj8F,EAC/D,CACJ,CACA,OAAO,CACX,CAEA,SAASk8F,GAAiB5rE,EAAIu6D,EAAIsR,EAAsBC,GACpD,IAAI75G,EAEJ,GAAI45G,EACA,IACI,GAAIA,EAAqB7rE,EAAIu6D,GACzB,OAAO,CAEf,CAAE,MAAO7qF,GAEL,OADAw6F,GAAS1c,SAAS,uDAAwD99E,IACnE,CACX,CAGJ,GAAIo8F,GAAkBA,EAAe15G,OAEjC,IAAKH,EAAI,EAAGA,EAAI65G,EAAe15G,OAAQH,IAAK,CACxC,IAAI05G,EAAMG,EAAe75G,GACzB,IACI,GAAI+tC,EAAY,QAAE2rE,GACd,OAAO,CAEf,CAAE,MAAOj8F,GACLw6F,GAAS1c,SAAS,kCAAoCme,EAAKj8F,EAC/D,CACJ,CAIJ,IAAI06F,EAAUD,GAAWnqE,GACzB,IAAK/tC,EAAI,EAAGA,EAAI03G,GAAgBv3G,OAAQH,IACpC,GAAIm4G,EAAQT,GAAgB13G,IACxB,OAAO,EAIf,OAAO,CACX,CAOA,SAASy4G,GAAcj0D,GACnB,OAAOA,GAA0B,IAAlBA,EAAKvd,QACxB,CAYA,SAAS6yE,GAAM/rE,EAAIqmD,GACf,OAAOrmD,GAAMA,EAAGxO,SAAWwO,EAAGxO,QAAQ1qB,gBAAkBu/E,EAAIv/E,aAChE,CAOA,SAAS2kG,GAAWh1D,GAChB,OAAOA,GAA0B,IAAlBA,EAAKvd,QACxB,CAmDA,SAAS+xE,GAA0BjrE,EAAIu6D,EAAIuQ,EAAsBC,GAC7D,IAAI94G,EAEJ,IAAKy5G,GAAiB1rE,EAAIu6D,EAAIuQ,EAAsBC,GAChD,OAAO,EAGX,IAAK,IAAIiB,EAAQhsE,EAAIgsE,EAAM1sC,aAAeysC,GAAMC,EAAO,QAASA,EAAQA,EAAM1sC,WAAY,CACtF,IAAI8qC,EAAUD,GAAW6B,GACzB,IAAK/5G,EAAI,EAAGA,EAAI23G,GAAuBx3G,OAAQH,IAC3C,GAAIm4G,EAAQR,GAAuB33G,IAC/B,OAAO,CAGnB,CAEA,IAAIg6G,EAAY9B,GAAWnqE,GAC3B,IAAK/tC,EAAI,EAAGA,EAAIy3G,GAAet3G,OAAQH,IACnC,GAAIg6G,EAAUvC,GAAez3G,IACzB,OAAO,EAMf,GACI85G,GAAM/rE,EAAI,UACV+rE,GAAM/rE,EAAI,WACV+rE,GAAM/rE,EAAI,aAC6B,SAAvCA,EAAG1P,aAAa,mBAEhB,OAAO,EAIX,IAAIl7B,EAAO4qC,EAAG5qC,MAAQ,GACtB,GAAoB,iBAATA,EACP,OAAOA,EAAK0R,eACR,IAAK,SAEL,IAAK,WACD,OAAO,EAKnB,IAAI/O,EAAOioC,EAAGjoC,MAAQioC,EAAG9E,IAAM,GAC/B,MAAoB,iBAATnjC,IACkB,uHACFgO,KAAKhO,EAAK/C,QAAQ,gBAAiB,IAMlE,CASA,SAASm2G,GAAiBppG,GACtB,GAAc,OAAVA,GAAkB6d,GAAE0tE,YAAYvrF,GAChC,OAAO,EAGX,GAAqB,iBAAVA,EAAoB,CAM3B,GALAA,EAAQ6d,GAAElnB,KAAKqJ,GAID,wKACFgE,MAAMhE,GAAS,IAAI/M,QAAQ,QAAS,KAC5C,OAAO,EAKX,GADe,0BACF+Q,KAAKhE,GACd,OAAO,CAEf,CAEA,OAAO,CACX,CAYA,SAASmqG,GAA6BC,GAClC,IAAIC,EAAoB,gBAAiBv6E,EACrCw6E,EAAmB1e,GAASwe,GAC5BG,EAAgBjD,GACpB,IAAK+C,EAAmB,CAGpB,IAAIG,EAAc,KAGlBF,EAAmB1e,GAAS,WACxBjlE,aAAa6jF,GACbA,EAAc50F,WAAWw0F,EAJT,IAKpB,GAEAG,EAAgBhD,EACpB,CAEA,MAAO,CACH3oG,SAAU0rG,EACVG,UAAWF,EAEnB,CAsBA,SAASG,GAA8BvwE,GACnC,IAAI1K,EAAU0K,EAAQ1K,QAAQ1qB,cAG9B,SAAgB,WAAZ0qB,GACY,UAAZA,GACY,WAAZA,GACY,aAAZA,GACY,YAAZA,GACY,WAAZA,GAIA0K,EAAQwwE,mBAIRxwE,EAAQywE,SAAWzwE,EAAQ0wE,aAAe1wE,EAAQ2wE,WAAa3wE,EAAQ4wE,cAAgB5wE,EAAQ6wE,YArCvG,SAAgC7wE,GAC5B,IAAK,IAAIjqC,EAAI,EAAGA,EAAIg4G,GAAyB73G,OAAQH,IACjD,GAAIiqC,EAAQO,aAAawtE,GAAyBh4G,IAC9C,OAAO,EAGf,OAAO,CACX,CAkCQ+6G,CAAuB9wE,IAhC/B,SAAgCA,GAC5B,IAAIpW,EAAOoW,EAAQ5L,aAAa,QAChC,IAAKxK,EAAM,OAAO,EAIlB,IAAImnF,EAAcnnF,EAAKptB,OAAO3G,MAAM,OAAO,GAAG+U,cAE9C,OAAOgjG,GAAuBmD,EAClC,CA2BQC,CAAuBhxE,IAIX,MAAZ1K,GAAmB0K,EAAQO,aAAa,SAIxCP,EAAQO,aAAa,YAK7B,CAGA,SAAS0wE,GAA2BjxE,GAChC,IAAKA,IAAYA,EAAQ1K,QACrB,OAAO,EAGX,IAAIA,EAAU0K,EAAQ1K,QAAQ1qB,cAG9B,GAAIijG,GAA4Bv4E,GAC5B,OAAO,EAKX,GAAIi7E,GAA8BvwE,GAC9B,OAAO,EAOX,IAHA,IAAIyL,EAASzL,EAAQksD,cACjBt2C,EAAQ,EAELnK,GAAUmK,EAvmBL,GAumBwB,CAChC,GAAI26D,GAA8B9kE,GAC9B,OAAO,EAGX,GAAIA,EAAOylE,aAAezlE,EAAOylE,gBAAkBxgB,GAAY,CAC3D,IAAIr6C,EAAO5K,EAAOylE,cAClB,GAAI76D,EAAK86D,MAAQZ,GAA8Bl6D,EAAK86D,MAChD,OAAO,CAEf,CAEA1lE,EAASA,EAAOygD,cAChBt2C,GACJ,CAGA,QAAIk4D,GAAoBx4E,EAO5B,CAOA,SAAS87E,GAA0Bl2G,GAC/B,MAAI,iBAAkBA,EACXA,EAAoB,eAGxB,EACX,CAOA,SAASm2G,GAA2Bn2G,GAChC,IAAI4E,EAAOsxG,GAA0Bl2G,GAErC,OAAI4E,GAAQA,EAAK5J,OAAS,EACf4J,EAAK,GAGT5E,EAAc,QAAKA,EAAkB,UAChD,CAOA,SAASo2G,KACL9zG,KAAK+zG,OAAS,EAClB,CA0CA,SAASC,GAAkBC,EAAgBC,GACvCl0G,KAAKi0G,eAAiBA,GAAkB,WAAY,EACpDj0G,KAAKk0G,eAAiBA,EAEtBl0G,KAAKm0G,oBAAsB,KAC3Bn0G,KAAKo0G,gBAAkB,EAC3B,CAxCAN,GAAiBpxG,UAAU2xG,YAAc,SAAS32G,EAAOyD,GAErD,IAAImzG,GADJnzG,EAAUA,GAAW,CAAC,GACkB,cAjBQ,GAkB5CozG,EAAYpzG,EAAoB,YAjBU,IAkB1CqzG,EAAarzG,EAAqB,aAjBS,EAoB/C,GAF8BA,EAAmC,0BAEpC,CACzB,IAAIkC,EAASwwG,GAA2Bn2G,GACxC,IAAK2F,GAAUowG,GAA2BpwG,GACtC,OAAO,CAEf,CAEA,IAAIs8E,EAAYluD,KAAKC,MACjB+nC,EAAI/7D,EAAa,MAAGy+B,EAAIz+B,EAAa,MAErC+2G,EAAYz0G,KAAK+zG,OAAO/zG,KAAK+zG,OAAOr7G,OAAS,GACjD,GACI+7G,GACA90B,EAAY80B,EAAU90B,UAAY40B,GAClC/7G,KAAKk8G,KAAKl8G,KAAKm8G,IAAIl7C,EAAIg7C,EAAUh7C,EAAG,GAAKjhE,KAAKm8G,IAAIx4E,EAAIs4E,EAAUt4E,EAAG,IAAMm4E,GAGzE,GADAt0G,KAAK+zG,OAAOjvG,KAAK,CAAE20D,EAAGA,EAAGt9B,EAAGA,EAAGwjD,UAAWA,IACtC3/E,KAAK+zG,OAAOr7G,QAAU87G,EAEtB,OADAx0G,KAAK+zG,OAAS,IACP,OAGX/zG,KAAK+zG,OAAS,CAAC,CAAEt6C,EAAGA,EAAGt9B,EAAGA,EAAGwjD,UAAWA,IAE5C,OAAO,CACX,EAUAq0B,GAAkBtxG,UAAU0uE,eAAiB,SAAS1zE,GAClD,GAAKsC,KAAKm0G,oBAIV,OAAON,GAA2Bn2G,EACtC,EAEAs2G,GAAkBtxG,UAAUkyG,iBAAmB,SAASl3G,GACpD,GAAKsC,KAAKm0G,oBAOV,IAHA,IAAI7xG,EAAOsxG,GAA0Bl2G,GAG5BnF,EAAI,EAAGA,EAAI+J,EAAK5J,OAAQH,IAAK,CAClC,IAAIiqC,EAAUlgC,EAAK/J,GAEfiqC,GAAWA,EAAQ+mC,YACnBvpE,KAAK60G,kBAAkBryE,EAAQ+mC,WAEvC,CACJ,EAGAyqC,GAAkBtxG,UAAUmyG,kBAAoB,SAAStrC,GACrD,GAAKvpE,KAAKm0G,sBAAuBn0G,KAAKm0G,oBAAoBxpF,IAAI4+C,GAA9D,CAIA,IAAIxzC,EAAO/1B,KAEX,IACIA,KAAKm0G,oBAAoBh5F,IAAIouD,GAE7B,IAAIhiE,EAAW,IAAI1L,OAAO6hC,iBAAiB,WACvC3H,EAAKk+E,gBACT,GAEA1sG,EAASmqE,QAAQnI,EAAYvpE,KAAKk0G,gBAClCl0G,KAAKo0G,gBAAgBtvG,KAAKyC,EAC9B,CAAE,MAAOvE,GACLwtG,GAAS1c,SAAS,oCAAqC9wF,EAC3D,CAfA,CAgBJ,EAGAgxG,GAAkBtxG,UAAUqzC,MAAQ,WAC5B/1C,KAAKm0G,sBArZiB,oBAAZjzB,QA8ZdlhF,KAAKm0G,oBAAsB,IAAIjzB,QAJ3BsvB,GAAS1c,SAAS,6DAK1B,EAEAkgB,GAAkBtxG,UAAUgkG,KAAO,WAC/B,GAAK1mG,KAAKm0G,oBAAV,CAIA,IAAK,IAAI57G,EAAI,EAAGA,EAAIyH,KAAKo0G,gBAAgB17G,OAAQH,IAC7C,IACIyH,KAAKo0G,gBAAgB77G,GAAGilF,YAC5B,CAAE,MAAOx6E,GACLwtG,GAAS1c,SAAS,gDAAiD9wF,EACvE,CAEJhD,KAAKo0G,gBAAkB,GACvBp0G,KAAKm0G,oBAAsB,IAV3B,CAWJ,EAEc,IACIW,GAAqB,CAACzF,GAp4BzB,QAo4B8CQ,GA73B7C,SAEA,UA43BEkF,GAAgB,CAACpF,IACjBqF,GAAoB,CAACzF,IACrB0F,GAA2B,CACzCrjC,eAAe,EACfE,WAAW,EACXC,SAAS,EACTlpC,YAAY,EACZqsE,gBAAiB,CAAC,QAAS,QAAS,SAAU,UAAW,WAAY,QAAS,UAAW,eAI7F,SAASC,GAAiBC,GACtBp1G,KAAKq1G,eAAiB,GACtBr1G,KAAKk0E,iBAAmB,KACxBl0E,KAAKs1G,kBAAoB,KAEzBt1G,KAAKu1G,YAAa,EAClBv1G,KAAKw1G,yBAA2B,EAChCx1G,KAAKy1G,cAAgB,GACrBz1G,KAAKo1G,oBAAsBA,EAC3Bp1G,KAAK01G,kBAAmB,EACxB11G,KAAK21G,kBAAoB,IAC7B,CAGAR,GAAiBzyG,UAAUkzG,SAAW,SAASl4G,GAC3C,IAAI8kC,EAAUxiC,KAAKs1G,mBAAqBt1G,KAAKs1G,kBAAkBlkC,eAAe1zE,GAM9E,OAJK8kC,IACDA,EAAU9kC,EAAc,QAAKA,EAAkB,eAG9C8kC,GAAWixE,GAA2BjxE,KAIvCxiC,KAAKs1G,mBACLt1G,KAAKs1G,kBAAkBV,iBAAiBl3G,GAE5CsC,KAAKy1G,cAAc3wG,KAAK,CACpB09B,QAASA,EACT9kC,MAAOA,EACPiiF,UAAWluD,KAAKC,QAEb,GACX,EAEAyjF,GAAiBzyG,UAAUmzG,WAAa,SAASn4G,EAAOozF,GACpD,IAAK9wF,KAAKu1G,WACN,OAAO,EAGX,IAAIO,EAAQ91G,KAAK41G,SAASl4G,GAI1B,OAHIo4G,GACA91G,KAAK+1G,kBAAkBjlB,GAEpBglB,CACX,EAEAX,GAAiBzyG,UAAUszG,cAAgB,SAASllB,GAChD,GAAkC,IAA9B9wF,KAAKy1G,cAAc/8G,OACnB,MAAO,GAGX,IAAI67G,EAAYzjB,EAAmB,WAC/Bp/D,EAAMD,KAAKC,MACXukF,EAAmBj2G,KAAKy1G,cAAcxyG,QAC1CjD,KAAKy1G,cAAgB,GAIrB,IAFA,IAAIS,EAAa,GAER39G,EAAI,EAAGA,EAAI09G,EAAiBv9G,OAAQH,IAAK,CAC9C,IAAI49G,EAAQF,EAAiB19G,GAEzBm5B,EAAMykF,EAAMx2B,WAAa40B,EAEpBv0G,KAAKo2G,gBAAgBD,EAAMx2B,YAC5Bu2B,EAAWpxG,KAAKqxG,GAIpBn2G,KAAKy1G,cAAc3wG,KAAKqxG,EAEhC,CAEA,OAAOD,CACX,EAEAf,GAAiBzyG,UAAU0zG,gBAAkB,SAASz2B,GAElD,OAAO3/E,KAAKw1G,0BAA6B71B,EAAY,GACzD,EAEAw1B,GAAiBzyG,UAAU2zG,kBAAoB,WAC3Cr2G,KAAKw1G,yBAA2B/jF,KAAKC,KACzC,EAEAyjF,GAAiBzyG,UAAUqzG,kBAAoB,SAASjlB,GAEhD9wF,KAAK01G,mBAGT11G,KAAK01G,kBAAmB,EACxB11G,KAAKs2G,mBAAmBxlB,GAC5B,EAEAqkB,GAAiBzyG,UAAU4zG,mBAAqB,SAASxlB,GACrD,GAAK9wF,KAAKu1G,YAAev1G,KAAKo1G,oBAA9B,CAKA,IAAIb,EAAYzjB,EAAmB,WAC/B/6D,EAAO/1B,KAEXA,KAAK21G,kBAAoB13F,WAAW,WAChC,GAAK8X,EAAK2/E,iBAAV,CAMA,IAFA,IAAIQ,EAAangF,EAAKigF,cAAcllB,GAE3Bv4F,EAAI,EAAGA,EAAI29G,EAAWx9G,OAAQH,IACnCw9B,EAAKq/E,oBAAoBc,EAAW39G,GAAGmF,OAGvCq4B,EAAK0/E,cAAc/8G,OAAS,EAC5Bq9B,EAAKugF,mBAAmBxlB,GAExB/6D,EAAK2/E,kBAAmB,CAX5B,CAaJ,EAAGnB,EArBH,MAFIv0G,KAAK01G,kBAAmB,CAwBhC,EAEAP,GAAiBzyG,UAAU6zG,cAAgB,WACvC,IAAIv2G,KAAKu1G,WAAT,CAIAv1G,KAAKu1G,YAAa,EAElB,IAAIx/E,EAAO/1B,KAEX80G,GAAmB10G,QAAQ,SAAS1C,GAChC,IAAI4M,EAAU,WACVyrB,EAAKsgF,mBACT,EACAr4G,SAAS4mB,iBAAiBlnB,EAAO4M,EAAS,CAAE48D,SAAS,EAAMC,SAAS,IACpEpxC,EAAKs/E,eAAevwG,KAAK,CAAEzB,OAAQrF,SAAUN,MAAOA,EAAO4M,QAASA,EAASnJ,QAAS,CAAE+lE,SAAS,EAAMC,SAAS,IACpH,GACA6tC,GAAkB50G,QAAQ,SAAS1C,GAC/B,IAAI4M,EAAU,WACVyrB,EAAKsgF,mBACT,EACAx6G,OAAO+oB,iBAAiBlnB,EAAO4M,GAC/ByrB,EAAKs/E,eAAevwG,KAAK,CAAEzB,OAAQxH,OAAQ6B,MAAOA,EAAO4M,QAASA,GACtE,GACAyqG,GAAc30G,QAAQ,SAAS1C,GAC3B,IAAI4M,EAAU,WACVyrB,EAAKsgF,mBACT,EACAx6G,OAAO+oB,iBAAiBlnB,EAAO4M,EAAS,CAAE68D,SAAS,IACnDpxC,EAAKs/E,eAAevwG,KAAK,CAAEzB,OAAQxH,OAAQ6B,MAAOA,EAAO4M,QAASA,EAASnJ,QAAS,CAAEgmE,SAAS,IACnG,GACA,IAAIqvC,EAAmB,WACnBzgF,EAAKsgF,mBACT,EAKA,GAJAr4G,SAAS4mB,iBAAiB,kBAAmB4xF,GAC7CzgF,EAAKs/E,eAAevwG,KAAK,CAAEzB,OAAQrF,SAAUN,MAAO,kBAAmB4M,QAASksG,IAG5E36G,OAAO6hC,iBACP,IACI19B,KAAKk0E,iBAAmB,IAAIr4E,OAAO6hC,iBAAiB,WAChD3H,EAAKsgF,mBACT,GAEAr2G,KAAKk0E,iBAAiBxC,QAAQ1zE,SAASsuB,MAAQtuB,SAASoqE,gBAAiB6sC,GAC7E,CAAE,MAAOjyG,GACLwtG,GAAS1c,SAAS,2CAA4C9wF,EAClE,CAIJ,GAAInH,OAAOm8B,eACP,IACIh4B,KAAKs1G,kBAAoB,IAAItB,GACzB,WACIj+E,EAAKsgF,mBACT,EACApB,IAEJj1G,KAAKs1G,kBAAkBv/D,OAC3B,CAAE,MAAO/yC,GACLwtG,GAAS1c,SAAS,6CAA8C9wF,GAChEhD,KAAKs1G,kBAAoB,IAC7B,CA3DJ,CA6DJ,EAEAH,GAAiBzyG,UAAU+zG,aAAe,WACtC,GAAKz2G,KAAKu1G,WAAV,CAIAv1G,KAAKu1G,YAAa,EAClBv1G,KAAKy1G,cAAgB,GACrBz1G,KAAKw1G,yBAA2B,EAChCx1G,KAAK01G,kBAAmB,EAEpB11G,KAAK21G,oBACL3mF,aAAahvB,KAAK21G,mBAClB31G,KAAK21G,kBAAoB,MAI7B,IAAK,IAAIp9G,EAAI,EAAGA,EAAIyH,KAAKq1G,eAAe38G,OAAQH,IAAK,CACjD,IAAI0O,EAAWjH,KAAKq1G,eAAe98G,GACnC,IACI0O,EAAS5D,OAAOwhB,oBAAoB5d,EAASvJ,MAAOuJ,EAASqD,QAASrD,EAAS9F,QACnF,CAAE,MAAO6B,GACLwtG,GAAS1c,SAAS,sCAAuC9wF,EAC7D,CACJ,CAGA,GAFAhD,KAAKq1G,eAAiB,GAElBr1G,KAAKk0E,iBAAkB,CACvB,IACIl0E,KAAKk0E,iBAAiBsJ,YAC1B,CAAE,MAAOx6E,GACLwtG,GAAS1c,SAAS,8CAA+C9wF,EACrE,CACAhD,KAAKk0E,iBAAmB,IAC5B,CAEA,GAAIl0E,KAAKs1G,kBAAmB,CACxB,IACIt1G,KAAKs1G,kBAAkB5O,MAC3B,CAAE,MAAO1jG,GACLwtG,GAAS1c,SAAS,2CAA4C9wF,EAClE,CACAhD,KAAKs1G,kBAAoB,IAC7B,CAvCA,CAwCJ,EAEA,IAAIoB,GAAyB,cAGzBC,GAA2B,WAK3BC,GAAyB,kBACzBC,GAA2B,oBAC3BC,GAAqB,cACrBC,GAAgC,yBAChCC,GAAyB,kBACzBC,GAA2B,oBAC3BC,GAA6B,sBAC7BC,GAA8B,uBAC9BC,GAA4B,qBAC5BC,GAA4B,mCAC5BC,GAAqB,QACrBC,GAA0B,aAC1BC,GAAqB,QACrBC,GAAwB,WACxBC,GAA0B,aAC1BC,GAAsB,SACtBC,GAA0B,aAC1BC,GAAsB,SAEtBC,GAAoB,CAAC,EACzBA,GAAkBlB,IAA0B,GAC5CkB,GAAkBjB,IAA4B,GAC9CiB,GAAkBhB,IAAsB,GACxCgB,GAAkBf,IAAiC,KACnDe,GAAkBd,IAA0B,GAC5Cc,GAAkBb,IAA4B,GAC9Ca,GAAkBZ,IAA8B,GAChDY,GAAkBX,KAA+B,EACjDW,GAAkBV,KAA6B,EAC/CU,GAAkBT,IAA6B,CAAC,GAAI,GAAI,GAAI,KAC5DS,GAAkBR,KAAsB,EACxCQ,GAAkBP,KAA2B,EAC7CO,GAAkBN,KAAsB,EACxCM,GAAkBL,IAAyBd,GAC3CmB,GAAkBJ,KAA2B,EAC7CI,GAAkBH,KAAuB,EACzCG,GAAkBF,KAA2B,EAC7CE,GAAkBD,KAAuB,EAEzC,IAAIE,GAAgB,CAChB,iBAAmB,GAGnBC,GAAc,YACdC,GAAmB,iBAEnBC,GAAmB,iBASnBC,GAAc,SAASC,GACvBp4G,KAAKo4G,GAAKA,EACVp4G,KAAKq4G,mBAAqB,EAC1Br4G,KAAKs4G,yBAA0B,EAC/Bt4G,KAAKu4G,qBAAuB,CAChC,EAEAJ,GAAYz1G,UAAUzB,KAAO,YAxvB7B,WACI,IAEI,QADaiyF,GAAW33F,cAAc,OACb,OAC7B,CAAE,MAAOya,GACL,OAAO,CACX,CACJ,CAkvBSwiG,GACDhI,GAAS1c,SAAS,uDAGtB9zF,KAAKy4G,oBACLz4G,KAAK04G,uBACL14G,KAAK24G,oBACL34G,KAAK44G,wBACL54G,KAAK64G,oBACL74G,KAAK84G,qBACL94G,KAAK+4G,qBACL/4G,KAAKg5G,wBACLh5G,KAAKi5G,wBACT,EAEAd,GAAYz1G,UAAUw2G,cAAgB,WAClC,IAAIC,EAAoBn5G,KAAKo4G,GAAG7Y,WAAWmX,IAC3C,OAAKyC,EAGMjzF,GAAE4oE,SAASqqB,GACXjzF,GAAEquE,OAAO,CAAC,EAAGujB,GAAmBqB,GAGhCrB,GALA,CAAC,CAOhB,EAEAK,GAAYz1G,UAAUynG,UAAY,SAASjoG,GACvC,OAAOlC,KAAKk5G,gBAAgBh3G,EAChC,EAEAi2G,GAAYz1G,UAAU02G,kBAAoB,WACtC,IAAI7gH,EACA6kG,EAAal3E,GAAEgN,KAAKkqE,aAEpBic,EAAkBr5G,KAAKmqG,UAAU0M,KAA6B,GAClE,GAAIwC,EAAgB3gH,OAAQ,CAExB,IAAI4gH,GAAU,EACd,IAAK/gH,EAAI,EAAGA,EAAI8gH,EAAgB3gH,OAAQH,IAAK,CACzC,IAAIghH,EAAaF,EAAgB9gH,GACjC,IACI,GAAI6kG,EAAW3wF,MAAM8sG,GAAa,CAC9BD,GAAU,EACV,KACJ,CACJ,CAAE,MAAOtjG,GAEL,OADAw6F,GAAS1c,SAAS,yCAA2CylB,EAAYvjG,IAClE,CACX,CACJ,CACA,IAAKsjG,EAED,OAAO,CAEf,CAEA,IAAIE,EAAkBx5G,KAAKmqG,UAAU8M,KAA6B,GAClE,IAAKuC,IAAoBA,EAAgB9gH,OACrC,OAAO,EAGX,IAAKH,EAAI,EAAGA,EAAIihH,EAAgB9gH,OAAQH,IACpC,IACI,GAAI6kG,EAAW3wF,MAAM+sG,EAAgBjhH,IACjC,OAAO,CAEf,CAAE,MAAOyd,GAEL,OADAw6F,GAAS1c,SAAS,yCAA2C0lB,EAAgBjhH,GAAIyd,IAC1E,CACX,CAEJ,OAAO,CACX,EAEAmiG,GAAYz1G,UAAU+2G,uBAAyB,WAE3C,OAAIz5G,KAAKo4G,GAAG7Y,WAAWmX,IACZ12G,KAAKmqG,UAAUsN,IAEfz3G,KAAKo4G,GAAG7Y,WAvJU,iBAyJjC,EAGA4Y,GAAYz1G,UAAUg3G,cAAgB,SAAS7Y,EAAI8Y,GAC/C,IAAI35G,KAAKo5G,oBAAT,CAIA,IAAIQ,EAAuB55G,KAAKo4G,GAAGyB,8BAC9BF,IAAgB3B,KAAgBh4G,KAAKmqG,UAAUmN,KAC/CqC,IAAgBzB,KAAqBl4G,KAAK85G,wBAAwBpC,KAClEiC,IAAgB1B,KAAqBj4G,KAAK85G,wBAAwBvC,KAGnEp9E,EAlnCR,SAA6B0mE,EAAI/P,GAC7B,IAAIsgB,EAAuBtgB,EAAOsgB,qBAC9BC,EAAiBvgB,EAAOugB,gBAAkB,GAC1C0I,EAAajpB,EAAOipB,YAAc,GAClC5H,EAAuBrhB,EAAOqhB,qBAC9BC,EAAiBthB,EAAOshB,gBAAkB,GAC1C4H,EAAqBlpB,EAAOkpB,qBAAsB,EAClDC,EAAoBnpB,EAAOmpB,mBAAqB,GAChDC,EAAqBppB,EAAOopB,qBAAsB,EAGlDhJ,EAAgB,CAAC,EACrBhrF,GAAEghC,KAAK6yD,EAAY,SAAShxE,GACxBmoE,EAAcnoE,IAAQ,CAC1B,GAEA,IAAI5O,EAAQ,KAER92B,OAA8B,IAAdw9F,EAAGx9F,OAAyBw9F,EAAGsZ,WAAatZ,EAAGx9F,OAKnE,GAJI0uG,GAAW1uG,KACXA,EAASA,EAAOuiE,YAwRxB,SAA6Bt/B,EAAIu6D,GAC7B,IAAKv6D,GAAM+rE,GAAM/rE,EAAI,UAAY0qE,GAAc1qE,GAC3C,OAAO,EAGX,OADUA,EAAGxO,QAAQ1qB,eAEjB,IAAK,OACD,OAAOyzF,EAAGnlG,OAASm0G,GACvB,IAAK,QACD,OAA+D,IAA3D,CAAC,SAAU,UAAU1tG,QAAQmkC,EAAG1P,aAAa,SACtCiqE,EAAGnlG,OAAS2zG,GAEZxO,EAAGnlG,OAAS4zG,GAE3B,IAAK,SACL,IAAK,WACD,OAAOzO,EAAGnlG,OAAS2zG,GACvB,QACI,OAAOxO,EAAGnlG,OAAS4zG,GAE/B,CAxSQ8K,CAAoB/2G,EAAQw9F,IAC5BmR,GAAiB3uG,EAAQw9F,EAAIuQ,EAAsBC,KAClDa,GAAiB7uG,EAAQw9F,EAAIsR,EAAsBC,GACtD,CAGE,IAFA,IAAIiI,EAAoB,CAACh3G,GACrBivG,EAAQjvG,EACLivG,EAAM1sC,aAAeysC,GAAMC,EAAO,SACrC+H,EAAkBv1G,KAAKwtG,EAAM1sC,YAC7B0sC,EAAQA,EAAM1sC,WAGlB,IACI7pE,EADAu+G,EAAe,GACTC,GAAkB,EAkB5B,GAjBAr0F,GAAEghC,KAAKmzD,EAAmB,SAAS/zE,GAC/B,IAAIk0E,EAAqBjJ,GAA0BjrE,EAAIu6D,EAAIuQ,EAAsBC,GAI5EH,EAAoB,MAAkC,MAA7B5qE,EAAGxO,QAAQ1qB,gBACrCrR,EAAOuqC,EAAG1P,aAAa,QACvB76B,EAAOy+G,GAAsB/I,GAAiB11G,IAASA,GAGvDm2G,GAAiB5rE,EAAIu6D,EAAIsR,EAAsBC,KAC/CmI,GAAkB,GAGtBD,EAAax1G,KAAKmsG,GAAyB3qE,EAAIu6D,EAAIqQ,EAAe+I,EAAmB7I,EAAsBC,GAC/G,EAAGrxG,OAEEu6G,EAAiB,CAClB,IAAIE,EAAavnB,GAA4B,gBAwC7C,GAvCA/4D,EAAQ,CACJ,YAAe0mE,EAAGnlG,KAClB,MAASy8B,EAAIr8B,SAAS63G,KACtB,UAAax7E,EAAIr8B,SAASqnC,SAC1B,UAAcm3E,EACd,eAAkBv+G,EAClB,gBAAmBvD,KAAKC,IAAIgiH,EAAyB,aAAGtiF,EAAiB,aAAK,GAC9E,eAAkB3/B,KAAKC,IAAIgiH,EAAwB,YAAGtiF,EAAgB,YAAK,GAC3E,YAAe+6D,GAAiB,KAAgB,cAAK,EACrD,WAAcA,GAAiB,KAAe,aAAK,GAEvDhtE,GAAEghC,KAAK+yD,EAAmB,SAASlxE,GAC/B,IAAKmoE,EAAcnoE,IAAS1lC,EAAO0/B,aAAagG,GAAO,CACnD,IAAIyoE,EAAUnuG,EAAOuzB,aAAamS,GAC9B0oE,GAAiBD,KACjBr3E,EAAM,aAAe4O,GAAQyoE,EAErC,CACJ,GAEIwI,IACAU,EAAc7I,GAAYxuG,EAAQw9F,EAAIuQ,EAAsBC,KACzCqJ,EAAYhiH,SAC3ByhC,EAAgB,SAAIugF,GAIxB7Z,EAAGnlG,OAAS4zG,KACZppF,GAAEghC,KAAK6oD,GAAmB,SAASvsG,GAC3BA,KAAQq9F,IACR1mE,EAAM,IAAM32B,GAAQq9F,EAAGr9F,GAE/B,GACI02G,IACA//E,EAA6B,uBAAI,GAErC92B,EAiEhB,SAA8Bw9F,GAG1B,IAFA,IAAIx9F,EAASw9F,EAAGx9F,OACZguE,EAAewvB,EAAiB,eAC3BtoG,EAAI,EAAGA,EAAI84E,EAAa34E,OAAQH,IAAK,CAC1C,IAAIwkD,EAAOs0B,EAAa94E,GACxB,GACI85G,GAAMt1D,EAAM,MACZs1D,GAAMt1D,EAAM,WACZs1D,GAAMt1D,EAAM,UACZs1D,GAAMt1D,EAAM,WACXA,EAAKnmB,cAA8C,WAA9BmmB,EAAKnmB,aAAa,QAC1C,CACEvzB,EAAS05C,EACT,KACJ,CACA,GAAIA,IAAS15C,EACT,KAER,CACA,OAAOA,CACX,CArFyBs3G,CAAqB9Z,IAG9BmZ,EAAoB,CACpB,IAAIU,EAAc7I,GAAYxuG,EAAQw9F,EAAIuQ,EAAsBC,GAC5DqJ,GAAeA,EAAYhiH,SAC3ByhC,EAAgB,SAAIugF,EAE5B,CAEA,GAAIr3G,EAAQ,CAER,IACK2uG,GAAiB3uG,EAAQw9F,EAAIuQ,EAAsBC,IACpDa,GAAiB7uG,EAAQw9F,EAAIsR,EAAsBC,GAEnD,OAAO,KAGX,IAAIwI,EAAc3J,GAAyB5tG,EAAQw9F,EAAIqQ,EAAe+I,EAAmB7I,EAAsBC,GAC/Gl3E,EAAe,QAAIygF,EAEnBzgF,EAAmB,YAAIygF,EAAsB,SAC7C10F,GAAEquE,OAAOp6D,EAAOjU,GAAEyvE,uBAAuB,CACrC,OAAUilB,EAAiB,IAC3B,aAAgBA,EAAuB,YAE/C,CACJ,CACJ,CAEA,OAAOzgF,CACX,CAs/BgB0gF,CAAoBha,EAAI,CAChCuQ,qBAAsBpxG,KAAKmqG,UAlKC,0BAmK5BkH,eAAgBrxG,KAAKmqG,UAAUyM,IAC/BmD,WAAY/5G,KAAKmqG,UAAU2M,IAC3B3E,qBAAsBnyG,KAAKmqG,UAAU4M,IACrC3E,eAAgBpyG,KAAKmqG,UAAU6M,IAC/BiD,kBAAmBj6G,KAAKmqG,UAAU+M,IAClC8C,mBAAoBh6G,KAAKmqG,UAAUgN,IACnC+C,mBAAoBN,IAEpBz/E,IACAjU,GAAEquE,OAAOp6D,EAAO49E,IAChB/3G,KAAKo4G,GAAG9X,MAAMqZ,EAAax/E,GApB/B,CAsBJ,EAEAg+E,GAAYz1G,UAAU+1G,kBAAoB,WAItC,GAHAtgF,EAAItT,oBAAoB6qF,GAAa1vG,KAAK86G,kBAC1C3iF,EAAItT,oBAAoB0qF,GAAevvG,KAAK+6G,oBAEvC/6G,KAAKy5G,0BAA6Bz5G,KAAKmqG,UAAUyN,KAA6B53G,KAAKo4G,GAAG7Y,WAAW,uBAAtG,CAKAv/F,KAAK86G,iBAAmB,WACpB3iF,EAAIl6B,cAAc,IAAIsxF,MAAMkgB,IAChC,EACAzvG,KAAK+6G,mBAAqB,WACtB5iF,EAAIl6B,cAAc,IAAIsxF,MAAMkgB,IAChC,EAEAt3E,EAAIvT,iBAAiB8qF,GAAa1vG,KAAK86G,kBACvC3iF,EAAIvT,iBAAiB2qF,GAAevvG,KAAK+6G,oBACzC,IAAIC,EAAkB7iF,EAAI9P,QAAQC,UACH,mBAApB0yF,IACP7iF,EAAI9P,QAAQC,UAAY,SAASje,EAAO4wG,EAAQ/yF,GAC5C8yF,EAAgBp4G,KAAKu1B,EAAI9P,QAAShe,EAAO4wG,EAAQ/yF,GACjDiQ,EAAIl6B,cAAc,IAAIsxF,MAAMkgB,IAChC,GAEJ,IAAIyL,EAAqB/iF,EAAI9P,QAAQ0K,aACH,mBAAvBmoF,IACP/iF,EAAI9P,QAAQ0K,aAAe,SAAS1oB,EAAO4wG,EAAQ/yF,GAC/CgzF,EAAmBt4G,KAAKu1B,EAAI9P,QAAShe,EAAO4wG,EAAQ/yF,GACpDiQ,EAAIl6B,cAAc,IAAIsxF,MAAMkgB,IAChC,EAvBJ,CAyBJ,EAEA0I,GAAYz1G,UAAUo3G,wBAA0B,SAASqB,GACrD,IAAIrqB,EAAS9wF,KAAKmqG,UAAUgR,GAE5B,OAAKrqB,GAIU,IAAXA,EACO,CAAC,EAGU,iBAAXA,EACAA,EAGJ,CAAC,EAXG,IAYf,EAEAqnB,GAAYz1G,UAAU04G,gBAAkB,SAASva,EAAIzD,EAAYie,GAC7D,IAAIr7G,KAAKs4G,0BAKJt4G,KAAKmqG,UAAUyN,KAA6B53G,KAAKo4G,GAAGyB,6BAAzD,CAIA75G,KAAKs4G,yBAA0B,EAC/B,IAAIgD,EAAiB9iH,KAAKC,IAAIy6F,GAAW9qB,gBAAgBK,aAActwC,EAAIqwC,aAAe,GACtF+yC,EAAmB/iH,KAAKgjH,MAAMhjH,KAAKC,IAAIuH,KAAKq4G,mBAAqBiD,EAAgB,IAAMD,EAAsBC,GAAkB,KAC/HG,EAAqBjjH,KAAKgjH,MAAOF,EAAiBD,EAAuB,KACzEA,GAAuBC,IAEvBC,EAAmB,IACnBE,EAAqB,KAGzB,IAAIthF,EAAQjU,GAAEquE,OAAO,CACjB,uBAA0Bv0F,KAAKq4G,mBAC/B,uBAA0BkD,EAC1B,sBAAyBE,EACzB,eAAmBJ,EACnB,YAAexa,EAAGnlG,KAClB,aAAgB0hG,GAAcl3E,GAAEgN,KAAKkqE,aACrC,gBAAmBke,EACnB,eAAmB9iH,KAAKC,IAAIy6F,GAAW9qB,gBAAgBO,YAAaxwC,EAAIxT,YAAc,GACtF,sBAAyB3kB,KAAKo4G,GAAGyB,6BAClC9B,IAGH/3G,KAAKo4G,GAAG9X,MApNW,iBAoNanmE,EAAO,CAACiuE,UAAW,cAzBnD,CA0BJ,EAEA+P,GAAYz1G,UAAUg5G,yBAA2B,WAI7C,GAHAvjF,EAAItT,oBAAoB+qF,GAAW5vG,KAAK27G,qBACxCxjF,EAAItT,oBAAoB8qF,GAAc3vG,KAAK27G,qBAEtC37G,KAAKo4G,GAAG7Y,WAAW,uBAAxB,CAIAiR,GAAS/qG,IAAI,sCAEbzF,KAAKq4G,mBAAqB7/G,KAAKC,IAAIy6F,GAAW9qB,gBAAgBK,aAActwC,EAAIqwC,aAAe,GAE/F,IAWIozC,EAAoBpJ,GAXA,WACpB,IAAIxyG,KAAKo5G,oBAAT,CAGA,IAAIyC,EAAmBrjH,KAAKC,IAAIy6F,GAAW9qB,gBAAgBK,aAActwC,EAAIqwC,aAAe,GAAKrwC,EAAI2jF,QACjGD,EAAmB77G,KAAKq4G,qBACxBr4G,KAAKq4G,mBAAqBwD,GAE9B77G,KAAKu4G,qBAAuBrlB,GAAW5mE,KAAKyvF,YAL5C,CAMJ,EAAE79F,KAAKle,OAGPA,KAAK27G,oBAAsBC,EAAkB30G,SAC7CkxB,EAAIvT,iBAAiBg3F,EAAkB9I,UAAW9yG,KAAK27G,oBAnBvD,CAoBJ,EAEAxD,GAAYz1G,UAAUi2G,kBAAoB,WACtCxgF,EAAItT,oBAAoByqF,GAAUtvG,KAAKg8G,gBAElCh8G,KAAKmqG,UAAUmN,KAAwBt3G,KAAKo4G,GAAG7Y,WAAW,0BAG/DiR,GAAS/qG,IAAI,+BAEbzF,KAAKg8G,cAAgB,SAASnb,IACrB7gG,KAAKmqG,UAAUmN,KAAwBt3G,KAAKo4G,GAAGyB,8BAGpD75G,KAAK05G,cAAc7Y,EAAImX,GAC3B,EAAE95F,KAAKle,MACPm4B,EAAIvT,iBAAiB0qF,GAAUtvG,KAAKg8G,eACxC,EAEA7D,GAAYz1G,UAAUk2G,sBAAwB,WACpB54G,KAAK85G,wBAAwBvC,KAE1Bv3G,KAAKo4G,GAAG7Y,WAAW,wBAK5CiR,GAAS/qG,IAAI,oCACRzF,KAAKi8G,oBACNj8G,KAAKi8G,kBAAoB,IAAI9G,GAAiB,SAAS+G,GACnDl8G,KAAK05G,cAAcwC,EAAgBjE,GACvC,EAAE/5F,KAAKle,OACPA,KAAKi8G,kBAAkB1F,iBAGtBv2G,KAAKm8G,oBACNn8G,KAAKm8G,kBAAoB,SAAStb,GAC9B,IAAIub,EAAyBp8G,KAAK85G,wBAAwBvC,IAC1D,IAAK6E,GAA2Bp8G,KAAKo4G,GAAGyB,+BAGpC75G,KAAKo5G,oBAAT,CAIA,IAAIiD,EAAmBD,GAA0B,CAAC,EAC7CC,EAA6B,aAC9BA,EAA6B,WAhlBK,KAklBtCr8G,KAAKi8G,kBAAkBpG,WAAWhV,EAAIwb,EANtC,CAOJ,EAAEn+F,KAAKle,MACPm4B,EAAIvT,iBAAiB0qF,GAAUtvG,KAAKm8G,qBA5BpCn8G,KAAKs8G,uBA8Bb,EAEAnE,GAAYz1G,UAAUm2G,kBAAoB,WACtC1gF,EAAItT,oBAAoBwqF,GAAWrvG,KAAKu8G,gBAEnCv8G,KAAKmqG,UAAUqN,MAGpBhH,GAAS/qG,IAAI,+BAEbzF,KAAKu8G,eAAiB,SAAS1b,GACtB7gG,KAAKmqG,UAAUqN,KAGpBx3G,KAAK05G,cAAc7Y,EAxTT,mBAyTd,EAAE3iF,KAAKle,MACPm4B,EAAIvT,iBAAiByqF,GAAWrvG,KAAKu8G,gBACzC,EAEApE,GAAYz1G,UAAUg2G,qBAAuB,WAGzC,GAFAvgF,EAAItT,oBAAoB4qF,GAAuBzvG,KAAKw8G,wBAE/Cx8G,KAAKy5G,yBAAV,CAGAjJ,GAAS/qG,IAAI,kCAEb,IAAIg3G,EAAqB,GACrBC,GAAU,EACT18G,KAAKo5G,sBACNsD,EAAU18G,KAAKo4G,GAAGuE,eAAe5E,KAEjC2E,IACAD,EAAqBv2F,GAAEgN,KAAKkqE,cAGhCp9F,KAAKw8G,uBAAyBvoB,GAAS,WACnC,IAAIj0F,KAAKo5G,oBAAT,CAIA,IAAIhc,EAAal3E,GAAEgN,KAAKkqE,aACpBwf,GAAc,EACdC,EAAgBzf,EAAW/kG,MAAM,KAAK,GAAGA,MAAM,KAAK,KAAOokH,EAAmBpkH,MAAM,KAAK,GAAGA,MAAM,KAAK,GACvGykH,EAAsB98G,KAAKy5G,yBAC3BqD,IAAwBnG,GACxBiG,EAAcxf,IAAeqf,EAzYY,mCA0YlCK,EACPF,EAAcxf,EAAW/kG,MAAM,KAAK,KAAOokH,EAAmBpkH,MAAM,KAAK,GA1YjD,kBA2YjBykH,IACPF,EAAcC,GAGdD,IACc58G,KAAKo4G,GAAGuE,eAAe5E,MAEjC0E,EAAqBrf,GAErByf,IACA78G,KAAK+8G,qBAAuB,EAC5BvM,GAAS/qG,IAAI,0DArBrB,CAwBJ,EAAEyY,KAAKle,OACPm4B,EAAIvT,iBAAiB6qF,GAAuBzvG,KAAKw8G,uBAxCjD,CAyCJ,EAEArE,GAAYz1G,UAAUs2G,sBAAwB,WAC1C7gF,EAAItT,oBAAoByqF,GAAUtvG,KAAKg9G,oBAEjBh9G,KAAK85G,wBAAwBpC,KAC1B13G,KAAKo4G,GAAG7Y,WAAW,0BAI5CiR,GAAS/qG,IAAI,oCACRzF,KAAKi9G,oBACNj9G,KAAKi9G,kBAAoB,IAAInJ,IAGjC9zG,KAAKg9G,kBAAoB,SAASnc,GAC9B,IAAIqc,EAAyBl9G,KAAK85G,wBAAwBpC,KACrDwF,GAA2Bl9G,KAAKo4G,GAAGyB,+BAIpC75G,KAAKo5G,qBAILp5G,KAAKi9G,kBAAkB5I,YAAYxT,EAAIqc,IACvCl9G,KAAK05G,cAAc7Y,EAAIqX,IAE/B,EAAEh6F,KAAKle,MACPm4B,EAAIvT,iBAAiB0qF,GAAUtvG,KAAKg9G,mBACxC,EAEA7E,GAAYz1G,UAAUo2G,mBAAqB,WAKvC,GAJA3gF,EAAItT,oBAAoB8qF,GAAc3vG,KAAKm9G,gBAC3ChlF,EAAItT,oBAAoB+qF,GAAW5vG,KAAKm9G,gBAGnCn9G,KAAKmqG,UAAUwN,IAApB,CAGAnH,GAAS/qG,IAAI,gCACbzF,KAAK+8G,qBAAuB,EAE5B,IAyCInB,EAAoBpJ,GAzCE,WACtB,GAAKxyG,KAAKmqG,UAAUwN,MAGhB33G,KAAKo5G,oBAAT,CAIA,IAAIwD,EAAc58G,KAAKmqG,UAAUiN,IAC7BgG,GAAqBp9G,KAAKmqG,UAAUkN,KAA8B,IACjEp0G,QACAmT,KAAK,SAASpL,EAAGwa,GAAK,OAAOxa,EAAIwa,CAAG,GAErC2nB,EAAYhV,EAAI2jF,QAChB3hF,EAAQjU,GAAEquE,OAAO,CAAC,YAAepnD,GAAY4qE,IACjD,IACI,IAAIgE,EAAe7oB,GAAW5mE,KAAKyvF,aAC/BR,EAAmB/iH,KAAKgjH,MAAOruE,GAAa4uE,EAAe5jF,EAAIqwC,aAAgB,KAGnF,GAFAruC,EAAsB,eAAI4hF,EAC1B5hF,EAA0B,mBAAIohF,EAC1BA,EAAmBv7G,KAAK+8G,qBACxB,IAAK,IAAIxkH,EAAI,EAAGA,EAAI6kH,EAAkB1kH,OAAQH,IAAK,CAC/C,IAAI8kH,EAAaD,EAAkB7kH,GAE/BgjH,GAAoB8B,GACpBr9G,KAAK+8G,qBAAuBM,IAE5BljF,EAA0B,mBAAIkjF,EAC9Br9G,KAAK+8G,qBAAuBM,EAC5BT,GAAc,EAEtB,CAER,CAAE,MAAO5mG,GACLw6F,GAAS1c,SAAS,4CAA6C99E,EACnE,CACI4mG,GACA58G,KAAKo4G,GAAG9X,MAzbD,aAybqBnmE,EA/BhC,CAiCJ,EAAEjc,KAAKle,OAGPA,KAAKm9G,eAAiBvB,EAAkB30G,SACxCkxB,EAAIvT,iBAAiBg3F,EAAkB9I,UAAW9yG,KAAKm9G,eA/CvD,CAgDJ,EAEAhF,GAAYz1G,UAAUq2G,mBAAqB,WACvC5gF,EAAItT,oBAAoBgrF,GAAW7vG,KAAKs9G,gBAEnCt9G,KAAKmqG,UAAU0N,MAGpBrH,GAAS/qG,IAAI,gCAEbzF,KAAKs9G,eAAiB,SAASzc,GACtB7gG,KAAKmqG,UAAU0N,KAGpB73G,KAAK05G,cAAc7Y,EA7cR,aA8cf,EAAE3iF,KAAKle,MACPm4B,EAAIvT,iBAAiBirF,GAAW7vG,KAAKs9G,gBACzC,EAEAnF,GAAYz1G,UAAUu2G,sBAAwB,WAO1C,GAJA/lB,GAAWruE,oBAAoBirF,GAAqB9vG,KAAKu9G,mCACzDplF,EAAItT,oBAAoB4qF,GAAuBzvG,KAAKw9G,iCACpDrlF,EAAItT,oBAAoB2qF,GAASxvG,KAAKy9G,kBAEjCz9G,KAAKmqG,UAAUyN,KAA6B53G,KAAKo4G,GAAG7Y,WAAW,uBAApE,CAIAiR,GAAS/qG,IAAI,0CACbzF,KAAK07G,2BACL,IAAIe,EAAqBv2F,GAAEgN,KAAKkqE,aAIhCp9F,KAAKy9G,iBAAmB,WACpBz9G,KAAKu4G,qBAAuBrlB,GAAW5mE,KAAKyvF,YAChD,EAAE79F,KAAKle,MACPm4B,EAAIvT,iBAAiB4qF,GAASxvG,KAAKy9G,kBAGnCz9G,KAAKw9G,gCAAkCvpB,GAAS,SAAS4M,GACrD,IAAI7gG,KAAKo5G,oBAAT,CAIA,IAAIhc,EAAal3E,GAAEgN,KAAKkqE,aAENA,IAAeqf,IAG7Bz8G,KAAKo7G,gBAAgBva,EAAI4b,EAAoBz8G,KAAKu4G,sBAClDkE,EAAqBrf,EAErBp9F,KAAKq4G,mBAAqB7/G,KAAKC,IAAIy6F,GAAW9qB,gBAAgBK,aAActwC,EAAIqwC,aAAe,GAC/FxoE,KAAKu4G,qBAAuBrlB,GAAW5mE,KAAKyvF,aAC5C/7G,KAAKs4G,yBAA0B,EAZnC,CAcJ,EAAEp6F,KAAKle,OACPm4B,EAAIvT,iBAAiB6qF,GAAuBzvG,KAAKw9G,iCAEjDx9G,KAAKu9G,kCAAoC,SAAS1c,GAC1C3N,GAAW//C,QACXnzC,KAAKo7G,gBAAgBva,EAAI4b,EAAoBz8G,KAAKu4G,qBAE1D,EAAEr6F,KAAKle,MACPkzF,GAAWtuE,iBAAiBkrF,GAAqB9vG,KAAKu9G,kCAvCtD,CAwCJ,EAEApF,GAAYz1G,UAAU45G,sBAAwB,WACtCt8G,KAAKm8G,oBACLhkF,EAAItT,oBAAoByqF,GAAUtvG,KAAKm8G,mBACvCn8G,KAAKm8G,kBAAoB,MAGzBn8G,KAAKi8G,oBACLj8G,KAAKi8G,kBAAkBxF,eACvBz2G,KAAKi8G,kBAAoB,KAEjC,EAGA/nB,GAAcikB,IAEd,IAAIhyG,GAAS6tF,GAAoB,SAE7B0pB,GAAmB,QAEnBC,GAAiB,UACjBC,GAAkB,CAAC,EACvBA,GAAgBD,IAAkB,CAAC,EAMnC,IAAIE,GAAqB,SAASC,GAC9B99G,KAAKuxB,MAAQ4G,EAAW,MACxBn4B,KAAK+9G,gBAAkBD,EAAYC,gBACnC/9G,KAAKg+G,YAAcF,EAAYG,cAC/Bj+G,KAAKk+G,YAAcJ,EAAYK,cAC/Bn+G,KAAKo+G,cAAgBN,EAAYO,gBACjCr+G,KAAKsgG,MAAQwd,EAAYQ,YAC7B,EAEAT,GAAmBn7G,UAAUzB,KAAO,WAC3BjB,KAAKu+G,oBAKVv+G,KAAKw+G,MAAQ,KACbx+G,KAAKy+G,aAELz+G,KAAK0+G,gBAAkB,IAAIh0F,KAPvBvkB,GAAO2tF,SAAS,2DAQxB,EAEA+pB,GAAmBn7G,UAAUw2G,cAAgB,WACzC,IAAIyF,EAAW3+G,KAAKg+G,YAAYN,IAChC,OAAKiB,EAGMz4F,GAAE4oE,SAAS6vB,GACXz4F,GAAEquE,OAAO,CAAC,EAAGqpB,GAAiBe,GAG9Bf,GALA,CAAC,CAOhB,EAEAC,GAAmBn7G,UAAUynG,UAAY,SAASjoG,GAC9C,OAAOlC,KAAKk5G,gBAAgBh3G,EAChC,EAEA27G,GAAmBn7G,UAAUk8G,gBAAkB,WAC3C,QAAS5+G,KAAKg+G,YAAYN,GAC9B,EAEAG,GAAmBn7G,UAAUm8G,cAAgB,SAASC,EAAY39G,GAC9D,IAAKnB,KAAK4+G,kBAEN,OADAz4G,GAAO2tF,SAAS,oDACTnyF,QAAQC,UAGnB,IAAI+8G,EAAW3+G,KAAKg+G,YAAYN,IAC3Bx3F,GAAE4oE,SAAS6vB,KACZA,EAAW,CAAC,GAEhB,IAAII,EAAc59G,GAAWA,EAAiB,QAAK,CAAC,EAAInB,KAAKmqG,UAAUwT,IAIvE,OAHAgB,EAAShB,IAAkBz3F,GAAEquE,OAAO,CAAC,EAAGwqB,EAAYD,GAEpD9+G,KAAKk+G,YAAYR,GAAkBiB,GAC5B3+G,KAAKy+G,YAChB,EAEAZ,GAAmBn7G,UAAUs8G,cAAgB,WAIzC,OAHKh/G,KAAK4+G,mBACNz4G,GAAON,MAAM,+BAER7F,KAAKw+G,KAClB,EAEAX,GAAmBn7G,UAAU+7G,WAAa,WACtC,IAAKz+G,KAAK4+G,kBACN,OAAOj9G,QAAQC,UAGnB,IAAIq9G,EAAaj/G,KAAKo+G,cAAc,eAChCxT,EAAW5qG,KAAKo+G,cAAc,cAC9Bc,EAp8HG,MANOh5F,GAAEoxE,OAAOh8F,QAAQ,KAAM,IAMZ,IALV4qB,GAAEoxE,OAAOh8F,QAAQ,KAAM,IAAIiR,UAAU,EAAG,IAKhD,MAq8HPpG,GAAOV,IAAI,mCAAqCw5G,GAEhD,IAAIzhH,EAAU0oB,GAAEquE,OAAO,CAAC,YAAe0qB,EAAY,UAAarU,GAAW5qG,KAAKmqG,UAAUwT,KACtFv1F,EAAe,IAAI+I,gBACvB/I,EAAavjB,IAAI,UAAWkE,KAAKE,UAAUzL,IAC3C4qB,EAAavjB,IAAI,QAAS7E,KAAKg+G,YAAY,UAC3C51F,EAAavjB,IAAI,SAAU,OAC3BujB,EAAavjB,IAAI,eAAgB6tF,GAAOE,aACxC,IAAI1qE,EAAMloB,KAAK+9G,kBAAoB,IAAM31F,EAAatZ,WAqCtD,OAnCA9O,KAAKm/G,0BAA4B1tF,KAAKC,MACtC1xB,KAAKo/G,aAAep/G,KAAKuxB,MAAM3uB,KAAKu1B,EAAKjQ,EAAK,CAC1C,OAAU,MACV,QAAW,CACP,cAAiB,SAAWy9B,KAAK3lD,KAAKg+G,YAAY,SAAW,KAC7D,YAAekB,KAEpB/gG,KAAK,SAAS+X,GAEb,OADAl2B,KAAKq/G,oBACEnpF,EAAS1E,OAAOrT,KAAK,SAASquF,GACjC,IAAI8S,EAAgB9S,EAAoB,MACxC,IAAK8S,EACD,MAAM,IAAI1+F,MAAM,4BAEpB,IAAI49F,EAAQ,IAAIr6G,IAChB+hB,GAAEghC,KAAKo4D,EAAe,SAASz7G,EAAM3B,GACjCs8G,EAAM35G,IAAI3C,EAAK,CACX,IAAO2B,EAAkB,YACzB,MAASA,EAAoB,cAC7B,cAAiBA,EAAoB,cACrC,qBAAwBA,EAA2B,qBACnD,aAAgBA,EAAmB,cAE3C,GACA7D,KAAKw+G,MAAQA,EACbx+G,KAAKu/G,aAAeL,CACxB,EAAEhhG,KAAKle,OAAOoe,MAAM,SAASvY,GACzB7F,KAAKq/G,oBACLl5G,GAAON,MAAMA,EACjB,EAAEqY,KAAKle,MACX,EAAEke,KAAKle,OAAOoe,MAAM,SAASvY,GACzB7F,KAAKq/G,oBACLl5G,GAAON,MAAMA,EACjB,EAAEqY,KAAKle,OAEAA,KAAKo/G,YAChB,EAEAvB,GAAmBn7G,UAAU28G,kBAAoB,WACxCr/G,KAAKm/G,2BAIVn/G,KAAKw/G,gBAAkBx/G,KAAKm/G,0BAC5Bn/G,KAAKy/G,mBAAqBhuF,KAAKC,MAC/B1xB,KAAK0/G,cAAgB1/G,KAAKy/G,mBAAqBz/G,KAAKw/G,gBACpDx/G,KAAKm/G,0BAA4B,MAN7Bh5G,GAAON,MAAM,qEAOrB,EAEAg4G,GAAmBn7G,UAAUi9G,WAAa,SAASC,EAAaC,GAC5D,OAAK7/G,KAAKo/G,aAOHp/G,KAAKo/G,aAAajhG,KAAK,WAC1B,OAAOne,KAAK8/G,eAAeF,EAAaC,EAC5C,EAAE3hG,KAAKle,OAAOoe,MAAM,SAASvY,GAEzB,OADAM,GAAON,MAAMA,GACNg6G,CACX,GAXW,IAAIl+G,QAAQ,SAASC,GACxBuE,GAAO2tF,SAAS,iCAChBlyF,EAAQi+G,EACZ,EASR,EAEAhC,GAAmBn7G,UAAUo9G,eAAiB,SAASF,EAAaC,GAChE,IAAK7/G,KAAKg/G,gBAEN,OADA74G,GAAOV,IAAI,wBACJo6G,EAEX,IAAIE,EAAU//G,KAAKw+G,MAAMh6G,IAAIo7G,GAC7B,OAAKG,GAIL//G,KAAKggH,kBAAkBJ,EAAaG,GAC7BA,IAJH55G,GAAOV,IAAI,mBAAqBm6G,EAAc,KACvCC,EAIf,EAEAhC,GAAmBn7G,UAAUu9G,gBAAkB,SAASL,EAAarhG,GACjE,OAAOve,KAAK2/G,WAAWC,EAAa,CAAC,MAASrhG,IAAgBJ,KAAK,SAAS4hG,GACxE,OAAOA,EAAe,KAC1B,GAAG3hG,MAAM,SAASvY,GAEd,OADAM,GAAON,MAAMA,GACN0Y,CACX,EACJ,EAGAs/F,GAAmBn7G,UAAUw9G,eAAiB,SAASN,EAAarhG,GAEhE,OADApY,GAAO2tF,SAAS,4IACT9zF,KAAKigH,gBAAgBL,EAAarhG,EAC7C,EAEAs/F,GAAmBn7G,UAAUy9G,oBAAsB,SAASP,EAAarhG,GACrE,OAAOve,KAAK8/G,eAAeF,EAAa,CAAC,MAASrhG,IAAuB,KAC7E,EAEAs/F,GAAmBn7G,UAAU09G,UAAY,SAASR,EAAarhG,GAC3D,OAAOve,KAAKigH,gBAAgBL,GAAazhG,KAAK,WAC1C,OAAOne,KAAKqgH,cAAcT,EAAarhG,EAC3C,EAAEL,KAAKle,OAAOoe,MAAM,SAASvY,GAEzB,OADAM,GAAON,MAAMA,GACN0Y,CACX,EACJ,EAEAs/F,GAAmBn7G,UAAU29G,cAAgB,SAAST,EAAarhG,GAC/DA,EAAgBA,IAAiB,EACjC,IAAI1H,EAAM7W,KAAKmgH,oBAAoBP,EAAarhG,GAKhD,OAJY,IAAR1H,IAAwB,IAARA,IAChB1Q,GAAON,MAAM,iBAAmB+5G,EAAc,YAAc/oG,EAAM,gDAAkD0H,GACpH1H,EAAM0H,GAEH1H,CACX,EAEAgnG,GAAmBn7G,UAAUs9G,kBAAoB,SAASJ,EAAaG,GACnE,IAAI//G,KAAK0+G,gBAAgB/zF,IAAIi1F,GAA7B,CAGA5/G,KAAK0+G,gBAAgBvjG,IAAIykG,GAEzB,IAAIU,EAAqB,CACrB,kBAAmBV,EACnB,eAAgBG,EAAa,IAC7B,iBAAoB,eACpB,2BAA4B,IAAItuF,KAAKzxB,KAAKw/G,iBAAiBe,cAC3D,8BAA+B,IAAI9uF,KAAKzxB,KAAKy/G,oBAAoBc,cACjE,6BAA8BvgH,KAAK0/G,cACnC,4BAA6B1/G,KAAKu/G,cAGL,cAA7BQ,EAAuB,gBACvBO,EAAmC,eAAIP,EAAuB,eAE1B,cAApCA,EAA8B,uBAC9BO,EAA0C,sBAAIP,EAA8B,sBAEhD,cAA5BA,EAAsB,eACtBO,EAAkC,cAAIP,EAAsB,cAGhE//G,KAAKsgG,MAAM,sBAAuBggB,EAvBlC,CAwBJ,EAEAzC,GAAmBn7G,UAAU67G,iBAAmB,WAC5C,QAASv+G,KAAKuxB,OACO,oBAAZ5vB,SACQ,oBAARwC,KACQ,oBAARumB,GACb,EAEAwpE,GAAc2pB,IAEdA,GAAmBn7G,UAA2B,gBAAIm7G,GAAmBn7G,UAAUs8G,cAC/EnB,GAAmBn7G,UAAuB,YAAIm7G,GAAmBn7G,UAAUi9G,WAC3E9B,GAAmBn7G,UAA4B,iBAAIm7G,GAAmBn7G,UAAUo9G,eAChFjC,GAAmBn7G,UAA6B,kBAAIm7G,GAAmBn7G,UAAUu9G,gBACjFpC,GAAmBn7G,UAAkC,uBAAIm7G,GAAmBn7G,UAAUy9G,oBACtFtC,GAAmBn7G,UAAsB,WAAIm7G,GAAmBn7G,UAAU09G,UAC1EvC,GAAmBn7G,UAA2B,gBAAIm7G,GAAmBn7G,UAAU29G,cAC/ExC,GAAmBn7G,UAA0B,eAAIm7G,GAAmBn7G,UAAUm8G,cAG9EhB,GAAmBn7G,UAA4B,iBAAIm7G,GAAmBn7G,UAAUw9G,eAShF,IAAIM,GAAa,WAAY,EAI7BA,GAAW99G,UAAU+9G,kBAAoB,WAAY,EACrDD,GAAW99G,UAAUg+G,cAAgB,WAAY,EACjDF,GAAW99G,UAAUi+G,oBAAsB,WAAY,EAEvDH,GAAW99G,UAAUzB,KAAO,SAAS2/G,GAEjC,OADA5gH,KAAKo4G,GAAKwI,EACH5gH,IACX,EAQAwgH,GAAW99G,UAAU49F,MAAQ,SAAStE,EAAO6kB,EAAYxjB,EAAYyjB,GACjE,IAAIC,EAAO/gH,KACPu7F,EAAWr1E,GAAE80E,UAAUgB,GAE3B,GAAwB,IAApBT,EAAS7iG,OAqBb,OAhBAwtB,GAAEghC,KAAKq0C,EAAU,SAAS/4D,GACtBtc,GAAE+zE,eAAez3D,EAASxiC,KAAKghH,eAAgB,SAASh+G,GACpD,IAAI7B,EAAU,CAAC,EACXg5B,EAAQ4mF,EAAKN,kBAAkBpjB,EAAYr9F,MAC3CunE,EAAUw5C,EAAK3I,GAAG7Y,WAAW,uBAEjCwhB,EAAKL,cAAc19G,EAAGhD,KAAMmB,GAG5BtF,OAAOoiB,WAAW8iG,EAAKE,eAAeH,EAAe3mF,EAAOh5B,GAAS,GAAOomE,GAG5Ew5C,EAAK3I,GAAG9X,MAAMugB,EAAY1mF,EAAO4mF,EAAKE,eAAeH,EAAe3mF,EAAOh5B,GAC/E,EACJ,EAAGnB,OAEI,EApBH2zF,GAAU9tF,MAAM,kBAAoBm2F,EAAQ,wBAqBpD,EAOAwkB,GAAW99G,UAAUu+G,eAAiB,SAASH,EAAe3mF,EAAOh5B,EAAS+/G,GAC1EA,EAAkBA,IAAmB,EACrC,IAAIH,EAAO/gH,KAEX,OAAO,WAGCmB,EAAQggH,iBACZhgH,EAAQggH,gBAAiB,EAErBL,IAA2D,IAA1CA,EAAcI,EAAiB/mF,IAMpD4mF,EAAKJ,oBAAoBxmF,EAAOh5B,EAAS+/G,GAC7C,CACJ,EAEAV,GAAW99G,UAAU+9G,kBAAoB,SAASpjB,EAAY76D,GAS1D,MAN2B,mBAAjB,EACE66D,EAAW76D,GAEXtc,GAAEquE,OAAO,CAAC,EAAG8I,EAI7B,EAOA,IAAI+jB,GAAc,WACdphH,KAAKghH,eAAiB,OAC1B,EACA96F,GAAE0uE,QAAQwsB,GAAaZ,IAEvBY,GAAY1+G,UAAU+9G,kBAAoB,SAASpjB,EAAY76D,GAC3D,IAAIrI,EAAQinF,GAAYtsB,WAAW2rB,kBAAkB16G,MAAM/F,KAAMgN,WAIjE,OAFIw1B,EAAQzmC,OAAQo+B,EAAW,IAAIqI,EAAQzmC,MAEpCo+B,CACX,EAEAinF,GAAY1+G,UAAUg+G,cAAgB,SAASvuC,EAAK3vC,EAASrhC,GACzDA,EAAQkgH,QACU,IAAdlvC,EAAImvC,OACJnvC,EAAIovC,SACJpvC,EAAIqvC,SACe,WAAnBh/E,EAAQn/B,OAEZlC,EAAQpF,KAAOymC,EAAQzmC,KAElBoF,EAAQkgH,SACTlvC,EAAIlkD,gBAEZ,EAEAmzF,GAAY1+G,UAAUi+G,oBAAsB,SAASxmF,EAAOh5B,GACpDA,EAAQkgH,SAEZpjG,WAAW,WACPpiB,OAAOC,SAAWqF,EAAQpF,IAC9B,EAAG,EACP,EAOA,IAAI0lH,GAAc,WACdzhH,KAAKghH,eAAiB,QAC1B,EACA96F,GAAE0uE,QAAQ6sB,GAAajB,IAEvBiB,GAAY/+G,UAAUg+G,cAAgB,SAASvuC,EAAK3vC,EAASrhC,GACzDA,EAAQqhC,QAAUA,EAClB2vC,EAAIlkD,gBACR,EAEAwzF,GAAY/+G,UAAUi+G,oBAAsB,SAASxmF,EAAOh5B,GACxD8c,WAAW,WACP9c,EAAQqhC,QAAQk/E,QACpB,EAAG,EACP,EAKc,IAAIC,GAAkB,OAClBC,GAAkB,YAClBC,GAAkB,SAClBC,GAAkB,OAClBC,GAAkB,UAClBC,GAAkB,SAClBC,GAAkB,UAKhCC,GAAa,CACbC,WAAY,SAAS3+G,EAAMu+C,GACvB,IAAIl+C,EAAO,CAAC,EACRu+G,EAAO,CAAC,EAYZ,OAXIl8F,GAAE4oE,SAAStrF,GACX0iB,GAAEghC,KAAK1jD,EAAM,SAAS+F,EAAG1G,GAChB7C,KAAKqiH,sBAAsBx/G,KAC5Bu/G,EAAKv/G,GAAK0G,EAElB,EAAGvJ,MAEHoiH,EAAK5+G,GAAQu+C,EAGjBl+C,EAAK89G,IAAcS,EACZv+G,CACX,EAEAy+G,aAAc,SAAS9+G,GACnB,IAAIK,EAAO,CAAC,EACR0+G,EAAS,GAYb,OAXKr8F,GAAExsB,QAAQ8J,KACXA,EAAO,CAACA,IAGZ0iB,GAAEghC,KAAK1jD,EAAM,SAASX,GACb7C,KAAKqiH,sBAAsBx/G,IAC5B0/G,EAAOz9G,KAAKjC,EAEpB,EAAG7C,MAEH6D,EAAKg+G,IAAgBU,EACd1+G,CACX,EAEA2+G,gBAAiB,SAASh/G,EAAMu+C,GAC5B,IAAIl+C,EAAO,CAAC,EACR4+G,EAAY,CAAC,EAWjB,OAVIv8F,GAAE4oE,SAAStrF,GACX0iB,GAAEghC,KAAK1jD,EAAM,SAAS+F,EAAG1G,GAChB7C,KAAKqiH,sBAAsBx/G,KAC5B4/G,EAAU5/G,GAAK0G,EAEvB,EAAGvJ,MAEHyiH,EAAUj/G,GAAQu+C,EAEtBl+C,EAAK+9G,IAAmBa,EACjB5+G,CACX,EAEA6+G,aAAc,SAASC,EAAWz4F,GAC9B,IAAIrmB,EAAO,CAAC,EACR++G,EAAS,CAAC,EAWd,OAVI18F,GAAE4oE,SAAS6zB,GACXz8F,GAAEghC,KAAKy7D,EAAW,SAASp5G,EAAG1G,GACrB7C,KAAKqiH,sBAAsBx/G,KAC5B+/G,EAAO//G,GAAKqjB,GAAExsB,QAAQ6P,GAAKA,EAAI,CAACA,GAExC,EAAGvJ,MAEH4iH,EAAOD,GAAaz8F,GAAExsB,QAAQwwB,GAAUA,EAAS,CAACA,GAEtDrmB,EAAKm+G,IAAgBY,EACd/+G,CACX,EAEAg/G,cAAe,SAASF,EAAWt6G,GAC/B,IAAIxE,EAAO,CAAC,EACRi/G,EAAU,CAAC,EAWf,OAVI58F,GAAE4oE,SAAS6zB,GACXz8F,GAAEghC,KAAKy7D,EAAW,SAASp5G,EAAG1G,GACrB7C,KAAKqiH,sBAAsBx/G,KAC5BigH,EAAQjgH,GAAK0G,EAErB,EAAGvJ,MAEH8iH,EAAQH,GAAat6G,EAEzBxE,EAAKk+G,IAAiBe,EACfj/G,CACX,EAEAk/G,cAAe,SAASJ,EAAWt6G,GAC/B,IAAIxE,EAAO,CAAC,EACRm/G,EAAU,CAAC,EAWf,OAVI98F,GAAE4oE,SAAS6zB,GACXz8F,GAAEghC,KAAKy7D,EAAW,SAASp5G,EAAG1G,GACrB7C,KAAKqiH,sBAAsBx/G,KAC5BmgH,EAAQngH,GAAK0G,EAErB,EAAGvJ,MAEHgjH,EAAQL,GAAat6G,EAEzBxE,EAAKo+G,IAAiBe,EACfn/G,CACX,EAEAo/G,cAAe,WAGX,MAFW,CACXp/G,QAAsB,GAE1B,GASAq/G,GAAgB,WAAY,EAEhCh9F,GAAEquE,OAAO2uB,GAAcxgH,UAAWw/G,IAElCgB,GAAcxgH,UAAUygH,MAAQ,SAASvC,EAAmBwC,EAAWC,GACnErjH,KAAK4oG,UAAYgY,EACjB5gH,KAAKsjH,WAAaF,EAClBpjH,KAAKujH,UAAYF,CACrB,EAoBAH,GAAcxgH,UAAUmC,IAAM66F,GAA4B,SAASl8F,EAAMu+C,EAAIllC,GACzE,IAAIhZ,EAAO7D,KAAKmiH,WAAW3+G,EAAMu+C,GAIjC,OAHI77B,GAAE4oE,SAAStrF,KACXqZ,EAAWklC,GAER/hD,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAsBAqmG,GAAcxgH,UAAU+gH,SAAW/jB,GAA4B,SAASl8F,EAAMu+C,EAAIllC,GAC9E,IAAIhZ,EAAO7D,KAAKwiH,gBAAgBh/G,EAAMu+C,GAItC,OAHI77B,GAAE4oE,SAAStrF,KACXqZ,EAAWklC,GAER/hD,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAYAqmG,GAAcxgH,UAAUghH,MAAQhkB,GAA4B,SAASl8F,EAAMqZ,GACvE,IAAIhZ,EAAO7D,KAAKsiH,aAAa9+G,GAC7B,OAAOxD,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAcAqmG,GAAcxgH,UAAUihH,MAAQjkB,GAA4B,SAASijB,EAAWz4F,EAAQrN,GAChFqJ,GAAE4oE,SAAS6zB,KACX9lG,EAAWqN,GAEf,IAAIrmB,EAAO7D,KAAK0iH,aAAaC,EAAWz4F,GACxC,OAAOlqB,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAWAqmG,GAAcxgH,UAAkB,OAAIg9F,GAA4B,SAAS7iF,GAErE,IAAIhZ,EAAO7D,KAAKijH,gBAChB,OAAOjjH,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAaAqmG,GAAcxgH,UAAUs5C,OAAS0jD,GAA4B,SAASijB,EAAWt6G,EAAOwU,GACpF,IAAIhZ,EAAO7D,KAAK+iH,cAAcJ,EAAWt6G,GACzC,OAAOrI,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAEAqmG,GAAcxgH,UAAU8gH,cAAgB,SAAS3/G,EAAMgZ,GACnDhZ,EAAiB,WAAI7D,KAAKsjH,WAC1Bz/G,EAAgB,UAAI7D,KAAKujH,UACzB1/G,EAAa,OAAI7D,KAAKy/F,YAAY,SAElC,IAAImkB,EAAoB19F,GAAEgvE,YAAYrxF,GACtC,OAAO7D,KAAK4oG,UAAUib,gBAAgB,CAClCnoH,KAAM,SACNmI,KAAM+/G,EACNE,SAAU9jH,KAAK4oG,UAAUgE,aAAa,UAAY,IAAO5sG,KAAKy/F,YAAY,cAAsB,OAChG4K,QAASrqG,KAAK4oG,UAAUmb,iBAAiBC,QAC1CnnG,EACP,EAEAqmG,GAAcxgH,UAAU2/G,sBAAwB,SAAS7+G,GACrD,MAAgB,eAATA,GAAkC,cAATA,CACpC,EAEA0/G,GAAcxgH,UAAU+8F,YAAc,SAASwkB,GAC3C,OAAOjkH,KAAK4oG,UAAUrJ,WAAW0kB,EACrC,EAEAf,GAAcxgH,UAAUoM,SAAW,WAC/B,OAAO9O,KAAK4oG,UAAU95F,WAAa,UAAY9O,KAAKsjH,WAAa,IAAMtjH,KAAKujH,SAChF,EAGAL,GAAcxgH,UAAkB,OAAMwgH,GAAcxgH,UAAUs5C,OAC9DknE,GAAcxgH,UAAe,IAASwgH,GAAcxgH,UAAUmC,IAC9Dq+G,GAAcxgH,UAAoB,SAAIwgH,GAAcxgH,UAAU+gH,SAC9DP,GAAcxgH,UAAiB,MAAOwgH,GAAcxgH,UAAUihH,MAC9DT,GAAcxgH,UAAiB,MAAOwgH,GAAcxgH,UAAUghH,MAC9DR,GAAcxgH,UAAoB,SAAIwgH,GAAcxgH,UAAUoM,SAQ9D,IAAIo1G,GAAiB,WAAY,EAEjCh+F,GAAEquE,OAAO2vB,GAAexhH,UAAWw/G,IAEnCgC,GAAexhH,UAAUygH,MAAQ,SAASvC,GACtC5gH,KAAK4oG,UAAYgY,CACrB,EAqBAsD,GAAexhH,UAAUmC,IAAM26F,GAA6B,SAASh8F,EAAMu+C,EAAIllC,GAC3E,IAAIhZ,EAAO7D,KAAKmiH,WAAW3+G,EAAMu+C,GAejC,OAdI77B,GAAE4oE,SAAStrF,KACXqZ,EAAWklC,GAGX/hD,KAAKy/F,YAAY,kBACjBz/F,KAAK4oG,UAAuB,YAAEub,qBAAqBnmH,SAAS26B,UAIhE90B,EAAK89G,IAAcz7F,GAAEquE,OACjB,CAAC,EACDruE,GAAEgN,KAAKqqE,oBACP15F,EAAK89G,KAEF3hH,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAuBAqnG,GAAexhH,UAAU+gH,SAAWjkB,GAA6B,SAASh8F,EAAMu+C,EAAIllC,GAChF,IAAIhZ,EAAO7D,KAAKwiH,gBAAgBh/G,EAAMu+C,GAItC,OAHI77B,GAAE4oE,SAAStrF,KACXqZ,EAAWklC,GAER/hD,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAeAqnG,GAAexhH,UAAUghH,MAAQlkB,GAA6B,SAASh8F,EAAMqZ,GACzE,IAAIhZ,EAAO7D,KAAKsiH,aAAa9+G,GAC7B,OAAOxD,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GA2BAqnG,GAAexhH,UAAU0hH,UAAY5kB,GAA6B,SAASh8F,EAAM6gH,EAAIxnG,GACjF,IAAIhZ,EAAO,CAAC,EACRygH,EAAO,CAAC,EAuBZ,OAtBIp+F,GAAE4oE,SAAStrF,IACX0iB,GAAEghC,KAAK1jD,EAAM,SAAS+F,EAAG1G,GACrB,IAAK7C,KAAKqiH,sBAAsBx/G,GAAI,CAChC,GAAIgZ,MAAM0yE,WAAWhlF,IAEjB,YADAoqF,GAAU9tF,MAAM,kFAGhBy+G,EAAKzhH,GAAK0G,CAElB,CACJ,EAAGvJ,MACH6c,EAAWwnG,IAIPn+F,GAAE0tE,YAAYywB,KACdA,EAAK,GAETC,EAAK9gH,GAAQ6gH,GAEjBxgH,EAAKi+G,IAAcwC,EAEZtkH,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAqBAqnG,GAAexhH,UAAU6d,OAASi/E,GAA6B,SAASmjB,EAAWt6G,EAAOwU,GAClFqJ,GAAE4oE,SAAS6zB,KACX9lG,EAAWxU,GAEf,IAAIxE,EAAO7D,KAAK6iH,cAAcF,EAAWt6G,GACzC,OAAOrI,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAaAqnG,GAAexhH,UAAUs5C,OAASwjD,GAA6B,SAASmjB,EAAWt6G,EAAOwU,GAClFqJ,GAAE4oE,SAAS6zB,KACX9lG,EAAWxU,GAEf,IAAIxE,EAAO7D,KAAK+iH,cAAcJ,EAAWt6G,GACzC,OAAOrI,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GA4BAqnG,GAAexhH,UAAUihH,MAAQnkB,GAA6B,SAASmjB,EAAWz4F,EAAQrN,GAClFqJ,GAAE4oE,SAAS6zB,KACX9lG,EAAWqN,GAEf,IAAIrmB,EAAO7D,KAAK0iH,aAAaC,EAAWz4F,GACxC,OAAOlqB,KAAKwjH,cAAc3/G,EAAMgZ,EACpC,GAsBAqnG,GAAexhH,UAAU6hH,aAAe/kB,GAA6B,WACjE7L,GAAU9tF,MAAM,6EACpB,GAaAq+G,GAAexhH,UAAU8hH,cAAgB,SAAS3nG,GAC9C,OAAO7c,KAAK6E,IAAI,gBAAiB,GAAIgY,EACzC,EAYAqnG,GAAexhH,UAAU+hH,YAAc,WACnC,GAAKzkH,KAAK0kH,mBAAV,CAIA,IAAI7gH,EAAO,CAAC,QAAW7D,KAAK4oG,UAAU+B,mBACtC,OAAO3qG,KAAKwjH,cAAc3/G,EAF1B,CAFI8vF,GAAU9tF,MAAM,sEAKxB,EAEAq+G,GAAexhH,UAAUoM,SAAW,WAChC,OAAO9O,KAAK4oG,UAAU95F,WAAa,SACvC,EAEAo1G,GAAexhH,UAAU8gH,cAAgB,SAAS3/G,EAAMgZ,GACpDhZ,EAAa,OAAI7D,KAAKy/F,YAAY,SAClC57F,EAAmB,aAAI7D,KAAK4oG,UAAU+B,kBACtC,IAAIga,EAAY3kH,KAAK4oG,UAAUiC,aAAa,cACxC+Z,EAAU5kH,KAAK4oG,UAAUiC,aAAa,YACtCga,EAA4B7kH,KAAK4oG,UAAUiC,aAAa,8BACxD8Z,IACA9gH,EAAiB,WAAI8gH,GAErBC,IACA/gH,EAAe,SAAI+gH,GAEnBC,IACAhhH,EAAiC,2BAAIghH,GAGzC,IAAIjB,EAAoB19F,GAAEgvE,YAAYrxF,GAEtC,OAAK7D,KAAK0kH,mBAYH1kH,KAAK4oG,UAAUib,gBAAgB,CAClCnoH,KAAM,SACNmI,KAAM+/G,EACNE,SAAU9jH,KAAK4oG,UAAUgE,aAAa,UAAY,IAAO5sG,KAAKy/F,YAAY,cAAsB,OAChG4K,QAASrqG,KAAK4oG,UAAUmb,iBAAiBe,QAC1CjoG,IAhBC7c,KAAK+kH,SAASlhH,GACTqiB,GAAE0tE,YAAY/2E,KACX7c,KAAKy/F,YAAY,WACjB5iF,EAAS,CAAC4vF,QAAS,EAAG5mG,MAAO,OAE7BgX,GAAU,IAGXqJ,GAAE0vE,SAASguB,EAAmB,KAS7C,EAEAM,GAAexhH,UAAU+8F,YAAc,SAASulB,GAC5C,OAAOhlH,KAAK4oG,UAAUrJ,WAAWylB,EACrC,EAEAd,GAAexhH,UAAUgiH,iBAAmB,WACxC,OAAiD,IAA1C1kH,KAAK4oG,UAAUqc,OAAOC,eACjC,EAGAhB,GAAexhH,UAAUqiH,SAAW,SAASlhH,GACrC89G,MAAc99G,EACd7D,KAAK4oG,UAAuB,YAAEuc,qBAAqBxD,GAAY99G,GACxD+9G,MAAmB/9G,EAC1B7D,KAAK4oG,UAAuB,YAAEuc,qBAAqBvD,GAAiB/9G,GAC7Dg+G,MAAgBh+G,EACvB7D,KAAK4oG,UAAuB,YAAEuc,qBAAqBtD,GAAch+G,GAC1Di+G,MAAcj+G,EACrB7D,KAAK4oG,UAAuB,YAAEuc,qBAAqBrD,GAAYj+G,GACxDk+G,MAAiBl+G,EACxB7D,KAAK4oG,UAAuB,YAAEuc,qBAAqBpD,GAAel+G,GAC3Do+G,MAAiBp+G,EACxB7D,KAAK4oG,UAAuB,YAAEuc,qBAAqBlD,GAAep+G,GAC3Dm+G,MAAgBn+G,EACvB7D,KAAK4oG,UAAuB,YAAEuc,qBAAqBnD,GAAcn+G,GAEjE8vF,GAAU9tF,MAAM,8BAA+BhC,EAEvD,EAEAqgH,GAAexhH,UAAU0iH,iBAAmB,SAASloH,EAAQmoH,EAAexoG,EAAUyoG,GAClF,IAAIvjF,EAAQ/hC,KACRulH,EAAcr/F,GAAEquE,OAAO,CAAC,EAAGv0F,KAAK4oG,UAAuB,YAAE4c,WAAWtoH,IACpEuoH,EAAgBF,EAEfr/F,GAAE0tE,YAAY2xB,KAAgBr/F,GAAE4oE,SAASy2B,IAAiBr/F,GAAE6uE,cAAcwwB,KAC3ExjF,EAAM6mE,UAAuB,YAAE8c,uBAAuBxoH,EAAQqoH,GAC9DxjF,EAAM6mE,UAAuB,YAAE+c,OAC3BL,IACAG,EAAgBH,EAAmBC,IAEvCF,EAAcziH,KAAKm/B,EAAO0jF,EAAe,SAASvvF,EAAUryB,GAEvC,IAAbqyB,GACA6L,EAAM6mE,UAAuB,YAAEuc,qBAAqBjoH,EAAQqoH,GAE3Dr/F,GAAE0tE,YAAY/2E,IACfA,EAASqZ,EAAUryB,EAE3B,GAER,EAIAqgH,GAAexhH,UAAUkjH,OAAS,SAC9BC,EAAeC,EAAeC,EAAkBC,EAAoBC,EAAiBC,EAAiBC,GAEtG,IAAIpkF,EAAQ/hC,KAEZA,KAAKolH,iBAAiBzD,GAAY3hH,KAAK6E,IAAKghH,GAC5C7lH,KAAKolH,iBAAiBxD,GAAiB5hH,KAAKyjH,SAAUuC,GACtDhmH,KAAKolH,iBAAiBvD,GAAc7hH,KAAK0jH,MAAOwC,EAAiB,SAASxpG,GAAS,OAAOwJ,GAAE1lB,KAAKkc,EAAQ,GACzG1c,KAAKolH,iBAAiBtD,GAAY9hH,KAAKokH,UAAW0B,GAClD9lH,KAAKolH,iBAAiBpD,GAAchiH,KAAK2jH,MAAOsC,GAIhD,IAAIG,EAAgBpmH,KAAK4oG,UAAuB,YAAE4c,WAAWzD,IAC7D,IAAK77F,GAAE0tE,YAAYwyB,IAAkBlgG,GAAExsB,QAAQ0sH,IAAkBA,EAAc1tH,OAU3E,IATA,IAAI2tH,EACAC,EAAkB,SAASpwF,EAAUryB,GACpB,IAAbqyB,GACA6L,EAAM6mE,UAAuB,YAAEuc,qBAAqBpD,GAAesE,GAElEngG,GAAE0tE,YAAYmyB,IACfA,EAAiB7vF,EAAUryB,EAEnC,EACStL,EAAI6tH,EAAc1tH,OAAS,EAAGH,GAAK,EAAGA,IAC3C6tH,EAAgBpmH,KAAK4oG,UAAuB,YAAE4c,WAAWzD,IACzDsE,EAAeD,EAAcxzG,MAC7BmvB,EAAM6mE,UAAuB,YAAE+c,OAC1Bz/F,GAAE6uE,cAAcsxB,IACjBtkF,EAAMxhB,OAAO8lG,EAAcC,GAMvC,IAAIC,EAAgBvmH,KAAK4oG,UAAuB,YAAE4c,WAAWvD,IAC7D,IAAK/7F,GAAE0tE,YAAY2yB,IAAkBrgG,GAAExsB,QAAQ6sH,IAAkBA,EAAc7tH,OAU3E,IATA,IAAI8tH,EACAC,EAAkB,SAASvwF,EAAUryB,GACpB,IAAbqyB,GACA6L,EAAM6mE,UAAuB,YAAEuc,qBAAqBlD,GAAeuE,GAElEtgG,GAAE0tE,YAAYuyB,IACfA,EAAiBjwF,EAAUryB,EAEnC,EACSwB,EAAIkhH,EAAc7tH,OAAS,EAAG2M,GAAK,EAAGA,IAC3CkhH,EAAgBvmH,KAAK4oG,UAAuB,YAAE4c,WAAWvD,IACzDuE,EAAeD,EAAc3zG,MAC7BmvB,EAAM6mE,UAAuB,YAAE+c,OAC1Bz/F,GAAE6uE,cAAcyxB,IACjBzkF,EAAMia,OAAOwqE,EAAcC,EAI3C,EAEAvC,GAAexhH,UAAU2/G,sBAAwB,SAAS7+G,GACtD,MAAgB,iBAATA,GAAoC,WAATA,GAA8B,eAATA,GAAkC,aAATA,GAAgC,+BAATA,CAC3G,EAGA0gH,GAAexhH,UAAe,IAAcwhH,GAAexhH,UAAUmC,IACrEq/G,GAAexhH,UAAoB,SAASwhH,GAAexhH,UAAU+gH,SACrES,GAAexhH,UAAiB,MAAYwhH,GAAexhH,UAAUghH,MACrEQ,GAAexhH,UAAqB,UAAQwhH,GAAexhH,UAAU0hH,UACrEF,GAAexhH,UAAkB,OAAWwhH,GAAexhH,UAAU6d,OACrE2jG,GAAexhH,UAAkB,OAAWwhH,GAAexhH,UAAUs5C,OACrEkoE,GAAexhH,UAAiB,MAAYwhH,GAAexhH,UAAUihH,MACrEO,GAAexhH,UAAwB,aAAKwhH,GAAexhH,UAAU6hH,aACrEL,GAAexhH,UAAyB,cAAIwhH,GAAexhH,UAAU8hH,cACrEN,GAAexhH,UAAuB,YAAMwhH,GAAexhH,UAAU+hH,YACrEP,GAAexhH,UAAoB,SAASwhH,GAAexhH,UAAUoM,SAQvD,IA6bV43G,GA7bcC,GAAyB,QACzBC,GAAyB,SACzBC,GAAyB,SACzBC,GAAyB,QACzBC,GAAyB,SACzBC,GAAyB,QACzBC,GAAyB,QAEzBC,GAAyB,sBACzBC,GAAyB,UACzBC,GAAyB,WACzBC,GAAsB,CACpCV,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IAOAE,GAAsB,SAASx2B,GAC/B9wF,KAAY,MAAI,CAAC,EACjBA,KAAKunH,uBAAwB,EAEzBz2B,EAAyB,iBACzB9wF,KAAK3B,KAAO,MAAQyyF,EAAyB,iBAE7C9wF,KAAK3B,KAAO,MAAQyyF,EAAc,MAAI,YAG1C,IAAI02B,EAAe12B,EAAoB,YAClB,WAAjB02B,GAA8C,iBAAjBA,IAC7B7zB,GAAUG,SAAS,4BAA8B0zB,EAAe,4BAChEA,EAAe12B,EAAoB,YAAI,UAGtB,iBAAjB02B,GAAmCthG,GAAEyzE,aAAaK,eAClDh6F,KAAKo5F,QAAUlzE,GAAEyzE,aAEjB35F,KAAKo5F,QAAUlzE,GAAE+xE,OAGrBj4F,KAAK8T,OACL9T,KAAKynH,cAAc32B,GACnB9wF,KAAK0nH,UACL1nH,KAAK2lH,MACT,EAEA2B,GAAoB5kH,UAAU26F,WAAa,WACvC,IAAIxjG,EAAI,CAAC,EAUT,OARAmG,KAAK8T,OAGLoS,GAAEghC,KAAKlnD,KAAY,MAAG,SAASuJ,EAAG1G,GACzBqjB,GAAEwuE,QAAQ2yB,GAAqBxkH,KAChChJ,EAAEgJ,GAAK0G,EAEf,GACO1P,CACX,EAEAytH,GAAoB5kH,UAAUoR,KAAO,WACjC,IAAI9T,KAAKvB,SAAT,CAEA,IAAIkpH,EAAQ3nH,KAAKo5F,QAAQpwF,MAAMhJ,KAAK3B,MAEhCspH,IACA3nH,KAAY,MAAIkmB,GAAEquE,OAAO,CAAC,EAAGozB,GALJ,CAOjC,EAEAL,GAAoB5kH,UAAUglH,QAAU,WACpC,IAAIE,EACAC,EAIA7nH,KAAKo5F,UAAYlzE,GAAEyzE,cACnBiuB,EAAa1hG,GAAE+xE,OAAOjvF,MAAMhJ,KAAK3B,MAEjC6nB,GAAE+xE,OAAOj8C,OAAOh8C,KAAK3B,MACrB6nB,GAAE+xE,OAAOj8C,OAAOh8C,KAAK3B,MAAM,GAEvBupH,GACA5nH,KAAK8nH,cAAcF,IAEhB5nH,KAAKo5F,UAAYlzE,GAAE+xE,SAC1B4vB,EAAmB3hG,GAAEyzE,aAAa3wF,MAAMhJ,KAAK3B,MAE7C6nB,GAAEyzE,aAAa39C,OAAOh8C,KAAK3B,MAEvBwpH,GACA7nH,KAAK8nH,cAAcD,GAG/B,EAEAP,GAAoB5kH,UAAUijH,KAAO,WAC7B3lH,KAAKvB,UAETuB,KAAKo5F,QAAQv0F,IACT7E,KAAK3B,KACL2/F,GAAch+F,KAAY,OAC1BA,KAAK+nH,YACL/nH,KAAKgoH,gBACLhoH,KAAK44F,OACL54F,KAAKioH,WACLjoH,KAAKkoH,cAEb,EAEAZ,GAAoB5kH,UAAUylH,UAAY,SAASjmH,GAE/C,OADAlC,KAAK8T,OACE9T,KAAY,MAAEkC,EACzB,EAEAolH,GAAoB5kH,UAAUs5C,OAAS,WAEnCh8C,KAAKo5F,QAAQp9C,OAAOh8C,KAAK3B,MAAM,EAAO2B,KAAKkoH,eAC3CloH,KAAKo5F,QAAQp9C,OAAOh8C,KAAK3B,MAAM,EAAM2B,KAAKkoH,cAC9C,EAIAZ,GAAoB5kH,UAAU4iF,MAAQ,WAClCtlF,KAAKg8C,SACLh8C,KAAY,MAAI,CAAC,CACrB,EAOAsnH,GAAoB5kH,UAAUolH,cAAgB,SAAS3tF,EAAOiiE,EAAenD,GACzE,QAAI/yE,GAAE4oE,SAAS30D,UACmB,IAApB,IAAmCiiE,EAAgB,QAC7Dp8F,KAAK+nH,iBAAgC,IAAX,EAA0B/nH,KAAKooH,eAAiBnvB,EAE1Ej5F,KAAK8T,OAELoS,GAAEghC,KAAK/sB,EAAO,SAAStjB,EAAKrT,GACnBxD,KAAY,MAAE2C,eAAea,IAASxD,KAAY,MAAEwD,KAAU44F,IAC/Dp8F,KAAY,MAAEwD,GAAQqT,EAE9B,EAAG7W,MAEHA,KAAK2lH,QAEE,EAGf,EAMA2B,GAAoB5kH,UAAU2lH,SAAW,SAASluF,EAAO8+D,GACrD,QAAI/yE,GAAE4oE,SAAS30D,KACXn6B,KAAK+nH,iBAAgC,IAAX,EAA0B/nH,KAAKooH,eAAiBnvB,EAE1Ej5F,KAAK8T,OACLoS,GAAEquE,OAAOv0F,KAAY,MAAGm6B,GACxBn6B,KAAK2lH,QAEE,EAGf,EAEA2B,GAAoB5kH,UAAU4lH,WAAa,SAAS9kH,GAChDxD,KAAK8T,OACDtQ,KAAQxD,KAAY,eACbA,KAAY,MAAEwD,GACrBxD,KAAK2lH,OAEb,EAEA2B,GAAoB5kH,UAAU6lH,sBAAwB,SAAS5vF,GAC3D34B,KAAKqoH,SAASniG,GAAEgN,KAAKypE,WAAWhkE,GACpC,EAGA2uF,GAAoB5kH,UAAUyhH,qBAAuB,SAASxrF,GAE1D34B,KAAK8nH,cAAc,CACf,kBAAqBnvF,GAAY,UACjC,0BAA6BzS,GAAEgN,KAAKiqE,gBAAgBxkE,IAAa,WAClE,GACP,EAEA2uF,GAAoB5kH,UAAU8lH,kBAAoB,WAC9C,OAAOtiG,GAAEyvE,uBAAuB,CAC5B,kBAAqB31F,KAAY,MAAqB,kBACtD,0BAA6BA,KAAY,MAA6B,2BAE9E,EAEAsnH,GAAoB5kH,UAAU+kH,cAAgB,SAAS32B,GACnD9wF,KAAKooH,eAAiBpoH,KAAK+nH,YAAcj3B,EAA0B,kBACnE9wF,KAAKyoH,aAAa33B,EAA4B,qBAC9C9wF,KAAK0oH,kBAAkB53B,EAAsB,eAC7C9wF,KAAK2oH,eAAe73B,EAA0B,mBAC9C9wF,KAAK4oH,oBAAoB93B,EAA+B,wBACxD9wF,KAAK6oH,WAAW/3B,EAAsB,cAC1C,EAEAw2B,GAAoB5kH,UAAU+lH,aAAe,SAAShqH,GAClDuB,KAAKvB,SAAWA,EACZuB,KAAKvB,SACLuB,KAAKg8C,SAELh8C,KAAK2lH,MAEb,EAEA2B,GAAoB5kH,UAAUgmH,kBAAoB,SAASR,GACnDA,IAAkBloH,KAAKkoH,gBACvBloH,KAAKg8C,SACLh8C,KAAKkoH,cAAgBA,EACrBloH,KAAK2lH,OAEb,EAEA2B,GAAoB5kH,UAAUimH,eAAiB,SAASV,GAChDA,IAAejoH,KAAKioH,aACpBjoH,KAAKioH,WAAaA,EAClBjoH,KAAKg8C,SACLh8C,KAAK2lH,OAEb,EAEA2B,GAAoB5kH,UAAUkmH,oBAAsB,SAASZ,GACrDA,IAAoBhoH,KAAKgoH,kBACzBhoH,KAAKgoH,gBAAkBA,EACvBhoH,KAAKg8C,SACLh8C,KAAK2lH,OAEb,EAEA2B,GAAoB5kH,UAAUomH,oBAAsB,WAChD,OAAO9oH,KAAKgoH,eAChB,EAEAV,GAAoB5kH,UAAUmmH,WAAa,SAASjwB,GAC5CA,IAAW54F,KAAK44F,SAChB54F,KAAK44F,SAASA,EACd54F,KAAKg8C,SACLh8C,KAAK2lH,OAEb,EAEA2B,GAAoB5kH,UAAUyiH,qBAAuB,SAASzoG,EAAO7Y,GACjE,IAAIklH,EAAQ/oH,KAAKgpH,eAAetsG,GAC5BusG,EAASplH,EAAK6Y,GACdwsG,EAAQlpH,KAAKmpH,qBAAqBxH,IAClCyH,EAAappH,KAAKmpH,qBAAqBvH,IACvCyH,EAAUrpH,KAAKmpH,qBAAqBtH,IACpCyH,EAAQtpH,KAAKmpH,qBAAqBrH,IAClCyH,EAAUvpH,KAAKmpH,qBAAqBnH,IACpCwH,EAAWxpH,KAAKmpH,qBAAqBlH,GAAe,IACpDwH,EAAWzpH,KAAKmpH,qBAAqBpH,GAAe,IAEpDgH,IAAUpC,IAEVzgG,GAAEquE,OAAO20B,EAAOD,GAGhBjpH,KAAK0lH,uBAAuB5D,GAAYmH,GAGxCjpH,KAAK0lH,uBAAuB1D,GAAciH,GAC1CjpH,KAAK0lH,uBAAuB7D,GAAcoH,IACnCF,IAAUnC,IAEjB1gG,GAAEghC,KAAK+hE,EAAQ,SAAS1/G,EAAG1G,GACjBA,KAAKumH,IACPA,EAAWvmH,GAAK0G,EAExB,GACAvJ,KAAK0lH,uBAAuB7D,GAAcoH,IACnCF,IAAUlC,GACjB3gG,GAAEghC,KAAK+hE,EAAQ,SAASzlH,GAGpB0iB,GAAEghC,KAAK,CAACgiE,EAAOE,EAAYE,EAAOC,GAAU,SAASG,GAC7ClmH,KAAQkmH,UACDA,EAAalmH,EAE5B,GACA0iB,GAAEghC,KAAKuiE,EAAU,SAASE,GAClBnmH,KAAQmmH,UACDA,EAAWnmH,EAE1B,GAEA6lH,EAAQ7lH,IAAQ,CAEpB,GACOulH,IAAUjC,IACjB5gG,GAAEghC,KAAK+hE,EAAQ,SAAS1/G,EAAG1G,GAGnBA,KAAKqmH,EACLA,EAAMrmH,IAAM0G,GAIN1G,KAAKymH,IACPA,EAAMzmH,GAAK,GAEfymH,EAAMzmH,IAAM0G,EAEpB,EAAGvJ,MACHA,KAAK0lH,uBAAuB7D,GAAcoH,IACnCF,IAAU9B,IACjB/gG,GAAEghC,KAAK+hE,EAAQ,SAAS1/G,EAAG1G,GACnBqjB,GAAExsB,QAAQ6P,KACJ1G,KAAK0mH,IACPA,EAAQ1mH,GAAK,IAGjBqjB,GAAEghC,KAAK39C,EAAG,SAAS0lE,GACV/oD,GAAEwuE,QAAQ60B,EAAQ1mH,GAAIosE,IACvBs6C,EAAQ1mH,GAAGiC,KAAKmqE,EAExB,GAER,GACAjvE,KAAK0lH,uBAAuB7D,GAAcoH,IACnCF,IAAU/B,IACjBwC,EAAS1kH,KAAKmkH,GACdjpH,KAAK0lH,uBAAuB3D,GAAekH,IACpCF,IAAUhC,KACjB0C,EAAS3kH,KAAKmkH,GACdjpH,KAAK0lH,uBAAuB7D,GAAcoH,IAG9Ct1B,GAAUluF,IAAI,uDACdkuF,GAAUluF,IAAI5B,GAEd7D,KAAK2lH,MACT,EAEA2B,GAAoB5kH,UAAUgjH,uBAAyB,SAAShpG,EAAO7Y,GACnE,IAAIyZ,EAAItd,KAAY,MAAEA,KAAKgpH,eAAetsG,IACrCwJ,GAAE0tE,YAAYt2E,IACf4I,GAAEghC,KAAKrjD,EAAM,SAAS0F,EAAG1G,GACjB6Z,IAAUqlG,IAAiBrlG,IAAUulG,GAIrC/7F,GAAEghC,KAAK5pC,EAAG,SAASssG,GACXA,EAAc/mH,KAAO0G,UACdqgH,EAAc/mH,EAE7B,UAEOya,EAAEza,EAEjB,EAAG7C,KAEX,EAEAsnH,GAAoB5kH,UAAU8iH,WAAa,SAAS9oG,GAChD,OAAO1c,KAAKmoH,UAAUnoH,KAAKgpH,eAAetsG,GAC9C,EAEA4qG,GAAoB5kH,UAAUsmH,eAAiB,SAAStsG,GACpD,OAAIA,IAAUilG,GACHgF,GACAjqG,IAAUklG,GACVgF,GACAlqG,IAAUmlG,GACVgF,GACAnqG,IAAUolG,GACVgF,GACApqG,IAAUqlG,GACVgF,GACArqG,IAAUulG,GACV+E,GACAtqG,IAAUslG,GACViF,QAEPtzB,GAAU9tF,MAAM,iBAAkB6W,EAE1C,EAEA4qG,GAAoB5kH,UAAUymH,qBAAuB,SAASzsG,EAAOmtG,GACjE,IAAI3nH,EAAMlC,KAAKgpH,eAAetsG,GAE9B,OADAmtG,EAAc3jG,GAAE0tE,YAAYi2B,GAAe,CAAC,EAAIA,EACzC7pH,KAAY,MAAEkC,KAASlC,KAAY,MAAEkC,GAAO2nH,EACvD,EAEAvC,GAAoB5kH,UAAUonH,gBAAkB,SAASjJ,EAAYlhC,GACjE,IAAIoqC,EAAS/pH,KAAKmoH,UAAUf,KAAqB,CAAC,EAClD2C,EAAOlJ,GAAclhC,EACrB3/E,KAAY,MAAEonH,IAAoB2C,EAClC/pH,KAAK2lH,MACT,EAEA2B,GAAoB5kH,UAAUsnH,mBAAqB,SAASnJ,GACxD,IACIlhC,GADS3/E,KAAKmoH,UAAUf,KAAqB,CAAC,GAC3BvG,GAKvB,OAJK36F,GAAE0tE,YAAYjU,YACR3/E,KAAY,MAAEonH,IAAkBvG,GACvC7gH,KAAK2lH,QAEFhmC,CACX,EA6BA,IAIIsqC,GAJAC,GAAoB,SAAS5qH,EAAK6qH,GAClC,MAAM,IAAIvpG,MAAMthB,EAAM,gCAC1B,EAMI8qH,GAAgB,SAAS3wD,GAAI,OAAOA,CAAE,EAExB4wD,GAAwB,WACxBC,GAAwB,SAExBC,GAAwB,WAQtCC,GAAWryF,EAAIsyF,gBAAkB,oBAAqB,IAAIA,eAK1DC,IAAoBF,KAA2C,IAA/B/xF,GAAUt2B,QAAQ,UAAsD,IAAlCs2B,GAAUt2B,QAAQ,WAGxFwoH,GAAa,KACbnyF,GAAsB,aACtBmyF,GAAa,WAET,OAAOnyF,GAAsB,WAAEzyB,MAAMyyB,GAAWxrB,UACpD,GAGJ,IAAI49G,GAAqB,CACrB,MAAU,SACV,OAAU,UACV,OAAU,UACV,OAAU,UACV,MAAU,UAMVC,GAAiB,CACjB,SAAqC,8BACrC,UAAqC,CAAC,EACtC,WAAqCD,GACrC,uBAAqC,CAAC,EACtC,WAAqC,OACrC,cAAqC,MACrC,mBAAqCN,GACrC,SAAqC,uBACrC,aAAqC,EACrC,IAAqC,wBACrC,mBAAqC,EACrC,wBAAqC,EACrC,eAAqCvsB,GACrC,OAAqC,EACrC,YAAqC,SACrC,iBAAqC,GACrC,cAAqC,GACrC,YAAqC,GACrC,OAAqCA,GACrC,UAAqC,KACrC,iBAAqC,EACrC,gBAAqC,EACrC,4BAAqC,EACrC,cAAqC,EACrC,sBAAqC,EACrC,eAAqC,EACrC,MAAqC,EACrC,SAAqC,EACrC,KAAqC,EACrC,OAAqC,EACrC,oBAAqC,IACrC,kBAAqC,IACrC,SAAqC,EACrC,qBAAqC,EACrC,gBAAqC,EACrC,eAAqC,EACrC,IAAqC,EACrC,6BAAqC,EACrC,gCAAqC,EACrC,kCAAqC,eACrC,+BAAqC,KACrC,mBAAqC,GACrC,YAAqC,CAAC,EACtC,YAAqC,EACrC,gBAAqC,EACrC,WAAqC,GACrC,wBAAqC,IACrC,yBAAqC,IACrC,iBAAqC,EACrC,MAAqC,CAAC,EACtC,mBAAqC,IAAIr5F,OAAO,4DAChD,sBAAqC,oBACrC,eAAqC,EACrC,sBAAqC,EACrC,gBAAqC,EACrC,qBAAqC,EACrC,uBAAqC,KACrC,uBAAqC,IAAIA,OAAO,gDAChD,0BAAqC,IACrC,cAAqCmuF,GACrC,cAAqC,EACrC,wBAAqC,EACrC,aAAqC,uDAGrCi4B,IAAa,EAMbC,GAAc,WAAY,EAW1BC,GAAe,SAASh9D,EAAO8iC,EAAQzyF,GACvC,IAAI6C,EACAmC,EAAUhF,IAASgsH,GAAyBJ,GAAkBA,GAAgB5rH,GAElF,GAAIgF,GAlIW,IAkIDqjH,GACVxlH,EAAWmC,MACR,CACH,GAAIA,IAAW6iB,GAAExsB,QAAQ2J,GAErB,YADAswF,GAAU9tF,MAAM,gCAAkCxH,GAGtD6C,EAAW,IAAI6pH,EACnB,CASA,GAPA7pH,EAAS+pH,eAAiB,CAAC,EAE3B/pH,EAASiiH,MAAMn1D,EAAO8iC,EAAQzyF,GAE9B6C,EAAiB,OAAI,IAAIgjH,GACzBhjH,EAAiB,OAAEiiH,MAAMjiH,IAEpBA,EAASq+F,WAAW,8BAA+B,CAKpD,IAAI2rB,EAAahlG,GAAEgN,KAAKipE,eAAe,MACnCgvB,EAAqB,CAAC,EACtBC,GAAU,EACdllG,GAAEghC,KAAKgkE,EAAY,SAASG,EAAWC,GACnCH,EAAmB,WAAaG,GAAWD,EACvCA,IACAD,GAAU,EAElB,GACIA,GACAlqH,EAAiB,OAAEuiH,SAAS0H,EAEpC,CAeA,OAXAz4B,GAAOC,MAAQD,GAAOC,OAASzxF,EAASq+F,WAAW,UAI9Cr5E,GAAE0tE,YAAYvwF,IAAW6iB,GAAExsB,QAAQ2J,KAGpCnC,EAASqqH,eAAe3oH,KAAK1B,EAAiB,OAAGmC,EAAe,QAChEnC,EAASqqH,eAAeloH,IAGrBnC,CACX,EAoBA6pH,GAAYroH,UAAUzB,KAAO,SAAU+sD,EAAO8iC,EAAQzyF,GAClD,GAAI6nB,GAAE0tE,YAAYv1F,GACd2B,KAAKwrH,aAAa,iEADtB,CAIA,GAAIntH,IAASgsH,GAAb,CAKA,IAAInpH,EAAW8pH,GAAah9D,EAAO8iC,EAAQzyF,GAI3C,OAHA4rH,GAAgB5rH,GAAQ6C,EACxBA,EAASuqH,UAEFvqH,CANP,CAFIlB,KAAKwrH,aAAa,+FAFtB,CAWJ,EASAT,GAAYroH,UAAUygH,MAAQ,SAASn1D,EAAO8iC,EAAQzyF,GAClDyyF,EAASA,GAAU,CAAC,EAEpB9wF,KAAe,UAAI,EACnBA,KAAa,OAAI,CAAC,EAElB,IAAI0rH,EAAoB,CAAC,EA6BzB,GA1BM,uBAAwB56B,IACXA,EAAiB,UAAK+5B,GAAyB,UACjDp+G,MAAM,qBACfi/G,EAAsC,mBArOR,QAyOtC1rH,KAAK2rH,WAAWzlG,GAAEquE,OAAO,CAAC,EAAGs2B,GAAgBa,EAAmB56B,EAAQ,CACpE,KAAQzyF,EACR,MAAS2vD,EACT,aAAiB3vD,IAASgsH,GAAyBhsH,EAAOgsH,GAAwB,IAAMhsH,GAAQ,WAGpG2B,KAAW,KAAI+9F,GAEf/9F,KAAK4rH,mBAAqB,GAC1B5rH,KAAK6rH,gBAAkB,GACvB7rH,KAAK8rH,kBAAoB,GACzB9rH,KAAKilH,OAAS,CACV,oBAAsB,EACtB,iBAAmB,GAIvBjlH,KAAK+jH,iBAAmB,CAAC,EACzB/jH,KAAK+rH,gBAAkB/rH,KAAKu/F,WAAW,kBACnCv/F,KAAK+rH,gBACL,GAAK7lG,GAAEyzE,aAAaK,cAAa,IAAUwwB,IASvC,GADAxqH,KAAKgsH,gBACDrB,IAAcxyF,EAAIvT,iBAAkB,CAYpC,IAAIqnG,EAAkB/lG,GAAEhI,KAAK,WACpBle,KAAK+jH,iBAAiB/8G,OAAOo/F,SAC9BpmG,KAAK+jH,iBAAiB/8G,OAAOy/F,MAAM,CAACkB,WAAW,GAEvD,EAAG3nG,MACHm4B,EAAIvT,iBAAiB,WAAY,SAASi8E,GAClCA,EAAc,WACdorB,GAER,GACA9zF,EAAIvT,iBAAiB,mBAAoB,WACC,WAAlCsuE,GAA4B,iBAC5B+4B,GAER,EACJ,OAnCAjsH,KAAK+rH,iBAAkB,EACvBp4B,GAAUluF,IAAI,6EACdygB,GAAEghC,KAAKlnD,KAAKksH,sBAAuB,SAASC,GACxCx4B,GAAUluF,IAAI,wBAA0B0mH,EAAeC,WACvDlmG,GAAEyzE,aAAa39C,OAAOmwE,EAAeC,UACzC,GAkCRpsH,KAAkB,YAAIA,KAAa,OAAI,IAAIsnH,GAAoBtnH,KAAa,QAC5EA,KAAKqsH,uBAAyB,CAAC,EAC/BrsH,KAAKssH,aAEL,IAAI/0B,EAAOrxE,GAAEoxE,OACRt3F,KAAK2qG,mBAIN3qG,KAAK8nH,cAAc,CACf,YAAeyC,GAAmBhzB,EAClC,WAAcA,GACf,IAGPv3F,KAAKw+G,MAAQ,IAAIX,GAAmB,CAChCE,gBAAiB73F,GAAEhI,KAAK,WACpB,OAAOle,KAAK4sG,aAAa,SAAW,IAAM5sG,KAAKu/F,WAAW,cAAqB,KACnF,EAAGv/F,MACHi+G,cAAe/3F,GAAEhI,KAAKle,KAAKu/F,WAAYv/F,MACvCm+G,cAAej4F,GAAEhI,KAAKle,KAAK2rH,WAAY3rH,MACvCq+G,gBAAiBn4F,GAAEhI,KAAKle,KAAK6qG,aAAc7qG,MAC3Cs+G,aAAcp4F,GAAEhI,KAAKle,KAAKsgG,MAAOtgG,QAErCA,KAAKw+G,MAAMv9G,OACXjB,KAAY,MAAIA,KAAKw+G,MAErBx+G,KAAKusH,YAAc,IAAIpU,GAAYn4G,MACnCA,KAAKusH,YAAYtrH,OAEjBjB,KAAKwsH,eACLxsH,KAAKysH,oCACT,EAMA1B,GAAYroH,UAAU8pH,aAAe,WACjC,GAAIxsH,KAAKu/F,WAAW,uBAChB5L,GAAUluF,IAAI,wEACX,GAAIygB,GAAEyF,eAAequE,eACxB,IACI,IAAI0yB,EAAa1sH,KAAKu/F,WAAW,QAAU,IAAMv/F,KAAKu/F,WAAW,SAC7DotB,EAAa,aAAeD,EAI5BE,EAAiC,qBAAuBF,GACxDxmG,GAAEyF,eAAennB,IAAIooH,IAAoC1mG,GAAEyF,eAAennB,IAAImoH,IAC9EzmG,GAAEyF,eAAe9mB,IAAI8nH,EAAY,QAAUzmG,GAAEoxE,QAGjDpxE,GAAEyF,eAAe9mB,IAAI+nH,EAAgC,KACrD5sH,KAAK6sH,OAAS3mG,GAAEyF,eAAennB,IAAImoH,GAKnCx0F,EAAIvT,iBAAiB,eAAgB,WACjCsB,GAAEyF,eAAeqwB,OAAO4wE,EAC5B,EACJ,CAAE,MAAM52G,GACJhW,KAAKwrH,aAAa,4BAA6Bx1G,EACnD,MAEAhW,KAAKwrH,aAAa,wEAE1B,EAEAT,GAAYroH,UAAUupG,WAAa,WAC/B,OAAOjsG,KAAK6sH,QAAU,IAC1B,EAEA9B,GAAYroH,UAAUoqH,sBAAwB,WAC1C,GAAI9sH,KAAKu/F,WAAW,uBAEhB,OADA5L,GAAUluF,IAAI,iEACP9D,QAAQC,SAAQ,GAG3B,IAAImrH,EAAyB,IAAI1uB,GAAkBF,IAC/C0uB,EAAS7sH,KAAKisG,aAClB,OAAO8gB,EAAuB9rH,OACzBkd,KAAK,WACF,OAAO4uG,EAAuBprB,QAClC,GACCxjF,KAAK,SAAU6uG,GACZ,IAAK,IAAIz0H,EAAI,EAAGA,EAAIy0H,EAAWt0H,OAAQH,IAGnC,GAAI8vG,GAAmB2kB,EAAWz0H,KAAOy0H,EAAWz0H,GAAU,QAAMs0H,EAChE,OAAO,EAGf,OAAO,CACX,GACCzuG,MAAM8H,GAAEhI,KAAK,SAAUlI,GACpBhW,KAAKwrH,aAAa,oCAAqCx1G,EAC3D,EAAGhW,MACX,EAEA+qH,GAAYroH,UAAU+pH,mCAAqCptB,GAA0B,SAAS4tB,GAC1F,GAAK90F,EAAsB,iBAA3B,CAKA,IAAI+0F,EAAehnG,GAAEhI,KAAK,SAASixF,GAC/B,IAAIge,EAAuBjnG,GAAEhI,KAAK,WAC9Ble,KAAKotH,UAAYptH,KAAKotH,WAAa,IAAIj1F,EAAmB,cAAEn4B,MAC5DA,KAAKotH,UAA2B,gBAAEje,EACtC,EAAGnvG,MAECkmB,GAAE0tE,YAAYz7D,EAAmB,eACjC+xF,GAAkBlqH,KAAKu/F,WAAW,gBAAiB4tB,GAEnDA,GAER,EAAGntH,MAMCqtH,EAAartH,KAAKu/F,WAAW,2BAA6B,GAAqB,IAAhB/mG,KAAKkoD,UAAkB1gD,KAAKu/F,WAAW,2BACtG0tB,GAAeI,EACfH,GAAa,GAEbltH,KAAK8sH,wBACA3uG,KAAK,SAAUmvG,GACRA,GACAJ,GAAa,EAErB,EA5BR,MAFIv5B,GAAUG,SAAS,wEAgC3B,GAEAi3B,GAAYroH,UAAU6qH,wBAA0B,WAC5CvtH,KAAKysH,oCAAmC,EAC5C,EAEA1B,GAAYroH,UAAU8qH,uBAAyB,WAC3C,OAAIxtH,KAAKotH,UACEptH,KAAKotH,UAAyB,gBAElCzrH,QAAQC,SACnB,EAEAmpH,GAAYroH,UAAU+qH,wBAA0B,WAC5C,OAAIztH,KAAKotH,UACEptH,KAAKotH,UAA0B,iBAEnCzrH,QAAQC,SACnB,EAEAmpH,GAAYroH,UAAUgrH,yBAA2B,WAC7C,OAAI1tH,KAAKotH,UACEptH,KAAKotH,UAA2B,kBAEpCzrH,QAAQC,SACnB,EAEAmpH,GAAYroH,UAAUm3G,0BAA4B,WAC9C,OAAO75G,KAAK2tH,0BAA4B3tH,KAAKu/F,WAAW,sBAC5D,EAEAwrB,GAAYroH,UAAUkrH,iCAAmC,WACrD,IAAIzzF,EAAQ,CAAC,EACT0zF,EAAY7tH,KAAK2tH,yBAIrB,OAHIE,IACA1zF,EAAqB,cAAI0zF,GAEtB1zF,CACX,EAEA4wF,GAAYroH,UAAUorH,uBAAyB,WAC3C,IAAIC,EAAa,KACbF,EAAY7tH,KAAK2tH,yBASrB,OARIE,IAMAE,EAAa,iDALM7nG,GAAEyxE,eAAe,CAChC,UAAak2B,EACb,YAAe7tH,KAAK2qG,kBACpB,MAAS3qG,KAAKu/F,WAAW,YAI1BwuB,CACX,EAEAhD,GAAYroH,UAAUirH,uBAAyB,WAC3C,IAAIE,EAAY,KAIhB,OAHI7tH,KAAKotH,YACLS,EAAY7tH,KAAKotH,UAAoB,UAElCS,GAAa,IACxB,EAGA9C,GAAYroH,UAAUsrH,eAAiB,WACnC,OAAOhuH,KAAKotH,SAChB,EAIArC,GAAYroH,UAAU+oH,QAAU,WAO5B,GANAzrH,KAAKu/F,WAAW,SAAhBv/F,CAA0BA,MAC1BA,KAAKiuH,0BACLjuH,KAAa,OAAEyjH,SAASzjH,KAAkB,YAAEwoH,qBAIxCxoH,KAAKu/F,WAAW,iBAAmBv/F,KAAKu/F,WAAW,wBAAyB,CAC5E,IAAI2rB,EAAahlG,GAAEgN,KAAKipE,eAAe,MACvCj2E,GAAEghC,KAAKgkE,EAAY,SAASgD,EAAY5C,GAGpCtrH,KAAKsoH,WAAWgD,EACpB,EAAEptG,KAAKle,MACX,CACJ,EAGA+qH,GAAYroH,UAAUurH,wBAA0B,WAC5CjuH,KAAkB,YAAEuoH,sBAAsBr1B,GAAWv6D,UAEjD34B,KAAKu/F,WAAW,kBAAoBv/F,KAAKu/F,WAAW,yBACpDv/F,KAAKqoH,SAASniG,GAAEgN,KAAKipE,kBAErBn8F,KAAKu/F,WAAW,kBAChBv/F,KAAkB,YAAEmkH,qBAAqBjxB,GAAWv6D,SAE5D,EAEAoyF,GAAYroH,UAAUyrH,YAAc,WAChCjoG,GAAEghC,KAAKlnD,KAAK4rH,mBAAoB,SAAS38C,GACrCjvE,KAAKouH,WAAWroH,MAAM/F,KAAMivE,EAChC,EAAGjvE,MAEEA,KAAKquH,0BACNnoG,GAAEghC,KAAKlnD,KAAK6rH,gBAAiB,SAAS58C,GAClCjvE,KAAKwjH,cAAcz9G,MAAM/F,KAAMivE,EACnC,EAAGjvE,aAGAA,KAAK4rH,0BACL5rH,KAAK6rH,eAChB,EAEAd,GAAYroH,UAAU0rH,WAAa,SAASE,EAAU5oH,GAClD,GAAI1F,KAAKu/F,WAAW,OAEhB,OADAv/F,KAAKwrH,aAAa,0DACX,EAGX,IAAKV,GAED,OADA9qH,KAAK4rH,mBAAmB9mH,KAAK,CAACwpH,EAAU5oH,KACjC,EAGX,IAAI6oH,GAAK,IAAID,GAAWrtH,KAAKjB,MAC7B,OAAOuuH,EAAGjuB,MAAMv6F,MAAMwoH,EAAI7oH,EAC9B,EAWAqlH,GAAYroH,UAAU8rH,kBAAoB,SAAS3xG,EAAUhZ,GACzD,GAAIqiB,GAAE0tE,YAAY/2E,GACd,OAAO,KAGX,GAAI2tG,GAIA,OAHwB,SAASt0F,GAC7BrZ,EAASqZ,EAAUryB,EACvB,EAMA,IAAI4qH,EAAMzuH,KAAW,KACjB0uH,EAAgB,GAAKl2H,KAAK2xC,MAAsB,IAAhB3xC,KAAKkoD,UACrCiuE,EAAkB3uH,KAAKu/F,WAAW,eAAiB,IAAMmvB,EAAgB,IAK7E,OAJAD,EAAIC,GAAiB,SAASx4F,UACnBu4F,EAAIC,GACX7xG,EAASqZ,EAAUryB,EACvB,EACO8qH,CAEf,EAEA5D,GAAYroH,UAAU8gH,cAAgB,SAASt7F,EAAKrkB,EAAM1C,EAAS0b,GAC/D,IAAI8nF,GAAY,EAEhB,GAAI+lB,GAEA,OADA1qH,KAAK6rH,gBAAgB/mH,KAAKkI,WACnB23F,EAGX,IAAIiqB,EAAkB,CAClBlwF,OAAQ1+B,KAAKu/F,WAAW,cACxB6I,UAAWpoG,KAAKu/F,WAAW,iBAC3B0I,QAASjoG,KAAKu/F,WAAW,YAEzBsvB,EAAY,KAEXhyG,IAAaqJ,GAAEouE,WAAWnzF,IAA+B,iBAAZA,IAC9C0b,EAAW1b,EACXA,EAAU,MAEdA,EAAU+kB,GAAEquE,OAAOq6B,EAAiBztH,GAAW,CAAC,GAC3CqpH,KACDrpH,EAAQu9B,OAAS,OAErB,IAAIowF,EAA8B,SAAnB3tH,EAAQu9B,OACnBqwF,EAAiBpE,IAAcmE,GAAgD,eAApC3tH,EAAQinG,UAAUh7F,cAG7D4hH,EAAe7tH,EAAQ8mG,QACvBpkG,EAAc,UAAKmrH,GAAe,GAElChvH,KAAKu/F,WAAW,UAAW17F,EAAW,KAAI,GAC1CmrH,IAAgBnrH,EAAc,QAAI,GAClC7D,KAAKu/F,WAAW,SAAU17F,EAAU,IAAI,GACvC2mH,KACG3tG,EACAhZ,EAAe,SAAIgZ,GACZmyG,GAAgBhvH,KAAKu/F,WAAW,WAKvC17F,EAAe,SAAI,mBAI3BA,EAAS,GAAI7D,KAAKu/F,WAAW,MAAM,EAAE,EACrC17F,EAAQ,GAAI,IAAI4tB,MAAO+3C,UAAU16D,WAE7BggH,IACAD,EAAY,QAAUjpE,mBAAmB/hD,EAAW,aAC7CA,EAAW,MAGtBqiB,GAAEquE,OAAO1wF,EAAM7D,KAAKu/F,WAAW,2BAE/Br3E,GAAO,IAAMhC,GAAEyxE,eAAe9zF,GAE9B,IAAIorH,EAAMjvH,KACV,GAAI,QAAS6D,EAAM,CACf,IAAIqrH,EAAMh8B,GAAW33F,cAAc,OACnC2zH,EAAI5vH,IAAM4oB,EACVgrE,GAAW5mE,KAAKuS,YAAYqwF,EAChC,MAAO,GAAIH,EAAgB,CACvB,IACIpqB,EAAYgmB,GAAWziG,EAAK2mG,EAChC,CAAE,MAAO7rH,GACLisH,EAAIzD,aAAaxoH,GACjB2hG,GAAY,CAChB,CACA,IACQ9nF,GACAA,EAAS8nF,EAAY,EAAI,EAEjC,CAAE,MAAO3hG,GACLisH,EAAIzD,aAAaxoH,EACrB,CACJ,MAAO,GAAIwnH,GACP,IACI,IAAI9oB,EAAM,IAAI+oB,eACd/oB,EAAIzrE,KAAK90B,EAAQu9B,OAAQxW,GAAK,GAE9B,IAAIwkF,EAAU1sG,KAAKu/F,WAAW,eAQ9B,GAPIuvB,IACApiB,EAAQ,gBAAkB,qCAE9BxmF,GAAEghC,KAAKwlD,EAAS,SAASyiB,EAAaC,GAClC1tB,EAAI2tB,iBAAiBD,EAAYD,EACrC,GAEIhuH,EAAQgnG,iBAAqC,IAAhBzG,EAAIn6B,QAAyB,CAC1Dm6B,EAAIn6B,QAAUpmE,EAAQgnG,WACtB,IAAImnB,GAAa,IAAI79F,MAAO+3C,SAChC,CAIAk4B,EAAI6tB,iBAAkB,EACtB7tB,EAAI8tB,mBAAqB,WAsBb,IAAI3pH,EArBZ,GAAuB,IAAnB67F,EAAIjwD,WACJ,GAAmB,MAAfiwD,EAAI+K,QACJ,GAAI5vF,EACA,GAAImyG,EAAc,CACd,IAAI94F,EACJ,IACIA,EAAWhQ,GAAEkwE,WAAWsL,EAAI+tB,aAChC,CAAE,MAAOzsH,GAEL,GADAisH,EAAIzD,aAAaxoH,IACb7B,EAAQ+mG,mBAGR,OAFAhyE,EAAWwrE,EAAI+tB,YAIvB,CACA5yG,EAASqZ,EACb,MACIrZ,EAAS5iB,OAAOynG,EAAI+tB,oBAe5B,GALI5pH,EAJA67F,EAAIn6B,UACHm6B,EAAI+K,SACL,IAAIh7E,MAAO+3C,UAAY8lD,GAAc5tB,EAAIn6B,QAEjC,UAEA,oBAAsBm6B,EAAI+K,OAAS,IAAM/K,EAAIguB,WAEzDT,EAAIzD,aAAa3lH,GACbgX,EACA,GAAImyG,EAAc,CACd,IAAIW,EAAmBjuB,EAAqB,iBAAK,CAAC,EAClD7kF,EAAS,CAAC4vF,OAAQ,EAAG7E,eAAgBlG,EAAY,OAAG77F,MAAOA,EAAOiiG,WAAY6nB,EAAiB,gBACnG,MACI9yG,EAAS,EAK7B,EACA6kF,EAAI7xF,KAAKg/G,EACb,CAAE,MAAO7rH,GACLisH,EAAIzD,aAAaxoH,GACjB2hG,GAAY,CAChB,KACG,CACH,IAAIz0D,EAASgjD,GAAW33F,cAAc,UACtC20C,EAAOx0C,KAAO,kBACdw0C,EAAO7uB,OAAQ,EACf6uB,EAAO3uC,OAAQ,EACf2uC,EAAO5wC,IAAM4oB,EACb,IAAIpkB,EAAIovF,GAAWgI,qBAAqB,UAAU,GAClDp3F,EAAE8hE,WAAW5qB,aAAa9K,EAAQpsC,EACtC,CAEA,OAAO6gG,CACX,EAcAomB,GAAYroH,UAAU6oH,eAAiB,SAAS9+D,GAC5C,IAAImjE,EAASC,EAAc,GAAIC,EAAc,GAAIC,EAAiB,GAClE7pG,GAAEghC,KAAKuF,EAAO,SAASwiB,GACfA,IACA2gD,EAAU3gD,EAAK,GACX/oD,GAAExsB,QAAQk2H,GACVG,EAAejrH,KAAKmqE,GACI,mBAAX,EACbA,EAAKrsE,KAAK5C,MACHkmB,GAAExsB,QAAQu1E,IAAqB,UAAZ2gD,EAC1BC,EAAY/qH,KAAKmqE,GACV/oD,GAAExsB,QAAQu1E,KAAuC,IAA9B2gD,EAAQztH,QAAQ,UAA6C,mBAAnBnC,KAAK4vH,GACzEG,EAAejrH,KAAKmqE,GAEpB6gD,EAAYhrH,KAAKmqE,GAG7B,EAAGjvE,MAEH,IAAIgwH,EAAU,SAASC,EAAOzyH,GAC1B0oB,GAAEghC,KAAK+oE,EAAO,SAAShhD,GACnB,GAAI/oD,GAAExsB,QAAQu1E,EAAK,IAAK,CAEpB,IAAIihD,EAAS1yH,EACb0oB,GAAEghC,KAAK+nB,EAAM,SAASrsE,GAClBstH,EAASA,EAAOttH,EAAK,IAAImD,MAAMmqH,EAAQttH,EAAKK,MAAM,GACtD,EACJ,MACIjD,KAAKivE,EAAK,IAAIlpE,MAAM/F,KAAMivE,EAAKhsE,MAAM,GAE7C,EAAGzF,EACP,EAEAwyH,EAAQH,EAAa7vH,MACrBgwH,EAAQF,EAAa9vH,MACrBgwH,EAAQD,EAAgB/vH,KAC5B,EAIA+qH,GAAYroH,UAAUytH,yBAA2B,WAC7C,QAASnwH,KAAK+jH,iBAAiB/8G,MACnC,EAEA+jH,GAAYroH,UAAUwpH,oBAAsB,WACxC,IAAIkE,EAAe,SAAWpwH,KAAKu/F,WAAW,SAM9C,OALAv/F,KAAKqwH,iBAAmBrwH,KAAKqwH,kBAAoB,CAC7CrpH,OAAQ,CAACtL,KAAM,SAAU40H,SAAU,QAASlE,UAAWgE,EAAe,OACtEtL,OAAQ,CAACppH,KAAM,SAAU40H,SAAU,SAAUlE,UAAWgE,EAAe,OACvEpM,OAAQ,CAACtoH,KAAM,SAAU40H,SAAU,SAAUlE,UAAWgE,EAAe,QAEpEpwH,KAAKqwH,gBAChB,EAEAtF,GAAYroH,UAAUspH,cAAgB,WAClC,IAAKhsH,KAAKmwH,2BAA4B,CAClC,IAAII,EAAcrqG,GAAEhI,KAAK,SAASsyG,GAC9B,OAAO,IAAI3qB,GACP2qB,EAAMpE,UACN,CACItmB,UAAW9lG,KAAa,OACxB4jG,cAAe5jG,KAAKu/F,WAAW,kBAC/ByG,gBAAiB9/E,GAAEhI,KAAK,SAASra,EAAM1C,EAASqmD,GAC5C,IAAIipE,EAAazwH,KAAKu/F,WAAW,cACjCv/F,KAAKwjH,cACDxjH,KAAK4sG,aAAa4jB,EAAMF,UAAY,IAAMG,EAAWD,EAAMF,UAC3DtwH,KAAK0wH,yBAAyB7sH,GAC9B1C,EACAnB,KAAKwuH,kBAAkBhnE,EAAI3jD,GAEnC,EAAG7D,MACHimG,eAAgB//E,GAAEhI,KAAK,SAAS+wD,GAC5B,OAAOjvE,KAAK2wH,UAAU,eAAiBH,EAAM90H,KAAMuzE,EACvD,EAAGjvE,MACHmmG,oBAAqBjgF,GAAEhI,KAAKle,KAAK4wH,mBAAoB5wH,MACrDujG,gBAAgB,GAG5B,EAAGvjG,MACC6wH,EAAkB7wH,KAAKksH,sBAC3BlsH,KAAK+jH,iBAAmB,CACpB/8G,OAAQupH,EAAYM,EAAgB7pH,QACpC89G,OAAQyL,EAAYM,EAAgB/L,QACpCd,OAAQuM,EAAYM,EAAgB7M,QAE5C,CACIhkH,KAAKu/F,WAAW,oBAChBv/F,KAAK8wH,qBAEb,EAEA/F,GAAYroH,UAAUouH,oBAAsB,WACxC9wH,KAAK+wH,wBAAyB,EAC1B/wH,KAAKmwH,6BACLnwH,KAAK+rH,iBAAkB,EACvB7lG,GAAEghC,KAAKlnD,KAAK+jH,iBAAkB,SAAS1Z,GACnCA,EAAQt0D,OACZ,GAER,EAEAg1E,GAAYroH,UAAUkuH,mBAAqB,WACvC5wH,KAAK+rH,iBAAkB,EACvB7lG,GAAEghC,KAAKlnD,KAAK+jH,iBAAkB,SAAS1Z,GACnCA,EAAQ3D,OACR2D,EAAQ/kB,OACZ,EACJ,EAcAylC,GAAYroH,UAAUoC,KAAO,SAASmqE,GAClCjvE,KAAKurH,eAAe,CAACt8C,GACzB,EAaA87C,GAAYroH,UAAUsuH,QAAU,SAAShqH,QACd,IAAb,EACNhH,KAAKilH,OAAOgM,oBAAqB,EAEjCjxH,KAAK8rH,kBAAoB9rH,KAAK8rH,kBAAkBvjH,OAAOvB,EAE/D,EAEA+jH,GAAYroH,UAAUguH,yBAA2B,SAAS7sH,GACtD,IAAIqtH,EAAelzB,GAAcn6F,GAIjC,OAHI7D,KAAKu/F,WAAW,wBAA0B+qB,KAC1C4G,EAAehrG,GAAEswE,aAAa06B,IAE3B,CAAC,KAAQA,EACpB,EAGAnG,GAAYroH,UAAUmhH,gBAAkB,SAAS1iH,EAAS0b,GACtD,IAAIs0G,EAAiBjrG,GAAE0vE,SAASz0F,EAAQ0C,KAAM,KAC1CigH,EAAW3iH,EAAQ2iH,SACnBzZ,EAAUlpG,EAAQkpG,QAClB+mB,EAA0BjwH,EAAQiwH,wBAClCC,EAAuBlwH,EAAQkwH,sBAAwB,CAAC,EAC5Dx0G,EAAWA,GAAYkhF,GAEvB,IAAIuzB,GAAgC,EAChCC,EAA2BrrG,GAAEhI,KAAK,WAIlC,OAHKmzG,EAAqBG,aACtBL,EAAiBnxH,KAAK2wH,UAAU,eAAiBxvH,EAAQzF,KAAMy1H,IAE/DA,GACAx9B,GAAUluF,IAAI,qBACdkuF,GAAUluF,IAAI0rH,GACPnxH,KAAKwjH,cACRM,EACA9jH,KAAK0wH,yBAAyBS,GAC9BE,EACArxH,KAAKwuH,kBAAkB3xG,EAAUs0G,KAG9B,IAEf,EAAGnxH,MAcH,OAZIA,KAAK+rH,kBAAoBqF,EACzB/mB,EAAQjG,QAAQ+sB,GAAgBhzG,KAAK,SAASwmF,GACtCA,EACA9nF,EAAS,EAAGs0G,GAEZI,GAER,GAEAD,EAAgCC,IAG7BD,GAAiCH,CAC5C,EAyBApG,GAAYroH,UAAU49F,MAAQjB,GAA0B,SAASwhB,EAAYxjB,EAAYl8F,EAAS0b,GACzFA,GAA+B,mBAAZ1b,IACpB0b,EAAW1b,EACXA,EAAU,MAGd,IAAIinG,GADJjnG,EAAUA,GAAW,CAAC,GACa,UAC/BinG,IACAjnG,EAAQinG,UAAYA,GAExB,IAAIgpB,EAA0BjwH,EAA0B,iBAKxD,GAJwB,mBAAb0b,IACPA,EAAWkhF,IAGX73E,GAAE0tE,YAAYitB,GACd7gH,KAAKwrH,aAAa,gDADtB,CAKA,IAAIxrH,KAAKyxH,mBAAmB5Q,GAA5B,EAMAxjB,EAAan3E,GAAEquE,OAAO,CAAC,EAAG8I,IACR,MAAIr9F,KAAKu/F,WAAW,SAGtC,IAAImyB,EAAkB1xH,KAAkB,YAAEgqH,mBAAmBnJ,GAC7D,IAAK36F,GAAE0tE,YAAY89B,GAAkB,CACjC,IAAIC,GAAiB,IAAIlgG,MAAO+3C,UAAYkoD,EAC5Cr0B,EAAsB,UAAI9O,YAAYojC,EAAiB,KAAMz3H,QAAQ,GACzE,CAEA8F,KAAKiuH,0BAEL,IAAI2D,EAAuB5xH,KAAKu/F,WAAW,mBACrCr5E,GAAEgN,KAAKupE,kBACP,CAAC,EAOPY,EAAan3E,GAAEquE,OACX,CAAC,EACDruE,GAAEgN,KAAKmqE,WAAW,CAAC,UAAar9F,KAAKu/F,WAAW,eAChDqyB,EACA5xH,KAAkB,YAAEq9F,aACpBr9F,KAAKqsH,uBACLrsH,KAAK4tH,mCACLvwB,GAGJ,IAAIw0B,EAAqB7xH,KAAKu/F,WAAW,sBACrCr5E,GAAExsB,QAAQm4H,GACV3rG,GAAEghC,KAAK2qE,EAAoB,SAASC,UACzBz0B,EAAWy0B,EACtB,GAEA9xH,KAAKwrH,aAAa,gDAAkDqG,GAGxE,IAAIhuH,EAAO,CACP,MAASg9G,EACT,WAAcxjB,GAWlB,OATUr9F,KAAK6jH,gBAAgB,CAC3BnoH,KAAM,SACNmI,KAAMA,EACNigH,SAAU9jH,KAAK4sG,aAAa,UAAY,IAAM5sG,KAAKu/F,WAAW,cAAqB,MACnF8K,QAASrqG,KAAK+jH,iBAAiB/8G,OAC/BoqH,wBAAyBA,EACzBC,qBAAsBlwH,GACvB0b,EAtDH,CAFIA,EAAS,EAHb,CA8DJ,GAgBAkuG,GAAYroH,UAAUqvH,UAAY1yB,GAA0B,SAAS+jB,EAAW4O,EAAWn1G,GAClFqJ,GAAExsB,QAAQs4H,KACXA,EAAY,CAACA,IAEjB,IAAIxuH,EAAO,CAAC,EAGZ,OAFAA,EAAK4/G,GAAa4O,EAClBhyH,KAAKqoH,SAAS7kH,GACPxD,KAAa,OAAE6E,IAAIu+G,EAAW4O,EAAWn1G,EACpD,GAaAkuG,GAAYroH,UAAUuvH,UAAY5yB,GAA0B,SAAS+jB,EAAWC,EAAUxmG,GACtF,IAAIq1G,EAAalyH,KAAK6qG,aAAauY,GAC/B5/G,EAAO,CAAC,EAWZ,YAVmBnJ,IAAf63H,GACA1uH,EAAK4/G,GAAa,CAACC,GACnBrjH,KAAKqoH,SAAS7kH,KAEwB,IAAlC0uH,EAAW/vH,QAAQkhH,KACnB6O,EAAWptH,KAAKu+G,GAChB7/G,EAAK4/G,GAAa8O,EAClBlyH,KAAKqoH,SAAS7kH,IAGfxD,KAAa,OAAE2jH,MAAMP,EAAWC,EAAUxmG,EACrD,GAaAkuG,GAAYroH,UAAUyvH,aAAe9yB,GAA0B,SAAS+jB,EAAWC,EAAUxmG,GACzF,IAAIu1G,EAAYpyH,KAAK6qG,aAAauY,GAElC,QAAkB/oH,IAAd+3H,EAAyB,CACzB,IAAIrgC,EAAMqgC,EAAUjwH,QAAQkhH,GACxBtxB,GAAO,IACPqgC,EAAUpqH,OAAO+pF,EAAK,GACtB/xF,KAAKqoH,SAAS,CAACjF,UAAWgP,KAEL,IAArBA,EAAU15H,QACVsH,KAAKsoH,WAAWlF,EAExB,CACA,OAAOpjH,KAAa,OAAEg8C,OAAOonE,EAAWC,EAAUxmG,EACtD,GAcAkuG,GAAYroH,UAAU2vH,kBAAoBhzB,GAA0B,SAASwhB,EAAYxjB,EAAY2mB,EAAQnnG,GACzG,IAAIy1G,EAAiBpsG,GAAEquE,OAAO,CAAC,EAAG8I,GAAc,CAAC,GAMjD,OALAn3E,GAAEghC,KAAK88D,EAAQ,SAASz6G,EAAG1G,GACnB0G,UACA+oH,EAAezvH,GAAK0G,EAE5B,GACOvJ,KAAKsgG,MAAMugB,EAAYyR,EAAgBz1G,EAClD,GAEAkuG,GAAYroH,UAAU6vH,gBAAkB,SAAUnP,EAAWC,GACzD,OAAOD,EAAY,IAAMr6G,KAAKE,UAAUo6G,EAC5C,EAEA0H,GAAYroH,UAAU8vH,yBAA2B,SAAUpP,EAAWC,UAC3DrjH,KAAKirH,eAAejrH,KAAKuyH,gBAAgBnP,EAAWC,GAC/D,EAaA0H,GAAYroH,UAAU+vH,UAAY,SAAUrP,EAAWC,GACnD,IAAIqP,EAAU1yH,KAAKuyH,gBAAgBnP,EAAWC,GAC1CsP,EAAQ3yH,KAAKirH,eAAeyH,GAMhC,YALcr4H,IAAVs4H,GAAuBA,EAAMrP,aAAeF,GAAauP,EAAMpP,YAAcF,KAC7EsP,EAAQ,IAAIzP,IACNC,MAAMnjH,KAAMojH,EAAWC,GAC7BrjH,KAAKirH,eAAeyH,GAAWC,GAE5BA,CACX,EA8CA5H,GAAYroH,UAAUi6G,eAAiBtd,GAA0B,SAAShC,EAAYl8F,GACxD,iBAAfk8F,IACPA,EAAa,CAAC,GAGlB,IAAIwjB,GADJ1/G,EAAUA,GAAW,CAAC,GACe,YAAK,oBAEtCyxH,EAA0B1sG,GAAEquE,OAC5BruE,GAAEgN,KAAKsqE,uBACPt3E,GAAEgN,KAAKipE,iBACPj2E,GAAEgN,KAAKqpE,eAGPs2B,EAAmB3sG,GAAEquE,OACrB,CAAC,EACDq+B,EACAv1B,GAGJ,OAAOr9F,KAAKsgG,MAAMugB,EAAYgS,EAClC,GA8BA9H,GAAYroH,UAAUowH,YAAc,WAChC,OAAO9yH,KAAKouH,WAAWxrH,KAAK5C,KAAMohH,GAAap0G,UACnD,EA6BA+9G,GAAYroH,UAAUqwH,YAAc,WAChC,OAAO/yH,KAAKouH,WAAWxrH,KAAK5C,KAAMyhH,GAAaz0G,UACnD,EAmBA+9G,GAAYroH,UAAUswH,WAAa,SAASnS,GACpC36F,GAAE0tE,YAAYitB,GACd7gH,KAAKwrH,aAAa,iDAIlBxrH,KAAKyxH,mBAAmB5Q,IAI5B7gH,KAAkB,YAAE8pH,gBAAgBjJ,GAAa,IAAIpvF,MAAO+3C,UAChE,EAEA,IAAIypD,GAAoB,CACpB,YAAc,GAQdC,GAAuB,SAASC,GAChC,IAAIhyH,EAQJ,OANIA,EADA+kB,GAAE4oE,SAASqkC,GACDA,EACFjtG,GAAE0tE,YAAYu/B,GAGZ,CAAC,EAFD,CAAC,KAAQA,GAIhBjtG,GAAEquE,OAAO,CAAC,EAAG0+B,GAAmB9xH,EAC3C,EAyBA4pH,GAAYroH,UAAU2lH,SAAW,SAASluF,EAAOg5F,GAC7C,IAAIhyH,EAAU+xH,GAAqBC,GAC/BhyH,EAAoB,WACpBnB,KAAkB,YAAEqoH,SAASluF,EAAOh5B,EAAc,MAElD+kB,GAAEquE,OAAOv0F,KAAKqsH,uBAAwBlyF,EAE9C,EA6BA4wF,GAAYroH,UAAUolH,cAAgB,SAAS3tF,EAAOiiE,EAAe+2B,GACjE,IAAIhyH,EAAU+xH,GAAqBC,GAC/BhyH,EAAoB,WACpBnB,KAAkB,YAAE8nH,cAAc3tF,EAAOiiE,EAAej7F,EAAc,YAExC,IAApB,IACNi7F,EAAgB,QAEpBl2E,GAAEghC,KAAK/sB,EAAO,SAAStjB,EAAKrT,GACnBxD,KAAKqsH,uBAAuB1pH,eAAea,IAASxD,KAAKqsH,uBAAuB7oH,KAAU44F,IAC3Fp8F,KAAKqsH,uBAAuB7oH,GAAQqT,EAE5C,EAAG7W,MAEX,EASA+qH,GAAYroH,UAAU4lH,WAAa,SAAS/3E,EAAUpvC,IAClDA,EAAU+xH,GAAqB/xH,IACP,WACpBnB,KAAkB,YAAEsoH,WAAW/3E,UAExBvwC,KAAKqsH,uBAAuB97E,EAE3C,EAEAw6E,GAAYroH,UAAU0wH,iBAAmB,SAAS5vH,EAAM6E,GACpD,IAAI8xB,EAAQ,CAAC,EACbA,EAAM32B,GAAQ6E,EACdrI,KAAKqoH,SAASluF,EAClB,EA0BA4wF,GAAYroH,UAAU2wH,SAAW,SAC7BC,EAAiBzN,EAAeC,EAAeC,EAAkBC,EAAoBC,EAAiBC,EAAiBC,GAUvH,IAAIoN,EAAuBvzH,KAAK2qG,kBAChC,GAAI2oB,GAAmBC,IAAyBD,EAAiB,CAG7D,GAA+B,iBAApBA,GAA8E,IAA9CA,EAAgBnxH,QAAQooH,IAE/D,OADAvqH,KAAKwrH,aAAa,4CACV,EAEZxrH,KAAKqoH,SAAS,CAAC,SAAYiL,GAC/B,CAEA,IAAKtzH,KAAK6qG,aAAa,cAAe,CAGlC,IAAI8Z,EAAY4O,EAChBvzH,KAAK8nH,cAAc,CACf,4BAA8B,EAC9B,WAAcnD,GACf,GACP,CAII2O,IAAoBC,GAAwBD,IAAoBtzH,KAAK6qG,aAAasc,MAClFnnH,KAAKsoH,WAAWnB,IAChBnnH,KAAKqoH,SAAS,CAAC,YAAeiL,KAElCtzH,KAAKilH,OAAOC,iBAAkB,EAE9BllH,KAAa,OAAE4lH,OAAOC,EAAeC,EAAeC,EAAkBC,EAAoBC,EAAiBC,EAAiBC,GAIxHmN,IAAoBC,GACpBvzH,KAAKsgG,MAAM,YAAa,CACpB,YAAegzB,EACf,kBAAqBC,GACtB,CAAC/B,YAAY,IAIhB8B,IAAoBC,GACpBvzH,KAAKw+G,MAAMC,YAEnB,EAMAsM,GAAYroH,UAAU6O,MAAQ,WAC1BvR,KAAKwtH,yBACLxtH,KAAkB,YAAEslF,QACpBtlF,KAAKilH,OAAOC,iBAAkB,EAC9B,IAAI3tB,EAAOrxE,GAAEoxE,OACbt3F,KAAK8nH,cAAc,CACf,YAAeyC,GAAmBhzB,EAClC,WAAcA,GACf,IACHv3F,KAAKysH,oCACT,EAkBA1B,GAAYroH,UAAUioG,gBAAkB,WACpC,OAAO3qG,KAAK6qG,aAAa,cAC7B,EAsCAkgB,GAAYroH,UAAU8wH,MAAQ,SAASA,EAAO1uE,GAI1C,GAAI0uE,IAAUxzH,KAAK6qG,aAAaqc,IAE5B,OADAlnH,KAAKwrH,aAAa,oEACV,EAGZ,IAAIzpF,EAAQ/hC,KAIZ,OAHIkmB,GAAE0tE,YAAY9uC,KACdA,EAAW9kD,KAAK2qG,mBAEhB6oB,IAAU1uE,GACV9kD,KAAKozH,iBAAiBjM,GAAcqM,GAC7BxzH,KAAKsgG,MAAM,gBAAiB,CAC/B,MAASkzB,EACT,YAAe1uE,GAChB,CACC0sE,YAAY,GACb,WAECzvF,EAAMsxF,SAASG,EACnB,KAEAxzH,KAAKwrH,aAAa,0DAClBxrH,KAAKqzH,SAASG,IACN,EAEhB,EAaAzI,GAAYroH,UAAU+wH,SAAW,SAASA,GACtCzzH,KAAKozH,iBAAiB,cAAeK,EACzC,EAuIA1I,GAAYroH,UAAUipH,WAAa,SAAS76B,GACpC5qE,GAAE4oE,SAASgC,KACX5qE,GAAEquE,OAAOv0F,KAAa,OAAG8wF,GAEJA,EAAmB,YAEpC5qE,GAAEghC,KAAKlnD,KAAK+jH,iBAAkB,SAAS1Z,GACnCA,EAAQzD,gBACZ,GAGC5mG,KAAKu/F,WAAW,sBACjBv/F,KAAa,OAAoB,iBAAIA,KAAa,OAAe,aAEhEA,KAAKu/F,WAAW,yBACjBv/F,KAAa,OAAuB,oBAAIA,KAAa,OAAkB,gBAGvEA,KAAkB,aAClBA,KAAkB,YAAEynH,cAAcznH,KAAa,QAEnD0yF,GAAOC,MAAQD,GAAOC,OAAS3yF,KAAKu/F,WAAW,UAE1C,gBAAiBzO,GAAU,wBAAyBA,IAAW9wF,KAAKusH,aACrEvsH,KAAKusH,YAAYtrH,OAG7B,EAKA8pH,GAAYroH,UAAU68F,WAAa,SAASm0B,GACxC,OAAO1zH,KAAa,OAAE0zH,EAC1B,EAQA3I,GAAYroH,UAAUiuH,UAAY,SAASgD,GACvC,IAAI70G,GAAO9e,KAAa,OAAS,MAAE2zH,IAAcvJ,IAAerkH,MAAM/F,KAAMiD,GAAML,KAAKoK,UAAW,IAKlG,YAJmB,IAAR8R,IACP9e,KAAKwrH,aAAamI,EAAY,gCAC9B70G,EAAM,MAEHA,CACX,EAoBAisG,GAAYroH,UAAUmoG,aAAe,SAAS+oB,GAC1C,OAAO5zH,KAAkB,YAAEmoH,UAAU,CAACyL,GAC1C,EAQA7I,GAAYroH,UAAUkqG,aAAe,SAASinB,GAC1C,OAAO7zH,KAAKu/F,WAAW,aAAas0B,IAAkB7zH,KAAKu/F,WAAW,WAC1E,EAEAwrB,GAAYroH,UAAUoM,SAAW,WAC7B,IAAIzQ,EAAO2B,KAAKu/F,WAAW,QAI3B,OAHIlhG,IAASgsH,KACThsH,EAAOgsH,GAAwB,IAAMhsH,GAElCA,CACX,EAEA0sH,GAAYroH,UAAU+uH,mBAAqB,SAAS5Q,GAChD,OAAO36F,GAAEuxE,YAAYh/D,KACjBz4B,KAAKilH,OAAOgM,oBACZ/qG,GAAEwuE,QAAQ10F,KAAK8rH,kBAAmBjL,EAC1C,EAGAkK,GAAYroH,UAAU4pH,WAAa,WAC0D,iBAAzDtsH,KAAKu/F,WAAW,sCAGfr5E,GAAEyzE,aAAaK,kBACvCh6F,KAAK8zH,yBAA2B9zH,KAAK8zH,sBAAsB,CAAC,iBAAoB,YACjF9zH,KAAK+zH,gBAAgB,CAAC,oBAAsB,KAE3C/zH,KAAKquH,0BAA4BruH,KAAKquH,uBAAuB,CAAC,iBAAoB,YACnFruH,KAAKg0H,iBAAiB,CAAC,mBAAqB,IAEhDh0H,KAAKi0H,0BAA0B,CAC3B,iBAAoB,SACpB,oBAAsB,KAK1Bj0H,KAAKquH,yBACLruH,KAAKk0H,yBAAyB,CAAC,mBAAqB,IAK5Cl0H,KAAK8zH,0BACb9zH,KAAKu/F,WAAW,iCAAkCr5E,GAAE+xE,OAAOzzF,IAAI,eAE/D0hB,GAAE+xE,OAAOj8C,OAAO,aAChBh8C,KAAKg0H,iBAAiB,CAClB,kBAAqBh0H,KAAKu/F,WAAW,oCAGjD,EAQAwrB,GAAYroH,UAAUwxH,yBAA2B,SAAS/yH,GACtD,IAAI1C,EACJ,GAAI0C,GAAWA,EAA2B,kBACtC1C,GAAW,MACR,KAAI0C,IAAWA,EAA4B,mBAG9C,OAFA1C,GAAW,CAGf,CAEKuB,KAAKu/F,WAAW,wBAA0Bv/F,KAAkB,YAAEvB,WAAaA,GAC5EuB,KAAkB,YAAEyoH,aAAahqH,GAGjCA,GACAuB,KAAK4wH,qBACL5wH,KAAKwtH,0BAIDxtH,KAAK+wH,wBACL/wH,KAAK8wH,qBAGjB,EAGA/F,GAAYroH,UAAUyxH,gBAAkB,SAASznE,EAAMvrD,GAkBnD,OAjBAA,EAAU+kB,GAAEquE,OAAO,CACf,MAASruE,GAAEhI,KAAKle,KAAKsgG,MAAOtgG,MAC5B,iBAAoBA,KAAKu/F,WAAW,qCACpC,cAAiBv/F,KAAKu/F,WAAW,kCACjC,kBAAqBv/F,KAAKu/F,WAAW,qBACrC,kBAAqBv/F,KAAKu/F,WAAW,qBACrC,uBAA0Bv/F,KAAKu/F,WAAW,0BAC1C,cAAiBv/F,KAAKu/F,WAAW,iBACjC,cAAiBv/F,KAAKu/F,WAAW,iBACjC,WAAcv/F,KAAKu/F,WAAW,eAC/Bp+F,GAGE+kB,GAAEyzE,aAAaK,iBAChB74F,EAA0B,iBAAI,UAG3BurD,EAAK1sD,KAAKu/F,WAAW,SAAU,CAClCe,MAAOn/F,EAAe,MACtBo/F,eAAgBp/F,EAA0B,iBAC1Cq/F,gBAAiBr/F,EAA0B,iBAC3C6+F,gBAAiB7+F,EAA0B,iBAC3C8+F,kBAAmB9+F,EAAuB,cAC1C4+F,aAAc5+F,EAAuB,cACrCg/F,iBAAkBh/F,EAA2B,kBAC7Ck/F,gBAAiBl/F,EAA2B,kBAC5C2+F,qBAAsB3+F,EAAgC,uBACtDi/F,aAAcj/F,EAAuB,cACrC29F,UAAW39F,EAAoB,YAEvC,EAiCA4pH,GAAYroH,UAAUqxH,gBAAkB,SAAS5yH,GAC7CA,EAAU+kB,GAAEquE,OAAO,CACf,oBAAsB,GACvBpzF,GAEHnB,KAAKm0H,gBAAgB31B,GAAOr9F,GAC5BnB,KAAKk0H,yBAAyB/yH,EAClC,EA2BA4pH,GAAYroH,UAAUsxH,iBAAmB,SAAS7yH,IAC9CA,EAAU+kB,GAAEquE,OAAO,CACf,mBAAqB,EACrB,aAAe,GAChBpzF,IAGsB,aAAKnB,KAAa,QAAKA,KAAa,OAAE0kH,qBAC3D1kH,KAAa,OAAEykH,cACfzkH,KAAa,OAAEwkH,iBAGnBxkH,KAAKm0H,gBAAgBz1B,GAAQv9F,GAC7BnB,KAAKk0H,yBAAyB/yH,EAClC,EAeA4pH,GAAYroH,UAAUoxH,sBAAwB,SAAS3yH,GACnD,OAAOnB,KAAKm0H,gBAAgBx1B,GAAYx9F,EAC5C,EAeA4pH,GAAYroH,UAAU2rH,uBAAyB,SAASltH,GACpD,OAAOnB,KAAKm0H,gBAAgBt1B,GAAa19F,EAC7C,EA2BA4pH,GAAYroH,UAAUuxH,0BAA4B,SAAS9yH,GACvDA,EAAU+kB,GAAEquE,OAAO,CACf,oBAAsB,GACvBpzF,GAEHnB,KAAKm0H,gBAAgBx0B,GAAex+F,GACpCnB,KAAKk0H,yBAAyB/yH,EAClC,EAEA4pH,GAAYroH,UAAU8oH,aAAe,SAASh6B,EAAKx7E,GAC/C29E,GAAU9tF,MAAME,MAAM4tF,GAAU9tF,MAAOmH,WACvC,IACSgJ,GAASw7E,aAAe5wE,QACzB4wE,EAAM,IAAI5wE,MAAM4wE,IAEpBxxF,KAAKu/F,WAAW,iBAAhBv/F,CAAkCwxF,EAAKx7E,EAC3C,CAAE,MAAMA,GACJ29E,GAAU9tF,MAAMmQ,EACpB,CACJ,EAKA+0G,GAAYroH,UAAgB,KAAkCqoH,GAAYroH,UAAUzB,KACpF8pH,GAAYroH,UAAiB,MAAiCqoH,GAAYroH,UAAU6O,MACpFw5G,GAAYroH,UAAmB,QAA+BqoH,GAAYroH,UAAUsuH,QACpFjG,GAAYroH,UAAsB,WAA4BqoH,GAAYroH,UAAUswH,WACpFjI,GAAYroH,UAAiB,MAAiCqoH,GAAYroH,UAAU49F,MACpFyqB,GAAYroH,UAAuB,YAA2BqoH,GAAYroH,UAAUowH,YACpF/H,GAAYroH,UAAuB,YAA2BqoH,GAAYroH,UAAUqwH,YACpFhI,GAAYroH,UAA0B,eAAwBqoH,GAAYroH,UAAUi6G,eACpFoO,GAAYroH,UAAoB,SAA8BqoH,GAAYroH,UAAU2lH,SACpF0C,GAAYroH,UAAyB,cAAyBqoH,GAAYroH,UAAUolH,cACpFiD,GAAYroH,UAAsB,WAA4BqoH,GAAYroH,UAAU4lH,WACpFyC,GAAYroH,UAAoB,SAA8BqoH,GAAYroH,UAAU2wH,SACpFtI,GAAYroH,UAAiB,MAAiCqoH,GAAYroH,UAAU8wH,MACpFzI,GAAYroH,UAAoB,SAA8BqoH,GAAYroH,UAAU+wH,SACpF1I,GAAYroH,UAAsB,WAA4BqoH,GAAYroH,UAAUipH,WACpFZ,GAAYroH,UAAsB,WAA4BqoH,GAAYroH,UAAU68F,WACpFwrB,GAAYroH,UAAwB,aAA0BqoH,GAAYroH,UAAUkqG,aACpFme,GAAYroH,UAAwB,aAA0BqoH,GAAYroH,UAAUmoG,aACpFkgB,GAAYroH,UAA2B,gBAAuBqoH,GAAYroH,UAAUioG,gBACpFogB,GAAYroH,UAAoB,SAA8BqoH,GAAYroH,UAAUoM,SACpFi8G,GAAYroH,UAA4B,iBAAsBqoH,GAAYroH,UAAUsxH,iBACpFjJ,GAAYroH,UAA2B,gBAAuBqoH,GAAYroH,UAAUqxH,gBACpFhJ,GAAYroH,UAAkC,uBAAgBqoH,GAAYroH,UAAU2rH,uBACpFtD,GAAYroH,UAAiC,sBAAiBqoH,GAAYroH,UAAUoxH,sBACpF/I,GAAYroH,UAAqC,0BAAaqoH,GAAYroH,UAAUuxH,0BACpFlJ,GAAYroH,UAAqB,UAA6BqoH,GAAYroH,UAAU+vH,UACpF1H,GAAYroH,UAAqB,UAA6BqoH,GAAYroH,UAAUqvH,UACpFhH,GAAYroH,UAAqB,UAA6BqoH,GAAYroH,UAAUuvH,UACpFlH,GAAYroH,UAAwB,aAA0BqoH,GAAYroH,UAAUyvH,aACpFpH,GAAYroH,UAA6B,kBAAqBqoH,GAAYroH,UAAU2vH,kBACpFtH,GAAYroH,UAA+B,oBAAmBqoH,GAAYroH,UAAUouH,oBACpF/F,GAAYroH,UAA8B,mBAAoBqoH,GAAYroH,UAAUkuH,mBACpF7F,GAAYroH,UAAmC,wBAAeqoH,GAAYroH,UAAU6qH,wBACpFxC,GAAYroH,UAAkC,uBAAgBqoH,GAAYroH,UAAU8qH,uBACpFzC,GAAYroH,UAAmC,wBAAeqoH,GAAYroH,UAAU+qH,wBACpF1C,GAAYroH,UAAoC,yBAAcqoH,GAAYroH,UAAUgrH,yBACpF3C,GAAYroH,UAA4C,iCAAMqoH,GAAYroH,UAAUkrH,iCACpF7C,GAAYroH,UAAkC,uBAAgBqoH,GAAYroH,UAAUorH,uBACpF/C,GAAYroH,UAAsB,WAA4BqoH,GAAYroH,UAAUupG,WACpF8e,GAAYroH,UAA8B,mBAAoBkoH,GAG9DG,GAAYroH,UAA0B,eAAwBqoH,GAAYroH,UAAUsrH,eAGpF1G,GAAoB5kH,UAAsB,WAAe4kH,GAAoB5kH,UAAU26F,WACvFiqB,GAAoB5kH,UAAiC,sBAAI4kH,GAAoB5kH,UAAU6lH,sBACvFjB,GAAoB5kH,UAAgC,qBAAK4kH,GAAoB5kH,UAAUyhH,qBACvFmD,GAAoB5kH,UAA+B,oBAAM4kH,GAAoB5kH,UAAUomH,oBACvFxB,GAAoB5kH,UAAiB,MAAoB4kH,GAAoB5kH,UAAU4iF,MAGvF,IAAI8uC,GAAY,CAAC,EA2HbC,IArBAnK,GAeJ,SAAmBoK,EAAMC,GACrBA,GACJ,EAhBI7N,GApxEe,GAqxEfuD,GAAkB,IAAIc,IA1FA,KAAI,SAAS/8D,EAAO8iC,EAAQzyF,GAC9C,GAAIA,EAMA,OAJK4rH,GAAgB5rH,KACjB4rH,GAAgB5rH,GAAQ+1H,GAAU/1H,GAAQ2sH,GAAah9D,EAAO8iC,EAAQzyF,GACtE4rH,GAAgB5rH,GAAMotH,WAEnBxB,GAAgB5rH,GAEvB,IAAI6C,EAAW+oH,GAEXmK,GAAU/J,IAEVnpH,EAAWkzH,GAAU/J,IACdr8D,KAEP9sD,EAAW8pH,GAAah9D,EAAO8iC,EAAQu5B,KAC9BoB,UACT2I,GAAU/J,IAAyBnpH,GAGvC+oH,GAAkB/oH,EA/sEX,IAgtEHwlH,KACAvuF,EAAIkyF,IAAyBJ,IAlCzC/jG,GAAEghC,KAAKktE,GAAW,SAASlzH,EAAU7C,GAC7BA,IAASgsH,KAAyBJ,GAAgB5rH,GAAQ6C,EAClE,GAGA+oH,GAAmB,EAAI/jG,EAiCvB,EAkEA+jG,GAAsB,OA/DG,WAEzB,SAASuK,IAEDA,EAAmB/2G,OACvB+2G,EAAmB/2G,MAAO,EAE1BqtG,IAAa,EACbJ,IAAmB,EAEnBxkG,GAAEghC,KAAKktE,GAAW,SAASh1G,GACvBA,EAAK+uG,aACT,GACJ,CAaA,GAAIj7B,GAAWtuE,iBACmB,aAA1BsuE,GAAWzhD,WAKX+iF,IAEAthC,GAAWtuE,iBAAiB,mBAAoB4vG,GAAoB,QAErE,GAAIthC,GAAWuhC,YAAa,CAE/BvhC,GAAWuhC,YAAY,qBAAsBD,GAG7C,IAAIE,GAAW,EACf,IACIA,EAAgC,OAArBv8F,EAAIw8F,YACnB,CAAE,MAAM3xH,GAER,CAEIkwF,GAAW9qB,gBAAgBwsD,UAAYF,GAjC/C,SAASG,IACL,IACI3hC,GAAW9qB,gBAAgBwsD,SAAS,OACxC,CAAE,MAAM5xH,GAEJ,YADAib,WAAW42G,EAAiB,EAEhC,CAEAL,GACJ,CAyBQK,EAER,CAGA3uG,GAAE+zE,eAAe9hE,EAAK,OAAQq8F,GAAoB,EACtD,CASIM,GAEO7K,G,oHCtjvBX,IAAIxqG,GAAgB,EAGpB,MAAMs1G,EAAqBA,KACvB,IACI,GAAsB,oBAAXl5H,OACP,OAAO,EAIX,GAAI4jB,EACA,OAAO,EAGX,MAAMqxE,EAASj1F,OAAOG,mBAAqB,CAAC,EAI5C,IAD0B80F,EAAOkkC,oBAE7B,OAAO,EAGX,MAAMC,EAAiBnkC,EAAOujC,UAAY,CAAC,EACrCrmE,EAAQinE,EAAejnE,MAG7B,IAAKA,GAAmB,KAAVA,EACV,OAAO,EAGXqmE,EAAAA,EAASpzH,KAAK+sD,EAAO,CACjB5nD,MAAO6uH,EAAe7uH,QAAS,EAC/Bu2G,gBAAgB,EAChBuY,YAAa,eAEbrD,mBAAoB,CAChB,oBACA,4BACA,eACA,YACA,oBACA,SACA,eACA,WACA,mBACA,UACA,iBACA,gBACA,MACA,oBAKR,MAAM5S,EAAagW,EAAehW,WAMlC,OALIA,GAA6B,KAAfA,GACdoV,EAAAA,EAAShB,SAASpU,GAGtBx/F,GAAgB,GACT,CACX,CAAE,MAAO5Z,GACL,OAAO,CACX,GAmBSsvH,EAAkBA,KAC3B,IACQ11G,QAAqC,IAAb40G,EAAAA,IAExBA,EAAAA,EAAS9iH,QACTkO,GAAgB,EAExB,CAAE,MAAO5Z,GACLC,QAAQD,MAAM,+CAAgDA,EAClE,GAOSuvH,EAAiBA,KAC1B,IACI,GAAsB,oBAAXv5H,OACP,OAAO,EAGX,MAEMmyD,IAFSnyD,OAAOG,mBAAqB,CAAC,GACdq4H,UAAY,CAAC,GACdrmE,MAG7B,SAAKA,GAAmB,KAAVA,KAKdvuC,GAAgB,EAGTs1G,IACX,CAAE,MAAOlvH,GAEL,OADAC,QAAQD,MAAM,8CAA+CA,IACtD,CACX,GAOSwvH,EAAsBA,KAC/B,IACI,GAAsB,oBAAXx5H,OACP,MAAO,CAAC,EAGZ,MAEMy5H,IAFSz5H,OAAOG,mBAAqB,CAAC,GACdq4H,UAAY,CAAC,GACRkB,kBAAoB,CAAC,EAKlDC,EADY,IAAIrkG,gBAAgBt1B,OAAOC,SAASs1B,QAC1B5sB,IAAI,SAAW,GAErCixH,EAAqB,IACpBH,EACHI,SAAU,QACVC,KAAMH,GAAa35H,OAAOC,SAASqnC,SACnC7gC,KAAMzG,OAAOC,SAASqnC,SAAWtnC,OAAOC,SAASs1B,OACjDuH,SAAU36B,SAAS26B,SAAStgC,MAAM,KAAK2T,OAAO2N,SAAS/G,OAAS,IAIpE,OAAOrS,OAAOq1H,YACVr1H,OAAO+G,QAAQmuH,GAAoBzpH,OAAO,EAAEka,EAAG7d,KAC7B,KAAVA,SAAgBA,KAGhB5O,MAAMC,QAAQ2O,IAA2B,IAAjBA,EAAM3P,SAM9C,CAAE,MAAOmN,GACL,MAAO,CAAC,CACZ,GAQSgwH,EAAaA,CAACv+C,EAAWw+C,EAAkB,CAAC,KACrD,IACI,IAzGoBC,MACxB,IACI,OAAOt2G,QAAqC,IAAb40G,EAAAA,CACnC,CAAE,MAAOxuH,GACL,OAAO,CACX,GAoGSkwH,GAGD,OAIJ,MAAM14B,EAAa,IACZg4B,OACAS,GAIPzB,EAAAA,EAAS/zB,MAAMhpB,EAAW+lB,EAE9B,CAAE,MAAOx3F,GACLC,QAAQD,MAAM,2CAA4CyxE,EAAWzxE,EACzE,GAeSgsB,EAAgBA,EAAG5G,aAAY7sB,aAAY0zB,WAAUkkG,WAAUjkG,qBAAoB,EAAMkkG,oBAAoB,KAAMC,oBAAoB,KAAMC,YAAW,GAAU,CAAC,KAC5K,IACI,MAAMx2C,EAAYluD,KAAKC,MAEjBokG,EAAkB,CACpBM,oBAAqBH,GAAqBt2C,EAC1C02C,oBAAqBtkG,EACrBJ,UAAWwkG,GAIXpkG,IACA+jG,EAAgBQ,oBAAsBJ,GAAqBv2C,GAI3Dq2C,EACAF,EAAgBS,UAAYP,EACrB/qG,IACP6qG,EAAgBS,UAAYtrG,GAG5BA,IACA6qG,EAAgBl3H,aAAeqsB,GAG/B7sB,IACA03H,EAAgBj3H,aAAeT,GAG/B0zB,IACAgkG,EAAgBU,cAAgB1kG,GAGpC+jG,EAAW,cAAeC,EAC9B,CAAE,MAAOjwH,GACLC,QAAQD,MAAM,+CAAgDA,EAClE,GAqGSxI,EAAmBA,EAAGC,aAAYC,eAAchE,SAAS,KAAMiE,UAAU,CAAC,GAAM,CAAC,KAC1F,IAEI,MAAMs4H,EAAkB,CACpBW,YAAan5H,GAAc,GAC3Bo5H,cAAen5H,GAAgB,GAC/Bg5H,UAAWj5H,GAAc,GACzBqiF,UAAWluD,KAAKC,OAIhBn4B,GACAgH,OAAOg6B,OAAOu7F,EAvDOv8H,KAC7B,IAAKA,EAAQ,MAAO,CAAC,EAErB,MAAM8jG,EAAa,CACfz+F,aAAcrF,EAAOsD,MAAQ,GAC7BgC,aAActF,EAAO8E,MAAQ,IAMjC,GAAI9E,EAAOuuB,YAAcvuB,EAAOuuB,WAAWpvB,OAAS,EAAG,CACnD,MAAMo5B,EAA2C,iBAAzBv4B,EAAOuuB,WAAW,GACpCvuB,EAAOuuB,WAAW,GAAGjrB,MAAQtD,EAAOuuB,WAAW,GAAGX,MAClD5tB,EAAOuuB,WAAW,GACxBu1E,EAAWm5B,cAAgB1kG,CAC/B,CAgBA,OAbIv4B,EAAOkB,cACP4iG,EAAWs5B,aAAep9H,EAAOkB,kBAIVJ,IAAvBd,EAAOyB,cACPqiG,EAAWu5B,aAAer9H,EAAOyB,aAGjCzB,EAAOwB,gBACPsiG,EAAWw5B,eAAiBt9H,EAAOwB,eAGhCsiG,GAuBgCy5B,CAAwBv9H,IAI3DgH,OAAOg6B,OAAOu7F,EAAiBt4H,GAE/Bq4H,EAAW,iBAAkBC,EACjC,CAAE,MAAOjwH,GACLC,QAAQD,MAAM,kDAAmDA,EACrE,GASS2sB,EAAwBA,CAACyjG,EAAoB,KAAMC,EAAoB,KAAMC,GAAW,KACjG,IACItkG,EAAc,CACVC,SAAU,mBACVkkG,SAAU,eACVC,kBAAmBA,EACnBC,kBAAmBA,EACnBC,SAAUA,GAElB,CAAE,MAAOtwH,GACLC,QAAQD,MAAM,uDAAwDA,EAC1E,GAUS4sB,EAAyBA,CAACl5B,EAAQ08H,EAAoB,KAAMC,EAAoB,KAAMC,GAAW,KAC1G,IACI,IAAK58H,EAED,YADAuM,QAAQF,KAAK,uEAIjB,MAAMksB,EAAWv4B,EAAOuuB,YAAcvuB,EAAOuuB,WAAWpvB,OAAS,EAC1B,iBAAzBa,EAAOuuB,WAAW,GACtBvuB,EAAOuuB,WAAW,GAAGjrB,MAAQtD,EAAOuuB,WAAW,GAAGX,MAClD5tB,EAAOuuB,WAAW,GACtB,GAEN+J,EAAc,CACV5G,WAAY1xB,EAAOsD,KACnBuB,WAAY7E,EAAO8E,KACnByzB,SAAUA,EACVkkG,SAAU,eACVC,kBAAmBA,EACnBC,kBAAmBA,EACnBC,SAAUA,GAElB,CAAE,MAAOtwH,GACLC,QAAQD,MAAM,yDAA0DA,EAC5E,E,8TC7aJ,IAAIkxH,EAAiB,CACnBC,SAAU,kBACVC,cAAe,GACfC,oBAAqB,GACrBC,4BAA4B,EAC5BC,mBAAoB,GACpBC,2BAA4B,CAAC,KAAM,SAAU,IAAK,KAClDC,aAAa,EACbl0G,S,QAAQ,GAEH,MAAMm0G,EAAc,CAACp2H,EAAU,CAAC,KACrC41H,EAAiB,IACZA,KACA51H,IAGMq2H,EAAc,IAAMT,C,mbCbjC,MAAMU,GAAqB53H,EAAAA,EAAAA,eAAc,MAE5Bo1B,EAAsBA,EAC/B+xB,WACAt3B,aACA1D,gBACA/vB,WACA0zB,sBACAtzB,oBAEA,MAAOC,EAAgBszB,IAAqBxL,EAAAA,EAAAA,UAAS,CAAC,IAC/C7nB,EAAoBm7H,IAAyBtzG,EAAAA,EAAAA,UAAS,CAAC,IACvD5nB,EAAwBm7H,IAA6BvzG,EAAAA,EAAAA,UAAS,CAAC,IAC/DH,EAAS6L,IAAc1L,EAAAA,EAAAA,UAAS,KAChC5pB,EAAQu1B,IAAa3L,EAAAA,EAAAA,UAAS,CAAC,IAC/BmF,EAAequG,IAAoBxzG,EAAAA,EAAAA,UAAS,KAC5CoF,EAAequG,IAAoBzzG,EAAAA,EAAAA,UAAS,KAC5CyG,EAAaC,IAAkB1G,EAAAA,EAAAA,UAAS,CAAE4G,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,QAClF4D,EAAY5C,IAAiB7H,EAAAA,EAAAA,UAAS,CAAE4G,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,QAChF6sG,EAAcC,IAAmB3zG,EAAAA,EAAAA,UAAS,CAAE4G,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,QACpF+E,EAAqBC,IAA0B7L,EAAAA,EAAAA,WAAS,IACxD8L,EAAcC,IAAmB/L,EAAAA,EAAAA,WAAS,IAC1CgM,EAAgBC,IAAqBjM,EAAAA,EAAAA,WAAS,IAG9C4zG,EAAeC,IAAoB7zG,EAAAA,EAAAA,UAAS,KAC/C,MAAM8zG,EAAmC,oBAAXr8H,QAA0BA,OAAOG,mBAAmBg5H,oBAElF,OAA0B,IAAnBkD,GAA8C,SAAnBA,GAAgD,MAAnBA,GAA6C,IAAnBA,IAOvFC,IAH0BvnG,EAAAA,EAAAA,QAAO,CAAC,IAGfA,EAAAA,EAAAA,QAAO,OAG1Bn0B,EAA0B,YADA,oBAAXZ,QAA0BA,OAAOG,mBAAmB22B,OAInEpO,EAAkC,oBAAX1oB,QAA0BA,OAAOG,mBAAmBuoB,cAC3E1oB,OAAOG,kBAAkBuoB,cACzB,GAGAC,EAAsC,oBAAX3oB,QAA0BA,OAAOG,mBAAmBwoB,kBAC/E3oB,OAAOG,kBAAkBwoB,kBACzB,GAGA4zG,EAA8B,oBAAXv8H,QAA0BA,OAAOG,mBAAmBo8H,UACvEv8H,OAAOG,kBAAkBo8H,UACzB,IAEN3zG,EAAAA,EAAAA,WAAU,KACN,MAAM4zG,EAAkB1sG,eAAe4G,QAAQ,qBAC/C,GAAI8lG,EACA,IACI,MAAMC,EAAavvH,KAAKC,MAAMqvH,GAC9BvtG,EAAe,CACXE,QAASstG,EAAWttG,QACpBtvB,KAAM48H,EAAW58H,KACjBuvB,WAAYqtG,EAAWrtG,aAE3B8sG,EAAgB,CACZ/sG,QAASstG,EAAWttG,QACpBtvB,KAAM48H,EAAWC,YACjBttG,WAAYqtG,EAAWrtG,aAO3BhN,WAAW,KACP0N,eAAeC,WAAW,sBAC3B,IACP,CAAE,MAAO5oB,GACL8C,QAAQD,MAAM,yCAA0C7C,EAC5D,GAEL,KAIHyhB,EAAAA,EAAAA,WAAU,MAEgB,IAAlBuzG,IACAjD,EAAAA,EAAAA,MAIJ,MAAMyD,EAAuBx1H,IACzB,MAAMy1H,OAAqDp+H,IAAlC2I,EAAEpF,QAAQo3H,qBAAoChyH,EAAEpF,OAAOo3H,oBAGhFiD,EAAiBQ,IAGQ,IAArBA,GAKsB,oBAAX58H,QAA0BA,OAAOG,oBACxCH,OAAOG,kBAAkBg5H,qBAAsB,IAInDI,EAAAA,EAAAA,QAIsB,oBAAXv5H,QAA0BA,OAAOG,oBACxCH,OAAOG,kBAAkBg5H,qBAAsB,IAInDG,EAAAA,EAAAA,QAKRt5H,OAAO+oB,iBAAiB,yBAA0B4zG,GAGlD,MAAME,EAAuB11H,IAEzB,GAAc,+BAAVA,EAAEd,IAAsC,CACxC,MAAMu2H,EAAkC,MAAfz1H,EAAED,SAG3By1H,EAAoB,CAAE56H,OAAQ,CAAEo3H,oBAAqByD,IACzD,GAMJ,OAHA58H,OAAO+oB,iBAAiB,UAAW8zG,GAG5B,KACH78H,OAAOgpB,oBAAoB,yBAA0B2zG,GACrD38H,OAAOgpB,oBAAoB,UAAW6zG,KAE3C,IAGH,MAAM7oG,GAA0B8oG,EAAAA,EAAAA,aAAYt3G,UACxC,GAAK5kB,GAEAE,EAAgBsuB,GAArB,CAGA0sG,EAA0B50G,IAAQ,IAAMA,EAAM,CAACkI,IAAa,KAE5D,IACI,MAAM2tG,OAA8C,IAA7B/8H,OAAOG,mBAAqCH,OAAOG,mBAAmBC,UAAU28H,QACvG,IAAKA,EAED,YADAjB,EAA0B50G,IAAQ,IAAMA,EAAM,CAACkI,IAAa,KAIhE,MAAM4tG,EAAW,IAAIC,SACrBD,EAASt4G,OAAO,SAAU,6BAC1Bs4G,EAASt4G,OAAO,uBAAwB,QACxCs4G,EAASt4G,OAAO,aAAc0K,GAE9B,MAAMzpB,QAAY+vB,MAAMqnG,EAAS,CAC7Bl6F,OAAQ,OACRpS,KAAMusG,IAGJrnG,QAAahwB,EAAIgwB,OAEvBkmG,EAAsB30G,IAAQ,IAAMA,EAAM,CAACkI,GAAauG,EAAKunG,eACjE,CAAE,MAAO/1H,GACL00H,EAAsB30G,IAAQ,IAAMA,EAAM,CAACkI,IAAa,IAC5D,CAAE,QACE0sG,EAA0B50G,IAAQ,IAAMA,EAAM,CAACkI,IAAa,IAChE,CA7BwC,GA8BzC,CAACxuB,IAGEsuB,GAAe4tG,EAAAA,EAAAA,aAAY,KACzBR,EAAiBjzH,UACjB8pB,aAAampG,EAAiBjzH,SAC9BizH,EAAiBjzH,QAAU,MAE/BymB,eAAeC,WAAW,sBAC3B,IAEGjvB,GAAkBg8H,EAAAA,EAAAA,aAAa1tG,GACX,cAAfA,GAA6C,yBAAfA,EACtC,IAEGjzB,GAAuB2gI,EAAAA,EAAAA,aAAazgI,IAC/B8gI,EAAAA,EAAAA,GAA2BZ,EAAWlgI,GAC9C,CAACkgI,IAEE9nG,GAAsBqoG,EAAAA,EAAAA,aAAap/H,MAChCA,IAAWkD,IACTE,EAAgBpD,EAAOsD,QAAUtD,EAAO6D,YAAiD,IAApCb,EAAmBhD,EAAOsD,MACvF,CAACJ,EAAeF,EAAoBI,IAGjCmoB,GAAmB6zG,EAAAA,EAAAA,aAAap/H,IAElC,IAAKA,EAAOkc,MACR,OAAO,EAIX,GAAIlc,EAAOkc,MAAMsP,iBAAmBtrB,MAAMC,QAAQH,EAAOkc,MAAMsP,iBAAkB,CAE7E,GAA4C,IAAxCxrB,EAAOkc,MAAMsP,gBAAgBrsB,OAC7B,OAAO,EASX,IAL0Ba,EAAOkc,MAAMsP,gBAAgBC,KAAKC,GACxDV,EAAclrB,SAAS4rB,IAKvB,OAAO,CAEf,CAGA,GAAI1rB,EAAOkc,MAAMyP,wBAAyE,iBAAxC3rB,EAAOkc,MAAMyP,uBAAqC,CAEhG,MAAMC,EAAiB5rB,EAAOkc,MAAMyP,uBACpC,GAAIV,IAAsBW,EACtB,OAAO,CAEf,CAIA,OAAO,GACR,CAACZ,EAAeC,IAGb9nB,GAAqBi8H,EAAAA,EAAAA,aAAYt3G,MAAOnkB,EAAQ3D,EAAQ+J,EAAS,MAEnE,MAAM21H,EAAiC,aAAX/7H,GAAyC,YAAhB3D,EAAOsD,KAE5D+yB,EAAkB7M,IAAQ,IAAMA,EAAM,CAACxpB,EAAOsD,OAAO,KAGrD,IAAIq8H,GAAmB,EAGvB,MAAM96H,EAAa7E,EAAO8E,MAAQ9E,EAAOsD,KACzC,IAAIs8H,EAAiB,GAwBrB,GApBIA,EAFW,aAAXj8H,GACsB1C,GAAQY,eAAemE,YAAc,kBAC5BjE,QAAQ,MAAO8C,GAAc,MAC1C,eAAXlB,GACiB1C,GAAQY,eAAeg+H,cAAgB,oBAC9B99H,QAAQ,MAAO8C,GAAc,MAC5C,YAAXlB,GACe1C,GAAQY,eAAesE,YAAc,kBAC5BpE,QAAQ,MAAO8C,GAAc,MAC1C,WAAXlB,GACa1C,GAAQY,eAAei+H,UAAY,gBAC1B/9H,QAAQ,MAAO8C,GAAc,MAIzC,GADElB,EAAOyoC,OAAO,GAAGoT,eAAiB77C,EAAOk6E,SAAS,KAAOl6E,EAAO+F,MAAM,GAAI,GAAK/F,EAAO+F,MAAM,IAAM,SACnF7E,IAGtCw5H,EAAiBuB,GACjBtB,EAAiB,IAGboB,EAAqB,CAErB,IAAI/wG,EAAM,GAAGwH,IAAaxyB,KAAU3D,EAAOsD,OAC3C,MAAMy8H,EAAgB,gBAAgB1zE,mBAAmBrsD,EAAO4wB,UAAY,MAuG5E,OApGIjC,EADA8D,EACM,GAAG/vB,EAAS28H,8BAA8B17H,qBAA0BjB,EAASs9H,eAAet9H,EAASs9H,cAAchgI,EAAOsD,QAAQy8H,IAElIpxG,GAAOA,EAAI7uB,SAAS,KAAO,IAAM,KAAOigI,OAIlDr7G,WAAWoD,UAEP,UACUkQ,MAAMrJ,EAAK,CAAEwW,OAAQ,QAC/B,CAAE,MAAO1oB,GACLlQ,QAAQL,IAAI,uCAChB,CAGA,IAAI+zH,EAAW,EACf,MACMC,EAAkBp4G,UACpB,IACI,MAAMq4G,EAAW,GAAGhqG,WAAoBn2B,EAAOsD,OACzCq5B,QAAiB3E,MAAMmoG,GACvB71H,QAAaqyB,EAAS1E,OAE5B,GAAI3tB,GAAQA,EAAKnF,UA0Cb,OAxCArB,EAAAA,EAAAA,IAAiB,CACbC,WAAY,WACZC,aAAc,mBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,UACRk8H,aAAc,2BAIP,mBAAXr2H,GAEAqoB,eAAe4tE,QAAQ,oBAAqB,QAC5C5tE,eAAe4tE,QAAQ,oBAAqBxwF,KAAKE,UAAU,CACvD+hB,SAAS,EACTtvB,KAAM,YACNuvB,WAAY1xB,EAAOsD,KACnB07H,YAAa,cAIjBJ,EAAiBjzH,QAAU+Y,WAAW,KAClCpiB,OAAOC,SAASiF,UACjB,OAGHg3H,EAAgB,CAAE/sG,SAAS,EAAMtvB,KAAM,WAAYuvB,WAAY1xB,EAAOsD,OAGtEs7H,EAAiBjzH,QAAU+Y,WAAW,KAClC0N,eAAe4tE,QAAQ,oBAAqB,QAC5C19F,OAAOC,SAASiF,UACjB,KAGH62H,EAAiB,IACjBC,EAAiB,IACjBqB,GAAmB,GAI/B,CAAE,MAAOl2H,GACL8C,QAAQD,MAAM,mCAAoC7C,EACtD,CAEAw2H,IACIA,EAxDY,EAyDZv7G,WAAWw7G,EAAiB,MAG5BxtG,EAAc,CAAEjB,SAAS,EAAMtvB,KAAM,WAAYuvB,WAAY1xB,EAAOsD,QAGpEQ,EAAAA,EAAAA,IAAiB,CACbC,WAAY,WACZC,aAAc,mBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,QACRm8H,cAAe,8CAKvBhC,EAAiB,IACjBC,EAAiB,IACjBjoG,EAAkB7M,IAAQ,IAAMA,EAAM,CAACxpB,EAAOsD,OAAO,OAK7DohB,WAAWw7G,EAAiB,MAC7B,IAEP,CAEA,IACI,IAAIvxG,EAAM,GAAGwH,KAAcxyB,KAAU3D,EAAOsD,OAG5C,MAAMy8H,EAAgB,gBAAgB1zE,mBAAmBrsD,EAAO4wB,UAAY,MAIxEjC,EAFA8D,EAEM,GAAG/vB,EAAS28H,8BAA8B17H,qBAA0BjB,EAASs9H,eAAet9H,EAASs9H,cAAchgI,EAAOsD,QAAQy8H,IAGlIpxG,GAAOA,EAAI7uB,SAAS,KAAO,IAAM,KAAOigI,EAGlD,MAAM93H,QAAY+vB,MAAMrJ,EAAK,CAAEwW,OAAQ,SACjCjhC,QAAe+D,EAAIgwB,OAEzB,GAAI/zB,EAAOm0B,QAsBP,GArBA9B,EAAW/M,GACPA,EAAK5W,IAAItS,GACDA,EAAEgD,OAAStD,EAAOsD,KACX,IAAKhD,EAAGuD,UAAWK,EAAOoG,KAAKzG,UAAWsB,UAAWjB,EAAOoG,KAAKnF,WAI7D,eAAXxB,GAA2C,qBAAhB3D,EAAOsD,MAA0C,yBAAXhD,EAAEgD,KAC5D,IAAKhD,EAAG6E,WAAW,GAIf,aAAXxB,GAAyC,yBAAhB3D,EAAOsD,MAA8C,qBAAXhD,EAAEgD,KAC9D,IAAKhD,EAAG6E,WAAW,GAGvB7E,IAKA,YAAXqD,GAAwBO,EAAOoG,KAAKzG,UACpC0tB,EAAe,CAAEE,SAAS,EAAMtvB,KAAM,YAAauvB,WAAY1xB,EAAOsD,QAGtEQ,EAAAA,EAAAA,IAAiB,CACbC,WAAY,UACZC,aAAc,kBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,kBAGb,GAAe,WAAXP,GAAwBO,EAAOoG,KAAKzG,UAcxC,IAAe,aAAXF,GAAyBO,EAAOoG,KAAKnF,UA4C5C,OA3CAw6H,GAAmB,GAGnB77H,EAAAA,EAAAA,IAAiB,CACbC,WAAY,WACZC,aAAc,mBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,kBAID,mBAAX6F,GAEAqoB,eAAe4tE,QAAQ,oBAAqB,QAC5C5tE,eAAe4tE,QAAQ,oBAAqBxwF,KAAKE,UAAU,CACvD+hB,SAAS,EACTtvB,KAAM,YACNuvB,WAAY1xB,EAAOsD,KACnB07H,YAAa,cAIjBJ,EAAiBjzH,QAAU+Y,WAAW,KAClCpiB,OAAOC,SAASiF,UACjB,OAGHg3H,EAAgB,CAAE/sG,SAAS,EAAMtvB,KAAM,WAAYuvB,WAAY1xB,EAAOsD,OAGtEs7H,EAAiBjzH,QAAU+Y,WAAW,KAElC0N,eAAe4tE,QAAQ,oBAAqB,QAC5C19F,OAAOC,SAASiF,UACjB,KAGH62H,EAAiB,IACjBC,EAAiB,MAIlB,GAAe,eAAX36H,IAA4BO,EAAOoG,KAAKnF,UA0B/C,OAzBAw6H,GAAmB,EACnBnB,EAAgB,CAAE/sG,SAAS,EAAMtvB,KAAM,aAAcuvB,WAAY1xB,EAAOsD,QAGxEQ,EAAAA,EAAAA,IAAiB,CACbC,WAAY,aACZC,aAAc,qBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,aAKhB06H,EAAiBjzH,QAAU+Y,WAAW,KAElC0N,eAAe4tE,QAAQ,oBAAqB,QAC5C19F,OAAOC,SAASiF,UACjB,KAIH62H,EAAiB,SACjBC,EAAiB,GAErB,MArFI/sG,EAAe,CAAEE,SAAS,EAAMtvB,KAAM,UAAWuvB,WAAY1xB,EAAOsD,OACpEk7H,EAAgB,CAAE/sG,SAAS,EAAMtvB,KAAM,SAAUuvB,WAAY1xB,EAAOsD,QAGpEQ,EAAAA,EAAAA,IAAiB,CACbC,WAAY,SACZC,aAAc,iBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,iBA8EL,aAAXP,GACA+uB,EAAc,CAAEjB,SAAS,EAAMtvB,KAAM,WAAYuvB,WAAY1xB,EAAOsD,QAGpEQ,EAAAA,EAAAA,IAAiB,CACbC,WAAY,WACZC,aAAc,mBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,QACRm8H,cAAen8H,EAAOoG,MAAM1F,SAAW3D,GAAQY,eAAei0B,wBAA0B,wBAG9E,eAAXnyB,GACP+uB,EAAc,CAAEjB,SAAS,EAAMtvB,KAAM,aAAcuvB,WAAY1xB,EAAOsD,QAGtEQ,EAAAA,EAAAA,IAAiB,CACbC,WAAY,aACZC,aAAc,qBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,QACRm8H,cAAen8H,EAAOoG,MAAM1F,SAAW3D,GAAQY,eAAek0B,0BAA4B,0BAGhF,YAAXpyB,GACP+uB,EAAc,CAAEjB,SAAS,EAAMtvB,KAAM,UAAWuvB,WAAY1xB,EAAOsD,QAGnEQ,EAAAA,EAAAA,IAAiB,CACbC,WAAY,UACZC,aAAc,kBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,QACRm8H,cAAen8H,EAAOoG,MAAM1F,SAAW,0BAG7B,WAAXjB,GACP+uB,EAAc,CAAEjB,SAAS,EAAMtvB,KAAM,SAAUuvB,WAAY1xB,EAAOsD,QAGlEQ,EAAAA,EAAAA,IAAiB,CACbC,WAAY,SACZC,aAAc,iBACdhE,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,QACRm8H,cAAen8H,EAAOoG,MAAM1F,SAAW3D,GAAQY,eAAeo0B,sBAAwB,sBAI9FqqG,MAAMp8H,EAAOoG,MAAM1F,SAAW,2BAG1C,CAAE,MAAO6X,GACLlQ,QAAQD,MAAM,uBAAwBmQ,GAGvB,aAAX9Y,GAAoC,YAAXA,GAAmC,WAAXA,IACjDG,EAAAA,EAAAA,IAAiB,CACbC,WAAuB,aAAXJ,EAAwB,WAAyB,YAAXA,EAAuB,UAAY,SACrFK,aAAyB,aAAXL,EAAwB,mBAAiC,YAAXA,EAAuB,kBAAoB,iBACvG3D,OAAQA,EACRiE,QAAS,CACLN,OAAQA,EACRO,OAAQ,QACRm8H,cAAe5jH,EAAI7X,SAAW,kBAI9C,CAAE,QAGO+6H,GACDtpG,EAAkB7M,IAAQ,IAAMA,EAAM,CAACxpB,EAAOsD,OAAO,KAGzD+6H,EAAiB,IACjBC,EAAiB,GACrB,GACD,CAACnoG,EAAY1D,EAAe/vB,EAAUzB,IAEnC6N,EAAQ,CACVqnB,aACA1D,gBACA/vB,WACA0zB,sBACAtzB,gBACAC,iBACAszB,oBACArzB,qBACAC,yBACAqzB,0BACApzB,gBACAwnB,UACA6L,aACAt1B,SACAu1B,YACArzB,qBACAquB,eACAxB,gBACAC,gBACAqB,cACAC,iBACA+D,aACA5C,gBACA6rG,eACAC,kBACA/nG,sBACAC,yBACAC,eACAC,kBACAC,iBACAC,oBACAC,sBACA3zB,kBACAmoB,mBACA9sB,uBACAogI,YACA7zG,gBACAC,qBAGJ,OACIjpB,EAAAA,EAAAA,eAACk8H,EAAmBqC,SAAQ,CAACzxH,MAAOA,GAC/B2+C,IAKA9rD,EAAiBA,KAC1B,MAAMsC,GAAUu8H,EAAAA,EAAAA,YAAWtC,GAC3B,IAAKj6H,EACD,MAAM,IAAIojB,MAAM,0DAEpB,OAAOpjB,E,2eC/pBX,MAOMw8H,EAAa,CAACv6H,EAAM0L,EAAU+B,EAAWsU,IAAc/hB,EAAK8hB,UAAUpW,EAAU+B,EAAWsU,GAEpF5gB,EAAiB,CAACP,EAAI85B,EAAQ,CAAC,KAC1C,MACE16B,KAAMw6H,GACJ9/F,GAEF16B,KAAMy6H,EACNxyH,UAAWyyH,IACT,IAAAJ,YAAW,OAAgB,CAAC,EAC1Bt6H,EAAOw6H,GAAiBC,IAAmB,UAEjD,GADIz6H,IAASA,EAAK26H,mBAAkB36H,EAAK26H,iBAAmB,IAAI,OAC3D36H,EAAM,EACT,QAASA,EAAM,sBAAuB,0FACtC,MAAM46H,EAAY,CAACx3H,EAAGy3H,KAChB,QAASA,GAA4BA,GACrC,QAASA,KAAuB,QAASA,EAAmB5rH,cAAsB4rH,EAAmB5rH,aAClGjV,MAAMC,QAAQmJ,GAAKA,EAAEA,EAAEnK,OAAS,GAAKmK,EAExC03H,EAAc,CAACF,EAAW,CAAC,GAAG,GAIpC,OAHAE,EAAY15H,EAAIw5H,EAChBE,EAAY96H,KAAO,CAAC,EACpB86H,EAAYC,OAAQ,EACbD,CACT,CACI96H,EAAK0B,QAAQC,OAAO2c,OAAM,QAASte,EAAM,oBAAqB,uHAClE,MAAMg7H,EAAc,KACf,aACAh7H,EAAK0B,QAAQC,SACb+4B,IAEC,YACJm9F,EAAW,UACX91G,GACEi5G,EACJ,IAAIt6H,EAAaE,GAAM85H,GAAwB16H,EAAK0B,SAASuG,UAC7DvH,GAAa,QAASA,GAAc,CAACA,GAAcA,GAAc,CAAC,eAClEV,EAAK26H,iBAAiBl6H,oBAAoBC,GAC1C,MAAMq6H,GAAS/6H,EAAKggB,eAAiBhgB,EAAK2gB,uBAAyBjgB,EAAWg+B,MAAMxgB,IAAK,QAAmBA,EAAGle,EAAMg7H,IAC/GC,EAtCa,EAACj7H,EAAM0L,EAAU+B,EAAWsU,KAAc,IAAAm3G,aAAYqB,EAAWv6H,EAAM0L,EAAU+B,EAAWsU,GAAY,CAAC/hB,EAAM0L,EAAU+B,EAAWsU,IAsCtIm5G,CAAal7H,EAAM06B,EAAMjyB,KAAO,KAA6B,aAAvBuyH,EAAYG,OAAwBz6H,EAAaA,EAAW,GAAIqhB,GACjHq5G,EAAO,IAAMH,EACbI,EAAU,IAAMd,EAAWv6H,EAAM06B,EAAMjyB,KAAO,KAA6B,aAAvBuyH,EAAYG,OAAwBz6H,EAAaA,EAAW,GAAIqhB,IACnH3gB,EAAGk6H,IAAQ,IAAA32G,UAASy2G,GAC3B,IAAIG,EAAW76H,EAAWgI,OACtBgyB,EAAMjyB,MAAK8yH,EAAW,GAAG7gG,EAAMjyB,MAAM8yH,KACzC,MAAMC,EApDY,EAAC5yH,EAAO8jD,KAC1B,MAAM+uE,GAAM,IAAAtqG,UAIZ,OAHA,IAAAnM,WAAU,KACRy2G,EAAIh2H,QAAiCmD,GACpC,CAACA,EAAO8jD,IACJ+uE,EAAIh2H,SA+Cci2H,CAAYH,GAC/BI,GAAY,IAAAxqG,SAAO,IACzB,IAAAnM,WAAU,KACR,MAAM,SACJuyG,EAAQ,cACRC,GACEwD,EACJW,EAAUl2H,SAAU,EACfs1H,GAAUlD,IACTn9F,EAAMjyB,KACR,QAAczI,EAAM06B,EAAMjyB,IAAK/H,EAAY,KACrCi7H,EAAUl2H,SAAS61H,EAAKD,MAG9B,QAAer7H,EAAMU,EAAY,KAC3Bi7H,EAAUl2H,SAAS61H,EAAKD,MAI9BN,GAASS,GAAoBA,IAAqBD,GAAYI,EAAUl2H,SAC1E61H,EAAKD,GAEP,MAAMO,EAAa,KACbD,EAAUl2H,SAAS61H,EAAKD,IAI9B,OAFI9D,GAAUv3H,GAAMsH,GAAGiwH,EAAUqE,GAC7BpE,GAAex3H,GAAM2c,MAAMrV,GAAGkwH,EAAeoE,GAC1C,KACLD,EAAUl2H,SAAU,EAChBzF,GAAQu3H,GAAUA,GAAU3+H,MAAM,KAAK+H,QAAQ4C,GAAKvD,EAAK0H,IAAInE,EAAGq4H,IAChEpE,GAAiBx3H,GAAMw3H,EAAc5+H,MAAM,KAAK+H,QAAQ4C,GAAKvD,EAAK2c,MAAMjV,IAAInE,EAAGq4H,MAEpF,CAAC57H,EAAMu7H,KACV,IAAAv2G,WAAU,KACJ22G,EAAUl2H,SAAWs1H,GACvBO,EAAKF,IAEN,CAACp7H,EAAM+hB,EAAWg5G,IACrB,MAAM17G,EAAM,CAACje,EAAGpB,EAAM+6H,GAItB,GAHA17G,EAAIje,EAAIA,EACRie,EAAIrf,KAAOA,EACXqf,EAAI07G,MAAQA,EACRA,EAAO,OAAO17G,EAClB,IAAK07G,IAAUlD,EAAa,OAAOx4G,EACnC,MAAM,IAAInd,QAAQC,IACZu4B,EAAMjyB,KACR,QAAczI,EAAM06B,EAAMjyB,IAAK/H,EAAY,IAAMyB,MAEjD,QAAenC,EAAMU,EAAY,IAAMyB,O,8BCvG7C,IAAI05H,E,yBACG,MAAMC,EAAUr6H,IACrBo6H,EAAep6H,GAEJs6H,EAAU,IAAMF,C,+VCJtB,MAeDG,EAAgB,CAAC,EACVC,EAAW,CAACj8H,EAAM8F,EAAMisF,EAAK71E,KACpCta,EAASmwF,IAAQiqC,EAAcjqC,KAC/BnwF,EAASmwF,KAAMiqC,EAAcjqC,GAAO,IAAI//D,MAlB1B,EAAChyB,EAAM8F,EAAMisF,EAAK71E,KACpC,MAAMjW,EAAO,CAAC8rF,EAAK,CACjBjsF,UACIoW,GAAQ,CAAC,IAEf,GAAIlc,GAAMsL,UAAU5E,QAAQE,QAC1B,OAAO5G,EAAKsL,SAAS5E,OAAOE,QAAQX,EAAM,OAAQ,mBAAmB,GAEnErE,EAASqE,EAAK,MAAKA,EAAK,GAAK,mBAAmBA,EAAK,MACrDjG,GAAMsL,UAAU5E,QAAQP,KAC1BnG,EAAKsL,SAAS5E,OAAOP,QAAQF,GACpBI,SAASF,MAClBE,QAAQF,QAAQF,IAOlBE,CAAKnG,EAAM8F,EAAMisF,EAAK71E,KAElBggH,EAAY,CAACl8H,EAAM+nD,IAAO,KAC9B,GAAI/nD,EAAKggB,cACP+nC,QACK,CACL,MAAMs8C,EAAc,KAClB7lF,WAAW,KACTxe,EAAK0H,IAAI,cAAe28F,IACvB,GACHt8C,KAEF/nD,EAAKsH,GAAG,cAAe+8F,EACzB,GAEW7hF,EAAiB,CAACxiB,EAAMY,EAAImnD,KACvC/nD,EAAKwiB,eAAe5hB,EAAIs7H,EAAUl8H,EAAM+nD,KAE7BtlC,EAAgB,CAACziB,EAAMyI,EAAK7H,EAAImnD,KAE3C,GADInmD,EAAShB,KAAKA,EAAK,CAACA,IACpBZ,EAAK0B,QAAQwd,SAAWlf,EAAK0B,QAAQwd,QAAQxc,QAAQ+F,IAAQ,EAAG,OAAO+Z,EAAexiB,EAAMY,EAAImnD,GACpGnnD,EAAGD,QAAQud,IACLle,EAAK0B,QAAQd,GAAG8B,QAAQwb,GAAK,GAAGle,EAAK0B,QAAQd,GAAGyE,KAAK6Y,KAE3Dle,EAAKyiB,cAAcha,EAAKyzH,EAAUl8H,EAAM+nD,KAE7Br1C,EAAqB,CAAC9R,EAAIZ,EAAM0B,EAAU,CAAC,IACjD1B,EAAKmd,WAAcnd,EAAKmd,UAAUlkB,OAMhC+G,EAAK0S,mBAAmB9R,EAAI,CACjC6H,IAAK/G,EAAQ+G,IACb6Z,SAAU,CAACu5G,EAAcz5G,KACvB,GAAI1gB,EAAQ61H,UAAY71H,EAAQ61H,SAAS70H,QAAQ,qBAAuB,GAAKm5H,EAAavwH,SAASmF,iBAAiBiM,SAAWm/G,EAAat6G,uBAAyBa,EAAey5G,EAAat6G,qBAAsB3gB,GAAK,OAAO,MARrOq7H,EAASj8H,EAAM,eAAgB,yCAA0C,CACvEmd,UAAWnd,EAAKmd,aAEX,GAUEvb,EAAWC,GAAsB,iBAARA,EACzBwtF,EAAWxtF,GAAsB,iBAARA,GAA4B,OAARA,C,wHCrD3C,SAASwxB,GAAsB,OAC1Cv5B,EAAM,QACNuyB,EAAO,UACPC,GAAY,EAAI,QAChB/H,GAAU,IAEV,MAAM,cACF3nB,EAAa,cACb2vB,EAAa,eACb1vB,EAAc,QACd2nB,EAAO,OACPzpB,EAAM,mBACN+B,EAAkB,uBAClBC,EAAsB,YACtBquB,EAAW,eACXC,EAAc,cACdmB,IACA/wB,EAAAA,EAAAA,KAGE0gI,EAAa33G,EAAQrqB,KAAKC,GAAgB,qBAAXA,EAAEgD,OAAgC,KACjEg/H,EAAY53G,EAAQrqB,KAAKC,GAAgB,yBAAXA,EAAEgD,OAAoC,KAEpEE,EAAYV,QAAsD,IAA7BR,OAAOG,mBAAqCH,OAAOG,mBAAmBK,eAAkB,GAC7HW,EAAWD,EAAY,GAAGA,iBAA2B,GAG3D,GAAIinB,EAAS,CACT,MAAMkI,GACF3wB,EAAAA,EAAAA,eAAA,OAAKC,UAAuB,mBACxBD,EAAAA,EAAAA,eAAA,WAASC,UAAU,kCACjBD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCACbD,EAAAA,EAAAA,eAAA,KACEQ,KAAK,IACLJ,QAASqH,IAGP,GAFAA,EAAEirB,iBAEoB,oBAAXpyB,QAA0BA,OAAOwsB,SAAWxsB,OAAOwsB,QAAQ3vB,OAAS,EAC7E,IACEmD,OAAOwsB,QAAQ6F,MACjB,CAAE,MAAOroB,GAEHimB,GACFA,GAEJ,MACSA,GAETA,OAIJvwB,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,qBACpCzB,EAAAA,EAAAA,eAAA,YAAOf,EAAO4zB,eAKhB7yB,EAAAA,EAAAA,eAAA,UAAQC,UAAU,mBACdD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,oCAAoCmf,MAAO,CAAEwR,UAAW,eAKrF5wB,EAAAA,EAAAA,eAAA,UAAQC,UAAU,2CAChBD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACbD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BACbD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,oCAAoCmf,MAAO,CAAEwR,UAAW,eAK3E5wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qDACXD,EAAAA,EAAAA,eAAA,WAASC,UAAU,sBACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCAAqCmf,MAAO,CAAEkL,MAAO,YACpEtqB,EAAAA,EAAAA,eAAA,MAAIC,UAAU,IACT,IAAI/B,MAAM,IAAI0S,IAAI,CAAC+Z,EAAG3tB,KACnBgD,EAAAA,EAAAA,eAAA,MAAI2G,IAAK3J,IACLgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iCAQnCD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yCACXD,EAAAA,EAAAA,eAAA,WAASC,UAAU,iCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BAA4Bmf,MAAO,CAAEkL,MAAO,QAASe,aAAa,WACjFrrB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,+DACV,IAAI/B,MAAM,IAAI0S,IAAI,CAAC+Z,EAAG3tB,KACnBgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BAA4B0G,IAAK3J,IAC5CgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCAAqCmf,MAAO,CAACkL,MAAM,YAClEtqB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,qCACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kCAS/C,OAAOuwB,GAAYM,EAAAA,EAAAA,cAAaH,EAAiBluB,SAASsuB,MAAQJ,CACtE,CAGA,IAAK3yB,EAAQ,OAAO,KAGpB,MAAMuiI,GAAiBlrG,EAAAA,EAAAA,QAAO,MACxBmrG,GAAenrG,EAAAA,EAAAA,QAAO,MACtBorG,GAAWprG,EAAAA,EAAAA,QAAO,MAClBqrG,GAAiBrrG,EAAAA,EAAAA,QAAO,MACxBsrG,GAAgBtrG,EAAAA,EAAAA,QAAO,OAItBurG,EAAaC,KAHJxrG,EAAAA,EAAAA,QAAO,KAGexM,EAAAA,EAAAA,UAAS,KAG/CK,EAAAA,EAAAA,WAAU,KACN5oB,OAAO0wB,SAAS,EAAG,IACpB,CAAChzB,KAGJkrB,EAAAA,EAAAA,WAAU,KAGNqG,EAAe/H,IAASA,EAAKiI,SAAYjI,EAAKkI,aAAe2wG,GAAY/+H,MAAQkmB,EAAKkI,aAAe4wG,GAAWh/H,KAAgB,CAAEmuB,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,MAAjDlI,GACzHkJ,EAAclJ,IAASA,EAAKiI,SAAYjI,EAAKkI,aAAe2wG,GAAY/+H,MAAQkmB,EAAKkI,aAAe4wG,GAAWh/H,KAAgB,CAAEmuB,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,MAAjDlI,IACzH,CAAC64G,GAAY/+H,KAAMg/H,GAAWh/H,KAAMiuB,EAAgBmB,KAGvDxH,EAAAA,EAAAA,WAAU,KACN,MAAM+H,EAAiBA,KAEnB1B,EAAe,CAAEE,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,OACzDgB,EAAc,CAAEjB,SAAS,EAAOtvB,KAAM,KAAMuvB,WAAY,QAI5D,OADApvB,OAAO+oB,iBAAiB,WAAY4H,GAC7B,IAAM3wB,OAAOgpB,oBAAoB,WAAY2H,IACrD,CAAC1B,EAAgBmB,KAsCpBxH,EAAAA,EAAAA,WAAU,KACN,MAAM43G,EAAcP,EAAe52H,QAC7Bo3H,EAAYP,EAAa72H,QACzBq3H,EAAQP,EAAS92H,QACjBs3H,EAAcP,EAAe/2H,QAC7Bu3H,EAAaP,EAAch3H,QAEjC,KAAKm3H,GAAgBC,GAAcC,GAAUC,GAAgBC,GAAY,OAEzE,MAAMC,EAAaJ,EAAUK,cAAc,gBACrCC,EAAaN,EAAUK,cAAc,YAG3C,IAAIE,GAAgB,EAChBC,EAAkB,MAClBC,GAA2B,EAC3BC,GAAuB,EACvBC,GAAoB,EAGpBC,EAAsB,KACtBC,GAAoB,EAGxB,MAAMC,EAAoBA,KACtB,MAAMnwF,EAAaovF,EAAYpvF,WACzBowF,EAAahB,EAAYiB,YACzBC,EAAe/kI,KAAKgjH,MAAMvuE,EAAaowF,GAE7CjB,EAAemB,GAGXb,IACqB,IAAjBa,EACAb,EAAWx2F,UAAU/qB,IAAI,eAEzBuhH,EAAWx2F,UAAU8V,OAAO,gBAIhC4gF,IAEIW,GADa/kI,KAAKgjH,MAAM6gB,EAAYmB,YAAcH,GAAc,EAEhET,EAAW12F,UAAU/qB,IAAI,eAEzByhH,EAAW12F,UAAU8V,OAAO,iBAMlCyhF,EAAuBA,KACzB,MAAMC,EAAkBnvC,WAAWovC,iBAAiBpB,GAAOqB,aAAe,EAEpEC,EADerB,EAAYsB,aACO,EAGlCC,EAAaF,EAAmBH,EAGhCM,EAAYniI,OAAO2sE,YAAc,EAAKu1D,EAGtCE,EAAc,EAAIJ,EAMxB,OAJAvB,EAAU3hH,MAAMuM,UAAY,cAAc62G,OAC1CzB,EAAU3hH,MAAM0tD,IAAM,GAAG21D,MACzB1B,EAAU3hH,MAAMujH,OAAS,GAAGD,MAErB,CAAEA,cAAaJ,qBAIpBM,EAAoBF,IACtB,MAAMG,EAAY7B,EAAMjvF,wBAIlB+wF,EAHiBxiI,OAAO2sE,YAGiBy1D,EAGzCK,EAAmBF,EAAUF,QAAUG,EAEzCC,IAAqBzB,IACrBA,EAAgByB,EAEZzB,EACAP,EAAUp2F,UAAU/qB,IAAI,mBAExBmhH,EAAUp2F,UAAU8V,OAAO,qBAMjCuiF,EAAqCA,KAEvC,GAAItB,EACA,OAIJ,IAAIuB,EAIAA,EAHCzB,EAEMA,IAA6BC,EACzB,UAEA,SAJA,MAQXwB,IAAa1B,IAEbG,GAAoB,EACpBH,EAAkB0B,EAEM,QAApB1B,GACAL,EAAWv2F,UAAU/qB,IAAI,gBACzBshH,EAAWv2F,UAAU8V,OAAO,qBACD,YAApB8gF,GACPL,EAAWv2F,UAAU8V,OAAO,gBAC5BygF,EAAWv2F,UAAU/qB,IAAI,sBAEzBshH,EAAWv2F,UAAU8V,OAAO,gBAC5BygF,EAAWv2F,UAAU8V,OAAO,qBAIhCkqC,sBAAsB,KAElBjoE,WAAW,KACPg/G,GAAoB,GACrB,SAMT,YAAEgB,GAAgBR,IAGxBpB,EAAYz3G,iBAAiB,SAAUw4G,GAIvC,MAAMqB,EAAqB,IAAIC,qBAC1Bp3H,IACGA,EAAQlH,QAASunH,KAERA,EAAMgX,gBAAkBhX,EAAMiX,mBAAmBv2D,IAAM,EACxD00D,GAA2B,GACpBpV,EAAMgX,gBAAkBhX,EAAMiX,mBAAmBv2D,KAAO,KAC/D00D,GAA2B,GAE/BwB,OAGR,CACIvoD,UAAW,CAAC,EAAG,GACf6oD,WAAY,QAMdC,EAAsB9gI,SAASzC,cAAc,OACnDujI,EAAoBnkH,MAAMmL,SAAW,WACrCg5G,EAAoBnkH,MAAMujH,OAAS,IACnCY,EAAoBnkH,MAAMqgB,KAAO,IACjC8jG,EAAoBnkH,MAAMkL,MAAQ,MAClCi5G,EAAoBnkH,MAAMmM,OAAS,MACnCg4G,EAAoBnkH,MAAMwT,cAAgB,OAC1CouG,EAAM5hH,MAAMmL,SAAW,WACvBy2G,EAAM19F,YAAYigG,GAElB,MAAMC,EAAsB,IAAIL,qBAC3Bp3H,IACGA,EAAQlH,QAASunH,IACbqV,EAAuBrV,EAAMgX,eAC7BJ,OAGR,CACIvoD,UAAW,CAAC,GACZ6oD,WAAY,uBAKpBJ,EAAmB/sD,QAAQ+qD,GAC3BsC,EAAoBrtD,QAAQotD,GAG5B,MAAME,EAAeA,KACb7B,IAEJA,GAAoB,EAGpBj3C,sBAAsB,KAClBi4C,EAAiBF,KAIrBf,EAAsBj/G,WAAW,KAC7Bk/G,GAAoB,GACrB,OAID8B,EAAeA,KACjB,MAAQhB,YAAaiB,GAAmBzB,IACxCU,EAAiBe,IAYrB,OATArjI,OAAO+oB,iBAAiB,SAAUo6G,GAClCnjI,OAAO+oB,iBAAiB,SAAUq6G,GAGlC7B,IACAe,EAAiBF,GACjBM,IAGO,KACCrB,GACAluG,aAAakuG,GAEjBb,EAAYx3G,oBAAoB,SAAUu4G,GAC1CvhI,OAAOgpB,oBAAoB,SAAUm6G,GACrCnjI,OAAOgpB,oBAAoB,SAAUo6G,GACrCR,EAAmBjhD,aACnBuhD,EAAoBvhD,aAChBshD,GAAuBA,EAAoBl5D,YAC3Ck5D,EAAoBl5D,WAAW5mC,YAAY8/F,KAGpD,SAG8C,IAAxBjjI,OAAO4wB,cAAgC5wB,OAAO4wB,aACvDlzB,EAAOquB,UADvB,MAEMH,EAAYluB,EAAOmuB,WAAanuB,EAAOouB,OAASpuB,EAAOquB,WAAa,8DAGpET,EAAQy0G,GAAYv9H,MAAQ9E,EAAO8E,MAAQ,UAC3CgpB,EAAcu0G,GAAYn8H,MAAM4nB,aAAeu0G,GAAYn8H,MAAMitB,SACjEA,EAAWkvG,GAAYn8H,MAAMitB,SAG7ByyG,EAAWtD,GAAWx9H,MAAQ,gBAC9B+gI,EAAiBvD,GAAWp8H,MAAMitB,UAAYmvG,GAAWp8H,MAAM4nB,YAC/Dg4G,EAAWxD,GAAYvhI,EAAAA,EAAAA,GAAkBuhI,EAAWrhI,GAAQG,QAAQ6sB,MAAQ,OAAQhtB,GAAU,GAG9F8kI,EAAwBD,KAAc7kI,GAAQG,QAAQC,kBAAoB,sBAG1E2kI,GAAqBjmI,EAAAA,EAAAA,IAAauiI,GAGlCxuG,EAAuBA,CAAC/rB,EAAKgsB,KAC/B,IAAKhsB,GAAsB,iBAARA,EAAkB,MAAO,GAC5C,MAAMisB,EAAU,GAChB,IAAIh1B,EAAI,EACR,KAAO+I,EAAI,GAAGgsB,IAAW/0B,MAAM,CAC3B,MAAM8P,EAAQ/G,EAAI,GAAGgsB,IAAW/0B,KAC5B8P,GAA0B,KAAjBA,EAAMrJ,QACfuuB,EAAQzoB,KAAKuD,GAEjB9P,GACJ,CACA,OAAOg1B,GAILiyG,EAAa5D,GAAYn8H,MAAQlG,EAAOkG,KACxC+tB,EAAmBH,EAAqBmyG,EAAY,qBAGpDC,EAAkBpyG,EAAqBuuG,GAAYn8H,KAAM,qBACzDigI,EAAiBryG,EAAqBwuG,GAAWp8H,KAAM,qBAGvDkgI,EAAcnnI,KAAKC,IAAIgnI,EAAgB/mI,OAAQgnI,EAAehnI,QAG9Dg1B,EAAuB,GAC7B,GAAI8xG,GAAoC,iBAAfA,EAAyB,CAC9C,IAAIjnI,EAAI,EACR,KAAOinI,EAAW,mBAAmBjnI,MAAQinI,EAAW,qBAAqBjnI,MAAM,CAC/E,MAAM4uB,EAAQq4G,EAAW,mBAAmBjnI,KACtCq1B,EAAU4xG,EAAW,qBAAqBjnI,KAC5C4uB,GAA0B,KAAjBA,EAAMnoB,QAAiB4uB,GAA8B,KAAnBA,EAAQ5uB,QACnD0uB,EAAqB5oB,KAAK,CAAEzG,KAAM8oB,EAAO0G,KAAMD,IAEnDr1B,GACJ,CACJ,CAGA,MAAMw1B,EAAWP,EACXQ,EAAeN,EAEfE,GACFryB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,mBACXD,EAAAA,EAAAA,eAAA,WAASC,UAAU,sEACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,+BACXD,EAAAA,EAAAA,eAAA,KACIQ,KAAK,IACLJ,QAASqH,IAGL,GAFAA,EAAEirB,kBAEE3xB,EAAe/C,EAAOsD,MAI1B,GAAsB,oBAAXhB,QAA0BA,OAAOwsB,SAAWxsB,OAAOwsB,QAAQ3vB,OAAS,EAC3E,IACImD,OAAOwsB,QAAQ6F,MACnB,CAAE,MAAOroB,GAEDimB,GACAA,GAER,MACOA,GAEPA,KAGRtwB,UAAU,oCACV4wB,KAAK,SACL,aAAW,UACXzR,MAAO,CACHsO,QAAS3sB,EAAe/C,EAAOsD,MAAQ,GAAM,EAC7CsxB,cAAe7xB,EAAe/C,EAAOsD,MAAQ,OAAS,OACtDmsB,OAAQ1sB,EAAe/C,EAAOsD,MAAQ,cAAgB,WAE1D,gBAAeP,EAAe/C,EAAOsD,MAAQ,OAAS,UAEtDtB,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,qBACpCzB,EAAAA,EAAAA,eAAA,YAAOf,EAAO4zB,cAEtB7yB,EAAAA,EAAAA,eAACqvB,EAAAA,EAAa,CAACrxB,OAAQsxB,GAAaI,aAAe4wG,GAAWh/H,KAAOg/H,EAAYD,KACjFrgI,EAAAA,EAAAA,eAAC8yB,EAAAA,EAAU,CAAC90B,OAAQqiI,KACpBrgI,EAAAA,EAAAA,eAAC8yB,EAAAA,EAAU,CAAC90B,OAAQsiI,MAIpBtgI,EAAAA,EAAAA,eAAA,UAAQC,UAAU,qCACdD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4CACXD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,yBAAwB,cACtCD,EAAAA,EAAAA,eAAA,KAAGC,UAAU,cAAc6rB,KAE/B9rB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACXD,EAAAA,EAAAA,eAAA,gBACIA,EAAAA,EAAAA,eAAA,UACIotB,MAAM,qBACNC,OAAQ,GAAGnB,SAAiBA,UAEhClsB,EAAAA,EAAAA,eAAA,OACI+D,IAAKmoB,EACLmB,OAAQ,GAAGnB,SAAiBA,OAC5BoB,IAAI,sBAMpBttB,EAAAA,EAAAA,eAAA,WAASC,UAAU,oFACfD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,gBAAgB0/H,IAAKa,IAChCxgI,EAAAA,EAAAA,eAAA,UAAQG,KAAK,SAASF,UAAU,wCAAwCG,QA1Z5EikI,KACpB,MAAMvD,EAAcP,EAAe52H,QACnC,IAAKm3H,EAAa,OAElB,MAAMgB,EAAahB,EAAYiB,YAC/BjB,EAAY9vG,SAAS,CACjByO,KAAMqhG,EAAYpvF,WAAaowF,EAC/BwC,SAAU,cAoZctkI,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,wBAExCzB,EAAAA,EAAAA,eAAA,UAAQG,KAAK,SAASF,UAAU,wBAAwBG,QAlZ5DmkI,KACpB,MAAMzD,EAAcP,EAAe52H,QACnC,IAAKm3H,EAAa,OAElB,MAAMgB,EAAahB,EAAYiB,YAC/BjB,EAAY9vG,SAAS,CACjByO,KAAMqhG,EAAYpvF,WAAaowF,EAC/BwC,SAAU,cA4YctkI,EAAAA,EAAAA,eAAA,WAAS,cAAY,OAAO+D,IAAK,GAAGtC,0BAG5CzB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kBAAkB0/H,IAAKY,IAClCvgI,EAAAA,EAAAA,eAAA,OAAKC,UAAU,WAAW4wB,KAAK,QAAQ8uG,IAAKc,IACxCzgI,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kBAAkB4wB,KAAK,WAAW8uG,IAAKe,IAClD1gI,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eAAe4wB,KAAK,QAC/B7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,oBAAoB4wB,KAAK,iBACpC7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eACXD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,YAAY,GAAG2rB,WAC7B5rB,EAAAA,EAAAA,eAAA,SAAImxB,KAERnxB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBACXD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACXD,EAAAA,EAAAA,eAAA,QAAMC,UAAU,iBAAiBhB,GAAQG,QAAQ6sB,MAAQ,UAGhEwE,GAAiB4vG,GACdrgI,EAAAA,EAAAA,eAACa,EAAAA,EAAa,CACV7C,OAAQqiI,IAGZA,GAAYzxG,WACR5uB,EAAAA,EAAAA,eAAA,UAAQG,KAAK,SAASF,UAAU,iCAAiChB,GAAQmF,eAAiBi8H,GAAYn8H,MAAME,eAAiB,cAK/IpE,EAAAA,EAAAA,eAAA,OAAKC,UAAU,oBAAoB4wB,KAAK,iBACtC7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wBAAuB,gBACtCD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eACbD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,YAAY2jI,IAC1B5jI,EAAAA,EAAAA,eAAA,SAAI6jI,EAAe7yH,UAAU,EAAG,KAAM6yH,EAAe1mI,OAAS,IAAM,IAAM,MAE5E6C,EAAAA,EAAAA,eAAA,OAAKC,UAAU,cACTD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,uBACbD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aACbD,EAAAA,EAAAA,eAAA,QAAMC,UAAU,iBAAiB6jI,EAAUA,IAAaC,GAAyB,MAChFD,IAAaC,IAAyB/jI,EAAAA,EAAAA,eAAA,QAAMC,UAAU,aAAY,IAAEhB,GAAQG,QAAQ+tB,YAEtF22G,IACD9jI,EAAAA,EAAAA,eAAA,OAAKC,UAAU,kBACbD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,WAAWhB,EAAOG,OAAO6zB,UAAU,KAAG+wG,EAAmB,KAAG/kI,GAAQG,QAAQ+tB,aAGlGsD,GAAiB6vG,GAChBtgI,EAAAA,EAAAA,eAACa,EAAAA,EAAa,CACZ7C,OAAQsiI,KAGVtgI,EAAAA,EAAAA,eAAA,UAAQG,KAAK,SACLF,UAAU,+BAA8B,cAM3DmkI,EAAc,IACXpkI,EAAAA,EAAAA,eAAA,OAAKC,UAAU,aAAa4wB,KAAK,aAC7B7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,iCAAiC4wB,KAAK,QACjD7wB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,SAC1B7wB,EAAAA,EAAAA,eAAA,MAAIC,UAAU,YAAYhB,GAAQi0B,mBAAqBmtG,GAAYn8H,MAAMgvB,mBAAqB,kBAElGlzB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,SAC1B7wB,EAAAA,EAAAA,eAAA,MAAIC,UAAU,YAAYhB,GAAQi0B,mBAAqBotG,GAAWp8H,MAAMgvB,mBAAqB,kBAGpGh1B,MAAM4N,KAAK,CAAE3O,OAAQinI,IAAexzH,IAAI,CAAC+Z,EAAG3tB,KACzCgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,eAAe4wB,KAAK,MAAMlqB,IAAK3J,IAC1CgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,SAC1B7wB,EAAAA,EAAAA,eAAA,QAAMC,UAAU,gBAAgBikI,EAAgBlnI,IAAM,MAE1DgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,SAC1B7wB,EAAAA,EAAAA,eAAA,QAAMC,UAAU,gBAAgBkkI,EAAennI,IAAM,YASrFgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,oCAAoC0/H,IAAKgB,IACpD3gI,EAAAA,EAAAA,eAAA,OAAKC,UAAU,UAAU4wB,KAAK,WACzB,CAAC,EAAG,GAAGjgB,IAAK4zH,IACTxkI,EAAAA,EAAAA,eAAA,QACI2G,IAAK69H,EACLvkI,UAAW,WAAU2gI,IAAgB4D,EAAa,YAAc,IAChE3zG,KAAK,MACL,gBAAe+vG,IAAgB4D,EAAa,OAAS,QACrD,aAAY,eAAeA,EAAa,IACxCpkI,QAASA,IAnerBokI,KACpB,MAAM1D,EAAcP,EAAe52H,QACnC,IAAKm3H,EAAa,OAElB,MAAMgB,EAAahB,EAAYiB,YAC/BjB,EAAY9vG,SAAS,CACjByO,KAAMqiG,EAAa0C,EACnBF,SAAU,YA4diCG,CAAeD,GAC9BplH,MAAO,CAAEqO,OAAQ,mBAQzCztB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,wCACVuyB,EAASr1B,OAAS,IACf6C,EAAAA,EAAAA,eAAA,WAASC,UAAU,sBACfD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,oCAAoChB,GAAQk0B,gBAAkBn1B,EAAOkG,MAAMivB,gBAAkB,iBAC3GnzB,EAAAA,EAAAA,eAAA,MAAIC,UAAU,iDACTuyB,EAAS5hB,IAAI,CAACqZ,EAAGjtB,KAAMgD,EAAAA,EAAAA,eAAA,MAAI2G,IAAK3J,GAAIitB,OAMpDwI,EAAat1B,OAAS,IACnB6C,EAAAA,EAAAA,eAAA,OAAKC,UAAU,yCACXD,EAAAA,EAAAA,eAAA,WAASC,UAAU,iCACfD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,oCAAoChB,GAAQm0B,wBAA0Bp1B,EAAOkG,MAAMkvB,wBAA0B,2BAC3HpzB,EAAAA,EAAAA,eAAA,OAAKC,UAAU,+DACVwyB,EAAa7hB,IAAI,CAACkO,EAAI9hB,KACnBgD,EAAAA,EAAAA,eAAA,OAAKC,UAAU,4BAA4B0G,IAAK3J,IAC5CgD,EAAAA,EAAAA,eAAA,MAAIC,UAAU,oCAAoC6e,EAAGhc,OACrD9C,EAAAA,EAAAA,eAAA,KAAGC,UAAU,cAAc6e,EAAGwT,aAWlE,OAAO9B,GAAYM,EAAAA,EAAAA,cAAauB,EAAS5vB,SAASsuB,MAAQsB,CAC9D,C,GC7rBIqyG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB9lI,IAAjB+lI,EACH,OAAOA,EAAa1/H,QAGrB,IAAID,EAASw/H,EAAyBE,GAAY,CAGjDz/H,QAAS,CAAC,GAOX,OAHA2/H,EAAoBF,GAAU1/H,EAAQA,EAAOC,QAASw/H,GAG/Cz/H,EAAOC,OACf,CCrBAw/H,EAAoBviH,EAAKld,IACxB,IAAI6/H,EAAS7/H,GAAUA,EAAO4xC,WAC7B,IAAO5xC,EAAiB,QACxB,IAAM,EAEP,OADAy/H,EAAoBztF,EAAE6tF,EAAQ,CAAEt1H,EAAGs1H,IAC5BA,GCLRJ,EAAoBztF,EAAI,CAAC/xC,EAAS6/H,KACjC,IAAI,IAAIr+H,KAAOq+H,EACXL,EAAoB70H,EAAEk1H,EAAYr+H,KAASg+H,EAAoB70H,EAAE3K,EAASwB,IAC5E3B,OAAOg1B,eAAe70B,EAASwB,EAAK,CAAEuzB,YAAY,EAAMjxB,IAAK+7H,EAAWr+H,MCJ3Eg+H,EAAoB70H,EAAI,CAAC/J,EAAKkC,IAAUjD,OAAOmC,UAAUC,eAAeC,KAAKtB,EAAKkC,GCClF08H,EAAoBh0H,EAAKxL,IACH,oBAAXuJ,QAA0BA,OAAOyqC,aAC1Cn0C,OAAOg1B,eAAe70B,EAASuJ,OAAOyqC,YAAa,CAAErsC,MAAO,WAE7D9H,OAAOg1B,eAAe70B,EAAS,aAAc,CAAE2H,OAAO,K,iGCEvDrK,SAAS4mB,iBAAiB,mBAAoB,KAC1C,MAAM0hB,EAAKtoC,SAAS09F,eAAe,oBACnC,GAAIp1D,EAAI,CACJ,MAAMwqD,EAASj1F,OAAOG,mBAAqB,CAAC,EACxC80F,EAAO70E,QACP,uCAAkBkC,KAAK,EAAG7J,QAAS7U,MAC/BA,EAAKyL,eAAe4lF,EAAO70E,UAInC,MAAMukH,GAAcxoI,EAAAA,EAAAA,GAAqB84F,EAAOsnC,UAAW,OAExB,mBAAxBqI,IAAAA,YAAsCD,EAEhCC,IAAAA,WAAoBn6F,GAC5Bo6F,QAAOnlI,EAAAA,EAAAA,eAACy5B,EAAAA,EAAc,IAAK87D,KAKhC2vC,IAAAA,QAAgBllI,EAAAA,EAAAA,eAACy5B,EAAAA,EAAc,IAAK87D,IAAYxqD,EAExD,G","sources":["webpack://MarketPlaceWP/./src/utils/wpVersionHelper.js","webpack://MarketPlaceWP/./src/utils/priceFormatter.js","webpack://MarketPlaceWP/./src/components/WpVersionErrorState.jsx","webpack://MarketPlaceWP/./src/components/PluginActions.jsx","webpack://MarketPlaceWP/./node_modules/react-i18next/dist/es/context.js","webpack://MarketPlaceWP/external window \"React\"","webpack://MarketPlaceWP/./src/components/ErrorState.jsx","webpack://MarketPlaceWP/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://MarketPlaceWP/./node_modules/i18next/dist/esm/i18next.js","webpack://MarketPlaceWP/./node_modules/react-i18next/dist/es/unescape.js","webpack://MarketPlaceWP/./src/utils/redirectUrlHelper.js","webpack://MarketPlaceWP/./src/components/FeaturedCarousel.jsx","webpack://MarketPlaceWP/./src/components/LoadingOverlay.jsx","webpack://MarketPlaceWP/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://MarketPlaceWP/./src/components/normalised-plugins.jsx","webpack://MarketPlaceWP/./src/components/SuccessNotice.jsx","webpack://MarketPlaceWP/./src/components/ProductDetail.jsx","webpack://MarketPlaceWP/./src/components/ErrorToast.jsx","webpack://MarketPlaceWP/./src/components/MarketPlace.jsx","webpack://MarketPlaceWP/./node_modules/void-elements/index.js","webpack://MarketPlaceWP/./src/i18n/index.js","webpack://MarketPlaceWP/./src/MarketplaceApp.jsx","webpack://MarketPlaceWP/external window \"ReactDOM\"","webpack://MarketPlaceWP/./src/components/ProductBanner.jsx","webpack://MarketPlaceWP/./node_modules/@group.one/gravity/dist/index.es.js","webpack://MarketPlaceWP/./node_modules/mixpanel-browser/dist/mixpanel.module.js","webpack://MarketPlaceWP/./src/utils/mixpanelTracking.js","webpack://MarketPlaceWP/./node_modules/react-i18next/dist/es/defaults.js","webpack://MarketPlaceWP/./src/context/MarketplaceContext.jsx","webpack://MarketPlaceWP/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://MarketPlaceWP/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://MarketPlaceWP/./node_modules/react-i18next/dist/es/utils.js","webpack://MarketPlaceWP/./src/components/ProductDetailRankMath.jsx","webpack://MarketPlaceWP/webpack/bootstrap","webpack://MarketPlaceWP/webpack/runtime/compat get default export","webpack://MarketPlaceWP/webpack/runtime/define property getters","webpack://MarketPlaceWP/webpack/runtime/hasOwnProperty shorthand","webpack://MarketPlaceWP/webpack/runtime/make namespace object","webpack://MarketPlaceWP/./src/index.jsx"],"sourcesContent":["export const isWpVersionSupported = (version, minVersion) => {\n if (!version) return true;\n const v1 = String(version).split('.');\n const v2 = String(minVersion).split('.');\n for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n const num1 = parseInt(v1[i] || 0, 10);\n const num2 = parseInt(v2[i] || 0, 10);\n if (num1 > num2) return true;\n if (num1 < num2) return false;\n }\n return true;\n};\n","/**\n * Currency symbol mapping - scalable for future currencies\n */\nconst CURRENCY_SYMBOLS = {\n 'EUR': '€',\n 'USD': '$',\n 'GBP': '£',\n 'DKK': 'kr',\n 'NOK': 'kr',\n 'SEK': 'kr',\n // Add more currencies here as needed\n // 'JPY': '¥',\n};\n\n/**\n * Currencies that display the symbol AFTER the amount (e.g., \"79.00 kr\")\n * Most European currencies like EUR, USD, GBP display before, but Nordic currencies display after\n */\nconst CURRENCIES_WITH_POST_SYMBOL = ['DKK', 'SEK', 'NOK'];\n\n/**\n * Gets the currency symbol for a given currency code\n * @param {string} currencyCode - The currency code (e.g., 'EUR', 'USD')\n * @returns {string} - The currency symbol or the code itself as fallback\n */\nconst getCurrencySymbol = (currencyCode) => {\n return CURRENCY_SYMBOLS[currencyCode] || currencyCode;\n};\n\n/**\n * Formats price with currency symbol in the correct position\n * @param {string} amount - The formatted amount\n * @param {string} symbol - The currency symbol\n * @param {string} currencyCode - The currency code\n * @returns {string} - Formatted price with symbol in correct position\n */\nconst formatPriceWithSymbol = (amount, symbol, currencyCode) => {\n if (CURRENCIES_WITH_POST_SYMBOL.includes(currencyCode)) {\n return `${amount} ${symbol}`;\n }\n return `${symbol} ${amount}`;\n};\n\n/**\n * Extracts and formats the full price from plugin.prices array\n * @param {Object} plugin - The plugin object containing prices array\n * @returns {string|null} - Formatted full price with currency symbol or null if not found\n */\nexport const getFullPrice = (plugin) => {\n if (plugin.prices && Array.isArray(plugin.prices) && plugin.prices.length > 0) {\n const fullPrice = plugin.prices.find(p => p.priceType === 'full');\n if (fullPrice && fullPrice.amount && fullPrice.currency) {\n const symbol = getCurrencySymbol(fullPrice.currency);\n const formattedAmount = Number(fullPrice.amount).toFixed(2);\n return formatPriceWithSymbol(formattedAmount, symbol, fullPrice.currency);\n }\n }\n return null;\n};\n\n/**\n * Extracts and formats the rebate price from plugin.prices array\n * @param {Object} plugin - The plugin object containing prices array\n * @returns {string|null} - Formatted rebate price with currency symbol or null if not found\n */\nexport const getRebatePrice = (plugin) => {\n if (plugin.prices && Array.isArray(plugin.prices) && plugin.prices.length > 0) {\n const rebatePrice = plugin.prices.find(p => p.priceType === 'rebate');\n if (rebatePrice && rebatePrice.amount !== undefined && rebatePrice.amount !== null && rebatePrice.currency) {\n const symbol = getCurrencySymbol(rebatePrice.currency);\n const formattedAmount = Number(rebatePrice.amount).toFixed(2);\n return formatPriceWithSymbol(formattedAmount, symbol, rebatePrice.currency);\n }\n }\n return null;\n};\n\n/**\n * Formats the price display for a plugin based on its license type\n * @param {Object} plugin - The plugin object containing price and license information\n * @param {string} freeLabel - Optional label for free plugins (defaults to 'Free')\n * @param {Object} uiI18n - Optional UI internationalization object containing labels\n * @returns {string} - Formatted price string ('Free', 'Symbol Amount', or blank)\n */\nexport const formatPluginPrice = (plugin, freeLabel = 'Free', uiI18n = null) => {\n const isFree = plugin.licenseType === \"free\";\n\n if (isFree) {\n return freeLabel;\n }\n\n // Handle new API format with prices array\n if (plugin.prices && Array.isArray(plugin.prices) && plugin.prices.length > 0) {\n // Check if there's a rebate price type for premium licenses\n const rebatePrice = plugin.prices.find(price => price.priceType === 'rebate');\n\n if (rebatePrice && plugin.licenseType === 'premium') {\n // If rebate amount is 0, display \"Free until renewal\"\n if (rebatePrice.amount === 0) {\n return uiI18n?.labels?.freeUntilRenewal || 'Free until renewal';\n }\n // If rebate amount is not 0, display \"amount until renewal\"\n if (rebatePrice.amount && rebatePrice.currency) {\n const symbol = getCurrencySymbol(rebatePrice.currency);\n const formattedAmount = Number(rebatePrice.amount).toFixed(2);\n const priceWithSymbol = formatPriceWithSymbol(formattedAmount, symbol, rebatePrice.currency);\n return `${priceWithSymbol} `;\n }\n }\n\n // If no rebate, find the full price (first active price, or use first price if isActive is not present)\n let priceToUse = plugin.prices.find(price => price.priceType === 'full' && (price.isActive === true || price.isActive === undefined));\n\n // Fallback: find any active price\n if (!priceToUse) {\n priceToUse = plugin.prices.find(price => price.isActive === true);\n }\n\n // If no price with isActive:true found, use first price (for formats without isActive)\n if (!priceToUse) {\n priceToUse = plugin.prices[0];\n }\n\n if (priceToUse && priceToUse.amount && priceToUse.currency) {\n const symbol = getCurrencySymbol(priceToUse.currency);\n // Format amount to 2 decimal places\n const formattedAmount = Number(priceToUse.amount).toFixed(2);\n return formatPriceWithSymbol(formattedAmount, symbol, priceToUse.currency);\n }\n }\n\n // Backward compatibility: Handle old format with priceCurrency and priceAmount\n if (plugin.priceCurrency && plugin.priceAmount) {\n const symbol = getCurrencySymbol(plugin.priceCurrency);\n // Format amount to 2 decimal places\n const formattedAmount = Number(plugin.priceAmount).toFixed(2);\n return formatPriceWithSymbol(formattedAmount, symbol, plugin.priceCurrency);\n }\n\n // Return blank for premium products without prices\n return '';\n};\n","import React from \"react\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\n\nexport default function WpVersionErrorState() {\n const { uiI18n } = useMarketplace();\n\n const handleUpdateClick = () => {\n window.location.href = typeof window !== \"undefined\" && window.marketplaceConfig?.wpConfig?.adminUrl\n ? `${window.marketplaceConfig.wpConfig.adminUrl}update-core.php`\n : \"/wp-admin/update-core.php\";\n };\n\n const updateText = (uiI18n?.notifications?.updateWPText)?.replace(\"{0}\", \"6.2\");\n\n return (\n \n
\n
\n {uiI18n?.notifications?.updateWPTitle}\n \n
\n {updateText}\n
\n
\n {uiI18n?.updateWPButton} \n \n
\n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\nimport { trackPluginAction, trackButtonClick } from \"../utils/mixpanelTracking\";\nimport { getPluginRedirectUrl, navigateToPluginUrl } from \"../utils/redirectUrlHelper\";\n\nexport default function PluginActions({ plugin }) {\n const {\n assetsBaseUrl,\n pluginInAction,\n subscriptionStatus,\n isCheckingSubscription,\n isOnecomBrand,\n handlePluginAction,\n uiI18n,\n isSpecialPlugin\n } = useMarketplace();\n\n // Get subscription status for this plugin from context\n const pluginSubscriptionStatus = subscriptionStatus[plugin.slug];\n const pluginIsCheckingSubscription = isCheckingSubscription[plugin.slug];\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const iconBase = assetBase ? `${assetBase}assets/` : \"\";\n const handleClick = (action) => {\n // Check if brand is onecom, plugin is not installed, and slug is wp-rocket or rank-math-pro\n const isNotInstalled = !plugin.installed;\n\n if (isOnecomBrand && isSpecialPlugin(plugin.slug) && isNotInstalled && action === \"install\") {\n // Track install event with result: initiated for special plugins\n trackButtonClick({\n buttonName: 'Install',\n buttonAction: 'product_install',\n plugin: plugin,\n context: {\n action: action,\n result: 'initiated',\n }\n });\n\n // Dispatch custom event instead of calling handlePluginAction\n const event = new CustomEvent(\"onecom-plugin-provision\", {\n detail: {\n slug: plugin.slug,\n },\n bubbles: true,\n cancelable: true,\n composed: true\n });\n // Dispatch on document so listeners using document.addEventListener receive it\n document.dispatchEvent(event);\n return;\n }\n\n // Default behavior\n handlePluginAction(action, plugin, 'product_detail');\n };\n\n const handleSelectClick = () => {\n // Track the select button click\n trackButtonClick({\n buttonName: 'Select',\n buttonAction: 'subscribe_addon',\n plugin: plugin,\n });\n\n // Dispatch custom event for provisioning\n const event = new CustomEvent(\"onecom-subscribe-addon\", {\n detail: { slug: plugin.slug },\n bubbles: true,\n cancelable: true,\n composed: true\n });\n document.dispatchEvent(event);\n };\n\n const handleManage = () => {\n // Track the manage button click\n trackButtonClick({\n buttonName: 'Manage',\n buttonAction: 'manage_product',\n context: {\n product_slug: plugin.slug,\n product_name: plugin.name,\n has_redirect_url: !!(plugin.redirectUrl && plugin.redirectUrl.trim() !== ''),\n has_onboarding_url: !!(plugin.onboardingUrl && plugin.onboardingUrl.trim() !== ''),\n }\n });\n\n const redirectUrl = getPluginRedirectUrl(plugin, false);\n navigateToPluginUrl(redirectUrl);\n };\n\n // Helper function to replace {0} with plugin name\n const formatMessage = (message, pluginName) => {\n if (!message) return '';\n return message.replace('{0}', pluginName || '');\n };\n\n const pluginName = plugin?.name || '';\n\n // Check if we should show \"Select\" button instead of install/activate\n const shouldShowSelectButton = isOnecomBrand && isSpecialPlugin(plugin.slug) && !plugin.installed && pluginSubscriptionStatus === false;\n\n // Check if we should show skeleton loader (while checking subscription for special plugins)\n // Show skeleton if: checking OR status is undefined (not yet fetched)\n const shouldShowSkeleton = isOnecomBrand && isSpecialPlugin(plugin.slug) && !plugin.installed &&\n (pluginIsCheckingSubscription || pluginSubscriptionStatus === undefined);\n\n return (\n \n {shouldShowSkeleton ? (\n
\n ) : shouldShowSelectButton ? (\n
\n Select\n \n ) : plugin.installed ? (\n plugin.activated ? (\n
\n {uiI18n?.labels?.manage || 'Manage'} \n \n \n ) : (\n
handleClick(\"activate\")}\n >\n {pluginInAction[plugin.slug]\n ? formatMessage(uiI18n?.notifications?.activating || 'Activating {0}', pluginName)\n : (uiI18n?.activateButton || plugin.i18n?.activateButton || 'Activate')}\n \n )\n ) : (\n
handleClick(\"install\")}\n >\n {pluginInAction[plugin.slug]\n ? formatMessage(uiI18n?.notifications?.installing || 'Installing {0}', pluginName)\n : (uiI18n?.installButton || plugin.i18n?.installButton || 'Install')}\n \n )}\n
\n );\n}\n","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport const composeInitialProps = ForComponent => async ctx => {\n const componentsInitialProps = (await ForComponent.getInitialProps?.(ctx)) ?? {};\n const i18nInitialProps = getInitialProps();\n return {\n ...componentsInitialProps,\n ...i18nInitialProps\n };\n};\nexport const getInitialProps = () => {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces?.getUsedNamespaces() ?? [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n};","module.exports = window[\"React\"];","import React from \"react\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\nimport { useTranslation } from \"react-i18next\";\n\nexport default function ErrorState() {\n const { assetsBaseUrl } = useMarketplace();\n const { t } = useTranslation();\n\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const iconBase = assetBase ? `${assetBase}assets/icons/` : \"\";\n\n const handleRefresh = () => {\n window.location.reload();\n };\n\n return (\n \n
\n
{t('ui.notifications.couldNotLoad')} \n
{t('ui.notifications.refreshPage')}
\n
\n {t('ui.button.refreshPage')} \n \n
\n
\n );\n}\n","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace('_', '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n return path.join(opts?.keySeparator ?? '.');\n}\n\nconst checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n return resolved?.res !== undefined;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (!Intl) {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs?.indexOf?.('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n if (typeof options.initImmediate === 'boolean') options.initAsync = options.initImmediate;\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;\n if (usingLegacyFormatFunction) {\n this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);\n }\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && this.languages.indexOf(l) < 0 && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, {\n ...this.options,\n ...opts\n });\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, {\n ...this.options,\n ...opts\n });\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n return new I18n(options, callback);\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","/**\n * Get the redirect URL for a plugin based on its configuration and state.\n *\n * @param {Object} plugin The plugin object from API.\n * @param {boolean} forceOnboarding Whether to prioritize onboardingUrl for all plugins (default: false).\n * @returns {string} The resolved redirect path.\n */\nexport const getPluginRedirectUrl = (plugin, forceOnboarding = false) => {\n let redirectUrl = plugin.redirectUrl;\n\n const isRankMath = plugin.slug === 'seo-by-rank-math' || plugin.slug === 'seo-by-rank-math-pro';\n const hasOnboardingUrl = plugin.onboardingUrl && typeof plugin.onboardingUrl === 'string' && plugin.onboardingUrl.trim() !== '';\n\n if (isRankMath) {\n // Safe access to rankMathRegistrationSkip config\n const wpConfig = window.marketplaceConfig?.wpConfig;\n const rankMathRegistrationSkip = wpConfig ? wpConfig.rankMathRegistrationSkip === true : false;\n\n if (!rankMathRegistrationSkip && hasOnboardingUrl) {\n redirectUrl = plugin.onboardingUrl;\n }\n } else if (forceOnboarding && hasOnboardingUrl) {\n redirectUrl = plugin.onboardingUrl;\n }\n\n return redirectUrl;\n};\n\n/**\n * Navigates to the plugin's page in WordPress admin.\n *\n * @param {string} redirectPath The relative path to redirect to.\n */\nexport const navigateToPluginUrl = (redirectPath) => {\n if (redirectPath && redirectPath.trim() !== '') {\n // Get the admin URL from config (provided by PHP)\n const adminUrl = typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.wpConfig?.adminUrl;\n\n if (adminUrl) {\n // Construct full URL using adminUrl from PHP config\n // adminUrl is like \"https://example.com/wp-admin/\"\n // redirectUrl comes as \"wp-admin\\/admin.php?page=termly\" (JSON unescapes \\/ to /)\n // Strip \"wp-admin/\" prefix from redirectUrl if present to avoid duplication\n let cleanPath = redirectPath;\n if (cleanPath.startsWith('wp-admin/')) {\n cleanPath = cleanPath.substring('wp-admin/'.length);\n }\n const fullUrl = `${adminUrl}${cleanPath}`;\n window.location.href = fullUrl;\n } else {\n // Fallback: use window.location.origin if adminUrl not available\n const siteUrl = window.location.origin;\n const fullUrl = `${siteUrl}/${redirectPath}`;\n window.location.href = fullUrl;\n }\n return;\n }\n\n // Fallback to plugins page\n window.location.href = '/wp-admin/plugins.php';\n};\n","import React, { useState, useEffect } from \"react\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\nimport { formatPluginPrice } from \"../utils/priceFormatter\";\n\nexport default function FeaturedCarousel({ loading = false }) {\n const { plugins, assetsBaseUrl,uiI18n } = useMarketplace();\n const [currentIndex, setCurrentIndex] = useState(0);\n const [slidesPerView, setSlidesPerView] = useState(2);\n\n // Get active plugin slugs from WordPress config\n const activePlugins = typeof window !== \"undefined\" && window.marketplaceConfig?.activePlugins\n ? window.marketplaceConfig.activePlugins\n : [];\n\n // Get active theme author from WordPress config\n const activeThemeAuthor = typeof window !== \"undefined\" && window.marketplaceConfig?.activeThemeAuthor\n ? window.marketplaceConfig.activeThemeAuthor\n : \"\";\n\n useEffect(() => {\n const updateSlidesPerView = () => {\n if (window.innerWidth > 1024) {\n setSlidesPerView(2); // Desktop: show 2 slides\n } else if (window.innerWidth >= 600) {\n setSlidesPerView(1); // Tablet: show 2 slides\n } else {\n setSlidesPerView(1); // Mobile: show 1 slide\n }\n };\n\n updateSlidesPerView();\n window.addEventListener('resize', updateSlidesPerView);\n return () => window.removeEventListener('resize', updateSlidesPerView);\n }, []);\n\n // Helper function to check if a plugin should be visible based on its rules\n const shouldShowPlugin = (plugin) => {\n // If plugin has no rules, show it by default\n if (!plugin.rules) {\n return true;\n }\n\n // Check mustHavePlugins rule\n if (plugin.rules.mustHavePlugins && Array.isArray(plugin.rules.mustHavePlugins)) {\n // If the array is empty, no requirements exist, so show the plugin\n if (plugin.rules.mustHavePlugins.length === 0) {\n return true;\n }\n\n // Plugin should be visible if ANY of the required plugins is active\n const hasRequiredPlugin = plugin.rules.mustHavePlugins.some(requiredSlug =>\n activePlugins.includes(requiredSlug)\n );\n\n // If mustHavePlugins rule exists but no required plugin is active, hide the plugin\n if (!hasRequiredPlugin) {\n return false;\n }\n }\n\n // Check mustHaveThemesByAuthor rule\n if (plugin.rules.mustHaveThemesByAuthor && typeof plugin.rules.mustHaveThemesByAuthor === 'string') {\n // Plugin should be visible only if the active theme author matches the required author\n const requiredAuthor = plugin.rules.mustHaveThemesByAuthor;\n if (activeThemeAuthor !== requiredAuthor) {\n return false;\n }\n }\n\n // Add support for other rule types here in the future\n // For now, if all rules pass (or don't exist), show the plugin\n return true;\n };\n\n // Check activation status of Rank Math plugins\n const rankMathActivated = plugins.find(p => p.slug === \"seo-by-rank-math\")?.activated === true;\n const rankMathProActivated = plugins.find(p => p.slug === \"seo-by-rank-math-pro\")?.activated === true;\n\n // Filter featured plugins that are not active, pass rules check, and handle Rank Math logic\n const featuredPlugins = plugins.filter(plugin => {\n // Skip activated plugins\n if (plugin.activated === true || plugin.featured !== true) {\n return false;\n }\n\n // Handle Rank Math plugin visibility\n if (plugin.slug === \"seo-by-rank-math\") {\n // Show seo-by-rank-math only if BOTH plugins are NOT activated\n return !rankMathActivated && !rankMathProActivated && shouldShowPlugin(plugin);\n }\n\n if (plugin.slug === \"seo-by-rank-math-pro\") {\n // Show seo-by-rank-math-pro only if seo-by-rank-math IS activated\n return rankMathActivated && shouldShowPlugin(plugin);\n }\n\n // For all other plugins, apply normal filtering\n return shouldShowPlugin(plugin);\n }).sort((a, b) => {\n const orderA = a.displayOrder !== undefined ? parseInt(a.displayOrder) : Infinity;\n const orderB = b.displayOrder !== undefined ? parseInt(b.displayOrder) : Infinity;\n return orderA - orderB;\n });\n\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const iconBase = assetBase ? `${assetBase}assets/icons/` : \"\";\n\n const totalSlides = featuredPlugins.length;\n const maxIndex = Math.max(0, totalSlides - slidesPerView);\n\n const goToPrevious = () => {\n if (currentIndex > 0) {\n setCurrentIndex(prev => prev - 1);\n }\n };\n\n const goToNext = () => {\n if (currentIndex < maxIndex) {\n setCurrentIndex(prev => prev + 1);\n }\n };\n\n // Show skeleton loaders while loading\n if (loading) {\n return (\n \n \n\n \n
\n {/* Generate 2 skeleton carousel slides */}\n {[...Array(slidesPerView)].map((_, index) => (\n
\n ))}\n
\n
\n \n );\n }\n\n // If no featured plugins, don't render anything\n if (!featuredPlugins || featuredPlugins.length === 0) {\n return null;\n }\n\n const goToSlide = (index) => {\n setCurrentIndex(Math.min(index, maxIndex));\n };\n\n // Navigate to plugin detail page\n const handleReadMore = (plugin) => {\n if (typeof window !== \"undefined\") {\n const url = new URL(window.location.href);\n url.searchParams.set(\"plugin\", plugin.slug);\n window.history.pushState({}, \"\", url.toString());\n\n // Dispatch custom event to notify app of navigation\n window.dispatchEvent(new PopStateEvent('popstate'));\n }\n };\n\n return (\n \n \n
{uiI18n?.headings?.recommendedHeading} \n \n\n \n
\n {featuredPlugins.map((plugin, index) => {\n const title = plugin?.i18n?.featuredTitle;\n const description = plugin?.i18n?.featuredContent;\n const freeLabel = (plugin.i18n.freeTrialPeriod && plugin.i18n.freeTrialPeriod.trim() !== '')\n ? plugin.i18n.freeTrialPeriod\n : (uiI18n?.labels?.free || 'Free');\n const price = formatPluginPrice(plugin, freeLabel, uiI18n);\n const mainImage = plugin.bannerUrl || plugin.image || plugin.thumbnail || 'https://gravity.group.one/guide-images/product-image@2x.png';\n\n // Extract category name from plugin categories array\n const categoryObj = Array.isArray(plugin.categories) && plugin.categories.length\n ? (typeof plugin.categories[0] === 'object' ? plugin.categories[0] : { slug: String(plugin.categories[0]), title: String(plugin.categories[0]), description: null })\n : { slug: \"Others\", title: \"Others\", description: null };\n const categoryName = categoryObj.title || categoryObj.slug || \"Others\";\n\n return (\n
\n );\n })}\n
\n
\n\n {/* Navigation Controls: Arrows + Dots */}\n {totalSlides > slidesPerView && (\n \n
\n \n \n\n
\n {Array.from({ length: maxIndex + 1 }).map((_, index) => (\n goToSlide(index)}\n className=\"gv-carousel-dot\"\n style={{\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n border: 'none',\n background: currentIndex === index ? '#0066CC' : '#D0D0D0',\n cursor: 'pointer',\n padding: 0\n }}\n aria-label={`Go to slide ${index + 1}`}\n />\n ))}\n
\n\n
= maxIndex}\n className=\"gv-carousel-nav gv-carousel-nav-next\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: currentIndex >= maxIndex ? 'not-allowed' : 'pointer',\n opacity: currentIndex >= maxIndex ? 0.5 : 1\n }}\n aria-label=\"Next slide\"\n >\n \n \n
\n )}\n \n );\n}\n","import React from \"react\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\n\nexport default function LoadingOverlay() {\n const { loadingAction, loadingPlugin, assetsBaseUrl } = useMarketplace();\n\n // Don't show overlay if no action is in progress\n if (!loadingAction) {\n return null;\n }\n\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const spinnerSrc = `${assetBase}assets/images/spinner.svg`;\n\n return (\n \n );\n}\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"\"+t.name+\">\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"\"+a.name+\">\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","export function normalizePlugins(rawResponse) {\n // Support the new response shape:\n // { error: null, success: true, data: { catalog: [...], locale: \"...\", uiI18n: {...} } }\n\n if (!rawResponse || !rawResponse.data || !Array.isArray(rawResponse.data.catalog)) {\n // Log a clear error when the response is not supported\n // Keeping a minimal, non-crashing fallback of returning an empty object\n console.error(\"Unsupported marketplace response shape. Expected { data: { catalog: [...] } }.\", rawResponse);\n return { plugins: [], uiI18n: {}, locale: null };\n }\n\n const items = rawResponse.data.catalog;\n const uiI18n = rawResponse.data.uiI18n || {};\n const locale = rawResponse.data.locale || null;\n\n if (items.length === 0) return { plugins: [], uiI18n, locale };\n\n // Map to normalized structure\n const normalized = items.map((plugin) => {\n // Prefer description coming from i18n.description, then fallback to description field\n const descriptionFromTextKeys = plugin?.i18n?.description;\n const description =\n (typeof descriptionFromTextKeys === \"string\" && descriptionFromTextKeys)\n ? descriptionFromTextKeys\n : (typeof plugin?.description === \"object\" && plugin.description !== null\n ? (plugin.description[\"en-gb\"] || Object.values(plugin.description)[0] || \"\")\n : (plugin?.description || \"\")\n );\n\n const download = plugin?.download || plugin?.download_url || plugin?.downloadUrl || \"\";\n\n // Author may be a string or an object { name, url }\n const authorName = typeof plugin?.author === \"object\" && plugin.author !== null\n ? (plugin.author.name || \"\")\n : (plugin?.author || \"\");\n const authorUrl = typeof plugin?.author === \"object\" && plugin.author !== null\n ? (plugin.author.url || \"\")\n : \"\";\n\n const priceAmount = typeof plugin?.price === \"object\" && plugin.price !== null\n ? plugin.price.amount\n : undefined;\n const priceCurrency = typeof plugin?.price === \"object\" && plugin.price !== null\n ? plugin.price.currency\n : undefined;\n\n return {\n ...plugin,\n name: plugin?.name || \"Unknown\",\n slug: plugin?.slug || \"\",\n thumbnail: plugin?.thumbnail || \"\",\n description,\n download,\n author: authorName,\n authorUrl,\n priceAmount,\n priceCurrency,\n installed: plugin?.installed ?? false,\n activated: plugin?.activated ?? false,\n i18n: plugin?.i18n || {},\n };\n });\n\n // Deduplicate by slug (first occurrence wins)\n const seen = new Set();\n const plugins = normalized.filter((p) => {\n const key = p.slug || p.name || JSON.stringify(p);\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n });\n\n return { plugins, uiI18n, locale };\n}\n","import React from \"react\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\nimport { trackButtonClick } from \"../utils/mixpanelTracking\";\nimport { getPluginRedirectUrl, navigateToPluginUrl } from \"../utils/redirectUrlHelper\";\n\nexport default function SuccessNotice({ plugin }) {\n const {\n assetsBaseUrl,\n noticeState,\n setNoticeState,\n handlePluginAction,\n cancelReload,\n uiI18n\n } = useMarketplace();\n\n if (!noticeState || !noticeState.visible || noticeState.pluginSlug !== plugin?.slug) {\n return null;\n }\n\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const iconBase = assetBase ? `${assetBase}assets/` : \"\";\n\n const handleClose = () => {\n setNoticeState({ visible: false, type: null, pluginSlug: null });\n sessionStorage.removeItem('mp_success_notice');\n };\n\n const handleActivate = () => {\n handlePluginAction(\"activate\", plugin, 'product_detail');\n };\n\n const handleManage = () => {\n // Track the Get Started button click\n trackButtonClick({\n buttonName: 'Get started',\n buttonAction: 'manage_product',\n plugin: plugin,\n context: {\n product_slug: plugin.slug,\n product_name: plugin.name,\n has_redirect_url: !!(plugin.redirectUrl && plugin.redirectUrl.trim() !== ''),\n has_onboarding_url: !!(plugin.onboardingUrl && plugin.onboardingUrl.trim() !== ''),\n }\n });\n\n // Cancel the scheduled reload since user is navigating manually\n cancelReload();\n\n const redirectUrl = getPluginRedirectUrl(plugin, true);\n navigateToPluginUrl(redirectUrl);\n };\n\n const isInstalled = noticeState.type === 'installed';\n const isActivated = noticeState.type === 'activated';\n\n // Helper function to replace {0} with plugin name\n const formatMessage = (message, pluginName) => {\n if (!message) return '';\n return message.replace('{0}', pluginName || '');\n };\n\n const pluginName = plugin?.name || '';\n\n return (\n \n
\n
\n
\n {isInstalled && formatMessage(uiI18n?.notifications?.pluginInstalled || 'Plugin was installed.', pluginName)}\n {isActivated && formatMessage(uiI18n?.notifications?.pluginActivated || 'Plugin was activated.', pluginName)}\n
\n
\n {isInstalled && (uiI18n?.notifications?.activateNow || 'Activate it now to start using it.')}\n {isActivated && formatMessage(uiI18n?.notifications?.manageInMyProducts || '{0} plugin was activated for this site. You can manage it on the My products page.', pluginName)}\n
\n
\n {isInstalled && (\n
\n {uiI18n?.activatePluginButton}\n \n )}\n {isActivated && (\n
\n {uiI18n?.featuredCta || 'Get Started'} \n \n \n )}\n
\n \n \n
\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport PluginActions from \"./PluginActions\";\nimport SuccessNotice from \"./SuccessNotice\";\nimport ErrorToast from \"./ErrorToast\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\nimport { formatPluginPrice, getFullPrice, getRebatePrice } from \"../utils/priceFormatter\";\n\nexport default function ProductDetail({\n plugin,\n onClose,\n usePortal = true,\n loading = false\n}) {\n const {\n assetsBaseUrl,\n useWPHandlers,\n pluginInAction,\n uiI18n,\n subscriptionStatus,\n isCheckingSubscription,\n setNoticeState,\n setErrorState\n } = useMarketplace();\n\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const iconBase = assetBase ? `${assetBase}assets/icons/` : \"\";\n\n // Show skeleton loaders while loading (even if plugin is null)\n if (loading) {\n const skeletonContent = (\n \n
\n {/* Breadcrumbs skeleton */}\n \n \n \n\n {/* Header skeleton */}\n \n\n {/* Pricing / Action Section skeleton */}\n \n \n
\n
\n\n {/* Key features skeleton */}\n
\n
\n {[...Array(3)].map((_, i) => (\n
\n ))}\n
\n
\n
\n \n\n {/* Benefits skeleton */}\n \n
\n
\n \n {[...Array(3)].map((_, i) => (\n \n
\n \n ))}\n \n \n
\n\n {/* Core Features skeleton */}\n \n
\n
\n \n {[...Array(3)].map((_, i) => (\n
\n ))}\n
\n \n
\n \n
\n );\n return usePortal ? createPortal(skeletonContent, document.body) : skeletonContent;\n }\n\n // If not loading and plugin is null, return null\n if (!plugin) return null;\n\n // Scroll to top when component mounts or plugin changes\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [plugin]);\n\n // Clear banners when component mounts (handles case when user returns via browser back button)\n useEffect(() => {\n // Clear any existing banners when ProductDetail mounts\n // BUT don't clear them if they are for the current plugin (e.g. just activated and reloaded)\n setNoticeState(prev => (prev.visible && prev.pluginSlug === plugin.slug) ? prev : { visible: false, type: null, pluginSlug: null });\n setErrorState(prev => (prev.visible && prev.pluginSlug === plugin.slug) ? prev : { visible: false, type: null, pluginSlug: null });\n }, [plugin.slug, setNoticeState, setErrorState]);\n\n // Hide banners when user navigates back and returns to the product detail page\n useEffect(() => {\n const handlePopState = () => {\n // Clear notice and error state when navigating via browser back/forward\n setNoticeState({ visible: false, type: null, pluginSlug: null });\n setErrorState({ visible: false, type: null, pluginSlug: null });\n };\n\n window.addEventListener('popstate', handlePopState);\n return () => window.removeEventListener('popstate', handlePopState);\n }, [setNoticeState, setErrorState]);\n\n const imageURL = (typeof window.onecomWpVars !== \"undefined\" && window.onecomWpVars?.imageURL) || assetBase;\n const iconSrc = plugin.thumbnail || `${assetBase}assets/icons/placeholder.svg`;\n const mainImage = plugin.bannerUrl || plugin.image || plugin.thumbnail || 'https://gravity.group.one/guide-images/product-image@2x.png';\n\n // Extract data with fallbacks\n const title = plugin.name || 'Product';\n const description = plugin.i18n?.description || plugin.i18n?.subtitle || plugin.description || plugin.shortDescription || 'No description available.';\n const subTitle = plugin.i18n?.subtitle;\n const isFree = plugin.licenseType === \"free\";\n const freeTrialText = plugin.i18n?.freeTrialText || '';\n const hasFreeTrialText = freeTrialText && freeTrialText.trim() !== '';\n const freeTrialPeriod = plugin.i18n?.freeTrialPeriod || '';\n const hasFreeTrialPeriod = freeTrialPeriod && freeTrialPeriod.trim() !== '';\n\n const price = (hasFreeTrialPeriod || hasFreeTrialText)\n ? (uiI18n?.headings?.freeTrial || 'Free trial*')\n : formatPluginPrice(plugin, uiI18n?.labels?.free || 'Free', uiI18n);\n\n // Check if price is \"Free until renewal\" (rebate amount is 0)\n const isFreeUntilRenewal = price === (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal');\n\n // Extract full and rebate prices using common utility functions\n const fullPriceAmount = getFullPrice(plugin);\n const rebatePriceAmount = getRebatePrice(plugin);\n\n // Helper function to extract numbered properties dynamically from i18n object\n const extractNumberedProps = (obj, baseName) => {\n if (!obj || typeof obj !== 'object') return [];\n const results = [];\n let i = 1;\n while (obj[`${baseName}${i}`]) {\n const value = obj[`${baseName}${i}`];\n if (value && value.trim() !== '') {\n results.push(value);\n }\n i++;\n }\n return results;\n };\n\n // Extract key benefits from i18n (keyBenefitContent1, keyBenefitContent2, etc.)\n const benefitsFromI18n = extractNumberedProps(plugin.i18n, 'keyBenefitContent');\n\n // Extract key features from i18n (keyFeatureContent1 through keyFeatureContent6)\n const keyFeaturesFromI18n = extractNumberedProps(plugin.i18n, 'keyFeatureContent');\n\n // Extract core features (title/content pairs) from i18n\n const coreFeaturesFromI18n = [];\n if (plugin.i18n && typeof plugin.i18n === 'object') {\n let i = 1;\n while (plugin.i18n[`coreFeatureTitle${i}`] || plugin.i18n[`coreFeatureContent${i}`]) {\n const featureTitle = plugin.i18n[`coreFeatureTitle${i}`];\n const content = plugin.i18n[`coreFeatureContent${i}`];\n if (featureTitle && featureTitle.trim() !== '' && content && content.trim() !== '') {\n coreFeaturesFromI18n.push({ name: featureTitle, desc: content });\n }\n i++;\n }\n }\n\n // Use only i18n data - no fallbacks\n const keyFeatures = keyFeaturesFromI18n;\n const benefits = benefitsFromI18n;\n const coreFeatures = coreFeaturesFromI18n;\n\n const content = (\n \n );\n\n return usePortal ? createPortal(content, document.body) : content;\n}\n","import React, { useEffect } from \"react\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\n\nexport default function ErrorToast({ plugin: propPlugin }) {\n const {\n assetsBaseUrl,\n errorState,\n setErrorState,\n uiI18n,\n plugins\n } = useMarketplace();\n\n const plugin = propPlugin || plugins.find(p => p.slug === errorState.pluginSlug);\n const isVisible = errorState && errorState.visible && errorState.pluginSlug === plugin?.slug;\n\n useEffect(() => {\n if (isVisible) {\n const timer = setTimeout(() => {\n handleClose();\n }, 5000);\n\n return () => clearTimeout(timer);\n }\n }, [isVisible]);\n\n if (!isVisible) {\n return null;\n }\n\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const iconBase = assetBase ? `${assetBase}assets/` : \"\";\n\n const handleClose = () => {\n setErrorState({ visible: false, type: null, pluginSlug: null });\n };\n\n const isActivateError = errorState.type === 'activate';\n const isDeactivateError = errorState.type === 'deactivate';\n const isInstallError = errorState.type === 'install';\n const isDeleteError = errorState.type === 'delete';\n\n // Helper function to replace {0} with plugin name\n const formatMessage = (message, pluginName) => {\n if (!message) return '';\n return message.replace('{0}', pluginName || '');\n };\n\n const pluginName = plugin?.name || '';\n\n return (\n \n
\n
\n
\n {isActivateError && formatMessage(uiI18n?.notifications?.pluginActivationFailed || \"Couldn't activate plugin.\", pluginName)}\n {isDeactivateError && formatMessage(uiI18n?.notifications?.pluginDeactivationFailed || \"Couldn't deactivate plugin.\", pluginName)}\n {isInstallError && formatMessage(uiI18n?.notifications?.pluginInstallationFailed || \"Couldn't install plugin.\", pluginName)}\n {isDeleteError && formatMessage(uiI18n?.notifications?.pluginDeletionFailed || \"Couldn't delete plugin.\", pluginName)}\n
\n
\n \n \n
\n
\n );\n }\n","import React, { useState, useEffect, useRef } from \"react\";\nimport {normalizePlugins} from \"./normalised-plugins\";\nimport \"@group.one/gravity\";\nimport { useTranslation } from \"react-i18next\";\nimport ProductDetail from \"./ProductDetail\";\nimport ProductDetailRankMath from \"./ProductDetailRankMath\";\nimport ErrorState from \"./ErrorState\";\nimport WpVersionErrorState from \"./WpVersionErrorState\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\nimport { formatPluginPrice, getRebatePrice,getFullPrice } from \"../utils/priceFormatter\";\nimport { trackMarketplaceVisit, trackPluginDetailVisit, trackPageView } from \"../utils/mixpanelTracking\";\n\nexport default function Marketplace() {\n const {\n apiBaseUrl,\n useWPHandlers,\n wpConfig,\n enableDefaultStyles,\n assetsBaseUrl,\n pluginInAction,\n setPluginInAction,\n fetchSubscriptionStatus,\n isOnecomBrand,\n plugins,\n setPlugins,\n uiI18n,\n setUiI18n,\n handlePluginAction,\n allPluginsActivated,\n setAllPluginsActivated,\n catalogError,\n setCatalogError,\n catalogLoading,\n setCatalogLoading,\n shouldShowProvision,\n isSpecialPlugin,\n shouldShowPlugin,\n isWpVersionSupported\n } = useMarketplace();\n\n // Get active plugin slugs from WordPress config\n const activePlugins = typeof window !== \"undefined\" && window.marketplaceConfig?.activePlugins\n ? window.marketplaceConfig.activePlugins\n : [];\n\n // Get active theme author from WordPress config\n const activeThemeAuthor = typeof window !== \"undefined\" && window.marketplaceConfig?.activeThemeAuthor\n ? window.marketplaceConfig.activeThemeAuthor\n : \"\";\n\n const [downloadingPlugins, setDownloadingPlugins] = useState({});\n const [selectedPlugin, setSelectedPlugin] = useState(null);\n\n // Use ref to track if plugins have already been fetched\n const hasFetchedPlugins = useRef(false);\n\n // Use ref to track if marketplace visit has been tracked (prevent duplicates)\n const hasTrackedMarketplaceVisit = useRef(false);\n\n // Use ref to track last tracked plugin detail to prevent duplicate tracking\n const lastTrackedPluginSlug = useRef(null);\n\n // Use ref to store timestamps for tracking\n const contentReceivedTimestamp = useRef(null);\n const contentRenderTimestamp = useRef(null);\n\n // Use ref to store is_cached flag from API response\n const isCachedRef = useRef(false);\n\n // Construct icon base URL with fallback logic\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const iconBase = assetBase ? `${assetBase}assets/icons/` : \"\";\n\n // Determine if a plugin slug is in the URL\n const pluginFromQuery = typeof window !== \"undefined\"\n ? new URLSearchParams(window.location.search).get(\"plugin\")\n : null;\n\n // Get base page URL (without plugin parameter)\n const getBaseUrl = () => {\n if (typeof window === \"undefined\") return \"\";\n const url = new URL(window.location.href);\n url.searchParams.delete(\"plugin\");\n return url.toString();\n };\n\n\n // After plugins load, select plugin from query if present\n useEffect(() => {\n if (pluginFromQuery && plugins.length) {\n const match = plugins.find(p => p.slug === pluginFromQuery);\n if (match) setSelectedPlugin(match);\n } else if (!pluginFromQuery) {\n // Clear selectedPlugin when no plugin parameter in URL\n setSelectedPlugin(null);\n }\n }, [pluginFromQuery, plugins]);\n\n // Listen for browser back/forward navigation\n useEffect(() => {\n const handlePopState = () => {\n const currentPluginParam = new URLSearchParams(window.location.search).get(\"plugin\");\n if (!currentPluginParam) {\n // URL no longer has plugin parameter, clear selection\n setSelectedPlugin(null);\n } else if (plugins.length) {\n // URL has plugin parameter, update selection\n const match = plugins.find(p => p.slug === currentPluginParam);\n if (match) setSelectedPlugin(match);\n }\n };\n\n window.addEventListener('popstate', handlePopState);\n return () => window.removeEventListener('popstate', handlePopState);\n }, [plugins]);\n\n const {t} = useTranslation();\n\n useEffect(() => {\n // Only fetch once\n if (hasFetchedPlugins.current) {\n return;\n }\n\n async function fetchPlugins() {\n try {\n hasFetchedPlugins.current = true;\n const res = await fetch(`${apiBaseUrl}`);\n const json = await res.json();\n\n // Capture timestamp when API content is received\n contentReceivedTimestamp.current = Date.now();\n\n // Extract is_cached flag from API response\n isCachedRef.current = json.is_cached || false;\n\n // Check for API error response (success: false)\n if (json && json.success === false) {\n // Track page view with content render failure\n trackPageView({\n category: 'marketplace_home',\n isContentRendered: false,\n });\n setCatalogError(true);\n setCatalogLoading(false);\n return;\n }\n\n // Check for blank/empty response\n if (!json || !json.data || !json.data.catalog || (Array.isArray(json.data.catalog) && json.data.catalog.length === 0)) {\n console.error(\"API returned empty or blank response\");\n // Track page view with content render failure\n trackPageView({\n category: 'marketplace_home',\n isContentRendered: false,\n });\n setCatalogError(true);\n setCatalogLoading(false);\n return;\n }\n\n const { plugins: normalizedPlugins, uiI18n: apiUiI18n } = normalizePlugins(json);\n setPlugins(normalizedPlugins);\n setUiI18n(apiUiI18n);\n\n // Fetch subscription status for special plugins (wp-rocket, rank-math-pro)\n if (isOnecomBrand) {\n const specialPlugins = normalizedPlugins.filter(p => isSpecialPlugin(p.slug));\n\n // Fetch subscription status for each special plugin\n specialPlugins.forEach(plugin => {\n fetchSubscriptionStatus(plugin.slug);\n });\n }\n } catch (e) {\n // Track page view with content render failure\n trackPageView({\n category: 'marketplace_home',\n isContentRendered: false,\n });\n setCatalogError(true);\n } finally {\n setCatalogLoading(false);\n }\n }\n\n fetchPlugins();\n }, [apiBaseUrl, isOnecomBrand, fetchSubscriptionStatus, setPlugins]);\n\n // Use useMemo to filter plugins based on rules and activation status\n const visiblePlugins = React.useMemo(() => {\n if (!plugins.length) return [];\n\n const bySlug = new Map();\n\n // Check activation status of Rank Math plugins\n const rankMathActivated = plugins.find(p => p.slug === \"seo-by-rank-math\")?.activated === true;\n const rankMathProActivated = plugins.find(p => p.slug === \"seo-by-rank-math-pro\")?.activated === true;\n\n plugins.forEach((p) => {\n // Skip if already in map or activated\n if (bySlug.has(p.slug) || p.activated === true) {\n return;\n }\n\n // Handle Rank Math plugin visibility\n if (p.slug === \"seo-by-rank-math\") {\n // Show seo-by-rank-math only if BOTH plugins are NOT activated\n if (!rankMathActivated && !rankMathProActivated && shouldShowPlugin(p)) {\n bySlug.set(p.slug, p);\n }\n return;\n }\n\n if (p.slug === \"seo-by-rank-math-pro\") {\n // Show seo-by-rank-math-pro only if seo-by-rank-math IS activated\n if (rankMathActivated && shouldShowPlugin(p)) {\n bySlug.set(p.slug, p);\n }\n return;\n }\n\n // Apply filtering based on rules\n if (shouldShowPlugin(p)) {\n bySlug.set(p.slug, p);\n }\n });\n\n return Array.from(bySlug.values());\n }, [plugins, shouldShowPlugin]);\n\n // Update allPluginsActivated in context whenever plugins change\n useEffect(() => {\n if (plugins.length > 0) {\n // If there are no plugins that should be visible (not activated and passing rules), then all are activated/hidden\n const allActivated = visiblePlugins.length === 0;\n setAllPluginsActivated(allActivated);\n }\n }, [plugins, visiblePlugins, setAllPluginsActivated]);\n\n // Track marketplace visit when plugins are loaded and no plugin detail is shown\n useEffect(() => {\n if (!catalogLoading && !catalogError && plugins.length > 0 && !pluginFromQuery && !hasTrackedMarketplaceVisit.current) {\n // Capture timestamp when content is rendered to the page\n contentRenderTimestamp.current = Date.now();\n\n // Check if this is a reload caused by plugin activation\n const skipPageView = sessionStorage.getItem('mp_skip_page_view');\n if (skipPageView === 'true') {\n // Clear the flag and skip tracking\n sessionStorage.removeItem('mp_skip_page_view');\n } else {\n // Normal page load, track the visit\n trackMarketplaceVisit(contentReceivedTimestamp.current, contentRenderTimestamp.current, isCachedRef.current);\n }\n hasTrackedMarketplaceVisit.current = true;\n }\n }, [catalogLoading, catalogError, plugins.length, pluginFromQuery]);\n\n // Track plugin detail page visit when selectedPlugin changes\n useEffect(() => {\n if (selectedPlugin && pluginFromQuery && lastTrackedPluginSlug.current !== selectedPlugin.slug) {\n // Capture timestamp when content is rendered to the page\n contentRenderTimestamp.current = Date.now();\n\n // Check if this is a reload caused by plugin activation\n const skipPageView = sessionStorage.getItem('mp_skip_page_view');\n if (skipPageView === 'true') {\n // Clear the flag and skip tracking\n sessionStorage.removeItem('mp_skip_page_view');\n } else {\n // Normal page load, track the visit\n trackPluginDetailVisit(selectedPlugin, contentReceivedTimestamp.current, contentRenderTimestamp.current, isCachedRef.current);\n }\n lastTrackedPluginSlug.current = selectedPlugin.slug;\n }\n // Reset when returning to marketplace list\n if (!pluginFromQuery) {\n lastTrackedPluginSlug.current = null;\n }\n }, [selectedPlugin, pluginFromQuery]);\n\n const handleDownloadClick = (e, plugin) => {\n e.stopPropagation();\n\n // Set downloading state\n setDownloadingPlugins(prev => ({ ...prev, [plugin.slug]: true }));\n\n // Reset after a short delay (download is triggered immediately)\n // The browser handles the actual download, so we simulate completion\n setTimeout(() => {\n setDownloadingPlugins(prev => ({ ...prev, [plugin.slug]: false }));\n }, 2000);\n };\n\n const openDetail = (plugin, e) => {\n // Debug to confirm click\n setSelectedPlugin(plugin);\n };\n\n\n\n // Helper function to determine if we should use ProductDetailRankMath\n const shouldUseRankMathDetail = (plugin) => {\n if (!plugin) return false;\n const brand = typeof window !== \"undefined\" && window.marketplaceConfig?.brand;\n const isOnecomBrand = brand === \"onecom\";\n const isRankMathPlugin = plugin.slug === \"seo-by-rank-math-pro\" || plugin.slug === \"seo-by-rank-math\";\n return isOnecomBrand && isRankMathPlugin;\n };\n\n\n\n if (catalogLoading) {\n // If there's a plugin parameter in the URL, show appropriate skeleton based on plugin type\n if (pluginFromQuery) {\n // Determine if we should use RankMath detail component based on slug\n const brand = typeof window !== \"undefined\" && window.marketplaceConfig?.brand;\n const isOnecomBrand = brand === \"onecom\";\n const isRankMathPlugin = pluginFromQuery === \"seo-by-rank-math-pro\" || pluginFromQuery === \"seo-by-rank-math\";\n const DetailComponent = (isOnecomBrand && isRankMathPlugin) ? ProductDetailRankMath : ProductDetail;\n return (\n {}}\n usePortal={false}\n loading={true}\n />\n );\n }\n\n // Show catalog skeleton loaders while catalog is loading\n return (\n \n
\n
\n
\n \n {/* Generate first 3 skeleton plugin cards */}\n {[...Array(3)].map((_, index) => (\n
\n ))}\n
\n\n {/* Additional skeleton loaders after 3 cards */}\n
\n
\n \n\n\n {/* Generate remaining 3 skeleton plugin cards */}\n {[...Array(3)].map((_, index) => (\n
\n ))}\n
\n \n
\n );\n }\n\n // Show error state if API failed or returned error\n if (catalogError) {\n return ;\n }\n\n // Show WP version error state\n if (!isWpVersionSupported('6.2')) {\n return ;\n }\n\n // Early return: show full page detail instead of list\n if (selectedPlugin && pluginFromQuery) {\n const DetailComponent = shouldUseRankMathDetail(selectedPlugin) ? ProductDetailRankMath : ProductDetail;\n return (\n {\n // Return to listing (clear selection and URL)\n setSelectedPlugin(null);\n // Check if history.back() will work (has navigable history)\n if (typeof window !== \"undefined\" && window.history && window.history.length > 1) {\n window.history.back();\n } else {\n // In new-tab scenario, manually remove plugin parameter from URL\n const url = new URL(window.location.href);\n url.searchParams.delete(\"plugin\");\n window.history.replaceState({}, '', url.toString());\n }\n }}\n usePortal={false}\n loading={catalogLoading}\n />\n );\n }\n\n // Group plugins by a single, specific category (first category), avoid duplicates across headings\n const categoryMap = new Map();\n\n visiblePlugins.forEach((p) => {\n // Handle new category object structure: { id, slug, title, description }\n const categoryObj = Array.isArray(p.categories) && p.categories.length\n ? (typeof p.categories[0] === 'object' ? p.categories[0] : { slug: String(p.categories[0]), title: String(p.categories[0]), description: null })\n : { slug: \"Others\", title: \"Others\", description: null };\n\n const categoryKey = categoryObj.slug || categoryObj.title || \"Others\";\n\n if (!categoryMap.has(categoryKey)) {\n categoryMap.set(categoryKey, { info: categoryObj, plugins: [] });\n }\n categoryMap.get(categoryKey).plugins.push(p);\n });\n\n const categories = Array.from(categoryMap.entries()).filter(([catKey, { plugins: list }]) => list.length > 0);\n\n // If all plugins are activated, show the \"You've got all our plugins!\" message\n if (allPluginsActivated) {\n return (\n \n
\n
{uiI18n?.notifications?.allPluginsOwned} \n
{uiI18n?.text?.managePlugins}
\n
{\n // Navigate to plugins page\n window.location.href = '/wp-admin/plugins.php';\n }}\n >\n {uiI18n.viewProductsButton} \n \n \n
\n
\n );\n }\n\n return (\n \n {categories.map(([catKey, { info, plugins: list }]) => (\n
\n {info.title || catKey}
\n {info.description && {info.description}
}\n \n {list.map((plugin) => {\n const isProvisionable = shouldShowProvision(plugin);\n const freeLabel = (plugin.i18n.freeTrialPeriod && plugin.i18n.freeTrialPeriod.trim() !== '')\n ? plugin.i18n.freeTrialPeriod\n : (uiI18n?.labels?.free || 'Free');\n const price = formatPluginPrice(plugin, freeLabel, uiI18n);\n const fullPriceAmount = getFullPrice(plugin);\n const rebatePriceAmount = getRebatePrice(plugin);\n return (\n
\n
\n
\n
\n
\n
\n
{plugin.name}
\n
{plugin.i18n.listingDescription || plugin.i18n.subtitle}
\n
\n <>\n {plugin.licenseType === \"premium\" && (rebatePriceAmount > 0) ? (rebatePriceAmount !== null ? rebatePriceAmount : fullPriceAmount) : price}\n {plugin.licenseType !== \"free\" && price && price !== freeLabel && price !== (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal') && /{uiI18n?.labels?.timeMonth} }\n >\n \n
\n
\n
\n
\n );\n })}\n
\n \n ))}\n {/* Remove overlay render (keep for non-query usage) */}\n {selectedPlugin && !pluginFromQuery && (() => {\n const DetailComponent = shouldUseRankMathDetail(selectedPlugin) ? ProductDetailRankMath : ProductDetail;\n return (\n
setSelectedPlugin(null)}\n loading={catalogLoading}\n />\n );\n })()}\n \n );\n}\n","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\n\n// Import all translations\nimport en_GB from \"./locales/en_GB.json\";\nimport da_DK from \"./locales/da_DK.json\";\nimport de_DE from \"./locales/de_DE.json\";\nimport es_ES from \"./locales/es_ES.json\";\nimport fi_FI from \"./locales/fi_FI.json\";\nimport fr_FR from \"./locales/fr_FR.json\";\nimport it_IT from \"./locales/it_IT.json\";\nimport nl_NL from \"./locales/nl_NL.json\";\nimport no_NO from \"./locales/no_NO.json\";\nimport pt_PT from \"./locales/pt_PT.json\";\nimport sv_SE from \"./locales/sv_SE.json\";\n\nconst resources = {\n\ten_GB: { translation: en_GB },\n\tda_DK: { translation: da_DK },\n\tde_DE: { translation: de_DE },\n\tes_ES: { translation: es_ES },\n\tfi_FI: { translation: fi_FI },\n\tfr_FR: { translation: fr_FR },\n\tit_IT: { translation: it_IT },\n\tnl_NL: { translation: nl_NL },\n\tno_NO: { translation: no_NO },\n\tnb_NO: { translation: no_NO },\n\tpt_PT: { translation: pt_PT },\n\tsv_SE: { translation: sv_SE },\n\tfi: { translation: fi_FI },\n};\n\ni18n.use(initReactI18next).init({\n\tresources,\n\tlng: \"en_GB\", // default fallback\n\tfallbackLng: \"en_GB\",\n\tinterpolation: { escapeValue: false },\n});\n\nexport default i18n;\n","import React, { useState, useEffect } from \"react\";\nimport Marketplace from \"./components/MarketPlace\";\nimport ProductBanner from \"./components/ProductBanner\";\nimport FeaturedCarousel from \"./components/FeaturedCarousel\";\nimport LoadingOverlay from \"./components/LoadingOverlay\";\nimport { MarketplaceProvider, useMarketplace } from \"./context/MarketplaceContext\";\n\n// Inner component that can access the context\nconst MarketplaceContent = () => {\n const { allPluginsActivated, catalogError, catalogLoading, isWpVersionSupported } = useMarketplace();\n\n const isSupportedWpVersion = isWpVersionSupported('6.2');\n\n // Track detail page visibility with state\n const [isDetailPage, setIsDetailPage] = useState(\n typeof window !== \"undefined\" && new URLSearchParams(window.location.search).get(\"plugin\")\n );\n\n // Listen for URL changes (both popstate and custom events)\n useEffect(() => {\n const checkDetailPage = () => {\n const hasPlugin = typeof window !== \"undefined\" && new URLSearchParams(window.location.search).get(\"plugin\");\n setIsDetailPage(!!hasPlugin);\n };\n\n // Listen for browser back/forward\n window.addEventListener('popstate', checkDetailPage);\n\n // Listen for programmatic URL changes (from pushState)\n const originalPushState = window.history.pushState;\n window.history.pushState = function(...args) {\n originalPushState.apply(this, args);\n checkDetailPage();\n };\n\n // Listen for programmatic URL changes (from replaceState)\n const originalReplaceState = window.history.replaceState;\n window.history.replaceState = function(...args) {\n originalReplaceState.apply(this, args);\n checkDetailPage();\n };\n\n return () => {\n window.removeEventListener('popstate', checkDetailPage);\n window.history.pushState = originalPushState;\n window.history.replaceState = originalReplaceState;\n };\n }, []);\n\n return (\n <>\n \n \n
\n\n {!isDetailPage && !catalogError && isSupportedWpVersion &&
}\n {!isDetailPage && !allPluginsActivated && isSupportedWpVersion &&
}\n\n
\n
\n
\n >\n );\n};\n\nconst MarketplaceApp = ({ apiBaseUrl, useWPHandlers, wpConfig, enableDefaultStyles, assetsBaseUrl }) => {\n return (\n \n \n \n );\n};\n\nexport default MarketplaceApp;\n","module.exports = window[\"ReactDOM\"];","import React from 'react';\nimport { useMarketplace } from '../context/MarketplaceContext';\n\nconst ProductBanner = ({ loading = false }) => {\n const { assetsBaseUrl, uiI18n } = useMarketplace();\n const leftBannerUrl = 'https://wpaddon-static.group-cdn.one/images/wp/marketplace/banners/top-header-left-banner.png';\n const rightBannerUrl = 'https://wpaddon-static.group-cdn.one/images/wp/marketplace/banners/top-header-right-banner.png';\n\n return (\n \n );\n};\n\nexport default ProductBanner;\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nconst promises = {};\nasync function fetchWithCache(url) {\n if (promises.hasOwnProperty(url)) {\n return promises[url];\n }\n let promise;\n if (url.startsWith(\"data:\") || !(\"caches\" in self)) {\n promise = fetch(url).then((r) => r.text());\n } else {\n promise = caches.open(\"gravity\").then(async (cache) => {\n let response = await cache.match(url);\n if (!response) {\n response = await fetch(url);\n if (response.ok) {\n await cache.put(url, response.clone());\n }\n }\n return response.text();\n });\n }\n promises[url] = promise;\n return promise;\n}\nclass GvFlagElement extends HTMLElement {\n static get observedAttributes() {\n return [\"src\"];\n }\n fetchFlag(path) {\n if (!path) {\n return;\n }\n fetchWithCache(path).then((svg) => this.innerHTML = svg);\n }\n connectedCallback() {\n this.fetchFlag(this.getAttribute(\"src\"));\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"src\" && oldValue !== newValue) {\n this.fetchFlag(newValue);\n }\n }\n}\n__publicField(GvFlagElement, \"TAG_NAME\", \"gv-flag\");\nclass GvIconElement extends HTMLElement {\n static get observedAttributes() {\n return [\"src\"];\n }\n fetchIcon(path) {\n if (!path) {\n return;\n }\n fetchWithCache(path).then((svg) => this.innerHTML = svg);\n }\n connectedCallback() {\n this.fetchIcon(this.getAttribute(\"src\"));\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"src\" && oldValue !== newValue) {\n this.fetchIcon(newValue);\n }\n }\n}\n__publicField(GvIconElement, \"TAG_NAME\", \"gv-icon\");\nclass GvIllustrationElement extends HTMLElement {\n static get observedAttributes() {\n return [\"src\"];\n }\n fetchIllustration(path) {\n if (!path) {\n return;\n }\n fetchWithCache(path).then((svg) => this.innerHTML = svg);\n }\n connectedCallback() {\n this.fetchIllustration(this.getAttribute(\"src\"));\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"src\" && oldValue !== newValue) {\n this.fetchIllustration(newValue);\n }\n }\n}\n__publicField(GvIllustrationElement, \"TAG_NAME\", \"gv-illustration\");\nclass GvIndicatorElement extends HTMLElement {\n static get observedAttributes() {\n return [\"src\"];\n }\n fetchIndicator(path) {\n if (!path) {\n return;\n }\n fetchWithCache(path).then((svg) => this.innerHTML = svg);\n }\n connectedCallback() {\n this.fetchIndicator(this.getAttribute(\"src\"));\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"src\" && oldValue !== newValue) {\n this.fetchIndicator(newValue);\n }\n }\n}\n__publicField(GvIndicatorElement, \"TAG_NAME\", \"gv-indicator\");\nclass GvLoaderElement extends HTMLElement {\n static get observedAttributes() {\n return [\"src\"];\n }\n fetchLoader(path) {\n if (!path) {\n return;\n }\n fetchWithCache(path).then((svg) => this.innerHTML = svg);\n }\n connectedCallback() {\n this.fetchLoader(this.getAttribute(\"src\"));\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"src\" && oldValue !== newValue) {\n this.fetchLoader(newValue);\n }\n }\n}\n__publicField(GvLoaderElement, \"TAG_NAME\", \"gv-loader\");\nclass GvLogoElement extends HTMLElement {\n static get observedAttributes() {\n return [\"src\"];\n }\n fetchLogo(path) {\n if (!path) {\n return;\n }\n fetchWithCache(path).then((svg) => this.innerHTML = svg);\n }\n connectedCallback() {\n this.fetchLogo(this.getAttribute(\"src\"));\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"src\" && oldValue !== newValue) {\n this.fetchLogo(newValue);\n }\n }\n}\n__publicField(GvLogoElement, \"TAG_NAME\", \"gv-logo\");\nclass GvPayIconElement extends HTMLElement {\n static get observedAttributes() {\n return [\"src\"];\n }\n fetchPayIcon(path) {\n if (!path) {\n return;\n }\n fetchWithCache(path).then((svg) => this.innerHTML = svg);\n }\n connectedCallback() {\n this.fetchPayIcon(this.getAttribute(\"src\"));\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"src\" && oldValue !== newValue) {\n this.fetchPayIcon(newValue);\n }\n }\n}\n__publicField(GvPayIconElement, \"TAG_NAME\", \"gv-pay-icon\");\nclass GvTileElement extends HTMLElement {\n static get observedAttributes() {\n return [\"src\"];\n }\n fetchTile(path) {\n if (!path) {\n return;\n }\n fetchWithCache(path).then((svg) => this.innerHTML = svg);\n }\n connectedCallback() {\n this.fetchTile(this.getAttribute(\"src\"));\n }\n attributeChangedCallback(name, oldValue, newValue) {\n if (name === \"src\" && oldValue !== newValue) {\n this.fetchTile(newValue);\n }\n }\n}\n__publicField(GvTileElement, \"TAG_NAME\", \"gv-tile\");\nfunction defineCustomElement(tagName, elementClass) {\n if (!customElements.get(tagName)) {\n customElements.define(tagName, elementClass);\n }\n}\ndefineCustomElement(GvFlagElement.TAG_NAME, GvFlagElement);\ndefineCustomElement(GvIconElement.TAG_NAME, GvIconElement);\ndefineCustomElement(GvIllustrationElement.TAG_NAME, GvIllustrationElement);\ndefineCustomElement(GvIndicatorElement.TAG_NAME, GvIndicatorElement);\ndefineCustomElement(GvLoaderElement.TAG_NAME, GvLoaderElement);\ndefineCustomElement(GvLogoElement.TAG_NAME, GvLogoElement);\ndefineCustomElement(GvPayIconElement.TAG_NAME, GvPayIconElement);\ndefineCustomElement(GvTileElement.TAG_NAME, GvTileElement);\n","// since es6 imports are static and we run unit tests from the console, window won't be defined when importing this file\nvar win;\nif (typeof(window) === 'undefined') {\n var loc = {\n hostname: ''\n };\n win = {\n crypto: {randomUUID: function() {throw Error('unsupported');}},\n navigator: { userAgent: '', onLine: true },\n document: {\n createElement: function() { return {}; },\n location: loc,\n referrer: ''\n },\n screen: { width: 0, height: 0 },\n location: loc,\n addEventListener: function() {},\n removeEventListener: function() {}\n };\n} else {\n win = window;\n}\n\nfunction _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];\n return arr2;\n}\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function construct(Parent, args, Class) {\n var a = [\n null\n ];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _set_prototype_of(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n return Constructor;\n}\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _get_prototype_of(o);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _set_prototype_of(o, p);\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function wrapNativeSuper(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _set_prototype_of(Wrapper, Class);\n };\n return _wrap_native_super(Class);\n}\nfunction _is_native_reflect_construct() {\n try {\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\nfunction _create_for_of_iterator_helper_loose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike) {\n if (it) o = it;\n var i = 0;\n return function() {\n if (i >= o.length) {\n return {\n done: true\n };\n }\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _ts_generator(thisArg, body) {\n var f, y, t, g, _ = {\n label: 0,\n sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n };\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([\n n,\n v\n ]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while(_)try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [\n op[0] & 2,\n t.value\n ];\n switch(op[0]){\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n case 5:\n _.label++;\n y = op[1];\n op = [\n 0\n ];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [\n 6,\n e\n ];\n y = 0;\n } finally{\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nfunction _ts_values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = function(obj, key, value) {\n return key in obj ? __defProp$1(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n }) : obj[key] = value;\n};\nvar __publicField$1 = function(obj, key, value) {\n return __defNormalProp$1(obj, (typeof key === \"undefined\" ? \"undefined\" : _type_of(key)) !== \"symbol\" ? key + \"\" : key, value);\n};\nvar _a;\nvar __defProp$1$1 = Object.defineProperty;\nvar __defNormalProp$1$1 = function(obj, key, value) {\n return key in obj ? __defProp$1$1(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n }) : obj[key] = value;\n};\nvar __publicField$1$1 = function(obj, key, value) {\n return __defNormalProp$1$1(obj, (typeof key === \"undefined\" ? \"undefined\" : _type_of(key)) !== \"symbol\" ? key + \"\" : key, value);\n};\nvar NodeType$3 = /* @__PURE__ */ function(NodeType2) {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n}(NodeType$3 || {});\nvar testableAccessors$1 = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\"\n ],\n ShadowRoot: [\n \"host\",\n \"styleSheets\"\n ],\n Element: [\n \"shadowRoot\",\n \"querySelector\",\n \"querySelectorAll\"\n ],\n MutationObserver: []\n};\nvar testableMethods$1 = {\n Node: [\n \"contains\",\n \"getRootNode\"\n ],\n ShadowRoot: [\n \"getSelection\"\n ],\n Element: [],\n MutationObserver: [\n \"constructor\"\n ]\n};\nvar untaintedBasePrototype$1 = {};\nvar isAngularZonePresent$1 = function() {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key]) return untaintedBasePrototype$1[key];\n var defaultObj = globalThis[key];\n var defaultPrototype = defaultObj.prototype;\n var accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n var isUntaintedAccessors = Boolean(accessorNames && // @ts-expect-error 2345\n accessorNames.every(function(accessor) {\n var _a2, _b;\n return Boolean((_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\"));\n }));\n var methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n var isUntaintedMethods = Boolean(methodNames && methodNames.every(// @ts-expect-error 2345\n function(method) {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }));\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {\n untaintedBasePrototype$1[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n var iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n var win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n var untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch (e) {\n return defaultPrototype;\n }\n}\nvar untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n var cacheKey = key + \".\" + String(accessor);\n if (untaintedAccessorCache$1[cacheKey]) return untaintedAccessorCache$1[cacheKey].call(instance);\n var untaintedPrototype = getUntaintedPrototype$1(key);\n var untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(untaintedPrototype, accessor)) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nvar untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n var cacheKey = key + \".\" + String(method);\n if (untaintedMethodCache$1[cacheKey]) return untaintedMethodCache$1[cacheKey].bind(instance);\n var untaintedPrototype = getUntaintedPrototype$1(key);\n var untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nfunction patch$1(source, name, replacement) {\n try {\n if (!(name in source)) {\n return function() {};\n }\n var original = source[name];\n var wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return function() {\n source[name] = original;\n };\n } catch (e) {\n return function() {};\n }\n}\nvar index$1 = {\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1,\n patch: patch$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n var hostEl = // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null;\n return Boolean(hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2);\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(/\\sbackground-clip:\\s*text;/g, \" -webkit-background-clip: text; background-clip: text;\");\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n var cssText = rule2.cssText;\n if (cssText.split('\"').length < 3) return cssText;\n var statement = [\n \"@import\",\n \"url(\" + JSON.stringify(rule2.href) + \")\"\n ];\n if (rule2.layerName === \"\") {\n statement.push(\"layer\");\n } else if (rule2.layerName) {\n statement.push(\"layer(\" + rule2.layerName + \")\");\n }\n if (rule2.supportsText) {\n statement.push(\"supports(\" + rule2.supportsText + \")\");\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n var rules2 = s2.rules || s2.cssRules;\n if (!rules2) {\n return null;\n }\n var sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode && s2.ownerNode.ownerDocument) {\n sheetHref = s2.ownerNode.ownerDocument.location.href;\n }\n var stringifiedRules = Array.from(rules2, function(rule2) {\n return stringifyRule(rule2, sheetHref);\n }).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n var importStringified;\n try {\n importStringified = // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n var ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n var regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nvar Mirror = /*#__PURE__*/ function() {\n function Mirror() {\n __publicField$1$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n var _proto = Mirror.prototype;\n _proto.getId = function getId(n2) {\n var _a2;\n if (!n2) return -1;\n var id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id != null ? id : -1;\n };\n _proto.getNode = function getNode(id) {\n return this.idNodeMap.get(id) || null;\n };\n _proto.getIds = function getIds() {\n return Array.from(this.idNodeMap.keys());\n };\n _proto.getMeta = function getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n };\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n _proto.removeNodeFromMap = function removeNodeFromMap(n2) {\n var _this = this;\n var id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(function(childNode) {\n return _this.removeNodeFromMap(childNode);\n });\n }\n };\n _proto.has = function has(id) {\n return this.idNodeMap.has(id);\n };\n _proto.hasNode = function hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n };\n _proto.add = function add(n2, meta) {\n var id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n };\n _proto.replace = function replace(id, n2) {\n var oldNode = this.getNode(id);\n if (oldNode) {\n var meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n };\n _proto.reset = function reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n };\n return Mirror;\n}();\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue(param) {\n var element = param.element, maskInputOptions = param.maskInputOptions, tagName = param.tagName, type = param.type, value = param.value, maskInputFn = param.maskInputFn;\n var text = value || \"\";\n var actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nvar ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n var ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n var chunkSize = 50;\n for(var x2 = 0; x2 < canvas.width; x2 += chunkSize){\n for(var y = 0; y < canvas.height; y += chunkSize){\n var getImageData = ctx.getImageData;\n var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n var pixelBuffer = new Uint32Array(// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(ctx, x2, y, Math.min(chunkSize, canvas.width - x2), Math.min(chunkSize, canvas.height - y)).data.buffer);\n if (pixelBuffer.some(function(pixel) {\n return pixel !== 0;\n })) return false;\n }\n }\n return true;\n}\nfunction getInputType(element) {\n var type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n var url;\n try {\n url = new URL(path, baseURL != null ? baseURL : window.location.href);\n } catch (err) {\n return null;\n }\n var regex = /\\.([0-9a-z]+)(?:$)/i;\n var match = url.pathname.match(regex);\n var _ref;\n return (_ref = match == null ? void 0 : match[1]) != null ? _ref : null;\n}\nfunction extractOrigin(url) {\n var origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nvar URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nvar URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nvar URL_WWW_MATCH = /^www\\..*/i;\nvar DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(URL_IN_CSS_REF, function(origin, quote1, path1, quote2, path2, path3) {\n var filePath = path1 || path2 || path3;\n var maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return \"url(\" + maybeQuote + filePath + maybeQuote + \")\";\n }\n if (DATA_URI.test(filePath)) {\n return \"url(\" + maybeQuote + filePath + maybeQuote + \")\";\n }\n if (filePath[0] === \"/\") {\n return \"url(\" + maybeQuote + (extractOrigin(href) + filePath) + maybeQuote + \")\";\n }\n var stack = href.split(\"/\");\n var parts = filePath.split(\"/\");\n stack.pop();\n for(var _iterator = _create_for_of_iterator_helper_loose(parts), _step; !(_step = _iterator()).done;){\n var part = _step.value;\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return \"url(\" + maybeQuote + stack.join(\"/\") + maybeQuote + \")\";\n });\n}\nfunction normalizeCssString(cssText, _testNoPxNorm) {\n if (_testNoPxNorm === void 0) _testNoPxNorm = false;\n if (_testNoPxNorm) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n } else {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm) {\n if (_testNoPxNorm === void 0) _testNoPxNorm = false;\n var childNodes2 = Array.from(style.childNodes);\n var splits = [];\n var iterCount = 0;\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n var cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n var normFactor = cssTextNorm.length / cssText.length;\n for(var i2 = 1; i2 < childNodes2.length; i2++){\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n var textContentNorm = normalizeCssString(childNodes2[i2].textContent, _testNoPxNorm);\n var jLimit = 100;\n var j = 3;\n for(; j < textContentNorm.length; j++){\n if (// keep consuming css identifiers (to get a decent chunk more quickly)\n textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1) {\n continue;\n }\n break;\n }\n for(; j < textContentNorm.length; j++){\n var startSubstring = textContentNorm.substring(0, j);\n var cssNormSplits = cssTextNorm.split(startSubstring);\n var splitNorm = -1;\n if (cssNormSplits.length === 2) {\n splitNorm = cssNormSplits[0].length;\n } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i2 - 1].textContent !== \"\") {\n splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n } else if (cssNormSplits.length === 1) {\n startSubstring = startSubstring.substring(0, startSubstring.length - 1);\n cssNormSplits = cssTextNorm.split(startSubstring);\n if (cssNormSplits.length <= 1) {\n splits.push(cssText);\n return splits;\n }\n j = jLimit + 1;\n } else if (j === textContentNorm.length - 1) {\n splitNorm = cssTextNorm.indexOf(startSubstring);\n }\n if (cssNormSplits.length >= 2 && j > jLimit) {\n var prevTextContent = childNodes2[i2 - 1].textContent;\n if (prevTextContent && typeof prevTextContent === \"string\") {\n var prevMinLength = normalizeCssString(prevTextContent).length;\n splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n }\n if (splitNorm === -1) {\n splitNorm = cssNormSplits[0].length;\n }\n }\n if (splitNorm !== -1) {\n var k = Math.floor(splitNorm / normFactor);\n for(; k > 0 && k < cssText.length;){\n iterCount += 1;\n if (iterCount > 50 * childNodes2.length) {\n splits.push(cssText);\n return splits;\n }\n var normPart = normalizeCssString(cssText.substring(0, k), _testNoPxNorm);\n if (normPart.length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n cssTextNorm = cssTextNorm.substring(splitNorm);\n break;\n } else if (normPart.length < splitNorm) {\n k += Math.max(1, Math.floor((splitNorm - normPart.length) / normFactor));\n } else {\n k -= Math.max(1, Math.floor((normPart.length - splitNorm) * normFactor));\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nvar _id = 1;\nvar tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nvar IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (_instanceof(element, HTMLFormElement)) {\n return \"form\";\n }\n var processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nvar canvasService;\nvar canvasCtx;\nvar SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nvar SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n var pos = 0;\n function collectCharacters(regEx) {\n var chars2;\n var match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n var output = [];\n while(true){\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n var url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n var descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n var inParens = false;\n while(true){\n var c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nvar cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n var a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for(var eIndex = element.classList.length; eIndex--;){\n var className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {}\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n }\n for(var eIndex = node2.classList.length; eIndex--;){\n var className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n var el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(\".\" + maskTextClass)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {}\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n var win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n var fired = false;\n var readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n var timer = setTimeout(function() {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", function() {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n var blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n var fired = false;\n var styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n var timer = setTimeout(function() {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", function() {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n var doc = options.doc, mirror2 = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, needsMask = options.needsMask, inlineStylesheet = options.inlineStylesheet, _options_maskInputOptions = options.maskInputOptions, maskInputOptions = _options_maskInputOptions === void 0 ? {} : _options_maskInputOptions, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, _options_dataURLOptions = options.dataURLOptions, dataURLOptions = _options_dataURLOptions === void 0 ? {} : _options_dataURLOptions, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _options_newlyAddedElement = options.newlyAddedElement, newlyAddedElement = _options_newlyAddedElement === void 0 ? false : _options_newlyAddedElement, _options_cssCaptured = options.cssCaptured, cssCaptured = _options_cssCaptured === void 0 ? false : _options_cssCaptured;\n var rootId = getRootId(doc, mirror2);\n switch(n2.nodeType){\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId: rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\n doc: doc,\n blockClass: blockClass,\n blockSelector: blockSelector,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskInputFn: maskInputFn,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n keepIframeSrcFn: keepIframeSrcFn,\n newlyAddedElement: newlyAddedElement,\n rootId: rootId\n });\n case n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc: doc,\n needsMask: needsMask,\n maskTextFn: maskTextFn,\n rootId: rootId,\n cssCaptured: cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId: rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\n rootId: rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n var docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n var needsMask = options.needsMask, maskTextFn = options.maskTextFn, rootId = options.rootId, cssCaptured = options.cssCaptured;\n var parent = index$1.parentNode(n2);\n var parentTagName = parent && parent.tagName;\n var textContent2 = \"\";\n var isStyle = parentTagName === \"STYLE\" ? true : void 0;\n var isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\n rootId: rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n var doc = options.doc, blockClass = options.blockClass, blockSelector = options.blockSelector, inlineStylesheet = options.inlineStylesheet, _options_maskInputOptions = options.maskInputOptions, maskInputOptions = _options_maskInputOptions === void 0 ? {} : _options_maskInputOptions, maskInputFn = options.maskInputFn, _options_dataURLOptions = options.dataURLOptions, dataURLOptions = _options_dataURLOptions === void 0 ? {} : _options_dataURLOptions, inlineImages = options.inlineImages, recordCanvas = options.recordCanvas, keepIframeSrcFn = options.keepIframeSrcFn, _options_newlyAddedElement = options.newlyAddedElement, newlyAddedElement = _options_newlyAddedElement === void 0 ? false : _options_newlyAddedElement, rootId = options.rootId;\n var needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n var tagName = getValidTagName$1(n2);\n var attributes = {};\n var len = n2.attributes.length;\n for(var i2 = 0; i2 < len; i2++){\n var attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value);\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n var stylesheet = Array.from(doc.styleSheets).find(function(s2) {\n return s2.href === n2.href;\n });\n var cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n var cssText1 = stringifyStylesheet(n2.sheet);\n if (cssText1) {\n if (n2.childNodes.length > 1) {\n cssText1 = markCssSplits(cssText1, n2);\n }\n attributes._cssText = cssText1;\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n var value = n2.value;\n var checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\n tagName: tagName,\n value: value,\n maskInputOptions: maskInputOptions,\n maskInputFn: maskInputFn\n });\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n }\n } else if (!(\"__context\" in n2)) {\n var canvasDataURL = n2.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n var blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n var blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n var image = n2;\n var imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"\";\n var priorCrossOrigin = image.crossOrigin;\n var recordInlineImage = function() {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\"Cannot inline img src=\" + imageSrc + \"! Error: \" + err);\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if (tagName === \"audio\" || tagName === \"video\") {\n var mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n var _n2_getBoundingClientRect = n2.getBoundingClientRect(), width = _n2_getBoundingClientRect.width, height = _n2_getBoundingClientRect.height;\n attributes = {\n class: attributes.class,\n rr_width: \"\" + width + \"px\",\n rr_height: \"\" + height + \"px\"\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n var isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {}\n return {\n type: NodeType$3.Element,\n tagName: tagName,\n attributes: attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock: needBlock,\n rootId: rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" && sn.attributes.as === \"script\" || sn.attributes.rel === \"modulepreload\") || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n2, options) {\n var doc = options.doc, mirror2 = options.mirror, blockClass = options.blockClass, blockSelector = options.blockSelector, maskTextClass = options.maskTextClass, maskTextSelector = options.maskTextSelector, _options_skipChild = options.skipChild, skipChild = _options_skipChild === void 0 ? false : _options_skipChild, _options_inlineStylesheet = options.inlineStylesheet, inlineStylesheet = _options_inlineStylesheet === void 0 ? true : _options_inlineStylesheet, _options_maskInputOptions = options.maskInputOptions, maskInputOptions = _options_maskInputOptions === void 0 ? {} : _options_maskInputOptions, maskTextFn = options.maskTextFn, maskInputFn = options.maskInputFn, slimDOMOptions = options.slimDOMOptions, _options_dataURLOptions = options.dataURLOptions, dataURLOptions = _options_dataURLOptions === void 0 ? {} : _options_dataURLOptions, _options_inlineImages = options.inlineImages, inlineImages = _options_inlineImages === void 0 ? false : _options_inlineImages, _options_recordCanvas = options.recordCanvas, recordCanvas = _options_recordCanvas === void 0 ? false : _options_recordCanvas, onSerialize = options.onSerialize, onIframeLoad = options.onIframeLoad, _options_iframeLoadTimeout = options.iframeLoadTimeout, iframeLoadTimeout = _options_iframeLoadTimeout === void 0 ? 5e3 : _options_iframeLoadTimeout, onStylesheetLoad = options.onStylesheetLoad, _options_stylesheetLoadTimeout = options.stylesheetLoadTimeout, stylesheetLoadTimeout = _options_stylesheetLoadTimeout === void 0 ? 5e3 : _options_stylesheetLoadTimeout, _options_keepIframeSrcFn = options.keepIframeSrcFn, keepIframeSrcFn = _options_keepIframeSrcFn === void 0 ? function() {\n return false;\n } : _options_keepIframeSrcFn, _options_newlyAddedElement = options.newlyAddedElement, newlyAddedElement = _options_newlyAddedElement === void 0 ? false : _options_newlyAddedElement, _options_cssCaptured = options.cssCaptured, cssCaptured = _options_cssCaptured === void 0 ? false : _options_cssCaptured;\n var needsMask = options.needsMask;\n var _options_preserveWhiteSpace = options.preserveWhiteSpace, preserveWhiteSpace = _options_preserveWhiteSpace === void 0 ? true : _options_preserveWhiteSpace;\n if (!needsMask) {\n var checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(n2, maskTextClass, maskTextSelector, checkAncestors);\n }\n var _serializedNode = serializeNode(n2, {\n doc: doc,\n mirror: mirror2,\n blockClass: blockClass,\n blockSelector: blockSelector,\n needsMask: needsMask,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n keepIframeSrcFn: keepIframeSrcFn,\n newlyAddedElement: newlyAddedElement,\n cssCaptured: cssCaptured\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n var id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n var serializedNode = Object.assign(_serializedNode, {\n id: id\n });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n var recordChild = !skipChild;\n if (serializedNode.type === NodeType$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n var shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl)) serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n var bypassOptions = {\n doc: doc,\n mirror: mirror2,\n blockClass: blockClass,\n blockSelector: blockSelector,\n needsMask: needsMask,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: skipChild,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n onStylesheetLoad: onStylesheetLoad,\n stylesheetLoadTimeout: stylesheetLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn,\n cssCaptured: false\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for(var _iterator = _create_for_of_iterator_helper_loose(Array.from(index$1.childNodes(n2))), _step; !(_step = _iterator()).done;){\n var childN = _step.value;\n var serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n var shadowRootEl1 = null;\n if (isElement(n2) && (shadowRootEl1 = index$1.shadowRoot(n2))) {\n for(var _iterator1 = _create_for_of_iterator_helper_loose(Array.from(index$1.childNodes(shadowRootEl1))), _step1; !(_step1 = _iterator1()).done;){\n var childN1 = _step1.value;\n var serializedChildNode1 = serializeNodeWithId(childN1, bypassOptions);\n if (serializedChildNode1) {\n isNativeShadowDom(shadowRootEl1) && (serializedChildNode1.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode1);\n }\n }\n }\n }\n var parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(n2, function() {\n var iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n var serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass: blockClass,\n blockSelector: blockSelector,\n needsMask: needsMask,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n onStylesheetLoad: onStylesheetLoad,\n stylesheetLoadTimeout: stylesheetLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(n2, serializedIframeNode);\n }\n }\n }, iframeLoadTimeout);\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(n2, function() {\n if (onStylesheetLoad) {\n var serializedLinkNode = serializeNodeWithId(n2, {\n doc: doc,\n mirror: mirror2,\n blockClass: blockClass,\n blockSelector: blockSelector,\n needsMask: needsMask,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n onStylesheetLoad: onStylesheetLoad,\n stylesheetLoadTimeout: stylesheetLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(n2, serializedLinkNode);\n }\n }\n }, stylesheetLoadTimeout);\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n var _ref = options || {}, tmp = _ref.mirror, mirror2 = tmp === void 0 ? new Mirror() : tmp, _ref_blockClass = _ref.blockClass, blockClass = _ref_blockClass === void 0 ? \"rr-block\" : _ref_blockClass, _ref_blockSelector = _ref.blockSelector, blockSelector = _ref_blockSelector === void 0 ? null : _ref_blockSelector, _ref_maskTextClass = _ref.maskTextClass, maskTextClass = _ref_maskTextClass === void 0 ? \"rr-mask\" : _ref_maskTextClass, _ref_maskTextSelector = _ref.maskTextSelector, maskTextSelector = _ref_maskTextSelector === void 0 ? null : _ref_maskTextSelector, _ref_inlineStylesheet = _ref.inlineStylesheet, inlineStylesheet = _ref_inlineStylesheet === void 0 ? true : _ref_inlineStylesheet, _ref_inlineImages = _ref.inlineImages, inlineImages = _ref_inlineImages === void 0 ? false : _ref_inlineImages, _ref_recordCanvas = _ref.recordCanvas, recordCanvas = _ref_recordCanvas === void 0 ? false : _ref_recordCanvas, _ref_maskAllInputs = _ref.maskAllInputs, maskAllInputs = _ref_maskAllInputs === void 0 ? false : _ref_maskAllInputs, maskTextFn = _ref.maskTextFn, maskInputFn = _ref.maskInputFn, _ref_slimDOM = _ref.slimDOM, slimDOM = _ref_slimDOM === void 0 ? false : _ref_slimDOM, dataURLOptions = _ref.dataURLOptions, preserveWhiteSpace = _ref.preserveWhiteSpace, onSerialize = _ref.onSerialize, onIframeLoad = _ref.onIframeLoad, iframeLoadTimeout = _ref.iframeLoadTimeout, onStylesheetLoad = _ref.onStylesheetLoad, stylesheetLoadTimeout = _ref.stylesheetLoadTimeout, _ref_keepIframeSrcFn = _ref.keepIframeSrcFn, keepIframeSrcFn = _ref_keepIframeSrcFn === void 0 ? function() {\n return false;\n } : _ref_keepIframeSrcFn;\n var maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true,\n hidden: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n var slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n } : slimDOM === false ? {} : slimDOM;\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n skipChild: false,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n inlineImages: inlineImages,\n recordCanvas: recordCanvas,\n preserveWhiteSpace: preserveWhiteSpace,\n onSerialize: onSerialize,\n onIframeLoad: onIframeLoad,\n iframeLoadTimeout: iframeLoadTimeout,\n onStylesheetLoad: onStylesheetLoad,\n stylesheetLoadTimeout: stylesheetLoadTimeout,\n keepIframeSrcFn: keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nfunction getDefaultExportFromCjs$1(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (_instanceof(this, a22)) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", {\n value: true\n });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function get() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = {\n exports: {}\n};\nvar x$1 = String;\nvar create$1 = function create$1() {\n return {\n isColorSupported: false,\n reset: x$1,\n bold: x$1,\n dim: x$1,\n italic: x$1,\n underline: x$1,\n inverse: x$1,\n hidden: x$1,\n strikethrough: x$1,\n black: x$1,\n red: x$1,\n green: x$1,\n yellow: x$1,\n blue: x$1,\n magenta: x$1,\n cyan: x$1,\n white: x$1,\n gray: x$1,\n bgBlack: x$1,\n bgRed: x$1,\n bgGreen: x$1,\n bgYellow: x$1,\n bgBlue: x$1,\n bgMagenta: x$1,\n bgCyan: x$1,\n bgWhite: x$1\n };\n};\npicocolors_browser$1.exports = create$1();\npicocolors_browser$1.exports.createColors = create$1;\nvar picocolors_browserExports$1 = picocolors_browser$1.exports;\nvar __viteBrowserExternal$2 = {};\nvar __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, {\n value: \"Module\"\n}));\nvar require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nvar pico$1 = picocolors_browserExports$1;\nvar terminalHighlight$1$1 = require$$2$1;\nvar CssSyntaxError$3$1 = /*#__PURE__*/ function(Error1) {\n _inherits(CssSyntaxError, Error1);\n function CssSyntaxError(message, line, column, source, file, plugin22) {\n var _this;\n _this = Error1.call(this, message) || this;\n _this.name = \"CssSyntaxError\";\n _this.reason = message;\n if (file) {\n _this.file = file;\n }\n if (source) {\n _this.source = source;\n }\n if (plugin22) {\n _this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n _this.line = line;\n _this.column = column;\n } else {\n _this.line = line.line;\n _this.column = line.column;\n _this.endLine = column.line;\n _this.endColumn = column.column;\n }\n }\n _this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_this, CssSyntaxError);\n }\n return _this;\n }\n var _proto = CssSyntaxError.prototype;\n _proto.setMessage = function setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n };\n _proto.showSourceCode = function showSourceCode(color) {\n var _this = this;\n if (!this.source) return \"\";\n var css = this.source;\n if (color == null) color = pico$1.isColorSupported;\n if (terminalHighlight$1$1) {\n if (color) css = terminalHighlight$1$1(css);\n }\n var lines = css.split(/\\r?\\n/);\n var start = Math.max(this.line - 3, 0);\n var end = Math.min(this.line + 2, lines.length);\n var maxWidth = String(end).length;\n var mark, aside;\n if (color) {\n var _pico$1_createColors = pico$1.createColors(true), bold = _pico$1_createColors.bold, gray = _pico$1_createColors.gray, red = _pico$1_createColors.red;\n mark = function(text) {\n return bold(red(text));\n };\n aside = function(text) {\n return gray(text);\n };\n } else {\n mark = aside = function(str) {\n return str;\n };\n }\n return lines.slice(start, end).map(function(line, index2) {\n var number = start + 1 + index2;\n var gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === _this.line) {\n var spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, _this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n };\n _proto.toString = function toString() {\n var code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n };\n return CssSyntaxError;\n}(_wrap_native_super(Error));\nvar cssSyntaxError$1 = CssSyntaxError$3$1;\nCssSyntaxError$3$1.default = CssSyntaxError$3$1;\nvar symbols$1 = {};\nsymbols$1.isClean = Symbol(\"isClean\");\nsymbols$1.my = Symbol(\"my\");\nvar DEFAULT_RAW$1 = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize$1(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nvar Stringifier$2$1 = /*#__PURE__*/ function() {\n function Stringifier(builder) {\n this.builder = builder;\n }\n var _proto = Stringifier.prototype;\n _proto.atrule = function atrule(node2, semicolon) {\n var name = \"@\" + node2.name;\n var params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n var end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n };\n _proto.beforeAfter = function beforeAfter(node2, detect) {\n var value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n var buf = node2.parent;\n var depth = 0;\n while(buf && buf.type !== \"root\"){\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n var indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for(var step = 0; step < depth; step++)value += indent;\n }\n }\n return value;\n };\n _proto.block = function block(node2, start) {\n var between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n var after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n };\n _proto.body = function body(node2) {\n var last = node2.nodes.length - 1;\n while(last > 0){\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n var semicolon = this.raw(node2, \"semicolon\");\n for(var i2 = 0; i2 < node2.nodes.length; i2++){\n var child = node2.nodes[i2];\n var before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n };\n _proto.comment = function comment(node2) {\n var left = this.raw(node2, \"left\", \"commentLeft\");\n var right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n };\n _proto.decl = function decl(node2, semicolon) {\n var between = this.raw(node2, \"between\", \"colon\");\n var string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n };\n _proto.document = function document1(node2) {\n this.body(node2);\n };\n _proto.raw = function raw(node2, own, detect) {\n var value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n var parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW$1[detect];\n var root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n var method = \"raw\" + capitalize$1(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk(function(i2) {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW$1[detect];\n root2.rawCache[detect] = value;\n return value;\n };\n _proto.rawBeforeClose = function rawBeforeClose(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n };\n _proto.rawBeforeComment = function rawBeforeComment(root2, node2) {\n var value;\n root2.walkComments(function(i2) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n };\n _proto.rawBeforeDecl = function rawBeforeDecl(root2, node2) {\n var value;\n root2.walkDecls(function(i2) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n };\n _proto.rawBeforeOpen = function rawBeforeOpen(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n };\n _proto.rawBeforeRule = function rawBeforeRule(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n };\n _proto.rawColon = function rawColon(root2) {\n var value;\n root2.walkDecls(function(i2) {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n };\n _proto.rawEmptyBody = function rawEmptyBody(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n };\n _proto.rawIndent = function rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n var value;\n root2.walk(function(i2) {\n var p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n var parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n };\n _proto.rawSemicolon = function rawSemicolon(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n };\n _proto.rawValue = function rawValue(node2, prop) {\n var value = node2[prop];\n var raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n };\n _proto.root = function root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n };\n _proto.rule = function rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n };\n _proto.stringify = function stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\");\n }\n this[node2.type](node2, semicolon);\n };\n return Stringifier;\n}();\nvar stringifier$1 = Stringifier$2$1;\nStringifier$2$1.default = Stringifier$2$1;\nvar Stringifier$1$1 = stringifier$1;\nfunction stringify$4$1(node2, builder) {\n var str = new Stringifier$1$1(builder);\n str.stringify(node2);\n}\nvar stringify_1$1 = stringify$4$1;\nstringify$4$1.default = stringify$4$1;\nvar isClean$2$1 = symbols$1.isClean, my$2$1 = symbols$1.my;\nvar CssSyntaxError$2$1 = cssSyntaxError$1;\nvar Stringifier2$1 = stringifier$1;\nvar stringify$3$1 = stringify_1$1;\nfunction cloneNode$1(obj, parent) {\n var cloned = new obj.constructor();\n for(var i2 in obj){\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n var value = obj[i2];\n var type = typeof value === \"undefined\" ? \"undefined\" : _type_of(value);\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map(function(j) {\n return cloneNode$1(j, cloned);\n });\n } else {\n if (type === \"object\" && value !== null) value = cloneNode$1(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nvar Node$4$1 = /*#__PURE__*/ function() {\n function Node2(defaults) {\n if (defaults === void 0) defaults = {};\n this.raws = {};\n this[isClean$2$1] = false;\n this[my$2$1] = true;\n for(var name in defaults){\n if (name === \"nodes\") {\n this.nodes = [];\n for(var _iterator = _create_for_of_iterator_helper_loose(defaults[name]), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n var _proto = Node2.prototype;\n _proto.addToError = function addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n var s2 = this.source;\n error.stack = error.stack.replace(/\\n\\s{4}at /, \"$&\" + s2.input.from + \":\" + s2.start.line + \":\" + s2.start.column + \"$&\");\n }\n return error;\n };\n _proto.after = function after(add) {\n this.parent.insertAfter(this, add);\n return this;\n };\n _proto.assign = function assign(overrides) {\n if (overrides === void 0) overrides = {};\n for(var name in overrides){\n this[name] = overrides[name];\n }\n return this;\n };\n _proto.before = function before(add) {\n this.parent.insertBefore(this, add);\n return this;\n };\n _proto.cleanRaws = function cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n };\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) overrides = {};\n var cloned = cloneNode$1(this);\n for(var name in overrides){\n cloned[name] = overrides[name];\n }\n return cloned;\n };\n _proto.cloneAfter = function cloneAfter(overrides) {\n if (overrides === void 0) overrides = {};\n var cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n };\n _proto.cloneBefore = function cloneBefore(overrides) {\n if (overrides === void 0) overrides = {};\n var cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n };\n _proto.error = function error(message, opts) {\n if (opts === void 0) opts = {};\n if (this.source) {\n var _this_rangeBy = this.rangeBy(opts), end = _this_rangeBy.end, start = _this_rangeBy.start;\n return this.source.input.error(message, {\n column: start.column,\n line: start.line\n }, {\n column: end.column,\n line: end.line\n }, opts);\n }\n return new CssSyntaxError$2$1(message);\n };\n _proto.getProxyProcessor = function getProxyProcessor() {\n return {\n get: function get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return function() {\n return node2.root().toProxy();\n };\n } else {\n return node2[prop];\n }\n },\n set: function set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */ prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n };\n _proto.markDirty = function markDirty() {\n if (this[isClean$2$1]) {\n this[isClean$2$1] = false;\n var next = this;\n while(next = next.parent){\n next[isClean$2$1] = false;\n }\n }\n };\n _proto.next = function next() {\n if (!this.parent) return void 0;\n var index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n };\n _proto.positionBy = function positionBy(opts, stringRepresentation) {\n var pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n var index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n };\n _proto.positionInside = function positionInside(index2, stringRepresentation) {\n var string = stringRepresentation || this.toString();\n var column = this.source.start.column;\n var line = this.source.start.line;\n for(var i2 = 0; i2 < index2; i2++){\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return {\n column: column,\n line: line\n };\n };\n _proto.prev = function prev() {\n if (!this.parent) return void 0;\n var index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n };\n _proto.rangeBy = function rangeBy(opts) {\n var start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n var end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n var stringRepresentation = this.toString();\n var index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = {\n column: start.column + 1,\n line: start.line\n };\n }\n return {\n end: end,\n start: start\n };\n };\n _proto.raw = function raw(prop, defaultType) {\n var str = new Stringifier2$1();\n return str.raw(this, prop, defaultType);\n };\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n };\n _proto.replaceWith = function replaceWith() {\n for(var _len = arguments.length, nodes = new Array(_len), _key = 0; _key < _len; _key++){\n nodes[_key] = arguments[_key];\n }\n if (this.parent) {\n var bookmark = this;\n var foundSelf = false;\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n };\n _proto.root = function root() {\n var result2 = this;\n while(result2.parent && result2.parent.type !== \"document\"){\n result2 = result2.parent;\n }\n return result2;\n };\n _proto.toJSON = function toJSON(_, inputs) {\n var fixed = {};\n var emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n var inputsNextIndex = 0;\n for(var name in this){\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n var value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map(function(i2) {\n if ((typeof i2 === \"undefined\" ? \"undefined\" : _type_of(i2)) === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if ((typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n var inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId: inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [].concat(inputs.keys()).map(function(input2) {\n return input2.toJSON();\n });\n }\n return fixed;\n };\n _proto.toProxy = function toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n };\n _proto.toString = function toString(stringifier2) {\n if (stringifier2 === void 0) stringifier2 = stringify$3$1;\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n var result2 = \"\";\n stringifier2(this, function(i2) {\n result2 += i2;\n });\n return result2;\n };\n _proto.warn = function warn(result2, text, opts) {\n var data = {\n node: this\n };\n for(var i2 in opts)data[i2] = opts[i2];\n return result2.warn(text, data);\n };\n _create_class(Node2, [\n {\n key: \"proxyOf\",\n get: function get() {\n return this;\n }\n }\n ]);\n return Node2;\n}();\nvar node$1 = Node$4$1;\nNode$4$1.default = Node$4$1;\nvar Node$3$1 = node$1;\nvar Declaration$4$1 = /*#__PURE__*/ function(Node$3$1) {\n _inherits(Declaration, Node$3$1);\n function Declaration(defaults) {\n var _this;\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = _extends({}, defaults, {\n value: String(defaults.value)\n });\n }\n _this = Node$3$1.call(this, defaults) || this;\n _this.type = \"decl\";\n return _this;\n }\n _create_class(Declaration, [\n {\n key: \"variable\",\n get: function get() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n }\n ]);\n return Declaration;\n}(Node$3$1);\nvar declaration$1 = Declaration$4$1;\nDeclaration$4$1.default = Declaration$4$1;\nvar urlAlphabet$1 = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nvar nanoid$1$1 = function(size) {\n if (size === void 0) size = 21;\n var id = \"\";\n var i2 = size;\n while(i2--){\n id += urlAlphabet$1[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure$1 = {\n nanoid: nanoid$1$1\n};\nvar SourceMapConsumer$2$1 = require$$2$1.SourceMapConsumer, SourceMapGenerator$2$1 = require$$2$1.SourceMapGenerator;\nvar existsSync$1 = require$$2$1.existsSync, readFileSync$1 = require$$2$1.readFileSync;\nvar dirname$1$1 = require$$2$1.dirname, join$1 = require$$2$1.join;\nfunction fromBase64$1(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nvar PreviousMap$2$1 = /*#__PURE__*/ function() {\n function PreviousMap(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n var prev = opts.map ? opts.map.prev : void 0;\n var text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1$1(this.mapFile);\n if (text) this.text = text;\n }\n var _proto = PreviousMap.prototype;\n _proto.consumer = function consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2$1(this.text);\n }\n return this.consumerCache;\n };\n _proto.decodeInline = function decodeInline(text) {\n var baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n var baseUri = /^data:application\\/json;base64,/;\n var charsetUri = /^data:application\\/json;charset=utf-?8,/;\n var uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64$1(text.substr(RegExp.lastMatch.length));\n }\n var encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n };\n _proto.getAnnotationURL = function getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n };\n _proto.isMap = function isMap(map) {\n if ((typeof map === \"undefined\" ? \"undefined\" : _type_of(map)) !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n };\n _proto.loadAnnotation = function loadAnnotation(css) {\n var comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n var start = css.lastIndexOf(comments.pop());\n var end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n };\n _proto.loadFile = function loadFile(path) {\n this.root = dirname$1$1(path);\n if (existsSync$1(path)) {\n this.mapFile = path;\n return readFileSync$1(path, \"utf-8\").toString().trim();\n }\n };\n _proto.loadMap = function loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n var prevPath = prev(file);\n if (prevPath) {\n var map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\"Unable to load previous source map: \" + prevPath.toString());\n }\n return map;\n }\n } else if (_instanceof(prev, SourceMapConsumer$2$1)) {\n return SourceMapGenerator$2$1.fromSourceMap(prev).toString();\n } else if (_instanceof(prev, SourceMapGenerator$2$1)) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\"Unsupported previous source map format: \" + prev.toString());\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n var map1 = this.annotation;\n if (file) map1 = join$1(dirname$1$1(file), map1);\n return this.loadFile(map1);\n }\n };\n _proto.startWith = function startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n };\n _proto.withContent = function withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n };\n return PreviousMap;\n}();\nvar previousMap$1 = PreviousMap$2$1;\nPreviousMap$2$1.default = PreviousMap$2$1;\nvar SourceMapConsumer$1$1 = require$$2$1.SourceMapConsumer, SourceMapGenerator$1$1 = require$$2$1.SourceMapGenerator;\nvar fileURLToPath$1 = require$$2$1.fileURLToPath, pathToFileURL$1$1 = require$$2$1.pathToFileURL;\nvar isAbsolute$1 = require$$2$1.isAbsolute, resolve$1$1 = require$$2$1.resolve;\nvar nanoid$2 = nonSecure$1.nanoid;\nvar terminalHighlight$2 = require$$2$1;\nvar CssSyntaxError$1$1 = cssSyntaxError$1;\nvar PreviousMap$1$1 = previousMap$1;\nvar fromOffsetCache$1 = Symbol(\"fromOffsetCache\");\nvar sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1);\nvar pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1);\nvar Input$4$1 = /*#__PURE__*/ function() {\n function Input(css, opts) {\n if (opts === void 0) opts = {};\n if (css === null || typeof css === \"undefined\" || (typeof css === \"undefined\" ? \"undefined\" : _type_of(css)) === \"object\" && !css.toString) {\n throw new Error(\"PostCSS received \" + css + \" instead of CSS string\");\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute$1(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1$1(opts.from);\n }\n }\n if (pathAvailable$1$1 && sourceMapAvailable$1$1) {\n var map = new PreviousMap$1$1(this.css, opts);\n if (map.text) {\n this.map = map;\n var file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \" \";\n }\n if (this.map) this.map.file = this.from;\n }\n var _proto = Input.prototype;\n _proto.error = function error(message, line, column, opts) {\n if (opts === void 0) opts = {};\n var result2, endLine, endColumn;\n if (line && (typeof line === \"undefined\" ? \"undefined\" : _type_of(line)) === \"object\") {\n var start = line;\n var end = column;\n if (typeof start.offset === \"number\") {\n var pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n var pos1 = this.fromOffset(end.offset);\n endLine = pos1.line;\n endColumn = pos1.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n var pos2 = this.fromOffset(line);\n line = pos2.line;\n column = pos2.col;\n }\n var origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1$1(message, origin.endLine === void 0 ? origin.line : {\n column: origin.column,\n line: origin.line\n }, origin.endLine === void 0 ? origin.column : {\n column: origin.endColumn,\n line: origin.endLine\n }, origin.source, origin.file, opts.plugin);\n } else {\n result2 = new CssSyntaxError$1$1(message, endLine === void 0 ? line : {\n column: column,\n line: line\n }, endLine === void 0 ? column : {\n column: endColumn,\n line: endLine\n }, this.css, this.file, opts.plugin);\n }\n result2.input = {\n column: column,\n endColumn: endColumn,\n endLine: endLine,\n line: line,\n source: this.css\n };\n if (this.file) {\n if (pathToFileURL$1$1) {\n result2.input.url = pathToFileURL$1$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n };\n _proto.fromOffset = function fromOffset(offset) {\n var lastLine, lineToIndex;\n if (!this[fromOffsetCache$1]) {\n var lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n var prevIndex = 0;\n for(var i2 = 0, l2 = lines.length; i2 < l2; i2++){\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache$1] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache$1];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n var min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n var max = lineToIndex.length - 2;\n var mid;\n while(min < max){\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n };\n _proto.mapResolve = function mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n };\n _proto.origin = function origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n var consumer = this.map.consumer();\n var from = consumer.originalPositionFor({\n column: column,\n line: line\n });\n if (!from.source) return false;\n var to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({\n column: endColumn,\n line: endLine\n });\n }\n var fromUrl;\n if (isAbsolute$1(from.source)) {\n fromUrl = pathToFileURL$1$1(from.source);\n } else {\n fromUrl = new URL(from.source, this.map.consumer().sourceRoot || pathToFileURL$1$1(this.map.mapFile));\n }\n var result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath$1) {\n result2.file = fileURLToPath$1(fromUrl);\n } else {\n throw new Error(\"file: protocol is not available in this PostCSS build\");\n }\n }\n var source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n };\n _proto.toJSON = function toJSON() {\n var json = {};\n for(var _i = 0, _iter = [\n \"hasBOM\",\n \"css\",\n \"file\",\n \"id\"\n ]; _i < _iter.length; _i++){\n var name = _iter[_i];\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = _extends({}, this.map);\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n };\n _create_class(Input, [\n {\n key: \"from\",\n get: function get() {\n return this.file || this.id;\n }\n }\n ]);\n return Input;\n}();\nvar input$1 = Input$4$1;\nInput$4$1.default = Input$4$1;\nif (terminalHighlight$2 && terminalHighlight$2.registerInput) {\n terminalHighlight$2.registerInput(Input$4$1);\n}\nvar SourceMapConsumer$3 = require$$2$1.SourceMapConsumer, SourceMapGenerator$3 = require$$2$1.SourceMapGenerator;\nvar dirname$2 = require$$2$1.dirname, relative$1 = require$$2$1.relative, resolve$2 = require$$2$1.resolve, sep$1 = require$$2$1.sep;\nvar pathToFileURL$2 = require$$2$1.pathToFileURL;\nvar Input$3$1 = input$1;\nvar sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3);\nvar pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1);\nvar MapGenerator$2$1 = /*#__PURE__*/ function() {\n function MapGenerator(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n var _proto = MapGenerator.prototype;\n _proto.addAnnotation = function addAnnotation() {\n var content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n var eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n };\n _proto.applyPrevMaps = function applyPrevMaps() {\n for(var _iterator = _create_for_of_iterator_helper_loose(this.previous()), _step; !(_step = _iterator()).done;){\n var prev = _step.value;\n var from = this.toUrl(this.path(prev.file));\n var root2 = prev.root || dirname$2(prev.file);\n var map = void 0;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer$3(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n };\n _proto.clearAnnotation = function clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n var node2;\n for(var i2 = this.root.nodes.length - 1; i2 >= 0; i2--){\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n };\n _proto.generate = function generate() {\n this.clearAnnotation();\n if (pathAvailable$2 && sourceMapAvailable$2 && this.isMap()) {\n return this.generateMap();\n } else {\n var result2 = \"\";\n this.stringify(this.root, function(i2) {\n result2 += i2;\n });\n return [\n result2\n ];\n }\n };\n _proto.generateMap = function generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n var prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator$3.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: {\n column: 0,\n line: 1\n },\n original: {\n column: 0,\n line: 1\n },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [\n this.css\n ];\n } else {\n return [\n this.css,\n this.map\n ];\n }\n };\n _proto.generateString = function generateString() {\n var _this = this;\n this.css = \"\";\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n var line = 1;\n var column = 1;\n var noSource = \"\";\n var mapping = {\n generated: {\n column: 0,\n line: 0\n },\n original: {\n column: 0,\n line: 0\n },\n source: \"\"\n };\n var lines, last;\n this.stringify(this.root, function(str, node2, type) {\n _this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = _this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n _this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n _this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n var p = node2.parent || {\n raws: {}\n };\n var childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = _this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n _this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n _this.map.addMapping(mapping);\n }\n }\n }\n });\n };\n _proto.isAnnotation = function isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some(function(i2) {\n return i2.annotation;\n });\n }\n return true;\n };\n _proto.isInline = function isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n var annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some(function(i2) {\n return i2.inline;\n });\n }\n return true;\n };\n _proto.isMap = function isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n };\n _proto.isSourcesContent = function isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some(function(i2) {\n return i2.withContent();\n });\n }\n return true;\n };\n _proto.outputFile = function outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n };\n _proto.path = function path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n var cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n var from = this.opts.to ? dirname$2(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname$2(resolve$2(from, this.mapOpts.annotation));\n }\n var path = relative$1(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n };\n _proto.previous = function previous() {\n var _this = this;\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk(function(node2) {\n if (node2.source && node2.source.input.map) {\n var map = node2.source.input.map;\n if (!_this.previousMaps.includes(map)) {\n _this.previousMaps.push(map);\n }\n }\n });\n } else {\n var input2 = new Input$3$1(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n };\n _proto.setSourcesContent = function setSourcesContent() {\n var _this = this;\n var already = {};\n if (this.root) {\n this.root.walk(function(node2) {\n if (node2.source) {\n var from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n var fromUrl = _this.usesFileUrls ? _this.toFileUrl(from) : _this.toUrl(_this.path(from));\n _this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n var from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\";\n this.map.setSourceContent(from, this.css);\n }\n };\n _proto.sourcePath = function sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n };\n _proto.toBase64 = function toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n };\n _proto.toFileUrl = function toFileUrl(path) {\n var cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL$2) {\n var fileURL = pathToFileURL$2(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\"`map.absolute` option is not available in this PostCSS build\");\n }\n };\n _proto.toUrl = function toUrl(path) {\n var cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep$1 === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n var url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n };\n return MapGenerator;\n}();\nvar mapGenerator$1 = MapGenerator$2$1;\nvar Node$2$1 = node$1;\nvar Comment$4$1 = /*#__PURE__*/ function(Node$2$1) {\n _inherits(Comment, Node$2$1);\n function Comment(defaults) {\n var _this;\n _this = Node$2$1.call(this, defaults) || this;\n _this.type = \"comment\";\n return _this;\n }\n return Comment;\n}(Node$2$1);\nvar comment$1 = Comment$4$1;\nComment$4$1.default = Comment$4$1;\nvar isClean$1$1 = symbols$1.isClean, my$1$1 = symbols$1.my;\nvar Declaration$3$1 = declaration$1;\nvar Comment$3$1 = comment$1;\nvar Node$1$1 = node$1;\nvar parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1;\nfunction cleanSource$1(nodes) {\n return nodes.map(function(i2) {\n if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp$1(node2) {\n node2[isClean$1$1] = false;\n if (node2.proxyOf.nodes) {\n for(var _iterator = _create_for_of_iterator_helper_loose(node2.proxyOf.nodes), _step; !(_step = _iterator()).done;){\n var i2 = _step.value;\n markDirtyUp$1(i2);\n }\n }\n}\nvar Container$7$1 = /*#__PURE__*/ function(Node$1$1) {\n _inherits(Container, Node$1$1);\n function Container() {\n return Node$1$1.apply(this, arguments) || this;\n }\n var _proto = Container.prototype;\n _proto.append = function append() {\n for(var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++){\n children[_key] = arguments[_key];\n }\n for(var _iterator = _create_for_of_iterator_helper_loose(children), _step; !(_step = _iterator()).done;){\n var child = _step.value;\n var nodes = this.normalize(child, this.last);\n for(var _iterator1 = _create_for_of_iterator_helper_loose(nodes), _step1; !(_step1 = _iterator1()).done;){\n var node2 = _step1.value;\n this.proxyOf.nodes.push(node2);\n }\n }\n this.markDirty();\n return this;\n };\n _proto.cleanRaws = function cleanRaws(keepBetween) {\n Node$1$1.prototype.cleanRaws.call(this, keepBetween);\n if (this.nodes) {\n for(var _iterator = _create_for_of_iterator_helper_loose(this.nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n node2.cleanRaws(keepBetween);\n }\n }\n };\n _proto.each = function each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n var iterator = this.getIterator();\n var index2, result2;\n while(this.indexes[iterator] < this.proxyOf.nodes.length){\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n };\n _proto.every = function every(condition) {\n return this.nodes.every(condition);\n };\n _proto.getIterator = function getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n var iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n };\n _proto.getProxyProcessor = function getProxyProcessor() {\n return {\n get: function get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n var _node2;\n return (_node2 = node2)[prop].apply(_node2, [].concat(args.map(function(i2) {\n if (typeof i2 === \"function\") {\n return function(child, index2) {\n return i2(child.toProxy(), index2);\n };\n } else {\n return i2;\n }\n })));\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return function(cb) {\n return node2[prop](function(child) {\n for(var _len = arguments.length, other = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n other[_key - 1] = arguments[_key];\n }\n return cb.apply(void 0, [].concat([\n child.toProxy()\n ], other));\n });\n };\n } else if (prop === \"root\") {\n return function() {\n return node2.root().toProxy();\n };\n } else if (prop === \"nodes\") {\n return node2.nodes.map(function(i2) {\n return i2.toProxy();\n });\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set: function set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n };\n _proto.index = function index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n };\n _proto.insertAfter = function insertAfter(exist, add) {\n var existIndex = this.index(exist);\n var nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n }\n var index2;\n for(var id in this.indexes){\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n };\n _proto.insertBefore = function insertBefore(exist, add) {\n var existIndex = this.index(exist);\n var type = existIndex === 0 ? \"prepend\" : false;\n var nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n this.proxyOf.nodes.splice(existIndex, 0, node2);\n }\n var index2;\n for(var id in this.indexes){\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n };\n _proto.normalize = function normalize(nodes, sample) {\n var _this = this;\n if (typeof nodes === \"string\") {\n nodes = cleanSource$1(parse$4$1(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var i2 = _step.value;\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for(var _iterator1 = _create_for_of_iterator_helper_loose(nodes), _step1; !(_step1 = _iterator1()).done;){\n var i21 = _step1.value;\n if (i21.parent) i21.parent.removeChild(i21, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [\n nodes\n ];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [\n new Declaration$3$1(nodes)\n ];\n } else if (nodes.selector) {\n nodes = [\n new Rule$4$1(nodes)\n ];\n } else if (nodes.name) {\n nodes = [\n new AtRule$4$1(nodes)\n ];\n } else if (nodes.text) {\n nodes = [\n new Comment$3$1(nodes)\n ];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n var processed = nodes.map(function(i2) {\n if (!i2[my$1$1]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1$1]) markDirtyUp$1(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = _this.proxyOf;\n return i2;\n });\n return processed;\n };\n _proto.prepend = function prepend() {\n for(var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++){\n children[_key] = arguments[_key];\n }\n children = children.reverse();\n for(var _iterator = _create_for_of_iterator_helper_loose(children), _step; !(_step = _iterator()).done;){\n var child = _step.value;\n var nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for(var _iterator1 = _create_for_of_iterator_helper_loose(nodes), _step1; !(_step1 = _iterator1()).done;){\n var node2 = _step1.value;\n this.proxyOf.nodes.unshift(node2);\n }\n for(var id in this.indexes){\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n };\n _proto.push = function push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n };\n _proto.removeAll = function removeAll() {\n for(var _iterator = _create_for_of_iterator_helper_loose(this.proxyOf.nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n node2.parent = void 0;\n }\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n };\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n var index2;\n for(var id in this.indexes){\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n };\n _proto.replaceValues = function replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls(function(decl) {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n };\n _proto.some = function some(condition) {\n return this.nodes.some(condition);\n };\n _proto.walk = function walk(callback) {\n return this.each(function(child, i2) {\n var result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n };\n _proto.walkAtRules = function walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk(function(child, i2) {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (_instanceof(name, RegExp)) {\n return this.walk(function(child, i2) {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk(function(child, i2) {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n };\n _proto.walkComments = function walkComments(callback) {\n return this.walk(function(child, i2) {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n };\n _proto.walkDecls = function walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk(function(child, i2) {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (_instanceof(prop, RegExp)) {\n return this.walk(function(child, i2) {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk(function(child, i2) {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n };\n _proto.walkRules = function walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk(function(child, i2) {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (_instanceof(selector, RegExp)) {\n return this.walk(function(child, i2) {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk(function(child, i2) {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n };\n _create_class(Container, [\n {\n key: \"first\",\n get: function get() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n },\n {\n key: \"last\",\n get: function get() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n }\n ]);\n return Container;\n}(Node$1$1);\nContainer$7$1.registerParse = function(dependant) {\n parse$4$1 = dependant;\n};\nContainer$7$1.registerRule = function(dependant) {\n Rule$4$1 = dependant;\n};\nContainer$7$1.registerAtRule = function(dependant) {\n AtRule$4$1 = dependant;\n};\nContainer$7$1.registerRoot = function(dependant) {\n Root$6$1 = dependant;\n};\nvar container$1 = Container$7$1;\nContainer$7$1.default = Container$7$1;\nContainer$7$1.rebuild = function(node2) {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4$1.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4$1.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3$1.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3$1.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6$1.prototype);\n }\n node2[my$1$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach(function(child) {\n Container$7$1.rebuild(child);\n });\n }\n};\nvar Container$6$1 = container$1;\nvar LazyResult$4$1, Processor$3$1;\nvar Document$3$1 = /*#__PURE__*/ function(Container$6$1) {\n _inherits(Document2, Container$6$1);\n function Document2(defaults) {\n var _this;\n _this = Container$6$1.call(this, _extends({\n type: \"document\"\n }, defaults)) || this;\n if (!_this.nodes) {\n _this.nodes = [];\n }\n return _this;\n }\n var _proto = Document2.prototype;\n _proto.toResult = function toResult(opts) {\n if (opts === void 0) opts = {};\n var lazy = new LazyResult$4$1(new Processor$3$1(), this, opts);\n return lazy.stringify();\n };\n return Document2;\n}(Container$6$1);\nDocument$3$1.registerLazyResult = function(dependant) {\n LazyResult$4$1 = dependant;\n};\nDocument$3$1.registerProcessor = function(dependant) {\n Processor$3$1 = dependant;\n};\nvar document$1$1 = Document$3$1;\nDocument$3$1.default = Document$3$1;\nvar printed$1 = {};\nvar warnOnce$2$1 = function warnOnce(message) {\n if (printed$1[message]) return;\n printed$1[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nvar Warning$2$1 = /*#__PURE__*/ function() {\n function Warning(text, opts) {\n if (opts === void 0) opts = {};\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n var range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for(var opt in opts)this[opt] = opts[opt];\n }\n var _proto = Warning.prototype;\n _proto.toString = function toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n };\n return Warning;\n}();\nvar warning$1 = Warning$2$1;\nWarning$2$1.default = Warning$2$1;\nvar Warning$1$1 = warning$1;\nvar Result$3$1 = /*#__PURE__*/ function() {\n function Result(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n var _proto = Result.prototype;\n _proto.toString = function toString() {\n return this.css;\n };\n _proto.warn = function warn(text, opts) {\n if (opts === void 0) opts = {};\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n var warning2 = new Warning$1$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n };\n _proto.warnings = function warnings() {\n return this.messages.filter(function(i2) {\n return i2.type === \"warning\";\n });\n };\n _create_class(Result, [\n {\n key: \"content\",\n get: function get() {\n return this.css;\n }\n }\n ]);\n return Result;\n}();\nvar result$1 = Result$3$1;\nResult$3$1.default = Result$3$1;\nvar SINGLE_QUOTE$1 = \"'\".charCodeAt(0);\nvar DOUBLE_QUOTE$1 = '\"'.charCodeAt(0);\nvar BACKSLASH$1 = \"\\\\\".charCodeAt(0);\nvar SLASH$1 = \"/\".charCodeAt(0);\nvar NEWLINE$1 = \"\\n\".charCodeAt(0);\nvar SPACE$1 = \" \".charCodeAt(0);\nvar FEED$1 = \"\\f\".charCodeAt(0);\nvar TAB$1 = \"\t\".charCodeAt(0);\nvar CR$1 = \"\\r\".charCodeAt(0);\nvar OPEN_SQUARE$1 = \"[\".charCodeAt(0);\nvar CLOSE_SQUARE$1 = \"]\".charCodeAt(0);\nvar OPEN_PARENTHESES$1 = \"(\".charCodeAt(0);\nvar CLOSE_PARENTHESES$1 = \")\".charCodeAt(0);\nvar OPEN_CURLY$1 = \"{\".charCodeAt(0);\nvar CLOSE_CURLY$1 = \"}\".charCodeAt(0);\nvar SEMICOLON$1 = \";\".charCodeAt(0);\nvar ASTERISK$1 = \"*\".charCodeAt(0);\nvar COLON$1 = \":\".charCodeAt(0);\nvar AT$1 = \"@\".charCodeAt(0);\nvar RE_AT_END$1 = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nvar RE_WORD_END$1 = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nvar RE_BAD_BRACKET$1 = /.[\\r\\n\"'(/\\\\]/;\nvar RE_HEX_ESCAPE$1 = /[\\da-f]/i;\nvar tokenize$1 = function tokenizer(input2, options) {\n if (options === void 0) options = {};\n var css = input2.css.valueOf();\n var ignore = options.ignoreErrors;\n var code, next, quote, content, escape;\n var escaped, escapePos, prev, n2, currentToken;\n var length = css.length;\n var pos = 0;\n var buffer = [];\n var returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n var ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch(code){\n case NEWLINE$1:\n case SPACE$1:\n case TAB$1:\n case CR$1:\n case FEED$1:\n {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n }while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1);\n currentToken = [\n \"space\",\n css.slice(pos, next)\n ];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE$1:\n case CLOSE_SQUARE$1:\n case OPEN_CURLY$1:\n case CLOSE_CURLY$1:\n case COLON$1:\n case SEMICOLON$1:\n case CLOSE_PARENTHESES$1:\n {\n var controlChar = String.fromCharCode(code);\n currentToken = [\n controlChar,\n controlChar,\n pos\n ];\n break;\n }\n case OPEN_PARENTHESES$1:\n {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while(css.charCodeAt(escapePos - 1) === BACKSLASH$1){\n escapePos -= 1;\n escaped = !escaped;\n }\n }while (escaped);\n currentToken = [\n \"brackets\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET$1.test(content)) {\n currentToken = [\n \"(\",\n \"(\",\n pos\n ];\n } else {\n currentToken = [\n \"brackets\",\n content,\n pos,\n next\n ];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE$1:\n case DOUBLE_QUOTE$1:\n {\n quote = code === SINGLE_QUOTE$1 ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while(css.charCodeAt(escapePos - 1) === BACKSLASH$1){\n escapePos -= 1;\n escaped = !escaped;\n }\n }while (escaped);\n currentToken = [\n \"string\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n break;\n }\n case AT$1:\n {\n RE_AT_END$1.lastIndex = pos + 1;\n RE_AT_END$1.test(css);\n if (RE_AT_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END$1.lastIndex - 2;\n }\n currentToken = [\n \"at-word\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n break;\n }\n case BACKSLASH$1:\n {\n next = pos;\n escape = true;\n while(css.charCodeAt(next + 1) === BACKSLASH$1){\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) {\n next += 1;\n if (RE_HEX_ESCAPE$1.test(css.charAt(next))) {\n while(RE_HEX_ESCAPE$1.test(css.charAt(next + 1))){\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE$1) {\n next += 1;\n }\n }\n }\n currentToken = [\n \"word\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n break;\n }\n default:\n {\n if (code === SLASH$1 && css.charCodeAt(pos + 1) === ASTERISK$1) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\n \"comment\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n } else {\n RE_WORD_END$1.lastIndex = pos + 1;\n RE_WORD_END$1.test(css);\n if (RE_WORD_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END$1.lastIndex - 2;\n }\n currentToken = [\n \"word\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back: back,\n endOfFile: endOfFile,\n nextToken: nextToken,\n position: position\n };\n};\nvar Container$5$1 = container$1;\nvar AtRule$3$1 = /*#__PURE__*/ function(Container$5$1) {\n _inherits(AtRule, Container$5$1);\n function AtRule(defaults) {\n var _this;\n _this = Container$5$1.call(this, defaults) || this;\n _this.type = \"atrule\";\n return _this;\n }\n var _proto = AtRule.prototype;\n _proto.append = function append() {\n for(var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++){\n children[_key] = arguments[_key];\n }\n var _Container$5$1_prototype_append;\n if (!this.proxyOf.nodes) this.nodes = [];\n return (_Container$5$1_prototype_append = Container$5$1.prototype.append).call.apply(_Container$5$1_prototype_append, [].concat([\n this\n ], children));\n };\n _proto.prepend = function prepend() {\n for(var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++){\n children[_key] = arguments[_key];\n }\n var _Container$5$1_prototype_prepend;\n if (!this.proxyOf.nodes) this.nodes = [];\n return (_Container$5$1_prototype_prepend = Container$5$1.prototype.prepend).call.apply(_Container$5$1_prototype_prepend, [].concat([\n this\n ], children));\n };\n return AtRule;\n}(Container$5$1);\nvar atRule$1 = AtRule$3$1;\nAtRule$3$1.default = AtRule$3$1;\nContainer$5$1.registerAtRule(AtRule$3$1);\nvar Container$4$1 = container$1;\nvar LazyResult$3$1, Processor$2$1;\nvar Root$5$1 = /*#__PURE__*/ function(Container$4$1) {\n _inherits(Root, Container$4$1);\n function Root(defaults) {\n var _this;\n _this = Container$4$1.call(this, defaults) || this;\n _this.type = \"root\";\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n var _proto = Root.prototype;\n _proto.normalize = function normalize(child, sample, type) {\n var nodes = Container$4$1.prototype.normalize.call(this, child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n };\n _proto.removeChild = function removeChild(child, ignore) {\n var index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return Container$4$1.prototype.removeChild.call(this, child);\n };\n _proto.toResult = function toResult(opts) {\n if (opts === void 0) opts = {};\n var lazy = new LazyResult$3$1(new Processor$2$1(), this, opts);\n return lazy.stringify();\n };\n return Root;\n}(Container$4$1);\nRoot$5$1.registerLazyResult = function(dependant) {\n LazyResult$3$1 = dependant;\n};\nRoot$5$1.registerProcessor = function(dependant) {\n Processor$2$1 = dependant;\n};\nvar root$1 = Root$5$1;\nRoot$5$1.default = Root$5$1;\nContainer$4$1.registerRoot(Root$5$1);\nvar list$2$1 = {\n comma: function comma(string) {\n return list$2$1.split(string, [\n \",\"\n ], true);\n },\n space: function space(string) {\n var spaces = [\n \" \",\n \"\\n\",\n \"\t\"\n ];\n return list$2$1.split(string, spaces);\n },\n split: function split(string, separators, last) {\n var array = [];\n var current = \"\";\n var split = false;\n var func = 0;\n var inQuote = false;\n var prevQuote = \"\";\n var escape = false;\n for(var _iterator = _create_for_of_iterator_helper_loose(string), _step; !(_step = _iterator()).done;){\n var letter = _step.value;\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1$1 = list$2$1;\nlist$2$1.default = list$2$1;\nvar Container$3$1 = container$1;\nvar list$1$1 = list_1$1;\nvar Rule$3$1 = /*#__PURE__*/ function(Container$3$1) {\n _inherits(Rule, Container$3$1);\n function Rule(defaults) {\n var _this;\n _this = Container$3$1.call(this, defaults) || this;\n _this.type = \"rule\";\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n _create_class(Rule, [\n {\n key: \"selectors\",\n get: function get() {\n return list$1$1.comma(this.selector);\n },\n set: function set(values) {\n var match = this.selector ? this.selector.match(/,\\s*/) : null;\n var sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n }\n ]);\n return Rule;\n}(Container$3$1);\nvar rule$1 = Rule$3$1;\nRule$3$1.default = Rule$3$1;\nContainer$3$1.registerRule(Rule$3$1);\nvar Declaration$2$1 = declaration$1;\nvar tokenizer2$1 = tokenize$1;\nvar Comment$2$1 = comment$1;\nvar AtRule$2$1 = atRule$1;\nvar Root$4$1 = root$1;\nvar Rule$2$1 = rule$1;\nvar SAFE_COMMENT_NEIGHBOR$1 = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition$1(tokens) {\n for(var i2 = tokens.length - 1; i2 >= 0; i2--){\n var token = tokens[i2];\n var pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nvar Parser$1$1 = /*#__PURE__*/ function() {\n function Parser(input2) {\n this.input = input2;\n this.root = new Root$4$1();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = {\n input: input2,\n start: {\n column: 1,\n line: 1,\n offset: 0\n }\n };\n }\n var _proto = Parser.prototype;\n _proto.atrule = function atrule(token) {\n var node2 = new AtRule$2$1();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n var type;\n var prev;\n var shift;\n var last = false;\n var open = false;\n var params = [];\n var brackets = [];\n while(!this.tokenizer.endOfFile()){\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while(prev && prev[0] === \"space\"){\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n };\n _proto.checkMissedSemicolon = function checkMissedSemicolon(tokens) {\n var colon = this.colon(tokens);\n if (colon === false) return;\n var founded = 0;\n var token;\n for(var j = colon - 1; j >= 0; j--){\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\"Missed semicolon\", token[0] === \"word\" ? token[3] + 1 : token[2]);\n };\n _proto.colon = function colon(tokens) {\n var brackets = 0;\n var token, type, prev;\n for(var _iterator = _create_for_of_iterator_helper_loose(tokens.entries()), _step; !(_step = _iterator()).done;){\n var _step_value = _step.value, i2 = _step_value[0], element = _step_value[1];\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n };\n _proto.comment = function comment(token) {\n var node2 = new Comment$2$1();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n var text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n var match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n };\n _proto.createTokenizer = function createTokenizer() {\n this.tokenizer = tokenizer2$1(this.input);\n };\n _proto.decl = function decl(tokens, customProperty) {\n var node2 = new Declaration$2$1();\n this.init(node2, tokens[0][2]);\n var last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(last[3] || last[2] || findLastWithPosition$1(tokens));\n node2.source.end.offset++;\n while(tokens[0][0] !== \"word\"){\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while(tokens.length){\n var type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n var token;\n while(tokens.length){\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([\n token\n ]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n var firstSpaces = [];\n var next;\n while(tokens.length){\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for(var i2 = tokens.length - 1; i2 >= 0; i2--){\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n var string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n var cache = tokens.slice(0);\n var str = \"\";\n for(var j = i2; j > 0; j--){\n var type1 = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type1 !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n var hasWord = tokens.some(function(i2) {\n return i2[0] !== \"space\" && i2[0] !== \"comment\";\n });\n if (hasWord) {\n node2.raws.between += firstSpaces.map(function(i2) {\n return i2[1];\n }).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n };\n _proto.doubleColon = function doubleColon(token) {\n throw this.input.error(\"Double colon\", {\n offset: token[2]\n }, {\n offset: token[2] + token[1].length\n });\n };\n _proto.emptyRule = function emptyRule(token) {\n var node2 = new Rule$2$1();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n };\n _proto.end = function end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n };\n _proto.endFile = function endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n };\n _proto.freeSemicolon = function freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n var prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n };\n // Helpers\n _proto.getPosition = function getPosition(offset) {\n var pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset: offset\n };\n };\n _proto.init = function init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n };\n _proto.other = function other(start) {\n var end = false;\n var type = null;\n var colon = false;\n var bracket = null;\n var brackets = [];\n var customProperty = start[1].startsWith(\"--\");\n var tokens = [];\n var token = start;\n while(token){\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while(tokens.length){\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n };\n _proto.parse = function parse() {\n var token;\n while(!this.tokenizer.endOfFile()){\n token = this.tokenizer.nextToken();\n switch(token[0]){\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n };\n _proto.precheckMissedSemicolon = function precheckMissedSemicolon() {};\n _proto.raw = function raw(node2, prop, tokens, customProperty) {\n var token, type;\n var length = tokens.length;\n var value = \"\";\n var clean = true;\n var next, prev;\n for(var i2 = 0; i2 < length; i2 += 1){\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n var raw = tokens.reduce(function(all, i2) {\n return all + i2[1];\n }, \"\");\n node2.raws[prop] = {\n raw: raw,\n value: value\n };\n }\n node2[prop] = value;\n };\n _proto.rule = function rule(tokens) {\n tokens.pop();\n var node2 = new Rule$2$1();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n };\n _proto.spacesAndCommentsFromEnd = function spacesAndCommentsFromEnd(tokens) {\n var lastTokenType;\n var spaces = \"\";\n while(tokens.length){\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n };\n // Errors\n _proto.spacesAndCommentsFromStart = function spacesAndCommentsFromStart(tokens) {\n var next;\n var spaces = \"\";\n while(tokens.length){\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n };\n _proto.spacesFromEnd = function spacesFromEnd(tokens) {\n var lastTokenType;\n var spaces = \"\";\n while(tokens.length){\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n };\n _proto.stringFrom = function stringFrom(tokens, from) {\n var result2 = \"\";\n for(var i2 = from; i2 < tokens.length; i2++){\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n };\n _proto.unclosedBlock = function unclosedBlock() {\n var pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n };\n _proto.unclosedBracket = function unclosedBracket(bracket) {\n throw this.input.error(\"Unclosed bracket\", {\n offset: bracket[2]\n }, {\n offset: bracket[2] + 1\n });\n };\n _proto.unexpectedClose = function unexpectedClose(token) {\n throw this.input.error(\"Unexpected }\", {\n offset: token[2]\n }, {\n offset: token[2] + 1\n });\n };\n _proto.unknownWord = function unknownWord(tokens) {\n throw this.input.error(\"Unknown word\", {\n offset: tokens[0][2]\n }, {\n offset: tokens[0][2] + tokens[0][1].length\n });\n };\n _proto.unnamedAtrule = function unnamedAtrule(node2, token) {\n throw this.input.error(\"At-rule without name\", {\n offset: token[2]\n }, {\n offset: token[2] + token[1].length\n });\n };\n return Parser;\n}();\nvar parser$1 = Parser$1$1;\nvar Container$2$1 = container$1;\nvar Parser2$1 = parser$1;\nvar Input$2$1 = input$1;\nfunction parse$3$1(css, opts) {\n var input2 = new Input$2$1(css, opts);\n var parser2 = new Parser2$1(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1$1 = parse$3$1;\nparse$3$1.default = parse$3$1;\nContainer$2$1.registerParse(parse$3$1);\nvar isClean$3 = symbols$1.isClean, my$3 = symbols$1.my;\nvar MapGenerator$1$1 = mapGenerator$1;\nvar stringify$2$1 = stringify_1$1;\nvar Container$1$1 = container$1;\nvar Document$2$1 = document$1$1;\nvar warnOnce$1$1 = warnOnce$2$1;\nvar Result$2$1 = result$1;\nvar parse$2$1 = parse_1$1;\nvar Root$3$1 = root$1;\nvar TYPE_TO_CLASS_NAME$1 = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nvar PLUGIN_PROPS$1 = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nvar NOT_VISITORS$1 = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nvar CHILDREN$1 = 0;\nfunction isPromise$1(obj) {\n return (typeof obj === \"undefined\" ? \"undefined\" : _type_of(obj)) === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents$1(node2) {\n var key = false;\n var type = TYPE_TO_CLASS_NAME$1[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN$1,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [\n type,\n type + \"-\" + key,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (node2.append) {\n return [\n type,\n CHILDREN$1,\n type + \"Exit\"\n ];\n } else {\n return [\n type,\n type + \"Exit\"\n ];\n }\n}\nfunction toStack$1(node2) {\n var events;\n if (node2.type === \"document\") {\n events = [\n \"Document\",\n CHILDREN$1,\n \"DocumentExit\"\n ];\n } else if (node2.type === \"root\") {\n events = [\n \"Root\",\n CHILDREN$1,\n \"RootExit\"\n ];\n } else {\n events = getEvents$1(node2);\n }\n return {\n eventIndex: 0,\n events: events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks$1(node2) {\n node2[isClean$3] = false;\n if (node2.nodes) node2.nodes.forEach(function(i2) {\n return cleanMarks$1(i2);\n });\n return node2;\n}\nvar postcss$2$1 = {};\nvar LazyResult$2$1 = /*#__PURE__*/ function() {\n function LazyResult(processor2, css, opts) {\n var _this = this;\n this.stringified = false;\n this.processed = false;\n var root2;\n if ((typeof css === \"undefined\" ? \"undefined\" : _type_of(css)) === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks$1(css);\n } else if (_instanceof(css, LazyResult) || _instanceof(css, Result$2$1)) {\n root2 = cleanMarks$1(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n var parser2 = parse$2$1;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my$3]) {\n Container$1$1.rebuild(root2);\n }\n }\n this.result = new Result$2$1(processor2, root2, opts);\n this.helpers = _extends({}, postcss$2$1, {\n postcss: postcss$2$1,\n result: this.result\n });\n this.plugins = this.processor.plugins.map(function(plugin22) {\n if ((typeof plugin22 === \"undefined\" ? \"undefined\" : _type_of(plugin22)) === \"object\" && plugin22.prepare) {\n return _extends({}, plugin22, plugin22.prepare(_this.result));\n } else {\n return plugin22;\n }\n });\n }\n var _proto = LazyResult.prototype;\n _proto.async = function async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n };\n _proto.catch = function _catch(onRejected) {\n return this.async().catch(onRejected);\n };\n _proto.finally = function _finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n };\n _proto.getAsyncError = function getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n };\n _proto.handleError = function handleError(error, node2) {\n var plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n var pluginName = plugin22.postcssPlugin;\n var pluginVer = plugin22.postcssVersion;\n var runtimeVer = this.result.processor.version;\n var a2 = pluginVer.split(\".\");\n var b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\");\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n };\n _proto.prepareVisitors = function prepareVisitors() {\n var _this = this;\n this.listeners = {};\n var add = function(plugin22, type, cb) {\n if (!_this.listeners[type]) _this.listeners[type] = [];\n _this.listeners[type].push([\n plugin22,\n cb\n ]);\n };\n for(var _iterator = _create_for_of_iterator_helper_loose(this.plugins), _step; !(_step = _iterator()).done;){\n var plugin22 = _step.value;\n if ((typeof plugin22 === \"undefined\" ? \"undefined\" : _type_of(plugin22)) === \"object\") {\n for(var event in plugin22){\n if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) {\n throw new Error(\"Unknown event \" + event + \" in \" + plugin22.postcssPlugin + \". Try to update PostCSS (\" + this.processor.version + \" now).\");\n }\n if (!NOT_VISITORS$1[event]) {\n if (_type_of(plugin22[event]) === \"object\") {\n for(var filter in plugin22[event]){\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(plugin22, event + \"-\" + filter.toLowerCase(), plugin22[event][filter]);\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n };\n _proto.runAsync = function runAsync() {\n var _this = this;\n return _async_to_generator(function() {\n var i2, plugin22, promise, error, root2, stack, promise1, e2, node2, _loop, _iterator, _step;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _this.plugin = 0;\n i2 = 0;\n _state.label = 1;\n case 1:\n if (!(i2 < _this.plugins.length)) return [\n 3,\n 6\n ];\n plugin22 = _this.plugins[i2];\n promise = _this.runOnRoot(plugin22);\n if (!isPromise$1(promise)) return [\n 3,\n 5\n ];\n _state.label = 2;\n case 2:\n _state.trys.push([\n 2,\n 4,\n ,\n 5\n ]);\n return [\n 4,\n promise\n ];\n case 3:\n _state.sent();\n return [\n 3,\n 5\n ];\n case 4:\n error = _state.sent();\n throw _this.handleError(error);\n case 5:\n i2++;\n return [\n 3,\n 1\n ];\n case 6:\n _this.prepareVisitors();\n if (!_this.hasListener) return [\n 3,\n 18\n ];\n root2 = _this.result.root;\n _state.label = 7;\n case 7:\n if (!!root2[isClean$3]) return [\n 3,\n 14\n ];\n root2[isClean$3] = true;\n stack = [\n toStack$1(root2)\n ];\n _state.label = 8;\n case 8:\n if (!(stack.length > 0)) return [\n 3,\n 13\n ];\n promise1 = _this.visitTick(stack);\n if (!isPromise$1(promise1)) return [\n 3,\n 12\n ];\n _state.label = 9;\n case 9:\n _state.trys.push([\n 9,\n 11,\n ,\n 12\n ]);\n return [\n 4,\n promise1\n ];\n case 10:\n _state.sent();\n return [\n 3,\n 12\n ];\n case 11:\n e2 = _state.sent();\n node2 = stack[stack.length - 1].node;\n throw _this.handleError(e2, node2);\n case 12:\n return [\n 3,\n 8\n ];\n case 13:\n return [\n 3,\n 7\n ];\n case 14:\n if (!_this.listeners.OnceExit) return [\n 3,\n 18\n ];\n _loop = function() {\n var _step_value, plugin22, visitor, roots, e2;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _step_value = _step.value, plugin22 = _step_value[0], visitor = _step_value[1];\n _this.result.lastPlugin = plugin22;\n _state.label = 1;\n case 1:\n _state.trys.push([\n 1,\n 6,\n ,\n 7\n ]);\n if (!(root2.type === \"document\")) return [\n 3,\n 3\n ];\n roots = root2.nodes.map(function(subRoot) {\n return visitor(subRoot, _this.helpers);\n });\n return [\n 4,\n Promise.all(roots)\n ];\n case 2:\n _state.sent();\n return [\n 3,\n 5\n ];\n case 3:\n return [\n 4,\n visitor(root2, _this.helpers)\n ];\n case 4:\n _state.sent();\n _state.label = 5;\n case 5:\n return [\n 3,\n 7\n ];\n case 6:\n e2 = _state.sent();\n throw _this.handleError(e2);\n case 7:\n return [\n 2\n ];\n }\n });\n };\n _iterator = _create_for_of_iterator_helper_loose(_this.listeners.OnceExit);\n _state.label = 15;\n case 15:\n if (!!(_step = _iterator()).done) return [\n 3,\n 18\n ];\n return [\n 5,\n _ts_values(_loop())\n ];\n case 16:\n _state.sent();\n _state.label = 17;\n case 17:\n return [\n 3,\n 15\n ];\n case 18:\n _this.processed = true;\n return [\n 2,\n _this.stringify()\n ];\n }\n });\n })();\n };\n _proto.runOnRoot = function runOnRoot(plugin22) {\n var _this = this;\n this.result.lastPlugin = plugin22;\n try {\n if ((typeof plugin22 === \"undefined\" ? \"undefined\" : _type_of(plugin22)) === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n var roots = this.result.root.nodes.map(function(root2) {\n return plugin22.Once(root2, _this.helpers);\n });\n if (isPromise$1(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n };\n _proto.stringify = function stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n var opts = this.result.opts;\n var str = stringify$2$1;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n var map = new MapGenerator$1$1(str, this.result.root, this.result.opts);\n var data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n };\n _proto.sync = function sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for(var _iterator = _create_for_of_iterator_helper_loose(this.plugins), _step; !(_step = _iterator()).done;){\n var plugin22 = _step.value;\n var promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n var root2 = this.result.root;\n while(!root2[isClean$3]){\n root2[isClean$3] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for(var _iterator1 = _create_for_of_iterator_helper_loose(root2.nodes), _step1; !(_step1 = _iterator1()).done;){\n var subRoot = _step1.value;\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n };\n _proto.then = function then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1$1(\"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\");\n }\n }\n return this.async().then(onFulfilled, onRejected);\n };\n _proto.toString = function toString() {\n return this.css;\n };\n _proto.visitSync = function visitSync(visitors, node2) {\n for(var _iterator = _create_for_of_iterator_helper_loose(visitors), _step; !(_step = _iterator()).done;){\n var _step_value = _step.value, plugin22 = _step_value[0], visitor = _step_value[1];\n this.result.lastPlugin = plugin22;\n var promise = void 0;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n };\n _proto.visitTick = function visitTick(stack) {\n var visit2 = stack[stack.length - 1];\n var node2 = visit2.node, visitors = visit2.visitors;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n var _visitors_visit2_visitorIndex = visitors[visit2.visitorIndex], plugin22 = _visitors_visit2_visitorIndex[0], visitor = _visitors_visit2_visitorIndex[1];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n var iterator = visit2.iterator;\n var child;\n while(child = node2.nodes[node2.indexes[iterator]]){\n node2.indexes[iterator] += 1;\n if (!child[isClean$3]) {\n child[isClean$3] = true;\n stack.push(toStack$1(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n var events = visit2.events;\n while(visit2.eventIndex < events.length){\n var event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN$1) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean$3] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n };\n _proto.walkSync = function walkSync(node2) {\n var _this = this;\n node2[isClean$3] = true;\n var events = getEvents$1(node2);\n for(var _iterator = _create_for_of_iterator_helper_loose(events), _step; !(_step = _iterator()).done;){\n var event = _step.value;\n if (event === CHILDREN$1) {\n if (node2.nodes) {\n node2.each(function(child) {\n if (!child[isClean$3]) _this.walkSync(child);\n });\n }\n } else {\n var visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n };\n _proto.warnings = function warnings() {\n return this.sync().warnings();\n };\n _create_class(LazyResult, [\n {\n key: \"content\",\n get: function get() {\n return this.stringify().content;\n }\n },\n {\n key: \"css\",\n get: function get() {\n return this.stringify().css;\n }\n },\n {\n key: \"map\",\n get: function get() {\n return this.stringify().map;\n }\n },\n {\n key: \"messages\",\n get: function get() {\n return this.sync().messages;\n }\n },\n {\n key: \"opts\",\n get: function get() {\n return this.result.opts;\n }\n },\n {\n key: \"processor\",\n get: function get() {\n return this.result.processor;\n }\n },\n {\n key: \"root\",\n get: function get() {\n return this.sync().root;\n }\n },\n {\n key: Symbol.toStringTag,\n get: function get() {\n return \"LazyResult\";\n }\n }\n ]);\n return LazyResult;\n}();\nLazyResult$2$1.registerPostcss = function(dependant) {\n postcss$2$1 = dependant;\n};\nvar lazyResult$1 = LazyResult$2$1;\nLazyResult$2$1.default = LazyResult$2$1;\nRoot$3$1.registerLazyResult(LazyResult$2$1);\nDocument$2$1.registerLazyResult(LazyResult$2$1);\nvar MapGenerator2$1 = mapGenerator$1;\nvar stringify$1$1 = stringify_1$1;\nvar warnOnce2$1 = warnOnce$2$1;\nvar parse$1$1 = parse_1$1;\nvar Result$1$1 = result$1;\nvar NoWorkResult$1$1 = /*#__PURE__*/ function() {\n function NoWorkResult(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n var root2;\n var str = stringify$1$1;\n this.result = new Result$1$1(this._processor, root2, this._opts);\n this.result.css = css;\n var self = this;\n Object.defineProperty(this.result, \"root\", {\n get: function get() {\n return self.root;\n }\n });\n var map = new MapGenerator2$1(str, root2, this._opts, css);\n if (map.isMap()) {\n var _map_generate = map.generate(), generatedCSS = _map_generate[0], generatedMap = _map_generate[1];\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n var _proto = NoWorkResult.prototype;\n _proto.async = function async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n };\n _proto.catch = function _catch(onRejected) {\n return this.async().catch(onRejected);\n };\n _proto.finally = function _finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n };\n _proto.sync = function sync() {\n if (this.error) throw this.error;\n return this.result;\n };\n _proto.then = function then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2$1(\"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\");\n }\n }\n return this.async().then(onFulfilled, onRejected);\n };\n _proto.toString = function toString() {\n return this._css;\n };\n _proto.warnings = function warnings() {\n return [];\n };\n _create_class(NoWorkResult, [\n {\n key: \"content\",\n get: function get() {\n return this.result.css;\n }\n },\n {\n key: \"css\",\n get: function get() {\n return this.result.css;\n }\n },\n {\n key: \"map\",\n get: function get() {\n return this.result.map;\n }\n },\n {\n key: \"messages\",\n get: function get() {\n return [];\n }\n },\n {\n key: \"opts\",\n get: function get() {\n return this.result.opts;\n }\n },\n {\n key: \"processor\",\n get: function get() {\n return this.result.processor;\n }\n },\n {\n key: \"root\",\n get: function get() {\n if (this._root) {\n return this._root;\n }\n var root2;\n var parser2 = parse$1$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n },\n {\n key: Symbol.toStringTag,\n get: function get() {\n return \"NoWorkResult\";\n }\n }\n ]);\n return NoWorkResult;\n}();\nvar noWorkResult$1 = NoWorkResult$1$1;\nNoWorkResult$1$1.default = NoWorkResult$1$1;\nvar NoWorkResult2$1 = noWorkResult$1;\nvar LazyResult$1$1 = lazyResult$1;\nvar Document$1$1 = document$1$1;\nvar Root$2$1 = root$1;\nvar Processor$1$1 = /*#__PURE__*/ function() {\n function Processor(plugins) {\n if (plugins === void 0) plugins = [];\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n var _proto = Processor.prototype;\n _proto.normalize = function normalize(plugins) {\n var normalized = [];\n for(var _iterator = _create_for_of_iterator_helper_loose(plugins), _step; !(_step = _iterator()).done;){\n var i2 = _step.value;\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if ((typeof i2 === \"undefined\" ? \"undefined\" : _type_of(i2)) === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if ((typeof i2 === \"undefined\" ? \"undefined\" : _type_of(i2)) === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if ((typeof i2 === \"undefined\" ? \"undefined\" : _type_of(i2)) === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\");\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n };\n _proto.process = function process1(css, opts) {\n if (opts === void 0) opts = {};\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2$1(this, css, opts);\n } else {\n return new LazyResult$1$1(this, css, opts);\n }\n };\n _proto.use = function use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([\n plugin22\n ]));\n return this;\n };\n return Processor;\n}();\nvar processor$1 = Processor$1$1;\nProcessor$1$1.default = Processor$1$1;\nRoot$2$1.registerProcessor(Processor$1$1);\nDocument$1$1.registerProcessor(Processor$1$1);\nvar Declaration$1$1 = declaration$1;\nvar PreviousMap2$1 = previousMap$1;\nvar Comment$1$1 = comment$1;\nvar AtRule$1$1 = atRule$1;\nvar Input$1$1 = input$1;\nvar Root$1$1 = root$1;\nvar Rule$1$1 = rule$1;\nfunction fromJSON$1$1(json, inputs) {\n if (Array.isArray(json)) return json.map(function(n2) {\n return fromJSON$1$1(n2);\n });\n var ownInputs = json.inputs, defaults = _object_without_properties_loose(json, [\n \"inputs\"\n ]);\n if (ownInputs) {\n inputs = [];\n for(var _iterator = _create_for_of_iterator_helper_loose(ownInputs), _step; !(_step = _iterator()).done;){\n var input2 = _step.value;\n var inputHydrated = _extends({}, input2, {\n __proto__: Input$1$1.prototype\n });\n if (inputHydrated.map) {\n inputHydrated.map = _extends({}, inputHydrated.map, {\n __proto__: PreviousMap2$1.prototype\n });\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(function(n2) {\n return fromJSON$1$1(n2, inputs);\n });\n }\n if (defaults.source) {\n var _defaults_source = defaults.source, inputId = _defaults_source.inputId, source = _object_without_properties_loose(_defaults_source, [\n \"inputId\"\n ]);\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1$1 = fromJSON$1$1;\nfromJSON$1$1.default = fromJSON$1$1;\nvar CssSyntaxError2$1 = cssSyntaxError$1;\nvar Declaration2$1 = declaration$1;\nvar LazyResult2$1 = lazyResult$1;\nvar Container2$1 = container$1;\nvar Processor2$1 = processor$1;\nvar stringify$5 = stringify_1$1;\nvar fromJSON$2 = fromJSON_1$1;\nvar Document22 = document$1$1;\nvar Warning2$1 = warning$1;\nvar Comment2$1 = comment$1;\nvar AtRule2$1 = atRule$1;\nvar Result2$1 = result$1;\nvar Input2$1 = input$1;\nvar parse$5 = parse_1$1;\nvar list$3 = list_1$1;\nvar Rule2$1 = rule$1;\nvar Root2$1 = root$1;\nvar Node2$1 = node$1;\nfunction postcss$3() {\n for(var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++){\n plugins[_key] = arguments[_key];\n }\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2$1(plugins);\n}\npostcss$3.plugin = function plugin(name, initializer) {\n var warningPrinted = false;\n function creator() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\");\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\");\n }\n }\n var transformer = initializer.apply(void 0, [].concat(args));\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2$1().version;\n return transformer;\n }\n var cache;\n Object.defineProperty(creator, \"postcss\", {\n get: function get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss$3([\n creator(pluginOpts)\n ]).process(css, processOpts);\n };\n return creator;\n};\npostcss$3.stringify = stringify$5;\npostcss$3.parse = parse$5;\npostcss$3.fromJSON = fromJSON$2;\npostcss$3.list = list$3;\npostcss$3.comment = function(defaults) {\n return new Comment2$1(defaults);\n};\npostcss$3.atRule = function(defaults) {\n return new AtRule2$1(defaults);\n};\npostcss$3.decl = function(defaults) {\n return new Declaration2$1(defaults);\n};\npostcss$3.rule = function(defaults) {\n return new Rule2$1(defaults);\n};\npostcss$3.root = function(defaults) {\n return new Root2$1(defaults);\n};\npostcss$3.document = function(defaults) {\n return new Document22(defaults);\n};\npostcss$3.CssSyntaxError = CssSyntaxError2$1;\npostcss$3.Declaration = Declaration2$1;\npostcss$3.Container = Container2$1;\npostcss$3.Processor = Processor2$1;\npostcss$3.Document = Document22;\npostcss$3.Comment = Comment2$1;\npostcss$3.Warning = Warning2$1;\npostcss$3.AtRule = AtRule2$1;\npostcss$3.Result = Result2$1;\npostcss$3.Input = Input2$1;\npostcss$3.Rule = Rule2$1;\npostcss$3.Root = Root2$1;\npostcss$3.Node = Node2$1;\nLazyResult2$1.registerPostcss(postcss$3);\nvar postcss_1$1 = postcss$3;\npostcss$3.default = postcss$3;\nvar postcss$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcss_1$1);\npostcss$1$1.stringify;\npostcss$1$1.fromJSON;\npostcss$1$1.plugin;\npostcss$1$1.parse;\npostcss$1$1.list;\npostcss$1$1.document;\npostcss$1$1.comment;\npostcss$1$1.atRule;\npostcss$1$1.rule;\npostcss$1$1.decl;\npostcss$1$1.root;\npostcss$1$1.CssSyntaxError;\npostcss$1$1.Declaration;\npostcss$1$1.Container;\npostcss$1$1.Processor;\npostcss$1$1.Document;\npostcss$1$1.Comment;\npostcss$1$1.Warning;\npostcss$1$1.AtRule;\npostcss$1$1.Result;\npostcss$1$1.Input;\npostcss$1$1.Rule;\npostcss$1$1.Root;\npostcss$1$1.Node;\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = function(obj, key, value) {\n return key in obj ? __defProp2(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n }) : obj[key] = value;\n};\nvar __publicField2 = function(obj, key, value) {\n return __defNormalProp2(obj, (typeof key === \"undefined\" ? \"undefined\" : _type_of(key)) !== \"symbol\" ? key + \"\" : key, value);\n};\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (_instanceof(this, a22)) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", {\n value: true\n });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function get() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = {\n exports: {}\n};\nvar x = String;\nvar create = function create() {\n return {\n isColorSupported: false,\n reset: x,\n bold: x,\n dim: x,\n italic: x,\n underline: x,\n inverse: x,\n hidden: x,\n strikethrough: x,\n black: x,\n red: x,\n green: x,\n yellow: x,\n blue: x,\n magenta: x,\n cyan: x,\n white: x,\n gray: x,\n bgBlack: x,\n bgRed: x,\n bgGreen: x,\n bgYellow: x,\n bgBlue: x,\n bgMagenta: x,\n bgCyan: x,\n bgWhite: x\n };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nvar __viteBrowserExternal = {};\nvar __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, {\n value: \"Module\"\n}));\nvar require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nvar pico = picocolors_browserExports;\nvar terminalHighlight$1 = require$$2;\nvar CssSyntaxError$3 = /*#__PURE__*/ function(Error1) {\n _inherits(CssSyntaxError2, Error1);\n function CssSyntaxError2(message, line, column, source, file, plugin22) {\n var _this;\n _this = Error1.call(this, message) || this;\n _this.name = \"CssSyntaxError\";\n _this.reason = message;\n if (file) {\n _this.file = file;\n }\n if (source) {\n _this.source = source;\n }\n if (plugin22) {\n _this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n _this.line = line;\n _this.column = column;\n } else {\n _this.line = line.line;\n _this.column = line.column;\n _this.endLine = column.line;\n _this.endColumn = column.column;\n }\n }\n _this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_this, CssSyntaxError2);\n }\n return _this;\n }\n var _proto = CssSyntaxError2.prototype;\n _proto.setMessage = function setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n };\n _proto.showSourceCode = function showSourceCode(color) {\n var _this = this;\n if (!this.source) return \"\";\n var css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n var lines = css.split(/\\r?\\n/);\n var start = Math.max(this.line - 3, 0);\n var end = Math.min(this.line + 2, lines.length);\n var maxWidth = String(end).length;\n var mark, aside;\n if (color) {\n var _pico_createColors = pico.createColors(true), bold = _pico_createColors.bold, gray = _pico_createColors.gray, red = _pico_createColors.red;\n mark = function(text) {\n return bold(red(text));\n };\n aside = function(text) {\n return gray(text);\n };\n } else {\n mark = aside = function(str) {\n return str;\n };\n }\n return lines.slice(start, end).map(function(line, index2) {\n var number = start + 1 + index2;\n var gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === _this.line) {\n var spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, _this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n };\n _proto.toString = function toString() {\n var code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n };\n return CssSyntaxError2;\n}(_wrap_native_super(Error));\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nvar DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nvar Stringifier$2 = /*#__PURE__*/ function() {\n function Stringifier2(builder) {\n this.builder = builder;\n }\n var _proto = Stringifier2.prototype;\n _proto.atrule = function atrule(node2, semicolon) {\n var name = \"@\" + node2.name;\n var params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n var end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n };\n _proto.beforeAfter = function beforeAfter(node2, detect) {\n var value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n var buf = node2.parent;\n var depth = 0;\n while(buf && buf.type !== \"root\"){\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n var indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for(var step = 0; step < depth; step++)value += indent;\n }\n }\n return value;\n };\n _proto.block = function block(node2, start) {\n var between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n var after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n };\n _proto.body = function body(node2) {\n var last = node2.nodes.length - 1;\n while(last > 0){\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n var semicolon = this.raw(node2, \"semicolon\");\n for(var i2 = 0; i2 < node2.nodes.length; i2++){\n var child = node2.nodes[i2];\n var before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n };\n _proto.comment = function comment(node2) {\n var left = this.raw(node2, \"left\", \"commentLeft\");\n var right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n };\n _proto.decl = function decl(node2, semicolon) {\n var between = this.raw(node2, \"between\", \"colon\");\n var string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n };\n _proto.document = function document1(node2) {\n this.body(node2);\n };\n _proto.raw = function raw(node2, own, detect) {\n var value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n var parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n var root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n var method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk(function(i2) {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n };\n _proto.rawBeforeClose = function rawBeforeClose(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n };\n _proto.rawBeforeComment = function rawBeforeComment(root2, node2) {\n var value;\n root2.walkComments(function(i2) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n };\n _proto.rawBeforeDecl = function rawBeforeDecl(root2, node2) {\n var value;\n root2.walkDecls(function(i2) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n };\n _proto.rawBeforeOpen = function rawBeforeOpen(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n };\n _proto.rawBeforeRule = function rawBeforeRule(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n };\n _proto.rawColon = function rawColon(root2) {\n var value;\n root2.walkDecls(function(i2) {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n };\n _proto.rawEmptyBody = function rawEmptyBody(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n };\n _proto.rawIndent = function rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n var value;\n root2.walk(function(i2) {\n var p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n var parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n };\n _proto.rawSemicolon = function rawSemicolon(root2) {\n var value;\n root2.walk(function(i2) {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n };\n _proto.rawValue = function rawValue(node2, prop) {\n var value = node2[prop];\n var raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n };\n _proto.root = function root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n };\n _proto.rule = function rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n };\n _proto.stringify = function stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\");\n }\n this[node2.type](node2, semicolon);\n };\n return Stringifier2;\n}();\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nvar Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n var str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nvar isClean$2 = symbols.isClean, my$2 = symbols.my;\nvar CssSyntaxError$2 = cssSyntaxError;\nvar Stringifier22 = stringifier;\nvar stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n var cloned = new obj.constructor();\n for(var i2 in obj){\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n var value = obj[i2];\n var type = typeof value === \"undefined\" ? \"undefined\" : _type_of(value);\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map(function(j) {\n return cloneNode(j, cloned);\n });\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nvar Node$4 = /*#__PURE__*/ function() {\n function Node3(defaults) {\n if (defaults === void 0) defaults = {};\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for(var name in defaults){\n if (name === \"nodes\") {\n this.nodes = [];\n for(var _iterator = _create_for_of_iterator_helper_loose(defaults[name]), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n var _proto = Node3.prototype;\n _proto.addToError = function addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n var s2 = this.source;\n error.stack = error.stack.replace(/\\n\\s{4}at /, \"$&\" + s2.input.from + \":\" + s2.start.line + \":\" + s2.start.column + \"$&\");\n }\n return error;\n };\n _proto.after = function after(add) {\n this.parent.insertAfter(this, add);\n return this;\n };\n _proto.assign = function assign(overrides) {\n if (overrides === void 0) overrides = {};\n for(var name in overrides){\n this[name] = overrides[name];\n }\n return this;\n };\n _proto.before = function before(add) {\n this.parent.insertBefore(this, add);\n return this;\n };\n _proto.cleanRaws = function cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n };\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) overrides = {};\n var cloned = cloneNode(this);\n for(var name in overrides){\n cloned[name] = overrides[name];\n }\n return cloned;\n };\n _proto.cloneAfter = function cloneAfter(overrides) {\n if (overrides === void 0) overrides = {};\n var cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n };\n _proto.cloneBefore = function cloneBefore(overrides) {\n if (overrides === void 0) overrides = {};\n var cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n };\n _proto.error = function error(message, opts) {\n if (opts === void 0) opts = {};\n if (this.source) {\n var _this_rangeBy = this.rangeBy(opts), end = _this_rangeBy.end, start = _this_rangeBy.start;\n return this.source.input.error(message, {\n column: start.column,\n line: start.line\n }, {\n column: end.column,\n line: end.line\n }, opts);\n }\n return new CssSyntaxError$2(message);\n };\n _proto.getProxyProcessor = function getProxyProcessor() {\n return {\n get: function get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return function() {\n return node2.root().toProxy();\n };\n } else {\n return node2[prop];\n }\n },\n set: function set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */ prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n };\n _proto.markDirty = function markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n var next = this;\n while(next = next.parent){\n next[isClean$2] = false;\n }\n }\n };\n _proto.next = function next() {\n if (!this.parent) return void 0;\n var index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n };\n _proto.positionBy = function positionBy(opts, stringRepresentation) {\n var pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n var index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n };\n _proto.positionInside = function positionInside(index2, stringRepresentation) {\n var string = stringRepresentation || this.toString();\n var column = this.source.start.column;\n var line = this.source.start.line;\n for(var i2 = 0; i2 < index2; i2++){\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return {\n column: column,\n line: line\n };\n };\n _proto.prev = function prev() {\n if (!this.parent) return void 0;\n var index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n };\n _proto.rangeBy = function rangeBy(opts) {\n var start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n var end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n var stringRepresentation = this.toString();\n var index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = {\n column: start.column + 1,\n line: start.line\n };\n }\n return {\n end: end,\n start: start\n };\n };\n _proto.raw = function raw(prop, defaultType) {\n var str = new Stringifier22();\n return str.raw(this, prop, defaultType);\n };\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n };\n _proto.replaceWith = function replaceWith() {\n for(var _len = arguments.length, nodes = new Array(_len), _key = 0; _key < _len; _key++){\n nodes[_key] = arguments[_key];\n }\n if (this.parent) {\n var bookmark = this;\n var foundSelf = false;\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n };\n _proto.root = function root() {\n var result2 = this;\n while(result2.parent && result2.parent.type !== \"document\"){\n result2 = result2.parent;\n }\n return result2;\n };\n _proto.toJSON = function toJSON(_, inputs) {\n var fixed = {};\n var emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n var inputsNextIndex = 0;\n for(var name in this){\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n var value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map(function(i2) {\n if ((typeof i2 === \"undefined\" ? \"undefined\" : _type_of(i2)) === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if ((typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n var inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId: inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [].concat(inputs.keys()).map(function(input2) {\n return input2.toJSON();\n });\n }\n return fixed;\n };\n _proto.toProxy = function toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n };\n _proto.toString = function toString(stringifier2) {\n if (stringifier2 === void 0) stringifier2 = stringify$3;\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n var result2 = \"\";\n stringifier2(this, function(i2) {\n result2 += i2;\n });\n return result2;\n };\n _proto.warn = function warn(result2, text, opts) {\n var data = {\n node: this\n };\n for(var i2 in opts)data[i2] = opts[i2];\n return result2.warn(text, data);\n };\n _create_class(Node3, [\n {\n key: \"proxyOf\",\n get: function get() {\n return this;\n }\n }\n ]);\n return Node3;\n}();\nvar node = Node$4;\nNode$4.default = Node$4;\nvar Node$3 = node;\nvar Declaration$4 = /*#__PURE__*/ function(Node$3) {\n _inherits(Declaration2, Node$3);\n function Declaration2(defaults) {\n var _this;\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = _extends({}, defaults, {\n value: String(defaults.value)\n });\n }\n _this = Node$3.call(this, defaults) || this;\n _this.type = \"decl\";\n return _this;\n }\n _create_class(Declaration2, [\n {\n key: \"variable\",\n get: function get() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n }\n ]);\n return Declaration2;\n}(Node$3);\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nvar urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nvar nanoid$1 = function(size) {\n if (size === void 0) size = 21;\n var id = \"\";\n var i2 = size;\n while(i2--){\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = {\n nanoid: nanoid$1\n};\nvar SourceMapConsumer$2 = require$$2.SourceMapConsumer, SourceMapGenerator$2 = require$$2.SourceMapGenerator;\nvar existsSync = require$$2.existsSync, readFileSync = require$$2.readFileSync;\nvar dirname$1 = require$$2.dirname, join = require$$2.join;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nvar PreviousMap$2 = /*#__PURE__*/ function() {\n function PreviousMap2(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n var prev = opts.map ? opts.map.prev : void 0;\n var text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n var _proto = PreviousMap2.prototype;\n _proto.consumer = function consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n };\n _proto.decodeInline = function decodeInline(text) {\n var baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n var baseUri = /^data:application\\/json;base64,/;\n var charsetUri = /^data:application\\/json;charset=utf-?8,/;\n var uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n var encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n };\n _proto.getAnnotationURL = function getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n };\n _proto.isMap = function isMap(map) {\n if ((typeof map === \"undefined\" ? \"undefined\" : _type_of(map)) !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n };\n _proto.loadAnnotation = function loadAnnotation(css) {\n var comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n var start = css.lastIndexOf(comments.pop());\n var end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n };\n _proto.loadFile = function loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n };\n _proto.loadMap = function loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n var prevPath = prev(file);\n if (prevPath) {\n var map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\"Unable to load previous source map: \" + prevPath.toString());\n }\n return map;\n }\n } else if (_instanceof(prev, SourceMapConsumer$2)) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (_instanceof(prev, SourceMapGenerator$2)) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\"Unsupported previous source map format: \" + prev.toString());\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n var map1 = this.annotation;\n if (file) map1 = join(dirname$1(file), map1);\n return this.loadFile(map1);\n }\n };\n _proto.startWith = function startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n };\n _proto.withContent = function withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n };\n return PreviousMap2;\n}();\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nvar SourceMapConsumer$1 = require$$2.SourceMapConsumer, SourceMapGenerator$1 = require$$2.SourceMapGenerator;\nvar fileURLToPath = require$$2.fileURLToPath, pathToFileURL$1 = require$$2.pathToFileURL;\nvar isAbsolute = require$$2.isAbsolute, resolve$1 = require$$2.resolve;\nvar nanoid = nonSecure.nanoid;\nvar terminalHighlight = require$$2;\nvar CssSyntaxError$1 = cssSyntaxError;\nvar PreviousMap$1 = previousMap;\nvar fromOffsetCache = Symbol(\"fromOffsetCache\");\nvar sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nvar pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nvar Input$4 = /*#__PURE__*/ function() {\n function Input2(css, opts) {\n if (opts === void 0) opts = {};\n if (css === null || typeof css === \"undefined\" || (typeof css === \"undefined\" ? \"undefined\" : _type_of(css)) === \"object\" && !css.toString) {\n throw new Error(\"PostCSS received \" + css + \" instead of CSS string\");\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n var map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n var file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \" \";\n }\n if (this.map) this.map.file = this.from;\n }\n var _proto = Input2.prototype;\n _proto.error = function error(message, line, column, opts) {\n if (opts === void 0) opts = {};\n var result2, endLine, endColumn;\n if (line && (typeof line === \"undefined\" ? \"undefined\" : _type_of(line)) === \"object\") {\n var start = line;\n var end = column;\n if (typeof start.offset === \"number\") {\n var pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n var pos1 = this.fromOffset(end.offset);\n endLine = pos1.line;\n endColumn = pos1.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n var pos2 = this.fromOffset(line);\n line = pos2.line;\n column = pos2.col;\n }\n var origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(message, origin.endLine === void 0 ? origin.line : {\n column: origin.column,\n line: origin.line\n }, origin.endLine === void 0 ? origin.column : {\n column: origin.endColumn,\n line: origin.endLine\n }, origin.source, origin.file, opts.plugin);\n } else {\n result2 = new CssSyntaxError$1(message, endLine === void 0 ? line : {\n column: column,\n line: line\n }, endLine === void 0 ? column : {\n column: endColumn,\n line: endLine\n }, this.css, this.file, opts.plugin);\n }\n result2.input = {\n column: column,\n endColumn: endColumn,\n endLine: endLine,\n line: line,\n source: this.css\n };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n };\n _proto.fromOffset = function fromOffset(offset) {\n var lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n var lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n var prevIndex = 0;\n for(var i2 = 0, l2 = lines.length; i2 < l2; i2++){\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n var min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n var max = lineToIndex.length - 2;\n var mid;\n while(min < max){\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n };\n _proto.mapResolve = function mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n };\n _proto.origin = function origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n var consumer = this.map.consumer();\n var from = consumer.originalPositionFor({\n column: column,\n line: line\n });\n if (!from.source) return false;\n var to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({\n column: endColumn,\n line: endLine\n });\n }\n var fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(from.source, this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile));\n }\n var result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(\"file: protocol is not available in this PostCSS build\");\n }\n }\n var source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n };\n _proto.toJSON = function toJSON() {\n var json = {};\n for(var _i = 0, _iter = [\n \"hasBOM\",\n \"css\",\n \"file\",\n \"id\"\n ]; _i < _iter.length; _i++){\n var name = _iter[_i];\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = _extends({}, this.map);\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n };\n _create_class(Input2, [\n {\n key: \"from\",\n get: function get() {\n return this.file || this.id;\n }\n }\n ]);\n return Input2;\n}();\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nvar SourceMapConsumer = require$$2.SourceMapConsumer, SourceMapGenerator = require$$2.SourceMapGenerator;\nvar dirname = require$$2.dirname, relative = require$$2.relative, resolve$3 = require$$2.resolve, sep = require$$2.sep;\nvar pathToFileURL = require$$2.pathToFileURL;\nvar Input$3 = input;\nvar sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nvar pathAvailable = Boolean(dirname && resolve$3 && relative && sep);\nvar MapGenerator$2 = /*#__PURE__*/ function() {\n function MapGenerator2(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n var _proto = MapGenerator2.prototype;\n _proto.addAnnotation = function addAnnotation() {\n var content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n var eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n };\n _proto.applyPrevMaps = function applyPrevMaps() {\n for(var _iterator = _create_for_of_iterator_helper_loose(this.previous()), _step; !(_step = _iterator()).done;){\n var prev = _step.value;\n var from = this.toUrl(this.path(prev.file));\n var root2 = prev.root || dirname(prev.file);\n var map = void 0;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n };\n _proto.clearAnnotation = function clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n var node2;\n for(var i2 = this.root.nodes.length - 1; i2 >= 0; i2--){\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n };\n _proto.generate = function generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n var result2 = \"\";\n this.stringify(this.root, function(i2) {\n result2 += i2;\n });\n return [\n result2\n ];\n }\n };\n _proto.generateMap = function generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n var prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: {\n column: 0,\n line: 1\n },\n original: {\n column: 0,\n line: 1\n },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [\n this.css\n ];\n } else {\n return [\n this.css,\n this.map\n ];\n }\n };\n _proto.generateString = function generateString() {\n var _this = this;\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n var line = 1;\n var column = 1;\n var noSource = \"\";\n var mapping = {\n generated: {\n column: 0,\n line: 0\n },\n original: {\n column: 0,\n line: 0\n },\n source: \"\"\n };\n var lines, last;\n this.stringify(this.root, function(str, node2, type) {\n _this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = _this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n _this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n _this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n var p = node2.parent || {\n raws: {}\n };\n var childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = _this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n _this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n _this.map.addMapping(mapping);\n }\n }\n }\n });\n };\n _proto.isAnnotation = function isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some(function(i2) {\n return i2.annotation;\n });\n }\n return true;\n };\n _proto.isInline = function isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n var annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some(function(i2) {\n return i2.inline;\n });\n }\n return true;\n };\n _proto.isMap = function isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n };\n _proto.isSourcesContent = function isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some(function(i2) {\n return i2.withContent();\n });\n }\n return true;\n };\n _proto.outputFile = function outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n };\n _proto.path = function path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n var cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n var from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve$3(from, this.mapOpts.annotation));\n }\n var path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n };\n _proto.previous = function previous() {\n var _this = this;\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk(function(node2) {\n if (node2.source && node2.source.input.map) {\n var map = node2.source.input.map;\n if (!_this.previousMaps.includes(map)) {\n _this.previousMaps.push(map);\n }\n }\n });\n } else {\n var input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n };\n _proto.setSourcesContent = function setSourcesContent() {\n var _this = this;\n var already = {};\n if (this.root) {\n this.root.walk(function(node2) {\n if (node2.source) {\n var from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n var fromUrl = _this.usesFileUrls ? _this.toFileUrl(from) : _this.toUrl(_this.path(from));\n _this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n var from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\";\n this.map.setSourceContent(from, this.css);\n }\n };\n _proto.sourcePath = function sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n };\n _proto.toBase64 = function toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n };\n _proto.toFileUrl = function toFileUrl(path) {\n var cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n var fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\"`map.absolute` option is not available in this PostCSS build\");\n }\n };\n _proto.toUrl = function toUrl(path) {\n var cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n var url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n };\n return MapGenerator2;\n}();\nvar mapGenerator = MapGenerator$2;\nvar Node$2 = node;\nvar Comment$4 = /*#__PURE__*/ function(Node$2) {\n _inherits(Comment2, Node$2);\n function Comment2(defaults) {\n var _this;\n _this = Node$2.call(this, defaults) || this;\n _this.type = \"comment\";\n return _this;\n }\n return Comment2;\n}(Node$2);\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nvar isClean$1 = symbols.isClean, my$1 = symbols.my;\nvar Declaration$3 = declaration;\nvar Comment$3 = comment;\nvar Node$1 = node;\nvar parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map(function(i2) {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for(var _iterator = _create_for_of_iterator_helper_loose(node2.proxyOf.nodes), _step; !(_step = _iterator()).done;){\n var i2 = _step.value;\n markDirtyUp(i2);\n }\n }\n}\nvar Container$7 = /*#__PURE__*/ function(Node$1) {\n _inherits(Container2, Node$1);\n function Container2() {\n return Node$1.apply(this, arguments) || this;\n }\n var _proto = Container2.prototype;\n _proto.append = function append() {\n for(var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++){\n children[_key] = arguments[_key];\n }\n for(var _iterator = _create_for_of_iterator_helper_loose(children), _step; !(_step = _iterator()).done;){\n var child = _step.value;\n var nodes = this.normalize(child, this.last);\n for(var _iterator1 = _create_for_of_iterator_helper_loose(nodes), _step1; !(_step1 = _iterator1()).done;){\n var node2 = _step1.value;\n this.proxyOf.nodes.push(node2);\n }\n }\n this.markDirty();\n return this;\n };\n _proto.cleanRaws = function cleanRaws(keepBetween) {\n Node$1.prototype.cleanRaws.call(this, keepBetween);\n if (this.nodes) {\n for(var _iterator = _create_for_of_iterator_helper_loose(this.nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n node2.cleanRaws(keepBetween);\n }\n }\n };\n _proto.each = function each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n var iterator = this.getIterator();\n var index2, result2;\n while(this.indexes[iterator] < this.proxyOf.nodes.length){\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n };\n _proto.every = function every(condition) {\n return this.nodes.every(condition);\n };\n _proto.getIterator = function getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n var iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n };\n _proto.getProxyProcessor = function getProxyProcessor() {\n return {\n get: function get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n var _node2;\n return (_node2 = node2)[prop].apply(_node2, [].concat(args.map(function(i2) {\n if (typeof i2 === \"function\") {\n return function(child, index2) {\n return i2(child.toProxy(), index2);\n };\n } else {\n return i2;\n }\n })));\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return function(cb) {\n return node2[prop](function(child) {\n for(var _len = arguments.length, other = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n other[_key - 1] = arguments[_key];\n }\n return cb.apply(void 0, [].concat([\n child.toProxy()\n ], other));\n });\n };\n } else if (prop === \"root\") {\n return function() {\n return node2.root().toProxy();\n };\n } else if (prop === \"nodes\") {\n return node2.nodes.map(function(i2) {\n return i2.toProxy();\n });\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set: function set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n };\n _proto.index = function index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n };\n _proto.insertAfter = function insertAfter(exist, add) {\n var existIndex = this.index(exist);\n var nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n }\n var index2;\n for(var id in this.indexes){\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n };\n _proto.insertBefore = function insertBefore(exist, add) {\n var existIndex = this.index(exist);\n var type = existIndex === 0 ? \"prepend\" : false;\n var nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n this.proxyOf.nodes.splice(existIndex, 0, node2);\n }\n var index2;\n for(var id in this.indexes){\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n };\n _proto.normalize = function normalize(nodes, sample) {\n var _this = this;\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var i2 = _step.value;\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for(var _iterator1 = _create_for_of_iterator_helper_loose(nodes), _step1; !(_step1 = _iterator1()).done;){\n var i21 = _step1.value;\n if (i21.parent) i21.parent.removeChild(i21, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [\n nodes\n ];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [\n new Declaration$3(nodes)\n ];\n } else if (nodes.selector) {\n nodes = [\n new Rule$4(nodes)\n ];\n } else if (nodes.name) {\n nodes = [\n new AtRule$4(nodes)\n ];\n } else if (nodes.text) {\n nodes = [\n new Comment$3(nodes)\n ];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n var processed = nodes.map(function(i2) {\n if (!i2[my$1]) Container2.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = _this.proxyOf;\n return i2;\n });\n return processed;\n };\n _proto.prepend = function prepend() {\n for(var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++){\n children[_key] = arguments[_key];\n }\n children = children.reverse();\n for(var _iterator = _create_for_of_iterator_helper_loose(children), _step; !(_step = _iterator()).done;){\n var child = _step.value;\n var nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for(var _iterator1 = _create_for_of_iterator_helper_loose(nodes), _step1; !(_step1 = _iterator1()).done;){\n var node2 = _step1.value;\n this.proxyOf.nodes.unshift(node2);\n }\n for(var id in this.indexes){\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n };\n _proto.push = function push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n };\n _proto.removeAll = function removeAll() {\n for(var _iterator = _create_for_of_iterator_helper_loose(this.proxyOf.nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n node2.parent = void 0;\n }\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n };\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n var index2;\n for(var id in this.indexes){\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n };\n _proto.replaceValues = function replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls(function(decl) {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n };\n _proto.some = function some(condition) {\n return this.nodes.some(condition);\n };\n _proto.walk = function walk(callback) {\n return this.each(function(child, i2) {\n var result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n };\n _proto.walkAtRules = function walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk(function(child, i2) {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (_instanceof(name, RegExp)) {\n return this.walk(function(child, i2) {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk(function(child, i2) {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n };\n _proto.walkComments = function walkComments(callback) {\n return this.walk(function(child, i2) {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n };\n _proto.walkDecls = function walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk(function(child, i2) {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (_instanceof(prop, RegExp)) {\n return this.walk(function(child, i2) {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk(function(child, i2) {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n };\n _proto.walkRules = function walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk(function(child, i2) {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (_instanceof(selector, RegExp)) {\n return this.walk(function(child, i2) {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk(function(child, i2) {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n };\n _create_class(Container2, [\n {\n key: \"first\",\n get: function get() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n },\n {\n key: \"last\",\n get: function get() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n }\n ]);\n return Container2;\n}(Node$1);\nContainer$7.registerParse = function(dependant) {\n parse$4 = dependant;\n};\nContainer$7.registerRule = function(dependant) {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = function(dependant) {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = function(dependant) {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = function(node2) {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach(function(child) {\n Container$7.rebuild(child);\n });\n }\n};\nvar Container$6 = container;\nvar LazyResult$4, Processor$3;\nvar Document$3 = /*#__PURE__*/ function(Container$6) {\n _inherits(Document23, Container$6);\n function Document23(defaults) {\n var _this;\n _this = Container$6.call(this, _extends({\n type: \"document\"\n }, defaults)) || this;\n if (!_this.nodes) {\n _this.nodes = [];\n }\n return _this;\n }\n var _proto = Document23.prototype;\n _proto.toResult = function toResult(opts) {\n if (opts === void 0) opts = {};\n var lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n };\n return Document23;\n}(Container$6);\nDocument$3.registerLazyResult = function(dependant) {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = function(dependant) {\n Processor$3 = dependant;\n};\nvar document$1$2 = Document$3;\nDocument$3.default = Document$3;\nvar printed = {};\nvar warnOnce$2 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nvar Warning$2 = /*#__PURE__*/ function() {\n function Warning2(text, opts) {\n if (opts === void 0) opts = {};\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n var range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for(var opt in opts)this[opt] = opts[opt];\n }\n var _proto = Warning2.prototype;\n _proto.toString = function toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n };\n return Warning2;\n}();\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nvar Warning$1 = warning;\nvar Result$3 = /*#__PURE__*/ function() {\n function Result2(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n var _proto = Result2.prototype;\n _proto.toString = function toString() {\n return this.css;\n };\n _proto.warn = function warn(text, opts) {\n if (opts === void 0) opts = {};\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n var warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n };\n _proto.warnings = function warnings() {\n return this.messages.filter(function(i2) {\n return i2.type === \"warning\";\n });\n };\n _create_class(Result2, [\n {\n key: \"content\",\n get: function get() {\n return this.css;\n }\n }\n ]);\n return Result2;\n}();\nvar result = Result$3;\nResult$3.default = Result$3;\nvar SINGLE_QUOTE = \"'\".charCodeAt(0);\nvar DOUBLE_QUOTE = '\"'.charCodeAt(0);\nvar BACKSLASH = \"\\\\\".charCodeAt(0);\nvar SLASH = \"/\".charCodeAt(0);\nvar NEWLINE = \"\\n\".charCodeAt(0);\nvar SPACE = \" \".charCodeAt(0);\nvar FEED = \"\\f\".charCodeAt(0);\nvar TAB = \"\t\".charCodeAt(0);\nvar CR = \"\\r\".charCodeAt(0);\nvar OPEN_SQUARE = \"[\".charCodeAt(0);\nvar CLOSE_SQUARE = \"]\".charCodeAt(0);\nvar OPEN_PARENTHESES = \"(\".charCodeAt(0);\nvar CLOSE_PARENTHESES = \")\".charCodeAt(0);\nvar OPEN_CURLY = \"{\".charCodeAt(0);\nvar CLOSE_CURLY = \"}\".charCodeAt(0);\nvar SEMICOLON = \";\".charCodeAt(0);\nvar ASTERISK = \"*\".charCodeAt(0);\nvar COLON = \":\".charCodeAt(0);\nvar AT = \"@\".charCodeAt(0);\nvar RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nvar RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nvar RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nvar RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer2(input2, options) {\n if (options === void 0) options = {};\n var css = input2.css.valueOf();\n var ignore = options.ignoreErrors;\n var code, next, quote, content, escape;\n var escaped, escapePos, prev, n2, currentToken;\n var length = css.length;\n var pos = 0;\n var buffer = [];\n var returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n var ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch(code){\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED:\n {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n }while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\n \"space\",\n css.slice(pos, next)\n ];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES:\n {\n var controlChar = String.fromCharCode(code);\n currentToken = [\n controlChar,\n controlChar,\n pos\n ];\n break;\n }\n case OPEN_PARENTHESES:\n {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while(css.charCodeAt(escapePos - 1) === BACKSLASH){\n escapePos -= 1;\n escaped = !escaped;\n }\n }while (escaped);\n currentToken = [\n \"brackets\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\n \"(\",\n \"(\",\n pos\n ];\n } else {\n currentToken = [\n \"brackets\",\n content,\n pos,\n next\n ];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE:\n {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while(css.charCodeAt(escapePos - 1) === BACKSLASH){\n escapePos -= 1;\n escaped = !escaped;\n }\n }while (escaped);\n currentToken = [\n \"string\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n break;\n }\n case AT:\n {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\n \"at-word\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n break;\n }\n case BACKSLASH:\n {\n next = pos;\n escape = true;\n while(css.charCodeAt(next + 1) === BACKSLASH){\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while(RE_HEX_ESCAPE.test(css.charAt(next + 1))){\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\n \"word\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n break;\n }\n default:\n {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\n \"comment\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\n \"word\",\n css.slice(pos, next + 1),\n pos,\n next\n ];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back: back,\n endOfFile: endOfFile,\n nextToken: nextToken,\n position: position\n };\n};\nvar Container$5 = container;\nvar AtRule$3 = /*#__PURE__*/ function(Container$5) {\n _inherits(AtRule2, Container$5);\n function AtRule2(defaults) {\n var _this;\n _this = Container$5.call(this, defaults) || this;\n _this.type = \"atrule\";\n return _this;\n }\n var _proto = AtRule2.prototype;\n _proto.append = function append() {\n for(var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++){\n children[_key] = arguments[_key];\n }\n var _Container$5_prototype_append;\n if (!this.proxyOf.nodes) this.nodes = [];\n return (_Container$5_prototype_append = Container$5.prototype.append).call.apply(_Container$5_prototype_append, [].concat([\n this\n ], children));\n };\n _proto.prepend = function prepend() {\n for(var _len = arguments.length, children = new Array(_len), _key = 0; _key < _len; _key++){\n children[_key] = arguments[_key];\n }\n var _Container$5_prototype_prepend;\n if (!this.proxyOf.nodes) this.nodes = [];\n return (_Container$5_prototype_prepend = Container$5.prototype.prepend).call.apply(_Container$5_prototype_prepend, [].concat([\n this\n ], children));\n };\n return AtRule2;\n}(Container$5);\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nvar Container$4 = container;\nvar LazyResult$3, Processor$2;\nvar Root$5 = /*#__PURE__*/ function(Container$4) {\n _inherits(Root2, Container$4);\n function Root2(defaults) {\n var _this;\n _this = Container$4.call(this, defaults) || this;\n _this.type = \"root\";\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n var _proto = Root2.prototype;\n _proto.normalize = function normalize(child, sample, type) {\n var nodes = Container$4.prototype.normalize.call(this, child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for(var _iterator = _create_for_of_iterator_helper_loose(nodes), _step; !(_step = _iterator()).done;){\n var node2 = _step.value;\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n };\n _proto.removeChild = function removeChild(child, ignore) {\n var index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return Container$4.prototype.removeChild.call(this, child);\n };\n _proto.toResult = function toResult(opts) {\n if (opts === void 0) opts = {};\n var lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n };\n return Root2;\n}(Container$4);\nRoot$5.registerLazyResult = function(dependant) {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = function(dependant) {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nvar list$2 = {\n comma: function comma(string) {\n return list$2.split(string, [\n \",\"\n ], true);\n },\n space: function space(string) {\n var spaces = [\n \" \",\n \"\\n\",\n \"\t\"\n ];\n return list$2.split(string, spaces);\n },\n split: function split(string, separators, last) {\n var array = [];\n var current = \"\";\n var split = false;\n var func = 0;\n var inQuote = false;\n var prevQuote = \"\";\n var escape = false;\n for(var _iterator = _create_for_of_iterator_helper_loose(string), _step; !(_step = _iterator()).done;){\n var letter = _step.value;\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nvar Container$3 = container;\nvar list$1 = list_1;\nvar Rule$3 = /*#__PURE__*/ function(Container$3) {\n _inherits(Rule2, Container$3);\n function Rule2(defaults) {\n var _this;\n _this = Container$3.call(this, defaults) || this;\n _this.type = \"rule\";\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n _create_class(Rule2, [\n {\n key: \"selectors\",\n get: function get() {\n return list$1.comma(this.selector);\n },\n set: function set(values) {\n var match = this.selector ? this.selector.match(/,\\s*/) : null;\n var sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n }\n ]);\n return Rule2;\n}(Container$3);\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nvar Declaration$2 = declaration;\nvar tokenizer22 = tokenize;\nvar Comment$2 = comment;\nvar AtRule$2 = atRule;\nvar Root$4 = root;\nvar Rule$2 = rule;\nvar SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for(var i2 = tokens.length - 1; i2 >= 0; i2--){\n var token = tokens[i2];\n var pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nvar Parser$1 = /*#__PURE__*/ function() {\n function Parser2(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = {\n input: input2,\n start: {\n column: 1,\n line: 1,\n offset: 0\n }\n };\n }\n var _proto = Parser2.prototype;\n _proto.atrule = function atrule(token) {\n var node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n var type;\n var prev;\n var shift;\n var last = false;\n var open = false;\n var params = [];\n var brackets = [];\n while(!this.tokenizer.endOfFile()){\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while(prev && prev[0] === \"space\"){\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n };\n _proto.checkMissedSemicolon = function checkMissedSemicolon(tokens) {\n var colon = this.colon(tokens);\n if (colon === false) return;\n var founded = 0;\n var token;\n for(var j = colon - 1; j >= 0; j--){\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\"Missed semicolon\", token[0] === \"word\" ? token[3] + 1 : token[2]);\n };\n _proto.colon = function colon(tokens) {\n var brackets = 0;\n var token, type, prev;\n for(var _iterator = _create_for_of_iterator_helper_loose(tokens.entries()), _step; !(_step = _iterator()).done;){\n var _step_value = _step.value, i2 = _step_value[0], element = _step_value[1];\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n };\n _proto.comment = function comment(token) {\n var node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n var text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n var match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n };\n _proto.createTokenizer = function createTokenizer() {\n this.tokenizer = tokenizer22(this.input);\n };\n _proto.decl = function decl(tokens, customProperty) {\n var node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n var last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(last[3] || last[2] || findLastWithPosition(tokens));\n node2.source.end.offset++;\n while(tokens[0][0] !== \"word\"){\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while(tokens.length){\n var type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n var token;\n while(tokens.length){\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([\n token\n ]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n var firstSpaces = [];\n var next;\n while(tokens.length){\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for(var i2 = tokens.length - 1; i2 >= 0; i2--){\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n var string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n var cache = tokens.slice(0);\n var str = \"\";\n for(var j = i2; j > 0; j--){\n var type1 = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type1 !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n var hasWord = tokens.some(function(i2) {\n return i2[0] !== \"space\" && i2[0] !== \"comment\";\n });\n if (hasWord) {\n node2.raws.between += firstSpaces.map(function(i2) {\n return i2[1];\n }).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n };\n _proto.doubleColon = function doubleColon(token) {\n throw this.input.error(\"Double colon\", {\n offset: token[2]\n }, {\n offset: token[2] + token[1].length\n });\n };\n _proto.emptyRule = function emptyRule(token) {\n var node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n };\n _proto.end = function end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n };\n _proto.endFile = function endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n };\n _proto.freeSemicolon = function freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n var prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n };\n // Helpers\n _proto.getPosition = function getPosition(offset) {\n var pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset: offset\n };\n };\n _proto.init = function init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n };\n _proto.other = function other(start) {\n var end = false;\n var type = null;\n var colon = false;\n var bracket = null;\n var brackets = [];\n var customProperty = start[1].startsWith(\"--\");\n var tokens = [];\n var token = start;\n while(token){\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while(tokens.length){\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n };\n _proto.parse = function parse() {\n var token;\n while(!this.tokenizer.endOfFile()){\n token = this.tokenizer.nextToken();\n switch(token[0]){\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n };\n _proto.precheckMissedSemicolon = function precheckMissedSemicolon() {};\n _proto.raw = function raw(node2, prop, tokens, customProperty) {\n var token, type;\n var length = tokens.length;\n var value = \"\";\n var clean = true;\n var next, prev;\n for(var i2 = 0; i2 < length; i2 += 1){\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n var raw = tokens.reduce(function(all, i2) {\n return all + i2[1];\n }, \"\");\n node2.raws[prop] = {\n raw: raw,\n value: value\n };\n }\n node2[prop] = value;\n };\n _proto.rule = function rule(tokens) {\n tokens.pop();\n var node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n };\n _proto.spacesAndCommentsFromEnd = function spacesAndCommentsFromEnd(tokens) {\n var lastTokenType;\n var spaces = \"\";\n while(tokens.length){\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n };\n // Errors\n _proto.spacesAndCommentsFromStart = function spacesAndCommentsFromStart(tokens) {\n var next;\n var spaces = \"\";\n while(tokens.length){\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n };\n _proto.spacesFromEnd = function spacesFromEnd(tokens) {\n var lastTokenType;\n var spaces = \"\";\n while(tokens.length){\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n };\n _proto.stringFrom = function stringFrom(tokens, from) {\n var result2 = \"\";\n for(var i2 = from; i2 < tokens.length; i2++){\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n };\n _proto.unclosedBlock = function unclosedBlock() {\n var pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n };\n _proto.unclosedBracket = function unclosedBracket(bracket) {\n throw this.input.error(\"Unclosed bracket\", {\n offset: bracket[2]\n }, {\n offset: bracket[2] + 1\n });\n };\n _proto.unexpectedClose = function unexpectedClose(token) {\n throw this.input.error(\"Unexpected }\", {\n offset: token[2]\n }, {\n offset: token[2] + 1\n });\n };\n _proto.unknownWord = function unknownWord(tokens) {\n throw this.input.error(\"Unknown word\", {\n offset: tokens[0][2]\n }, {\n offset: tokens[0][2] + tokens[0][1].length\n });\n };\n _proto.unnamedAtrule = function unnamedAtrule(node2, token) {\n throw this.input.error(\"At-rule without name\", {\n offset: token[2]\n }, {\n offset: token[2] + token[1].length\n });\n };\n return Parser2;\n}();\nvar parser = Parser$1;\nvar Container$2 = container;\nvar Parser22 = parser;\nvar Input$2 = input;\nfunction parse$3(css, opts) {\n var input2 = new Input$2(css, opts);\n var parser2 = new Parser22(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nvar isClean = symbols.isClean, my = symbols.my;\nvar MapGenerator$1 = mapGenerator;\nvar stringify$2 = stringify_1;\nvar Container$1 = container;\nvar Document$2 = document$1$2;\nvar warnOnce$1 = warnOnce$2;\nvar Result$2 = result;\nvar parse$2 = parse_1;\nvar Root$3 = root;\nvar TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nvar PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nvar NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nvar CHILDREN = 0;\nfunction isPromise(obj) {\n return (typeof obj === \"undefined\" ? \"undefined\" : _type_of(obj)) === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n var key = false;\n var type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [\n type,\n type + \"-\" + key,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (node2.append) {\n return [\n type,\n CHILDREN,\n type + \"Exit\"\n ];\n } else {\n return [\n type,\n type + \"Exit\"\n ];\n }\n}\nfunction toStack(node2) {\n var events;\n if (node2.type === \"document\") {\n events = [\n \"Document\",\n CHILDREN,\n \"DocumentExit\"\n ];\n } else if (node2.type === \"root\") {\n events = [\n \"Root\",\n CHILDREN,\n \"RootExit\"\n ];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events: events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach(function(i2) {\n return cleanMarks(i2);\n });\n return node2;\n}\nvar postcss$2 = {};\nvar LazyResult$2 = /*#__PURE__*/ function() {\n function LazyResult2(processor2, css, opts) {\n var _this = this;\n this.stringified = false;\n this.processed = false;\n var root2;\n if ((typeof css === \"undefined\" ? \"undefined\" : _type_of(css)) === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (_instanceof(css, LazyResult2) || _instanceof(css, Result$2)) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n var parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = _extends({}, postcss$2, {\n postcss: postcss$2,\n result: this.result\n });\n this.plugins = this.processor.plugins.map(function(plugin22) {\n if ((typeof plugin22 === \"undefined\" ? \"undefined\" : _type_of(plugin22)) === \"object\" && plugin22.prepare) {\n return _extends({}, plugin22, plugin22.prepare(_this.result));\n } else {\n return plugin22;\n }\n });\n }\n var _proto = LazyResult2.prototype;\n _proto.async = function async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n };\n _proto.catch = function _catch(onRejected) {\n return this.async().catch(onRejected);\n };\n _proto.finally = function _finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n };\n _proto.getAsyncError = function getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n };\n _proto.handleError = function handleError(error, node2) {\n var plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n var pluginName = plugin22.postcssPlugin;\n var pluginVer = plugin22.postcssVersion;\n var runtimeVer = this.result.processor.version;\n var a2 = pluginVer.split(\".\");\n var b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\");\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n };\n _proto.prepareVisitors = function prepareVisitors() {\n var _this = this;\n this.listeners = {};\n var add = function(plugin22, type, cb) {\n if (!_this.listeners[type]) _this.listeners[type] = [];\n _this.listeners[type].push([\n plugin22,\n cb\n ]);\n };\n for(var _iterator = _create_for_of_iterator_helper_loose(this.plugins), _step; !(_step = _iterator()).done;){\n var plugin22 = _step.value;\n if ((typeof plugin22 === \"undefined\" ? \"undefined\" : _type_of(plugin22)) === \"object\") {\n for(var event in plugin22){\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\"Unknown event \" + event + \" in \" + plugin22.postcssPlugin + \". Try to update PostCSS (\" + this.processor.version + \" now).\");\n }\n if (!NOT_VISITORS[event]) {\n if (_type_of(plugin22[event]) === \"object\") {\n for(var filter in plugin22[event]){\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(plugin22, event + \"-\" + filter.toLowerCase(), plugin22[event][filter]);\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n };\n _proto.runAsync = function runAsync() {\n var _this = this;\n return _async_to_generator(function() {\n var i2, plugin22, promise, error, root2, stack, promise1, e2, node2, _loop, _iterator, _step;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _this.plugin = 0;\n i2 = 0;\n _state.label = 1;\n case 1:\n if (!(i2 < _this.plugins.length)) return [\n 3,\n 6\n ];\n plugin22 = _this.plugins[i2];\n promise = _this.runOnRoot(plugin22);\n if (!isPromise(promise)) return [\n 3,\n 5\n ];\n _state.label = 2;\n case 2:\n _state.trys.push([\n 2,\n 4,\n ,\n 5\n ]);\n return [\n 4,\n promise\n ];\n case 3:\n _state.sent();\n return [\n 3,\n 5\n ];\n case 4:\n error = _state.sent();\n throw _this.handleError(error);\n case 5:\n i2++;\n return [\n 3,\n 1\n ];\n case 6:\n _this.prepareVisitors();\n if (!_this.hasListener) return [\n 3,\n 18\n ];\n root2 = _this.result.root;\n _state.label = 7;\n case 7:\n if (!!root2[isClean]) return [\n 3,\n 14\n ];\n root2[isClean] = true;\n stack = [\n toStack(root2)\n ];\n _state.label = 8;\n case 8:\n if (!(stack.length > 0)) return [\n 3,\n 13\n ];\n promise1 = _this.visitTick(stack);\n if (!isPromise(promise1)) return [\n 3,\n 12\n ];\n _state.label = 9;\n case 9:\n _state.trys.push([\n 9,\n 11,\n ,\n 12\n ]);\n return [\n 4,\n promise1\n ];\n case 10:\n _state.sent();\n return [\n 3,\n 12\n ];\n case 11:\n e2 = _state.sent();\n node2 = stack[stack.length - 1].node;\n throw _this.handleError(e2, node2);\n case 12:\n return [\n 3,\n 8\n ];\n case 13:\n return [\n 3,\n 7\n ];\n case 14:\n if (!_this.listeners.OnceExit) return [\n 3,\n 18\n ];\n _loop = function() {\n var _step_value, plugin22, visitor, roots, e2;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n _step_value = _step.value, plugin22 = _step_value[0], visitor = _step_value[1];\n _this.result.lastPlugin = plugin22;\n _state.label = 1;\n case 1:\n _state.trys.push([\n 1,\n 6,\n ,\n 7\n ]);\n if (!(root2.type === \"document\")) return [\n 3,\n 3\n ];\n roots = root2.nodes.map(function(subRoot) {\n return visitor(subRoot, _this.helpers);\n });\n return [\n 4,\n Promise.all(roots)\n ];\n case 2:\n _state.sent();\n return [\n 3,\n 5\n ];\n case 3:\n return [\n 4,\n visitor(root2, _this.helpers)\n ];\n case 4:\n _state.sent();\n _state.label = 5;\n case 5:\n return [\n 3,\n 7\n ];\n case 6:\n e2 = _state.sent();\n throw _this.handleError(e2);\n case 7:\n return [\n 2\n ];\n }\n });\n };\n _iterator = _create_for_of_iterator_helper_loose(_this.listeners.OnceExit);\n _state.label = 15;\n case 15:\n if (!!(_step = _iterator()).done) return [\n 3,\n 18\n ];\n return [\n 5,\n _ts_values(_loop())\n ];\n case 16:\n _state.sent();\n _state.label = 17;\n case 17:\n return [\n 3,\n 15\n ];\n case 18:\n _this.processed = true;\n return [\n 2,\n _this.stringify()\n ];\n }\n });\n })();\n };\n _proto.runOnRoot = function runOnRoot(plugin22) {\n var _this = this;\n this.result.lastPlugin = plugin22;\n try {\n if ((typeof plugin22 === \"undefined\" ? \"undefined\" : _type_of(plugin22)) === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n var roots = this.result.root.nodes.map(function(root2) {\n return plugin22.Once(root2, _this.helpers);\n });\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n };\n _proto.stringify = function stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n var opts = this.result.opts;\n var str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n var map = new MapGenerator$1(str, this.result.root, this.result.opts);\n var data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n };\n _proto.sync = function sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for(var _iterator = _create_for_of_iterator_helper_loose(this.plugins), _step; !(_step = _iterator()).done;){\n var plugin22 = _step.value;\n var promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n var root2 = this.result.root;\n while(!root2[isClean]){\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for(var _iterator1 = _create_for_of_iterator_helper_loose(root2.nodes), _step1; !(_step1 = _iterator1()).done;){\n var subRoot = _step1.value;\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n };\n _proto.then = function then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\");\n }\n }\n return this.async().then(onFulfilled, onRejected);\n };\n _proto.toString = function toString() {\n return this.css;\n };\n _proto.visitSync = function visitSync(visitors, node2) {\n for(var _iterator = _create_for_of_iterator_helper_loose(visitors), _step; !(_step = _iterator()).done;){\n var _step_value = _step.value, plugin22 = _step_value[0], visitor = _step_value[1];\n this.result.lastPlugin = plugin22;\n var promise = void 0;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n };\n _proto.visitTick = function visitTick(stack) {\n var visit2 = stack[stack.length - 1];\n var node2 = visit2.node, visitors = visit2.visitors;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n var _visitors_visit2_visitorIndex = visitors[visit2.visitorIndex], plugin22 = _visitors_visit2_visitorIndex[0], visitor = _visitors_visit2_visitorIndex[1];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n var iterator = visit2.iterator;\n var child;\n while(child = node2.nodes[node2.indexes[iterator]]){\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n var events = visit2.events;\n while(visit2.eventIndex < events.length){\n var event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n };\n _proto.walkSync = function walkSync(node2) {\n var _this = this;\n node2[isClean] = true;\n var events = getEvents(node2);\n for(var _iterator = _create_for_of_iterator_helper_loose(events), _step; !(_step = _iterator()).done;){\n var event = _step.value;\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each(function(child) {\n if (!child[isClean]) _this.walkSync(child);\n });\n }\n } else {\n var visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n };\n _proto.warnings = function warnings() {\n return this.sync().warnings();\n };\n _create_class(LazyResult2, [\n {\n key: \"content\",\n get: function get() {\n return this.stringify().content;\n }\n },\n {\n key: \"css\",\n get: function get() {\n return this.stringify().css;\n }\n },\n {\n key: \"map\",\n get: function get() {\n return this.stringify().map;\n }\n },\n {\n key: \"messages\",\n get: function get() {\n return this.sync().messages;\n }\n },\n {\n key: \"opts\",\n get: function get() {\n return this.result.opts;\n }\n },\n {\n key: \"processor\",\n get: function get() {\n return this.result.processor;\n }\n },\n {\n key: \"root\",\n get: function get() {\n return this.sync().root;\n }\n },\n {\n key: Symbol.toStringTag,\n get: function get() {\n return \"LazyResult\";\n }\n }\n ]);\n return LazyResult2;\n}();\nLazyResult$2.registerPostcss = function(dependant) {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nvar MapGenerator22 = mapGenerator;\nvar stringify$1 = stringify_1;\nvar warnOnce22 = warnOnce$2;\nvar parse$1 = parse_1;\nvar Result$1 = result;\nvar NoWorkResult$1 = /*#__PURE__*/ function() {\n function NoWorkResult2(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n var root2;\n var str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n var self = this;\n Object.defineProperty(this.result, \"root\", {\n get: function get() {\n return self.root;\n }\n });\n var map = new MapGenerator22(str, root2, this._opts, css);\n if (map.isMap()) {\n var _map_generate = map.generate(), generatedCSS = _map_generate[0], generatedMap = _map_generate[1];\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n var _proto = NoWorkResult2.prototype;\n _proto.async = function async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n };\n _proto.catch = function _catch(onRejected) {\n return this.async().catch(onRejected);\n };\n _proto.finally = function _finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n };\n _proto.sync = function sync() {\n if (this.error) throw this.error;\n return this.result;\n };\n _proto.then = function then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce22(\"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\");\n }\n }\n return this.async().then(onFulfilled, onRejected);\n };\n _proto.toString = function toString() {\n return this._css;\n };\n _proto.warnings = function warnings() {\n return [];\n };\n _create_class(NoWorkResult2, [\n {\n key: \"content\",\n get: function get() {\n return this.result.css;\n }\n },\n {\n key: \"css\",\n get: function get() {\n return this.result.css;\n }\n },\n {\n key: \"map\",\n get: function get() {\n return this.result.map;\n }\n },\n {\n key: \"messages\",\n get: function get() {\n return [];\n }\n },\n {\n key: \"opts\",\n get: function get() {\n return this.result.opts;\n }\n },\n {\n key: \"processor\",\n get: function get() {\n return this.result.processor;\n }\n },\n {\n key: \"root\",\n get: function get() {\n if (this._root) {\n return this._root;\n }\n var root2;\n var parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n },\n {\n key: Symbol.toStringTag,\n get: function get() {\n return \"NoWorkResult\";\n }\n }\n ]);\n return NoWorkResult2;\n}();\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nvar NoWorkResult22 = noWorkResult;\nvar LazyResult$1 = lazyResult;\nvar Document$1 = document$1$2;\nvar Root$2 = root;\nvar Processor$1 = /*#__PURE__*/ function() {\n function Processor2(plugins) {\n if (plugins === void 0) plugins = [];\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n var _proto = Processor2.prototype;\n _proto.normalize = function normalize(plugins) {\n var normalized = [];\n for(var _iterator = _create_for_of_iterator_helper_loose(plugins), _step; !(_step = _iterator()).done;){\n var i2 = _step.value;\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if ((typeof i2 === \"undefined\" ? \"undefined\" : _type_of(i2)) === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if ((typeof i2 === \"undefined\" ? \"undefined\" : _type_of(i2)) === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if ((typeof i2 === \"undefined\" ? \"undefined\" : _type_of(i2)) === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\");\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n };\n _proto.process = function process1(css, opts) {\n if (opts === void 0) opts = {};\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult22(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n };\n _proto.use = function use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([\n plugin22\n ]));\n return this;\n };\n return Processor2;\n}();\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nvar Declaration$1 = declaration;\nvar PreviousMap22 = previousMap;\nvar Comment$1 = comment;\nvar AtRule$1 = atRule;\nvar Input$1 = input;\nvar Root$1 = root;\nvar Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map(function(n2) {\n return fromJSON$1(n2);\n });\n var ownInputs = json.inputs, defaults = _object_without_properties_loose(json, [\n \"inputs\"\n ]);\n if (ownInputs) {\n inputs = [];\n for(var _iterator = _create_for_of_iterator_helper_loose(ownInputs), _step; !(_step = _iterator()).done;){\n var input2 = _step.value;\n var inputHydrated = _extends({}, input2, {\n __proto__: Input$1.prototype\n });\n if (inputHydrated.map) {\n inputHydrated.map = _extends({}, inputHydrated.map, {\n __proto__: PreviousMap22.prototype\n });\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(function(n2) {\n return fromJSON$1(n2, inputs);\n });\n }\n if (defaults.source) {\n var _defaults_source = defaults.source, inputId = _defaults_source.inputId, source = _object_without_properties_loose(_defaults_source, [\n \"inputId\"\n ]);\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nvar CssSyntaxError22 = cssSyntaxError;\nvar Declaration22 = declaration;\nvar LazyResult22 = lazyResult;\nvar Container22 = container;\nvar Processor22 = processor;\nvar stringify$6 = stringify_1;\nvar fromJSON = fromJSON_1;\nvar Document222 = document$1$2;\nvar Warning22 = warning;\nvar Comment22 = comment;\nvar AtRule22 = atRule;\nvar Result22 = result;\nvar Input22 = input;\nvar parse = parse_1;\nvar list = list_1;\nvar Rule22 = rule;\nvar Root22 = root;\nvar Node22 = node;\nfunction postcss() {\n for(var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++){\n plugins[_key] = arguments[_key];\n }\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor22(plugins);\n}\npostcss.plugin = function plugin2(name, initializer) {\n var warningPrinted = false;\n function creator() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\");\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\");\n }\n }\n var transformer = initializer.apply(void 0, [].concat(args));\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor22().version;\n return transformer;\n }\n var cache;\n Object.defineProperty(creator, \"postcss\", {\n get: function get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([\n creator(pluginOpts)\n ]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify$6;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = function(defaults) {\n return new Comment22(defaults);\n};\npostcss.atRule = function(defaults) {\n return new AtRule22(defaults);\n};\npostcss.decl = function(defaults) {\n return new Declaration22(defaults);\n};\npostcss.rule = function(defaults) {\n return new Rule22(defaults);\n};\npostcss.root = function(defaults) {\n return new Root22(defaults);\n};\npostcss.document = function(defaults) {\n return new Document222(defaults);\n};\npostcss.CssSyntaxError = CssSyntaxError22;\npostcss.Declaration = Declaration22;\npostcss.Container = Container22;\npostcss.Processor = Processor22;\npostcss.Document = Document222;\npostcss.Comment = Comment22;\npostcss.Warning = Warning22;\npostcss.AtRule = AtRule22;\npostcss.Result = Result22;\npostcss.Input = Input22;\npostcss.Rule = Rule22;\npostcss.Root = Root22;\npostcss.Node = Node22;\nLazyResult22.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nvar postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nvar BaseRRNode = /*#__PURE__*/ function() {\n function BaseRRNode() {\n for(var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++){\n _args[_key] = arguments[_key];\n }\n __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n var _proto = BaseRRNode.prototype;\n _proto.contains = function contains(node2) {\n if (!_instanceof(node2, BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while(node2.parentNode){\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _proto.appendChild = function appendChild(_newChild) {\n throw new Error(\"RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.\");\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _proto.insertBefore = function insertBefore(_newChild, _refChild) {\n throw new Error(\"RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.\");\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _proto.removeChild = function removeChild(_node) {\n throw new Error(\"RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.\");\n };\n _proto.toString = function toString() {\n return \"RRNode\";\n };\n _create_class(BaseRRNode, [\n {\n key: \"childNodes\",\n get: function get() {\n var childNodes2 = [];\n var childIterator = this.firstChild;\n while(childIterator){\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n }\n ]);\n return BaseRRNode;\n}();\nvar testableAccessors = {\n Node: [\n \"childNodes\",\n \"parentNode\",\n \"parentElement\",\n \"textContent\"\n ],\n ShadowRoot: [\n \"host\",\n \"styleSheets\"\n ],\n Element: [\n \"shadowRoot\",\n \"querySelector\",\n \"querySelectorAll\"\n ],\n MutationObserver: []\n};\nvar testableMethods = {\n Node: [\n \"contains\",\n \"getRootNode\"\n ],\n ShadowRoot: [\n \"getSelection\"\n ],\n Element: [],\n MutationObserver: [\n \"constructor\"\n ]\n};\nvar untaintedBasePrototype = {};\nvar isAngularZonePresent = function() {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key]) return untaintedBasePrototype[key];\n var defaultObj = globalThis[key];\n var defaultPrototype = defaultObj.prototype;\n var accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n var isUntaintedAccessors = Boolean(accessorNames && // @ts-expect-error 2345\n accessorNames.every(function(accessor) {\n var _a2, _b;\n return Boolean((_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\"));\n }));\n var methodNames = key in testableMethods ? testableMethods[key] : void 0;\n var isUntaintedMethods = Boolean(methodNames && methodNames.every(// @ts-expect-error 2345\n function(method) {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }));\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n var iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n var win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n var untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch (e) {\n return defaultPrototype;\n }\n}\nvar untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\n var cacheKey = key + \".\" + String(accessor);\n if (untaintedAccessorCache[cacheKey]) return untaintedAccessorCache[cacheKey].call(instance);\n var untaintedPrototype = getUntaintedPrototype(key);\n var untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(untaintedPrototype, accessor)) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nvar untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n var cacheKey = key + \".\" + String(method);\n if (untaintedMethodCache[cacheKey]) return untaintedMethodCache[cacheKey].bind(instance);\n var untaintedPrototype = getUntaintedPrototype(key);\n var untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch$2(source, name, replacement) {\n try {\n if (!(name in source)) {\n return function() {};\n }\n var original = source[name];\n var wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return function() {\n source[name] = original;\n };\n } catch (e) {\n return function() {};\n }\n}\nvar index = {\n childNodes: childNodes,\n parentNode: parentNode,\n parentElement: parentElement,\n textContent: textContent,\n contains: contains,\n getRootNode: getRootNode,\n host: host,\n styleSheets: styleSheets,\n shadowRoot: shadowRoot,\n querySelector: querySelector,\n querySelectorAll: querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch: patch$2\n};\nfunction on(type, fn, target) {\n if (target === void 0) target = document;\n var options = {\n capture: true,\n passive: true\n };\n target.addEventListener(type, fn, options);\n return function() {\n return target.removeEventListener(type, fn, options);\n };\n}\nvar DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nvar _mirror = {\n map: {},\n getId: function getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode: function getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap: function removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has: function has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset: function reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get: function get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options) {\n if (options === void 0) options = {};\n var timeout = null;\n var previous = 0;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n var now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n var context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(function() {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win) {\n if (win === void 0) win = window;\n var original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(target, key, isRevoked ? d : {\n set: function set(value) {\n var _this = this;\n setTimeout(function() {\n d.set.call(_this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n });\n return function() {\n return hookSetter(target, key, original || {}, true);\n };\n}\nvar nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = function() {\n return /* @__PURE__ */ new Date().getTime();\n };\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\n var doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n var el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n var el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {}\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n var id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n var parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win) {\n if (win === void 0) win = window;\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n return Boolean(n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2));\n}\nfunction hasShadowRoot(n2) {\n if (!n2) return false;\n if (_instanceof(n2, BaseRRNode) && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\n}\nvar StyleSheetMirror = /*#__PURE__*/ function() {\n function StyleSheetMirror() {\n __publicField$1(this, \"id\", 1);\n __publicField$1(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField$1(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n var _proto = StyleSheetMirror.prototype;\n _proto.getId = function getId(stylesheet) {\n var _this_styleIDMap_get;\n return (_this_styleIDMap_get = this.styleIDMap.get(stylesheet)) != null ? _this_styleIDMap_get : -1;\n };\n _proto.has = function has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n };\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */ _proto.add = function add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n var newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n };\n _proto.getStyle = function getStyle(id) {\n return this.idStyleMap.get(id) || null;\n };\n _proto.reset = function reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n };\n _proto.generateId = function generateId() {\n return this.id++;\n };\n return StyleSheetMirror;\n}();\nfunction getShadowHost(n2) {\n var _a2;\n var shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2))) shadowHost = index.host(index.getRootNode(n2));\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n var rootShadowHost = n2;\n var shadowHost;\n while(shadowHost = getShadowHost(rootShadowHost))rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n var doc = n2.ownerDocument;\n if (!doc) return false;\n var shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n var doc = n2.ownerDocument;\n if (!doc) return false;\n return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nvar EventType = /* @__PURE__ */ function(EventType2) {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n}(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ function(IncrementalSource2) {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n}(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ function(MouseInteractions2) {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n}(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ function(PointerTypes2) {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n}(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ function(CanvasContext2) {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n}(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ function(MediaInteractions2) {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n}(MediaInteractions || {});\nvar NodeType = /* @__PURE__ */ function(NodeType2) {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n}(NodeType || {});\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nvar DoubleLinkedList = /*#__PURE__*/ function() {\n function DoubleLinkedList() {\n __publicField$1(this, \"length\", 0);\n __publicField$1(this, \"head\", null);\n __publicField$1(this, \"tail\", null);\n }\n var _proto = DoubleLinkedList.prototype;\n _proto.get = function get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n var current = this.head;\n for(var index2 = 0; index2 < position; index2++){\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n };\n _proto.addNode = function addNode(n2) {\n var node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n var current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n var current1 = n2.nextSibling.__ln.previous;\n node2.previous = current1;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current1) {\n current1.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n };\n _proto.removeNode = function removeNode(n2) {\n var current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n };\n return DoubleLinkedList;\n}();\nvar moveKey = function(id, parentId) {\n return id + \"@\" + parentId;\n};\nvar MutationBuffer = /*#__PURE__*/ function() {\n function MutationBuffer() {\n var _this = this;\n __publicField$1(this, \"frozen\", false);\n __publicField$1(this, \"locked\", false);\n __publicField$1(this, \"texts\", []);\n __publicField$1(this, \"attributes\", []);\n __publicField$1(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField$1(this, \"removes\", []);\n __publicField$1(this, \"mapRemoves\", []);\n __publicField$1(this, \"movedMap\", {});\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */ __publicField$1(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField$1(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField$1(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField$1(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n __publicField$1(this, \"mutationCb\");\n __publicField$1(this, \"blockClass\");\n __publicField$1(this, \"blockSelector\");\n __publicField$1(this, \"maskTextClass\");\n __publicField$1(this, \"maskTextSelector\");\n __publicField$1(this, \"inlineStylesheet\");\n __publicField$1(this, \"maskInputOptions\");\n __publicField$1(this, \"maskTextFn\");\n __publicField$1(this, \"maskInputFn\");\n __publicField$1(this, \"keepIframeSrcFn\");\n __publicField$1(this, \"recordCanvas\");\n __publicField$1(this, \"inlineImages\");\n __publicField$1(this, \"slimDOMOptions\");\n __publicField$1(this, \"dataURLOptions\");\n __publicField$1(this, \"doc\");\n __publicField$1(this, \"mirror\");\n __publicField$1(this, \"iframeManager\");\n __publicField$1(this, \"stylesheetManager\");\n __publicField$1(this, \"shadowDomManager\");\n __publicField$1(this, \"canvasManager\");\n __publicField$1(this, \"processedNodeManager\");\n __publicField$1(this, \"unattachedDoc\");\n __publicField$1(this, \"processMutations\", function(mutations) {\n mutations.forEach(_this.processMutation);\n _this.emit();\n });\n __publicField$1(this, \"emit\", function() {\n if (_this.frozen || _this.locked) {\n return;\n }\n var adds = [];\n var addedIds = /* @__PURE__ */ new Set();\n var addList = new DoubleLinkedList();\n var getNextId = function(n2) {\n var ns = n2;\n var nextId = IGNORED_NODE;\n while(nextId === IGNORED_NODE){\n ns = ns && ns.nextSibling;\n nextId = ns && _this.mirror.getId(ns);\n }\n return nextId;\n };\n var pushAdd = function(n2) {\n var parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n var cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n var parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && _this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n var parentId = isShadowRoot(parent) ? _this.mirror.getId(getShadowHost(n2)) : _this.mirror.getId(parent);\n var nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n var sn = serializeNodeWithId(n2, {\n doc: _this.doc,\n mirror: _this.mirror,\n blockClass: _this.blockClass,\n blockSelector: _this.blockSelector,\n maskTextClass: _this.maskTextClass,\n maskTextSelector: _this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: _this.inlineStylesheet,\n maskInputOptions: _this.maskInputOptions,\n maskTextFn: _this.maskTextFn,\n maskInputFn: _this.maskInputFn,\n slimDOMOptions: _this.slimDOMOptions,\n dataURLOptions: _this.dataURLOptions,\n recordCanvas: _this.recordCanvas,\n inlineImages: _this.inlineImages,\n onSerialize: function(currentN) {\n if (isSerializedIframe(currentN, _this.mirror)) {\n _this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, _this.mirror)) {\n _this.stylesheetManager.trackLinkElement(currentN);\n }\n if (hasShadowRoot(n2)) {\n _this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), _this.doc);\n }\n },\n onIframeLoad: function(iframe, childSn) {\n _this.iframeManager.attachIframe(iframe, childSn);\n _this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: function(link, childSn) {\n _this.stylesheetManager.attachLinkElement(link, childSn);\n },\n cssCaptured: cssCaptured\n });\n if (sn) {\n adds.push({\n parentId: parentId,\n nextId: nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while(_this.mapRemoves.length){\n _this.mirror.removeNodeFromMap(_this.mapRemoves.shift());\n }\n for(var _iterator = _create_for_of_iterator_helper_loose(_this.movedSet), _step; !(_step = _iterator()).done;){\n var n2 = _step.value;\n if (isParentRemoved(_this.removesSubTreeCache, n2, _this.mirror) && !_this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for(var _iterator1 = _create_for_of_iterator_helper_loose(_this.addedSet), _step1; !(_step1 = _iterator1()).done;){\n var n21 = _step1.value;\n if (!isAncestorInSet(_this.droppedSet, n21) && !isParentRemoved(_this.removesSubTreeCache, n21, _this.mirror)) {\n pushAdd(n21);\n } else if (isAncestorInSet(_this.movedSet, n21)) {\n pushAdd(n21);\n } else {\n _this.droppedSet.add(n21);\n }\n }\n var candidate = null;\n while(addList.length){\n var node2 = null;\n if (candidate) {\n var parentId = _this.mirror.getId(index.parentNode(candidate.value));\n var nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n var tailNode = addList.tail;\n while(tailNode){\n var _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n var parentId1 = _this.mirror.getId(index.parentNode(_node.value));\n var nextId1 = getNextId(_node.value);\n if (nextId1 === -1) continue;\n else if (parentId1 !== -1) {\n node2 = _node;\n break;\n } else {\n var unhandledNode = _node.value;\n var parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n var shadowHost = index.host(parent);\n var parentId2 = _this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while(addList.head){\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n var payload = {\n texts: _this.texts.map(function(text) {\n var n2 = text.node;\n var parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n _this.genTextAreaValueMutation(parent);\n }\n return {\n id: _this.mirror.getId(n2),\n value: text.value\n };\n }).filter(function(text) {\n return !addedIds.has(text.id);\n }).filter(function(text) {\n return _this.mirror.has(text.id);\n }),\n attributes: _this.attributes.map(function(attribute) {\n var attributes = attribute.attributes;\n if (typeof attributes.style === \"string\") {\n var diffAsStr = JSON.stringify(attribute.styleDiff);\n var unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: _this.mirror.getId(attribute.node),\n attributes: attributes\n };\n }).filter(function(attribute) {\n return !addedIds.has(attribute.id);\n }).filter(function(attribute) {\n return _this.mirror.has(attribute.id);\n }),\n removes: _this.removes,\n adds: adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n _this.texts = [];\n _this.attributes = [];\n _this.attributeMap = /* @__PURE__ */ new WeakMap();\n _this.removes = [];\n _this.addedSet = /* @__PURE__ */ new Set();\n _this.movedSet = /* @__PURE__ */ new Set();\n _this.droppedSet = /* @__PURE__ */ new Set();\n _this.removesSubTreeCache = /* @__PURE__ */ new Set();\n _this.movedMap = {};\n _this.mutationCb(payload);\n });\n __publicField$1(this, \"genTextAreaValueMutation\", function(textarea) {\n var item = _this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n _this.attributes.push(item);\n _this.attributeMap.set(textarea, item);\n }\n var value = Array.from(index.childNodes(textarea), function(cn) {\n return index.textContent(cn) || \"\";\n }).join(\"\");\n item.attributes.value = maskInputValue({\n element: textarea,\n maskInputOptions: _this.maskInputOptions,\n tagName: textarea.tagName,\n type: getInputType(textarea),\n value: value,\n maskInputFn: _this.maskInputFn\n });\n });\n __publicField$1(this, \"processMutation\", function(m) {\n if (isIgnored(m.target, _this.mirror, _this.slimDOMOptions)) {\n return;\n }\n switch(m.type){\n case \"characterData\":\n {\n var value = index.textContent(m.target);\n if (!isBlocked(m.target, _this.blockClass, _this.blockSelector, false) && value !== m.oldValue) {\n _this.texts.push({\n value: needMaskingText(m.target, _this.maskTextClass, _this.maskTextSelector, true) && value ? _this.maskTextFn ? _this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\":\n {\n var target = m.target;\n var attributeName = m.attributeName;\n var value1 = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n var type = getInputType(target);\n value1 = maskInputValue({\n element: target,\n maskInputOptions: _this.maskInputOptions,\n tagName: target.tagName,\n type: type,\n value: value1,\n maskInputFn: _this.maskInputFn\n });\n }\n if (isBlocked(m.target, _this.blockClass, _this.blockSelector, false) || value1 === m.oldValue) {\n return;\n }\n var item = _this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !_this.keepIframeSrcFn(value1)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n _this.attributes.push(item);\n _this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(_this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value1);\n if (attributeName === \"style\") {\n if (!_this.unattachedDoc) {\n try {\n _this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n _this.unattachedDoc = _this.doc;\n }\n }\n var old = _this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for(var _iterator = _create_for_of_iterator_helper_loose(Array.from(target.style)), _step; !(_step = _iterator()).done;){\n var pname = _step.value;\n var newValue = target.style.getPropertyValue(pname);\n var newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [\n newValue,\n newPriority\n ];\n }\n } else {\n item._unchangedStyles[pname] = [\n newValue,\n newPriority\n ];\n }\n }\n for(var _iterator1 = _create_for_of_iterator_helper_loose(Array.from(old.style)), _step1; !(_step1 = _iterator1()).done;){\n var pname1 = _step1.value;\n if (target.style.getPropertyValue(pname1) === \"\") {\n item.styleDiff[pname1] = false;\n }\n }\n } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\n }\n }\n }\n break;\n }\n case \"childList\":\n {\n if (isBlocked(m.target, _this.blockClass, _this.blockSelector, true)) return;\n if (m.target.tagName === \"TEXTAREA\") {\n _this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach(function(n2) {\n return _this.genAdds(n2, m.target);\n });\n m.removedNodes.forEach(function(n2) {\n var nodeId = _this.mirror.getId(n2);\n var parentId = isShadowRoot(m.target) ? _this.mirror.getId(index.host(m.target)) : _this.mirror.getId(m.target);\n if (isBlocked(m.target, _this.blockClass, _this.blockSelector, false) || isIgnored(n2, _this.mirror, _this.slimDOMOptions) || !isSerialized(n2, _this.mirror)) {\n return;\n }\n if (_this.addedSet.has(n2)) {\n deepDelete(_this.addedSet, n2);\n _this.droppedSet.add(n2);\n } else if (_this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, _this.mirror)) ;\n else if (_this.movedSet.has(n2) && _this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(_this.movedSet, n2);\n } else {\n _this.removes.push({\n parentId: parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n processRemoves(n2, _this.removesSubTreeCache);\n }\n _this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */ __publicField$1(this, \"genAdds\", function(n2, target) {\n if (_this.processedNodeManager.inOtherBuffer(n2, _this)) return;\n if (_this.addedSet.has(n2) || _this.movedSet.has(n2)) return;\n if (_this.mirror.hasNode(n2)) {\n if (isIgnored(n2, _this.mirror, _this.slimDOMOptions)) {\n return;\n }\n _this.movedSet.add(n2);\n var targetId = null;\n if (target && _this.mirror.hasNode(target)) {\n targetId = _this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n _this.movedMap[moveKey(_this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n _this.addedSet.add(n2);\n _this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, _this.blockClass, _this.blockSelector, false)) {\n index.childNodes(n2).forEach(function(childN) {\n return _this.genAdds(childN);\n });\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).forEach(function(childN) {\n _this.processedNodeManager.add(childN, _this);\n _this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n var _proto = MutationBuffer.prototype;\n _proto.init = function init(options) {\n var _this = this;\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach(function(key) {\n _this[key] = options[key];\n });\n };\n _proto.freeze = function freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n };\n _proto.unfreeze = function unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n };\n _proto.isFrozen = function isFrozen() {\n return this.frozen;\n };\n _proto.lock = function lock() {\n this.locked = true;\n this.canvasManager.lock();\n };\n _proto.unlock = function unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n };\n _proto.reset = function reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n };\n return MutationBuffer;\n}();\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n index.childNodes(n2).forEach(function(childN) {\n return deepDelete(addsSet, childN);\n });\n}\nfunction processRemoves(n2, cache) {\n var queue = [\n n2\n ];\n while(queue.length){\n var next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach(function(n22) {\n return queue.push(n22);\n });\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n var node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n var parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\nvar errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nvar callbackWrapper = function(cb) {\n if (!errorHandler) {\n return cb;\n }\n var rrwebWrapped = function() {\n for(var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++){\n rest[_key] = arguments[_key];\n }\n try {\n return cb.apply(void 0, [].concat(rest));\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n };\n return rrwebWrapped;\n};\nvar mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n var path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch (e) {}\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n var mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n var observer = new (mutationObserverCtor())(callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer)));\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver(param) {\n var mousemoveCb = param.mousemoveCb, sampling = param.sampling, doc = param.doc, mirror2 = param.mirror;\n if (sampling.mousemove === false) {\n return function() {};\n }\n var threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n var callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n var positions = [];\n var timeBaseline;\n var wrappedCb = throttle(callbackWrapper(function(source) {\n var totalOffset = Date.now() - timeBaseline;\n mousemoveCb(positions.map(function(p) {\n p.timeOffset -= totalOffset;\n return p;\n }), source);\n positions = [];\n timeBaseline = null;\n }), callbackThreshold);\n var updatePosition = callbackWrapper(throttle(callbackWrapper(function(evt) {\n var target = getEventTarget(evt);\n var _ref = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt, clientX = _ref.clientX, clientY = _ref.clientY;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(typeof DragEvent !== \"undefined\" && _instanceof(evt, DragEvent) ? IncrementalSource.Drag : _instanceof(evt, MouseEvent) ? IncrementalSource.MouseMove : IncrementalSource.TouchMove);\n }), threshold, {\n trailing: false\n }));\n var handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(function() {\n handlers.forEach(function(h) {\n return h();\n });\n });\n}\nfunction initMouseInteractionObserver(param) {\n var mouseInteractionCb = param.mouseInteractionCb, doc = param.doc, mirror2 = param.mirror, blockClass = param.blockClass, blockSelector = param.blockSelector, sampling = param.sampling;\n if (sampling.mouseInteraction === false) {\n return function() {};\n }\n var disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n var handlers = [];\n var currentPointerType = null;\n var getHandler = function(eventKey) {\n return function(event) {\n var target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n var pointerType = null;\n var thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch(event.pointerType){\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n var e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n var id = mirror2.getId(target);\n var clientX = e2.clientX, clientY = e2.clientY;\n callbackWrapper(mouseInteractionCb)(_extends({\n type: MouseInteractions[thisEventKey],\n id: id,\n x: clientX,\n y: clientY\n }, pointerType !== null && {\n pointerType: pointerType\n }));\n };\n };\n Object.keys(MouseInteractions).filter(function(key) {\n return Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false;\n }).forEach(function(eventKey) {\n var eventName = toLowerCase(eventKey);\n var handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch(MouseInteractions[eventKey]){\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\"mouse\", \"pointer\");\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(function() {\n handlers.forEach(function(h) {\n return h();\n });\n });\n}\nfunction initScrollObserver(param) {\n var scrollCb = param.scrollCb, doc = param.doc, mirror2 = param.mirror, blockClass = param.blockClass, blockSelector = param.blockSelector, sampling = param.sampling;\n var updatePosition = callbackWrapper(throttle(callbackWrapper(function(evt) {\n var target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n var id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n var scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id: id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id: id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }), sampling.scroll || 100));\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver(param, param1) {\n var viewportResizeCb = param.viewportResizeCb;\n var win = param1.win;\n var lastH = -1;\n var lastW = -1;\n var updateDimension = callbackWrapper(throttle(callbackWrapper(function() {\n var height = getWindowHeight();\n var width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }), 200));\n return on(\"resize\", updateDimension, win);\n}\nvar INPUT_TAGS = [\n \"INPUT\",\n \"TEXTAREA\",\n \"SELECT\"\n];\nvar lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver(param) {\n var inputCb = param.inputCb, doc = param.doc, mirror2 = param.mirror, blockClass = param.blockClass, blockSelector = param.blockSelector, ignoreClass = param.ignoreClass, ignoreSelector = param.ignoreSelector, maskInputOptions = param.maskInputOptions, maskInputFn = param.maskInputFn, sampling = param.sampling, userTriggeredOnInput = param.userTriggeredOnInput;\n function eventHandler(event) {\n var target = getEventTarget(event);\n var userTriggered = event.isTrusted;\n var tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = index.parentElement(target);\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n var text = target.value;\n var isChecked = false;\n var type = getInputType(target) || \"\";\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions: maskInputOptions,\n tagName: tagName,\n type: type,\n value: text,\n maskInputFn: maskInputFn\n });\n }\n cbWithDedup(target, userTriggeredOnInput ? {\n text: text,\n isChecked: isChecked,\n userTriggered: userTriggered\n } : {\n text: text,\n isChecked: isChecked\n });\n var name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]').forEach(function(el) {\n if (el !== target) {\n var text2 = el.value;\n cbWithDedup(el, userTriggeredOnInput ? {\n text: text2,\n isChecked: !isChecked,\n userTriggered: false\n } : {\n text: text2,\n isChecked: !isChecked\n });\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n var lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n lastInputValueMap.set(target, v2);\n var id = mirror2.getId(target);\n callbackWrapper(inputCb)(_extends({}, v2, {\n id: id\n }));\n }\n }\n var events = sampling.input === \"last\" ? [\n \"change\"\n ] : [\n \"input\",\n \"change\"\n ];\n var handlers = events.map(function(eventName) {\n return on(eventName, callbackWrapper(eventHandler), doc);\n });\n var currentWindow = doc.defaultView;\n if (!currentWindow) {\n return function() {\n handlers.forEach(function(h) {\n return h();\n });\n };\n }\n var propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, \"value\");\n var hookProperties = [\n [\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n ],\n [\n currentWindow.HTMLInputElement.prototype,\n \"checked\"\n ],\n [\n currentWindow.HTMLSelectElement.prototype,\n \"value\"\n ],\n [\n currentWindow.HTMLTextAreaElement.prototype,\n \"value\"\n ],\n // Some UI library use selectedIndex to set select value\n [\n currentWindow.HTMLSelectElement.prototype,\n \"selectedIndex\"\n ],\n [\n currentWindow.HTMLOptionElement.prototype,\n \"selected\"\n ]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n var _handlers;\n (_handlers = handlers).push.apply(_handlers, [].concat(hookProperties.map(function(p) {\n return hookSetter(p[0], p[1], {\n set: function set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n });\n }\n }, false, currentWindow);\n })));\n }\n return callbackWrapper(function() {\n handlers.forEach(function(h) {\n return h();\n });\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n var positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && _instanceof(childRule.parentRule, CSSGroupingRule) || hasNestedCSSRule(\"CSSMediaRule\") && _instanceof(childRule.parentRule, CSSMediaRule) || hasNestedCSSRule(\"CSSSupportsRule\") && _instanceof(childRule.parentRule, CSSSupportsRule) || hasNestedCSSRule(\"CSSConditionRule\") && _instanceof(childRule.parentRule, CSSConditionRule)) {\n var rules2 = Array.from(childRule.parentRule.cssRules);\n var index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n var rules21 = Array.from(childRule.parentStyleSheet.cssRules);\n var index21 = rules21.indexOf(childRule);\n pos.unshift(index21);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n var id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId: styleId,\n id: id\n };\n}\nfunction initStyleSheetObserver(param, param1) {\n var styleSheetRuleCb = param.styleSheetRuleCb, mirror2 = param.mirror, stylesheetManager = param.stylesheetManager;\n var win = param1.win;\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return function() {};\n }\n var insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(function(target, thisArg, argumentsList) {\n var rule2 = argumentsList[0], index2 = argumentsList[1];\n var _getIdAndStyleId = getIdAndStyleId(thisArg, mirror2, stylesheetManager.styleMirror), id = _getIdAndStyleId.id, styleId = _getIdAndStyleId.styleId;\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id: id,\n styleId: styleId,\n adds: [\n {\n rule: rule2,\n index: index2\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n })\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2) {\n if (index2 === void 0) index2 = this.cssRules.length;\n var rule2 = selector + \" { \" + styleBlock + \" }\";\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [\n rule2,\n index2\n ]);\n };\n var deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(function(target, thisArg, argumentsList) {\n var index2 = argumentsList[0];\n var _getIdAndStyleId = getIdAndStyleId(thisArg, mirror2, stylesheetManager.styleMirror), id = _getIdAndStyleId.id, styleId = _getIdAndStyleId.styleId;\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id: id,\n styleId: styleId,\n removes: [\n {\n index: index2\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n })\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [\n index2\n ]);\n };\n var replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(function(target, thisArg, argumentsList) {\n var text = argumentsList[0];\n var _getIdAndStyleId = getIdAndStyleId(thisArg, mirror2, stylesheetManager.styleMirror), id = _getIdAndStyleId.id, styleId = _getIdAndStyleId.styleId;\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id: id,\n styleId: styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n })\n });\n }\n var replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(function(target, thisArg, argumentsList) {\n var text = argumentsList[0];\n var _getIdAndStyleId = getIdAndStyleId(thisArg, mirror2, stylesheetManager.styleMirror), id = _getIdAndStyleId.id, styleId = _getIdAndStyleId.styleId;\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id: id,\n styleId: styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n })\n });\n }\n var supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n var unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(function(param) {\n var typeKey = param[0], type = param[1];\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\n apply: callbackWrapper(function(target, thisArg, argumentsList) {\n var rule2 = argumentsList[0], index2 = argumentsList[1];\n var _getIdAndStyleId = getIdAndStyleId(thisArg.parentStyleSheet, mirror2, stylesheetManager.styleMirror), id = _getIdAndStyleId.id, styleId = _getIdAndStyleId.styleId;\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id: id,\n styleId: styleId,\n adds: [\n {\n rule: rule2,\n index: [].concat(getNestedCSSRulePositions(thisArg), [\n index2 || 0\n ])\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n })\n });\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\n apply: callbackWrapper(function(target, thisArg, argumentsList) {\n var index2 = argumentsList[0];\n var _getIdAndStyleId = getIdAndStyleId(thisArg.parentStyleSheet, mirror2, stylesheetManager.styleMirror), id = _getIdAndStyleId.id, styleId = _getIdAndStyleId.styleId;\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id: id,\n styleId: styleId,\n removes: [\n {\n index: [].concat(getNestedCSSRulePositions(thisArg), [\n index2\n ])\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n })\n });\n });\n return callbackWrapper(function() {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(function(param) {\n var typeKey = param[0], type = param[1];\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver(param, host2) {\n var mirror2 = param.mirror, stylesheetManager = param.stylesheetManager;\n var _a2, _b, _c;\n var hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n var patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n var originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(patchTarget == null ? void 0 : patchTarget.prototype, \"adoptedStyleSheets\") : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor) return function() {};\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get: function get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set: function set(sheets) {\n var _a3;\n var result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {}\n }\n return result2;\n }\n });\n return callbackWrapper(function() {\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver(param, param1) {\n var styleDeclarationCb = param.styleDeclarationCb, mirror2 = param.mirror, ignoreCSSAttributes = param.ignoreCSSAttributes, stylesheetManager = param.stylesheetManager;\n var win = param1.win;\n var setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(function(target, thisArg, argumentsList) {\n var _a2;\n var property = argumentsList[0], value = argumentsList[1], priority = argumentsList[2];\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [\n property,\n value,\n priority\n ]);\n }\n var _getIdAndStyleId = getIdAndStyleId((_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet, mirror2, stylesheetManager.styleMirror), id = _getIdAndStyleId.id, styleId = _getIdAndStyleId.styleId;\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id: id,\n styleId: styleId,\n set: {\n property: property,\n value: value,\n priority: priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n })\n });\n var removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(function(target, thisArg, argumentsList) {\n var _a2;\n var property = argumentsList[0];\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [\n property\n ]);\n }\n var _getIdAndStyleId = getIdAndStyleId((_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet, mirror2, stylesheetManager.styleMirror), id = _getIdAndStyleId.id, styleId = _getIdAndStyleId.styleId;\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id: id,\n styleId: styleId,\n remove: {\n property: property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n })\n });\n return callbackWrapper(function() {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver(param) {\n var mediaInteractionCb = param.mediaInteractionCb, blockClass = param.blockClass, blockSelector = param.blockSelector, mirror2 = param.mirror, sampling = param.sampling, doc = param.doc;\n var handler = callbackWrapper(function(type) {\n return throttle(callbackWrapper(function(event) {\n var target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n var currentTime = target.currentTime, volume = target.volume, muted = target.muted, playbackRate = target.playbackRate, loop = target.loop;\n mediaInteractionCb({\n type: type,\n id: mirror2.getId(target),\n currentTime: currentTime,\n volume: volume,\n muted: muted,\n playbackRate: playbackRate,\n loop: loop\n });\n }), sampling.media || 500);\n });\n var handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(function() {\n handlers.forEach(function(h) {\n return h();\n });\n });\n}\nfunction initFontObserver(param) {\n var fontCb = param.fontCb, doc = param.doc;\n var win = doc.defaultView;\n if (!win) {\n return function() {};\n }\n var handlers = [];\n var fontMap = /* @__PURE__ */ new WeakMap();\n var originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n var fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family: family,\n buffer: typeof source !== \"string\",\n descriptors: descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n var restoreHandler = patch$2(doc.fonts, \"add\", function(original) {\n return function(fontFace) {\n setTimeout(callbackWrapper(function() {\n var p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }), 0);\n return original.apply(this, [\n fontFace\n ]);\n };\n });\n handlers.push(function() {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(function() {\n handlers.forEach(function(h) {\n return h();\n });\n });\n}\nfunction initSelectionObserver(param) {\n var doc = param.doc, mirror2 = param.mirror, blockClass = param.blockClass, blockSelector = param.blockSelector, selectionCb = param.selectionCb;\n var collapsed = true;\n var updateSelection = callbackWrapper(function() {\n var selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n var ranges = [];\n var count = selection.rangeCount || 0;\n for(var i2 = 0; i2 < count; i2++){\n var range = selection.getRangeAt(i2);\n var startContainer = range.startContainer, startOffset = range.startOffset, endContainer = range.endContainer, endOffset = range.endOffset;\n var blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset: startOffset,\n end: mirror2.getId(endContainer),\n endOffset: endOffset\n });\n }\n selectionCb({\n ranges: ranges\n });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver(param) {\n var doc = param.doc, customElementCb = param.customElementCb;\n var win = doc.defaultView;\n if (!win || !win.customElements) return function() {};\n var restoreHandler = patch$2(win.customElements, \"define\", function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name: name\n }\n });\n } catch (e2) {\n console.warn(\"Custom element callback failed for \" + name);\n }\n return original.apply(this, [\n name,\n constructor,\n options\n ]);\n };\n });\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n var mutationCb = o2.mutationCb, mousemoveCb = o2.mousemoveCb, mouseInteractionCb = o2.mouseInteractionCb, scrollCb = o2.scrollCb, viewportResizeCb = o2.viewportResizeCb, inputCb = o2.inputCb, mediaInteractionCb = o2.mediaInteractionCb, styleSheetRuleCb = o2.styleSheetRuleCb, styleDeclarationCb = o2.styleDeclarationCb, canvasMutationCb = o2.canvasMutationCb, fontCb = o2.fontCb, selectionCb = o2.selectionCb, customElementCb = o2.customElementCb;\n o2.mutationCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.mutation) {\n var _hooks;\n (_hooks = hooks).mutation.apply(_hooks, [].concat(p));\n }\n mutationCb.apply(void 0, [].concat(p));\n };\n o2.mousemoveCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.mousemove) {\n var _hooks;\n (_hooks = hooks).mousemove.apply(_hooks, [].concat(p));\n }\n mousemoveCb.apply(void 0, [].concat(p));\n };\n o2.mouseInteractionCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.mouseInteraction) {\n var _hooks;\n (_hooks = hooks).mouseInteraction.apply(_hooks, [].concat(p));\n }\n mouseInteractionCb.apply(void 0, [].concat(p));\n };\n o2.scrollCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.scroll) {\n var _hooks;\n (_hooks = hooks).scroll.apply(_hooks, [].concat(p));\n }\n scrollCb.apply(void 0, [].concat(p));\n };\n o2.viewportResizeCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.viewportResize) {\n var _hooks;\n (_hooks = hooks).viewportResize.apply(_hooks, [].concat(p));\n }\n viewportResizeCb.apply(void 0, [].concat(p));\n };\n o2.inputCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.input) {\n var _hooks;\n (_hooks = hooks).input.apply(_hooks, [].concat(p));\n }\n inputCb.apply(void 0, [].concat(p));\n };\n o2.mediaInteractionCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.mediaInteaction) {\n var _hooks;\n (_hooks = hooks).mediaInteaction.apply(_hooks, [].concat(p));\n }\n mediaInteractionCb.apply(void 0, [].concat(p));\n };\n o2.styleSheetRuleCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.styleSheetRule) {\n var _hooks;\n (_hooks = hooks).styleSheetRule.apply(_hooks, [].concat(p));\n }\n styleSheetRuleCb.apply(void 0, [].concat(p));\n };\n o2.styleDeclarationCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.styleDeclaration) {\n var _hooks;\n (_hooks = hooks).styleDeclaration.apply(_hooks, [].concat(p));\n }\n styleDeclarationCb.apply(void 0, [].concat(p));\n };\n o2.canvasMutationCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.canvasMutation) {\n var _hooks;\n (_hooks = hooks).canvasMutation.apply(_hooks, [].concat(p));\n }\n canvasMutationCb.apply(void 0, [].concat(p));\n };\n o2.fontCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.font) {\n var _hooks;\n (_hooks = hooks).font.apply(_hooks, [].concat(p));\n }\n fontCb.apply(void 0, [].concat(p));\n };\n o2.selectionCb = function() {\n for(var _len = arguments.length, p = new Array(_len), _key = 0; _key < _len; _key++){\n p[_key] = arguments[_key];\n }\n if (hooks.selection) {\n var _hooks;\n (_hooks = hooks).selection.apply(_hooks, [].concat(p));\n }\n selectionCb.apply(void 0, [].concat(p));\n };\n o2.customElementCb = function() {\n for(var _len = arguments.length, c2 = new Array(_len), _key = 0; _key < _len; _key++){\n c2[_key] = arguments[_key];\n }\n if (hooks.customElement) {\n var _hooks;\n (_hooks = hooks).customElement.apply(_hooks, [].concat(c2));\n }\n customElementCb.apply(void 0, [].concat(c2));\n };\n}\nfunction initObservers(o2, hooks) {\n if (hooks === void 0) hooks = {};\n var currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return function() {};\n }\n mergeHooks(o2, hooks);\n var mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n var mousemoveHandler = initMoveObserver(o2);\n var mouseInteractionHandler = initMouseInteractionObserver(o2);\n var scrollHandler = initScrollObserver(o2);\n var viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n var inputHandler = initInputObserver(o2);\n var mediaInteractionHandler = initMediaInteractionObserver(o2);\n var styleSheetObserver = function() {};\n var adoptedStyleSheetObserver = function() {};\n var styleDeclarationObserver = function() {};\n var fontObserver = function() {};\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, {\n win: currentWindow\n });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n var selectionObserver = initSelectionObserver(o2);\n var customElementObserver = initCustomElementObserver(o2);\n var pluginHandlers = [];\n for(var _iterator = _create_for_of_iterator_helper_loose(o2.plugins), _step; !(_step = _iterator()).done;){\n var plugin3 = _step.value;\n pluginHandlers.push(plugin3.observer(plugin3.callback, currentWindow, plugin3.options));\n }\n return callbackWrapper(function() {\n mutationBuffers.forEach(function(b) {\n return b.reset();\n });\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach(function(h) {\n return h();\n });\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype);\n}\nvar CrossOriginIframeMirror = /*#__PURE__*/ function() {\n function CrossOriginIframeMirror(generateIdFn) {\n __publicField$1(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField$1(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n var _proto = CrossOriginIframeMirror.prototype;\n _proto.getId = function getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n var idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n var remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n var id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n };\n _proto.getIds = function getIds(iframe, remoteId) {\n var _this = this;\n var idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n var remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(function(id) {\n return _this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap);\n });\n };\n _proto.getRemoteId = function getRemoteId(iframe, id, map) {\n var remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n var remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n };\n _proto.getRemoteIds = function getRemoteIds(iframe, ids) {\n var _this = this;\n var remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map(function(id) {\n return _this.getRemoteId(iframe, id, remoteIdToIdMap);\n });\n };\n _proto.reset = function reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n };\n _proto.getIdToRemoteIdMap = function getIdToRemoteIdMap(iframe) {\n var idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n };\n _proto.getRemoteIdToIdMap = function getRemoteIdToIdMap(iframe) {\n var remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n };\n return CrossOriginIframeMirror;\n}();\nvar IframeManager = /*#__PURE__*/ function() {\n function IframeManager(options) {\n __publicField$1(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField$1(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField$1(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField$1(this, \"crossOriginIframeStyleMirror\");\n __publicField$1(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField$1(this, \"mirror\");\n __publicField$1(this, \"mutationCb\");\n __publicField$1(this, \"wrappedEmit\");\n __publicField$1(this, \"loadListener\");\n __publicField$1(this, \"stylesheetManager\");\n __publicField$1(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n var _proto = IframeManager.prototype;\n _proto.addIframe = function addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow) this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n };\n _proto.addLoadListener = function addLoadListener(cb) {\n this.loadListener = cb;\n };\n _proto.attachIframe = function attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes) (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\"message\", this.handleMessage.bind(this));\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0) this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\n };\n _proto.handleMessage = function handleMessage(message) {\n var crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin) return;\n var iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n var iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n var transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\n if (transformedEvent) this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\n };\n _proto.transformCrossOriginEvent = function transformCrossOriginEvent(iframeEl, e2) {\n var _this = this;\n var _a2;\n switch(e2.type){\n case EventType.FullSnapshot:\n {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n var rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded:\n {\n return false;\n }\n case EventType.Plugin:\n {\n return e2;\n }\n case EventType.Custom:\n {\n this.replaceIds(e2.data.payload, iframeEl, [\n \"id\",\n \"parentId\",\n \"previousId\",\n \"nextId\"\n ]);\n return e2;\n }\n case EventType.IncrementalSnapshot:\n {\n switch(e2.data.source){\n case IncrementalSource.Mutation:\n {\n e2.data.adds.forEach(function(n2) {\n _this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n _this.replaceIdOnNode(n2.node, iframeEl);\n var rootId = _this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && _this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach(function(n2) {\n _this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"id\"\n ]);\n });\n e2.data.attributes.forEach(function(n2) {\n _this.replaceIds(n2, iframeEl, [\n \"id\"\n ]);\n });\n e2.data.texts.forEach(function(n2) {\n _this.replaceIds(n2, iframeEl, [\n \"id\"\n ]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove:\n {\n e2.data.positions.forEach(function(p) {\n _this.replaceIds(p, iframeEl, [\n \"id\"\n ]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize:\n {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input:\n {\n this.replaceIds(e2.data, iframeEl, [\n \"id\"\n ]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration:\n {\n this.replaceIds(e2.data, iframeEl, [\n \"id\"\n ]);\n this.replaceStyleIds(e2.data, iframeEl, [\n \"styleId\"\n ]);\n return e2;\n }\n case IncrementalSource.Font:\n {\n return e2;\n }\n case IncrementalSource.Selection:\n {\n e2.data.ranges.forEach(function(range) {\n _this.replaceIds(range, iframeEl, [\n \"start\",\n \"end\"\n ]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet:\n {\n this.replaceIds(e2.data, iframeEl, [\n \"id\"\n ]);\n this.replaceStyleIds(e2.data, iframeEl, [\n \"styleIds\"\n ]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach(function(style) {\n _this.replaceStyleIds(style, iframeEl, [\n \"styleId\"\n ]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n };\n _proto.replace = function replace(iframeMirror, obj, iframeEl, keys) {\n for(var _iterator = _create_for_of_iterator_helper_loose(keys), _step; !(_step = _iterator()).done;){\n var key = _step.value;\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n };\n _proto.replaceIds = function replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n };\n _proto.replaceStyleIds = function replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n };\n _proto.replaceIdOnNode = function replaceIdOnNode(node2, iframeEl) {\n var _this = this;\n this.replaceIds(node2, iframeEl, [\n \"id\",\n \"rootId\"\n ]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach(function(child) {\n _this.replaceIdOnNode(child, iframeEl);\n });\n }\n };\n _proto.patchRootIdOnNode = function patchRootIdOnNode(node2, rootId) {\n var _this = this;\n if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach(function(child) {\n _this.patchRootIdOnNode(child, rootId);\n });\n }\n };\n return IframeManager;\n}();\nvar ShadowDomManager = /*#__PURE__*/ function() {\n function ShadowDomManager(options) {\n __publicField$1(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField$1(this, \"mutationCb\");\n __publicField$1(this, \"scrollCb\");\n __publicField$1(this, \"bypassOptions\");\n __publicField$1(this, \"mirror\");\n __publicField$1(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n var _proto = ShadowDomManager.prototype;\n _proto.init = function init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n };\n _proto.addShadowRoot = function addShadowRoot(shadowRoot2, doc) {\n var _this = this;\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n var observer = initMutationObserver(_extends({}, this.bypassOptions, {\n doc: doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n }), shadowRoot2);\n this.restoreHandlers.push(function() {\n return observer.disconnect();\n });\n this.restoreHandlers.push(initScrollObserver(_extends({}, this.bypassOptions, {\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot2,\n mirror: this.mirror\n })));\n setTimeout(function() {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0) _this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot2.adoptedStyleSheets, _this.mirror.getId(index.host(shadowRoot2)));\n _this.restoreHandlers.push(initAdoptedStyleSheetObserver({\n mirror: _this.mirror,\n stylesheetManager: _this.bypassOptions.stylesheetManager\n }, shadowRoot2));\n }, 0);\n };\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */ _proto.observeAttachShadow = function observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\n };\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */ _proto.patchAttachShadow = function patchAttachShadow(element, doc) {\n var manager = this;\n this.restoreHandlers.push(patch$2(element.prototype, \"attachShadow\", function(original) {\n return function(option) {\n var sRoot = original.call(this, option);\n var shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this)) manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n }));\n };\n _proto.reset = function reset() {\n this.restoreHandlers.forEach(function(handler) {\n try {\n handler();\n } catch (e2) {}\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n };\n return ShadowDomManager;\n}();\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor(var i$1 = 0; i$1 < chars.length; i$1++){\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function encode(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for(i2 = 0; i2 < len; i2 += 3){\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\nvar canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n var contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nvar saveWebGLVar = function(value, win, ctx) {\n if (!value || !(isInstanceOfWebGLObject(value, win) || (typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) === \"object\")) return;\n var name = value.constructor.name;\n var list2 = variableListFor$1(ctx, name);\n var index2 = list2.indexOf(value);\n if (index2 === -1) {\n index2 = list2.length;\n list2.push(value);\n }\n return index2;\n};\nfunction serializeArg(value, win, ctx) {\n if (_instanceof(value, Array)) {\n return value.map(function(arg) {\n return serializeArg(arg, win, ctx);\n });\n } else if (value === null) {\n return value;\n } else if (_instanceof(value, Float32Array) || _instanceof(value, Float64Array) || _instanceof(value, Int32Array) || _instanceof(value, Uint32Array) || _instanceof(value, Uint8Array) || _instanceof(value, Uint16Array) || _instanceof(value, Int16Array) || _instanceof(value, Int8Array) || _instanceof(value, Uint8ClampedArray)) {\n var name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n Object.values(value)\n ]\n };\n } else if (// SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n _instanceof(value, ArrayBuffer)) {\n var name1 = value.constructor.name;\n var base64 = encode(value);\n return {\n rr_type: name1,\n base64: base64\n };\n } else if (_instanceof(value, DataView)) {\n var name2 = value.constructor.name;\n return {\n rr_type: name2,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (_instanceof(value, HTMLImageElement)) {\n var name3 = value.constructor.name;\n var src = value.src;\n return {\n rr_type: name3,\n src: src\n };\n } else if (_instanceof(value, HTMLCanvasElement)) {\n var name4 = \"HTMLImageElement\";\n var src1 = value.toDataURL();\n return {\n rr_type: name4,\n src: src1\n };\n } else if (_instanceof(value, ImageData)) {\n var name5 = value.constructor.name;\n return {\n rr_type: name5,\n args: [\n serializeArg(value.data, win, ctx),\n value.width,\n value.height\n ]\n };\n } else if (isInstanceOfWebGLObject(value, win) || (typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) === \"object\") {\n var name6 = value.constructor.name;\n var index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name6,\n index: index2\n };\n }\n return value;\n}\nvar serializeArgs = function(args, win, ctx) {\n return args.map(function(arg) {\n return serializeArg(arg, win, ctx);\n });\n};\nvar isInstanceOfWebGLObject = function(value, win) {\n var webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n var supportedWebGLConstructorNames = webGLConstructorNames.filter(function(name) {\n return typeof win[name] === \"function\";\n });\n return Boolean(supportedWebGLConstructorNames.find(function(name) {\n return _instanceof(value, win[name]);\n }));\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n var _loop = function() {\n var prop = _step.value;\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n return \"continue\";\n }\n var restoreHandler = patch$2(win.CanvasRenderingContext2D.prototype, prop, function(original) {\n return function() {\n var _this = this;\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(function() {\n var recordArgs = serializeArgs(args, win, _this);\n cb(_this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n });\n handlers.push(restoreHandler);\n } catch (e) {\n var hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\n set: function set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [\n v2\n ],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n };\n var handlers = [];\n var props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\n for(var _iterator = _create_for_of_iterator_helper_loose(props2D), _step; !(_step = _iterator()).done;)_loop();\n return function() {\n handlers.forEach(function(h) {\n return h();\n });\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n var handlers = [];\n try {\n var restoreHandler = patch$2(win.HTMLCanvasElement.prototype, \"getContext\", function(original) {\n return function(contextType) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n var ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\n \"webgl\",\n \"webgl2\"\n ].includes(ctxName)) {\n if (args[0] && _type_of(args[0]) === \"object\") {\n var contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [].concat([\n contextType\n ], args));\n };\n });\n handlers.push(restoreHandler);\n } catch (e) {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return function() {\n handlers.forEach(function(h) {\n return h();\n });\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n var _loop = function() {\n var prop = _step.value;\n if (//prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)) {\n return \"continue\";\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n return \"continue\";\n }\n var restoreHandler = patch$2(prototype, prop, function(original) {\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n var result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n var recordArgs = serializeArgs(args, win, this);\n var mutation = {\n type: type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n });\n handlers.push(restoreHandler);\n } catch (e) {\n var hookHandler = hookSetter(prototype, prop, {\n set: function set(v2) {\n cb(this.canvas, {\n type: type,\n property: prop,\n args: [\n v2\n ],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n };\n var handlers = [];\n var props = Object.getOwnPropertyNames(prototype);\n for(var _iterator = _create_for_of_iterator_helper_loose(props), _step; !(_step = _iterator()).done;)_loop();\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n var _handlers;\n var handlers = [];\n (_handlers = handlers).push.apply(_handlers, [].concat(patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, win)));\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n var _handlers1;\n (_handlers1 = handlers).push.apply(_handlers1, [].concat(patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, win)));\n }\n return function() {\n handlers.forEach(function(h) {\n return h();\n });\n };\n}\nvar encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nvar decodeBase64 = function(base64) {\n return Uint8Array.from(atob(base64), function(c2) {\n return c2.charCodeAt(0);\n });\n};\nvar blob = typeof window !== \"undefined\" && window.Blob && new Blob([\n decodeBase64(encodedJs)\n], {\n type: \"text/javascript;charset=utf-8\"\n});\nfunction WorkerWrapper(options) {\n var objURL;\n try {\n objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n var worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", function() {\n (window.URL || window.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\"data:text/javascript;base64,\" + encodedJs, {\n name: options == null ? void 0 : options.name\n });\n } finally{\n objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);\n }\n}\nvar CanvasManager = /*#__PURE__*/ function() {\n function CanvasManager(options) {\n var _this = this;\n __publicField$1(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"rafStamps\", {\n latestId: 0,\n invokeId: null\n });\n __publicField$1(this, \"mirror\");\n __publicField$1(this, \"mutationCb\");\n __publicField$1(this, \"resetObservers\");\n __publicField$1(this, \"frozen\", false);\n __publicField$1(this, \"locked\", false);\n __publicField$1(this, \"processMutation\", function(target, mutation) {\n var newFrame = _this.rafStamps.invokeId && _this.rafStamps.latestId !== _this.rafStamps.invokeId;\n if (newFrame || !_this.rafStamps.invokeId) _this.rafStamps.invokeId = _this.rafStamps.latestId;\n if (!_this.pendingCanvasMutations.has(target)) {\n _this.pendingCanvasMutations.set(target, []);\n }\n _this.pendingCanvasMutations.get(target).push(mutation);\n });\n var _options_sampling = options.sampling, sampling = _options_sampling === void 0 ? \"all\" : _options_sampling, win = options.win, blockClass = options.blockClass, blockSelector = options.blockSelector, recordCanvas = options.recordCanvas, dataURLOptions = options.dataURLOptions;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\") this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\") this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions: dataURLOptions\n });\n }\n var _proto = CanvasManager.prototype;\n _proto.reset = function reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n };\n _proto.freeze = function freeze() {\n this.frozen = true;\n };\n _proto.unfreeze = function unfreeze() {\n this.frozen = false;\n };\n _proto.lock = function lock() {\n this.locked = true;\n };\n _proto.unlock = function unlock() {\n this.locked = false;\n };\n _proto.initCanvasFPSObserver = function initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n var _this = this;\n var canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, true);\n var snapshotInProgressMap = /* @__PURE__ */ new Map();\n var worker = new WorkerWrapper();\n worker.onmessage = function(e2) {\n var id = e2.data.id;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n var _e2_data = e2.data, base64 = _e2_data.base64, type = _e2_data.type, width = _e2_data.width, height = _e2_data.height;\n _this.mutationCb({\n id: id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [\n 0,\n 0,\n width,\n height\n ]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [\n {\n rr_type: \"ArrayBuffer\",\n base64: base64\n }\n ],\n type: type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n var timeBetweenSnapshots = 1e3 / fps;\n var lastSnapshotTime = 0;\n var rafId;\n var getCanvas = function() {\n var matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach(function(canvas) {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n var takeCanvasSnapshots = function(timestamp) {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n var _this1 = _this;\n getCanvas().forEach(/*#__PURE__*/ _async_to_generator(function(canvas) {\n var _a2, id, context, bitmap;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n id = _this1.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return [\n 2\n ];\n if (canvas.width === 0 || canvas.height === 0) return [\n 2\n ];\n snapshotInProgressMap.set(id, true);\n if ([\n \"webgl\",\n \"webgl2\"\n ].includes(canvas.__context)) {\n context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n return [\n 4,\n createImageBitmap(canvas)\n ];\n case 1:\n bitmap = _state.sent();\n worker.postMessage({\n id: id,\n bitmap: bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n }, [\n bitmap\n ]);\n return [\n 2\n ];\n }\n });\n }));\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = function() {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n };\n _proto.initCanvasMutationObserver = function initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n var canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, false);\n var canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\n var canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\n this.resetObservers = function() {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n };\n _proto.startPendingCanvasMutationFlusher = function startPendingCanvasMutationFlusher() {\n var _this = this;\n requestAnimationFrame(function() {\n return _this.flushPendingCanvasMutations();\n });\n };\n _proto.startRAFTimestamping = function startRAFTimestamping() {\n var _this = this;\n var setLatestRAFTimestamp = function(timestamp) {\n _this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n _proto.flushPendingCanvasMutations = function flushPendingCanvasMutations() {\n var _this = this;\n this.pendingCanvasMutations.forEach(function(_values, canvas) {\n var id = _this.mirror.getId(canvas);\n _this.flushPendingCanvasMutationFor(canvas, id);\n });\n requestAnimationFrame(function() {\n return _this.flushPendingCanvasMutations();\n });\n };\n _proto.flushPendingCanvasMutationFor = function flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n var valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n var values = valuesWithType.map(function(value) {\n value.type; var rest = _object_without_properties_loose(value, [\n \"type\"\n ]);\n return rest;\n });\n var type = valuesWithType[0].type;\n this.mutationCb({\n id: id,\n type: type,\n commands: values\n });\n this.pendingCanvasMutations.delete(canvas);\n };\n return CanvasManager;\n}();\nvar StylesheetManager = /*#__PURE__*/ function() {\n function StylesheetManager(options) {\n __publicField$1(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField$1(this, \"mutationCb\");\n __publicField$1(this, \"adoptedStyleSheetCb\");\n __publicField$1(this, \"styleMirror\", new StyleSheetMirror());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n var _proto = StylesheetManager.prototype;\n _proto.attachLinkElement = function attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes) this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n };\n _proto.trackLinkElement = function trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n };\n _proto.adoptStyleSheets = function adoptStyleSheets(sheets, hostId) {\n var _this, _loop = function() {\n var sheet = _step.value;\n var styleId = void 0;\n if (!_this.styleMirror.has(sheet)) {\n styleId = _this.styleMirror.add(sheet);\n styles.push({\n styleId: styleId,\n rules: Array.from(sheet.rules || CSSRule, function(r2, index2) {\n return {\n rule: stringifyRule(r2, sheet.href),\n index: index2\n };\n })\n });\n } else styleId = _this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n };\n if (sheets.length === 0) return;\n var adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n var styles = [];\n for(var _iterator = _create_for_of_iterator_helper_loose(sheets), _step; !(_step = _iterator()).done;)_this = this, _loop();\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n };\n _proto.reset = function reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n };\n // TODO: take snapshot on stylesheet reload by applying event listener\n _proto.trackStylesheetInLinkElement = function trackStylesheetInLinkElement(_linkEl) {};\n return StylesheetManager;\n}();\nvar ProcessedNodeManager = /*#__PURE__*/ function() {\n function ProcessedNodeManager() {\n __publicField$1(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField$1(this, \"active\", false);\n }\n var _proto = ProcessedNodeManager.prototype;\n _proto.inOtherBuffer = function inOtherBuffer(node2, thisBuffer) {\n var buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some(function(buffer) {\n return buffer !== thisBuffer;\n });\n };\n _proto.add = function add(node2, buffer) {\n var _this = this;\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(function() {\n _this.nodeMap = /* @__PURE__ */ new WeakMap();\n _this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n };\n _proto.destroy = function destroy() {};\n return ProcessedNodeManager;\n}();\nvar wrappedEmit;\nvar takeFullSnapshot$1;\nvar canvasManager;\nvar recording = false;\ntry {\n if (Array.from([\n 1\n ], function(x2) {\n return x2 * 2;\n })[0] !== 2) {\n var cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nvar mirror = createMirror$2();\nfunction record(options) {\n if (options === void 0) options = {};\n var emit = options.emit, checkoutEveryNms = options.checkoutEveryNms, checkoutEveryNth = options.checkoutEveryNth, _options_blockClass = options.blockClass, blockClass = _options_blockClass === void 0 ? \"rr-block\" : _options_blockClass, _options_blockSelector = options.blockSelector, blockSelector = _options_blockSelector === void 0 ? null : _options_blockSelector, _options_ignoreClass = options.ignoreClass, ignoreClass = _options_ignoreClass === void 0 ? \"rr-ignore\" : _options_ignoreClass, _options_ignoreSelector = options.ignoreSelector, ignoreSelector = _options_ignoreSelector === void 0 ? null : _options_ignoreSelector, _options_maskTextClass = options.maskTextClass, maskTextClass = _options_maskTextClass === void 0 ? \"rr-mask\" : _options_maskTextClass, _options_maskTextSelector = options.maskTextSelector, maskTextSelector = _options_maskTextSelector === void 0 ? null : _options_maskTextSelector, _options_inlineStylesheet = options.inlineStylesheet, inlineStylesheet = _options_inlineStylesheet === void 0 ? true : _options_inlineStylesheet, maskAllInputs = options.maskAllInputs, _maskInputOptions = options.maskInputOptions, _slimDOMOptions = options.slimDOMOptions, maskInputFn = options.maskInputFn, maskTextFn = options.maskTextFn, hooks = options.hooks, packFn = options.packFn, _options_sampling = options.sampling, sampling = _options_sampling === void 0 ? {} : _options_sampling, _options_dataURLOptions = options.dataURLOptions, dataURLOptions = _options_dataURLOptions === void 0 ? {} : _options_dataURLOptions, mousemoveWait = options.mousemoveWait, _options_recordDOM = options.recordDOM, recordDOM = _options_recordDOM === void 0 ? true : _options_recordDOM, _options_recordCanvas = options.recordCanvas, recordCanvas = _options_recordCanvas === void 0 ? false : _options_recordCanvas, _options_recordCrossOriginIframes = options.recordCrossOriginIframes, recordCrossOriginIframes = _options_recordCrossOriginIframes === void 0 ? false : _options_recordCrossOriginIframes, _options_recordAfter = options.recordAfter, recordAfter = _options_recordAfter === void 0 ? options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\" : _options_recordAfter, _options_userTriggeredOnInput = options.userTriggeredOnInput, userTriggeredOnInput = _options_userTriggeredOnInput === void 0 ? false : _options_userTriggeredOnInput, _options_collectFonts = options.collectFonts, collectFonts = _options_collectFonts === void 0 ? false : _options_collectFonts, _options_inlineImages = options.inlineImages, inlineImages = _options_inlineImages === void 0 ? false : _options_inlineImages, plugins = options.plugins, _options_keepIframeSrcFn = options.keepIframeSrcFn, keepIframeSrcFn = _options_keepIframeSrcFn === void 0 ? function() {\n return false;\n } : _options_keepIframeSrcFn, _options_ignoreCSSAttributes = options.ignoreCSSAttributes, ignoreCSSAttributes = _options_ignoreCSSAttributes === void 0 ? /* @__PURE__ */ new Set([]) : _options_ignoreCSSAttributes, errorHandler2 = options.errorHandler;\n registerErrorHandler(errorHandler2);\n var inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n var passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return function() {};\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n var maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true,\n hidden: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : {\n password: true\n };\n var slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n } : _slimDOMOptions ? _slimDOMOptions : {};\n polyfill$1();\n var lastFullSnapshotEvent;\n var incrementalSnapshotCount = 0;\n var eventProcessor = function(e2) {\n for(var _iterator = _create_for_of_iterator_helper_loose(plugins || []), _step; !(_step = _iterator()).done;){\n var plugin3 = _step.value;\n if (plugin3.eventProcessor) {\n e2 = plugin3.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = function(r2, isCheckout) {\n var _a2;\n var e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach(function(buf) {\n return buf.unfreeze();\n });\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n var message = {\n type: \"rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout: isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n var exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n var exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n var wrappedMutationEmit = function(m) {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.Mutation\n }, m)\n });\n };\n var wrappedScrollEmit = function(p) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.Scroll\n }, p)\n });\n };\n var wrappedCanvasMutationEmit = function(p) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.CanvasMutation\n }, p)\n });\n };\n var wrappedAdoptedStyleSheetEmit = function(a2) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.AdoptedStyleSheet\n }, a2)\n });\n };\n var stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n var iframeManager = new IframeManager({\n mirror: mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager: stylesheetManager,\n recordCrossOriginIframes: recordCrossOriginIframes,\n wrappedEmit: wrappedEmit\n });\n for(var _iterator = _create_for_of_iterator_helper_loose(plugins || []), _step; !(_step = _iterator()).done;){\n var plugin3 = _step.value;\n if (plugin3.getMirror) plugin3.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n var processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas: recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass: blockClass,\n blockSelector: blockSelector,\n mirror: mirror,\n sampling: sampling.canvas,\n dataURLOptions: dataURLOptions\n });\n var shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskInputOptions: maskInputOptions,\n dataURLOptions: dataURLOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n sampling: sampling,\n slimDOMOptions: slimDOMOptions,\n iframeManager: iframeManager,\n stylesheetManager: stylesheetManager,\n canvasManager: canvasManager,\n keepIframeSrcFn: keepIframeSrcFn,\n processedNodeManager: processedNodeManager\n },\n mirror: mirror\n });\n takeFullSnapshot$1 = function(isCheckout) {\n if (isCheckout === void 0) isCheckout = false;\n if (!recordDOM) {\n return;\n }\n wrappedEmit({\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n }, isCheckout);\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach(function(buf) {\n return buf.lock();\n });\n var node2 = snapshot(document, {\n mirror: mirror,\n blockClass: blockClass,\n blockSelector: blockSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n inlineStylesheet: inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn: maskTextFn,\n maskInputFn: maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n onSerialize: function(n2) {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(index.shadowRoot(n2), document);\n }\n },\n onIframeLoad: function(iframe, childSn) {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: function(linkEl, childSn) {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn: keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit({\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n }, isCheckout);\n mutationBuffers.forEach(function(buf) {\n return buf.unlock();\n });\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0) stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\n };\n try {\n var handlers = [];\n var observe = function(doc) {\n var _a2;\n return callbackWrapper(initObservers)({\n mutationCb: wrappedMutationEmit,\n mousemoveCb: function(positions, source) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: source,\n positions: positions\n }\n });\n },\n mouseInteractionCb: function(d) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.MouseInteraction\n }, d)\n });\n },\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: function(d) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.ViewportResize\n }, d)\n });\n },\n inputCb: function(v2) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.Input\n }, v2)\n });\n },\n mediaInteractionCb: function(p) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.MediaInteraction\n }, p)\n });\n },\n styleSheetRuleCb: function(r2) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.StyleSheetRule\n }, r2)\n });\n },\n styleDeclarationCb: function(r2) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.StyleDeclaration\n }, r2)\n });\n },\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: function(p) {\n return wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.Font\n }, p)\n });\n },\n selectionCb: function(p) {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.Selection\n }, p)\n });\n },\n customElementCb: function(c2) {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: _extends({\n source: IncrementalSource.CustomElement\n }, c2)\n });\n },\n blockClass: blockClass,\n ignoreClass: ignoreClass,\n ignoreSelector: ignoreSelector,\n maskTextClass: maskTextClass,\n maskTextSelector: maskTextSelector,\n maskInputOptions: maskInputOptions,\n inlineStylesheet: inlineStylesheet,\n sampling: sampling,\n recordDOM: recordDOM,\n recordCanvas: recordCanvas,\n inlineImages: inlineImages,\n userTriggeredOnInput: userTriggeredOnInput,\n collectFonts: collectFonts,\n doc: doc,\n maskInputFn: maskInputFn,\n maskTextFn: maskTextFn,\n keepIframeSrcFn: keepIframeSrcFn,\n blockSelector: blockSelector,\n slimDOMOptions: slimDOMOptions,\n dataURLOptions: dataURLOptions,\n mirror: mirror,\n iframeManager: iframeManager,\n stylesheetManager: stylesheetManager,\n shadowDomManager: shadowDomManager,\n processedNodeManager: processedNodeManager,\n canvasManager: canvasManager,\n ignoreCSSAttributes: ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter(function(p) {\n return p.observer;\n })) == null ? void 0 : _a2.map(function(p) {\n return {\n observer: p.observer,\n options: p.options,\n callback: function(payload) {\n return wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload: payload\n }\n });\n }\n };\n })) || []\n }, hooks);\n };\n iframeManager.addLoadListener(function(iframeEl) {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n var init = function() {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n init();\n } else {\n handlers.push(on(\"DOMContentLoaded\", function() {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n }));\n handlers.push(on(\"load\", function() {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n }, window));\n }\n return function() {\n handlers.forEach(function(handler) {\n try {\n handler();\n } catch (error) {\n var msg = String(error).toLowerCase();\n if (!msg.includes(\"cross-origin\")) {\n console.warn(error);\n }\n }\n });\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = function(tag, payload) {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag: tag,\n payload: payload\n }\n });\n};\nrecord.freezePage = function() {\n mutationBuffers.forEach(function(buf) {\n return buf.freeze();\n });\n};\nrecord.takeFullSnapshot = function(isCheckout) {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nvar n;\n!function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n || (n = {}));\nrecord.addCustomEvent;\nrecord.freezePage;\nrecord.takeFullSnapshot;\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = function(obj, key, value) {\n return key in obj ? __defProp(obj, key, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n }) : obj[key] = value;\n};\nvar __publicField = function(obj, key, value) {\n return __defNormalProp(obj, (typeof key === \"undefined\" ? \"undefined\" : _type_of(key)) !== \"symbol\" ? key + \"\" : key, value);\n};\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return function() {};\n }\n var original = source[name];\n var wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return function() {\n source[name] = original;\n };\n } catch (e) {\n return function() {};\n }\n}\nvar StackFrame = /*#__PURE__*/ function() {\n function StackFrame(obj) {\n __publicField(this, \"fileName\");\n __publicField(this, \"functionName\");\n __publicField(this, \"lineNumber\");\n __publicField(this, \"columnNumber\");\n this.fileName = obj.fileName || \"\";\n this.functionName = obj.functionName || \"\";\n this.lineNumber = obj.lineNumber;\n this.columnNumber = obj.columnNumber;\n }\n var _proto = StackFrame.prototype;\n _proto.toString = function toString() {\n var lineNumber = this.lineNumber || \"\";\n var columnNumber = this.columnNumber || \"\";\n if (this.functionName) return this.functionName + \" (\" + this.fileName + \":\" + lineNumber + \":\" + columnNumber + \")\";\n return this.fileName + \":\" + lineNumber + \":\" + columnNumber;\n };\n return StackFrame;\n}();\nvar FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\nvar CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\nvar SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\nvar ErrorStackParser = {\n /**\n * Given an Error object, extract the most information from it.\n */ parse: function parse(error) {\n if (!error) {\n return [];\n }\n if (// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof error.stacktrace !== \"undefined\" || // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof error[\"opera#sourceloc\"] !== \"undefined\") {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n console.warn(\"[console-record-plugin]: Failed to parse error object:\", error);\n return [];\n }\n },\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function extractLocation(urlLike) {\n if (urlLike.indexOf(\":\") === -1) {\n return [\n urlLike\n ];\n }\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, \"\"));\n if (!parts) throw new Error(\"Cannot parse given url: \" + urlLike);\n return [\n parts[1],\n parts[2] || void 0,\n parts[3] || void 0\n ];\n },\n parseV8OrIE: function parseV8OrIE(error) {\n var filtered = error.stack.split(\"\\n\").filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function(line) {\n if (line.indexOf(\"(eval \") > -1) {\n line = line.replace(/eval code/g, \"eval\").replace(/(\\(eval at [^()]*)|(\\),.*$)/g, \"\");\n }\n var sanitizedLine = line.replace(/^\\s+/, \"\").replace(/\\(eval code/g, \"(\");\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n sanitizedLine = location ? sanitizedLine.replace(location[0], \"\") : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(\" \") || void 0;\n var fileName = [\n \"eval\",\n \"\"\n ].indexOf(locationParts[0]) > -1 ? void 0 : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2]\n });\n }, this);\n },\n parseFFOrSafari: function parseFFOrSafari(error) {\n var filtered = error.stack.split(\"\\n\").filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function(line) {\n if (line.indexOf(\" > eval\") > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, \":$1\");\n }\n if (line.indexOf(\"@\") === -1 && line.indexOf(\":\") === -1) {\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : void 0;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, \"\"));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2]\n });\n }\n }, this);\n },\n parseOpera: function parseOpera(e) {\n if (!e.stacktrace || e.message.indexOf(\"\\n\") > -1 && e.message.split(\"\\n\").length > e.stacktrace.split(\"\\n\").length) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split(\"\\n\");\n var result = [];\n for(var i = 2, len = lines.length; i < len; i += 2){\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: parseFloat(match[1])\n }));\n }\n }\n return result;\n },\n parseOpera10: function parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split(\"\\n\");\n var result = [];\n for(var i = 0, len = lines.length; i < len; i += 2){\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || void 0,\n fileName: match[2],\n lineNumber: parseFloat(match[1])\n }));\n }\n }\n return result;\n },\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function parseOpera11(error) {\n var filtered = error.stack.split(\"\\n\").filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n return filtered.map(function(line) {\n var tokens = line.split(\"@\");\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || \"\";\n var functionName = functionCall.replace(//, \"$2\").replace(/\\([^)]*\\)/g, \"\") || void 0;\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2]\n });\n }, this);\n }\n};\nfunction pathToSelector(node) {\n if (!node || !node.outerHTML) {\n return \"\";\n }\n var path = \"\";\n while(node.parentElement){\n var name = node.localName;\n if (!name) {\n break;\n }\n name = name.toLowerCase();\n var parent = node.parentElement;\n var domSiblings = [];\n if (parent.children && parent.children.length > 0) {\n for(var i = 0; i < parent.children.length; i++){\n var sibling = parent.children[i];\n if (sibling.localName && sibling.localName.toLowerCase) {\n if (sibling.localName.toLowerCase() === name) {\n domSiblings.push(sibling);\n }\n }\n }\n }\n if (domSiblings.length > 1) {\n name += \":eq(\" + domSiblings.indexOf(node) + \")\";\n }\n path = name + (path ? \">\" + path : \"\");\n node = parent;\n }\n return path;\n}\nfunction isObject(obj) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n}\nfunction isObjTooDeep(obj, limit) {\n if (limit === 0) {\n return true;\n }\n var keys = Object.keys(obj);\n for(var _iterator = _create_for_of_iterator_helper_loose(keys), _step; !(_step = _iterator()).done;){\n var key = _step.value;\n if (isObject(obj[key]) && isObjTooDeep(obj[key], limit - 1)) {\n return true;\n }\n }\n return false;\n}\nfunction stringify(obj, stringifyOptions) {\n var options = {\n numOfKeysLimit: 50,\n depthOfLimit: 4\n };\n Object.assign(options, stringifyOptions);\n var stack = [];\n var keys = [];\n return JSON.stringify(obj, function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n if (~stack.indexOf(value)) {\n if (stack[0] === value) {\n value = \"[Circular ~]\";\n } else {\n value = \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\n }\n }\n } else {\n stack.push(value);\n }\n if (value === null) return value;\n if (value === void 0) return \"undefined\";\n if (shouldIgnore(value)) {\n return toString(value);\n }\n if ((typeof value === \"undefined\" ? \"undefined\" : _type_of(value)) === \"bigint\") {\n return value.toString() + \"n\";\n }\n if (_instanceof(value, Event)) {\n var eventResult = {};\n for(var eventKey in value){\n var eventValue = value[eventKey];\n if (Array.isArray(eventValue)) {\n eventResult[eventKey] = pathToSelector(eventValue.length ? eventValue[0] : null);\n } else {\n eventResult[eventKey] = eventValue;\n }\n }\n return eventResult;\n } else if (_instanceof(value, Node)) {\n if (_instanceof(value, HTMLElement)) {\n return value ? value.outerHTML : \"\";\n }\n return value.nodeName;\n } else if (_instanceof(value, Error)) {\n return value.stack ? value.stack + \"\\nEnd of stack for Error object\" : value.name + \": \" + value.message;\n }\n return value;\n });\n function shouldIgnore(_obj) {\n if (isObject(_obj) && Object.keys(_obj).length > options.numOfKeysLimit) {\n return true;\n }\n if (typeof _obj === \"function\") {\n return true;\n }\n if (isObject(_obj) && isObjTooDeep(_obj, options.depthOfLimit)) {\n return true;\n }\n return false;\n }\n function toString(_obj) {\n var str = _obj.toString();\n if (options.stringLengthLimit && str.length > options.stringLengthLimit) {\n str = \"\" + str.slice(0, options.stringLengthLimit) + \"...\";\n }\n return str;\n }\n}\nvar defaultLogOptions = {\n level: [\n \"assert\",\n \"clear\",\n \"count\",\n \"countReset\",\n \"debug\",\n \"dir\",\n \"dirxml\",\n \"error\",\n \"group\",\n \"groupCollapsed\",\n \"groupEnd\",\n \"info\",\n \"log\",\n \"table\",\n \"time\",\n \"timeEnd\",\n \"timeLog\",\n \"trace\",\n \"warn\"\n ],\n lengthThreshold: 1e3,\n logger: \"console\"\n};\nfunction initLogObserver(cb, win, options) {\n var logOptions = options ? Object.assign({}, defaultLogOptions, options) : defaultLogOptions;\n var loggerType = logOptions.logger;\n if (!loggerType) {\n return function() {};\n }\n var logger;\n if (typeof loggerType === \"string\") {\n logger = win[loggerType];\n } else {\n logger = loggerType;\n }\n var logCount = 0;\n var inStack = false;\n var cancelHandlers = [];\n if (logOptions.level.includes(\"error\")) {\n var errorHandler = function(event) {\n var message = event.message, error = event.error;\n var trace = ErrorStackParser.parse(error).map(function(stackFrame) {\n return stackFrame.toString();\n });\n var payload = [\n stringify(message, logOptions.stringifyOptions)\n ];\n cb({\n level: \"error\",\n trace: trace,\n payload: payload\n });\n };\n win.addEventListener(\"error\", errorHandler);\n cancelHandlers.push(function() {\n win.removeEventListener(\"error\", errorHandler);\n });\n var unhandledrejectionHandler = function(event) {\n var error;\n var payload;\n if (_instanceof(event.reason, Error)) {\n error = event.reason;\n payload = [\n stringify(\"Uncaught (in promise) \" + error.name + \": \" + error.message, logOptions.stringifyOptions)\n ];\n } else {\n error = new Error();\n payload = [\n stringify(\"Uncaught (in promise)\", logOptions.stringifyOptions),\n stringify(event.reason, logOptions.stringifyOptions)\n ];\n }\n var trace = ErrorStackParser.parse(error).map(function(stackFrame) {\n return stackFrame.toString();\n });\n cb({\n level: \"error\",\n trace: trace,\n payload: payload\n });\n };\n win.addEventListener(\"unhandledrejection\", unhandledrejectionHandler);\n cancelHandlers.push(function() {\n win.removeEventListener(\"unhandledrejection\", unhandledrejectionHandler);\n });\n }\n for(var _iterator = _create_for_of_iterator_helper_loose(logOptions.level), _step; !(_step = _iterator()).done;){\n var levelType = _step.value;\n cancelHandlers.push(replace(logger, levelType));\n }\n return function() {\n cancelHandlers.forEach(function(h) {\n return h();\n });\n };\n function replace(_logger, level) {\n var _this = this;\n if (!_logger[level]) {\n return function() {};\n }\n return patch(_logger, level, function(original) {\n var _this1 = _this;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n original.apply(_this1, args);\n if (level === \"assert\" && !!args[0]) {\n return;\n }\n if (inStack) {\n return;\n }\n inStack = true;\n try {\n var trace = ErrorStackParser.parse(new Error()).map(function(stackFrame) {\n return stackFrame.toString();\n }).splice(1);\n var argsForPayload = level === \"assert\" ? args.slice(1) : args;\n var payload = argsForPayload.map(function(s) {\n return stringify(s, logOptions.stringifyOptions);\n });\n logCount++;\n if (logCount < logOptions.lengthThreshold) {\n cb({\n level: level,\n trace: trace,\n payload: payload\n });\n } else if (logCount === logOptions.lengthThreshold) {\n cb({\n level: \"warn\",\n trace: [],\n payload: [\n stringify(\"The number of log records reached the threshold.\")\n ]\n });\n }\n } catch (error) {\n original.apply(void 0, [].concat([\n \"rrweb logger error:\",\n error\n ], args));\n } finally{\n inStack = false;\n }\n };\n });\n }\n}\nvar PLUGIN_NAME = \"rrweb/console@1\";\nvar getRecordConsolePlugin = function(options) {\n return {\n name: PLUGIN_NAME,\n observer: initLogObserver,\n options: options\n };\n};\n\nvar setImmediate = win['setImmediate'];\nvar builtInProp, cycle, schedulingQueue,\n ToString = Object.prototype.toString,\n timer = (typeof setImmediate !== 'undefined') ?\n function timer(fn) { return setImmediate(fn); } :\n setTimeout;\n\n// dammit, IE8.\ntry {\n Object.defineProperty({},'x',{});\n builtInProp = function builtInProp(obj,name,val,config) {\n return Object.defineProperty(obj,name,{\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n}\ncatch (err) {\n builtInProp = function builtInProp(obj,name,val) {\n obj[name] = val;\n return obj;\n };\n}\n\n// Note: using a queue instead of array for efficiency\nschedulingQueue = (function Queue() {\n var first, last, item;\n\n function Item(fn,self) {\n this.fn = fn;\n this.self = self;\n this.next = void 0;\n }\n\n return {\n add: function add(fn,self) {\n item = new Item(fn,self);\n if (last) {\n last.next = item;\n }\n else {\n first = item;\n }\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n})();\n\nfunction schedule(fn,self) {\n schedulingQueue.add(fn,self);\n if (!cycle) {\n cycle = timer(schedulingQueue.drain);\n }\n}\n\n// promise duck typing\nfunction isThenable(o) {\n var _then, oType = typeof o;\n\n if (o !== null && (oType === 'object' || oType === 'function')) {\n _then = o.then;\n }\n return typeof _then === 'function' ? _then : false;\n}\n\nfunction notify() {\n for (var i=0; i 0) {\n schedule(notify,self);\n }\n }\n }\n catch (err) {\n reject.call(new MakeDefWrapper(self),err);\n }\n}\n\nfunction reject(msg) {\n var self = this;\n\n // already triggered?\n if (self.triggered) { return; }\n\n self.triggered = true;\n\n // unwrap\n if (self.def) {\n self = self.def;\n }\n\n self.msg = msg;\n self.state = 2;\n if (self.chain.length > 0) {\n schedule(notify,self);\n }\n}\n\nfunction iteratePromises(Constructor,arr,resolver,rejecter) {\n for (var idx=0; idx 0) {\n ret[k] = v;\n }\n });\n return ret;\n};\n\n/*\n * this function returns a copy of object after truncating it. If\n * passed an Array or Object it will iterate through obj and\n * truncate all the values recursively.\n */\n_.truncate = function(obj, length) {\n var ret;\n\n if (typeof(obj) === 'string') {\n ret = obj.slice(0, length);\n } else if (_.isArray(obj)) {\n ret = [];\n _.each(obj, function(val) {\n ret.push(_.truncate(val, length));\n });\n } else if (_.isObject(obj)) {\n ret = {};\n _.each(obj, function(val, key) {\n ret[key] = _.truncate(val, length);\n });\n } else {\n ret = obj;\n }\n\n return ret;\n};\n\n_.JSONEncode = (function() {\n return function(mixed_val) {\n var value = mixed_val;\n var quote = function(string) {\n var escapable = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g; // eslint-disable-line no-control-regex\n var meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n };\n\n escapable.lastIndex = 0;\n return escapable.test(string) ?\n '\"' + string.replace(escapable, function(a) {\n var c = meta[a];\n return typeof c === 'string' ? c :\n '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' :\n '\"' + string + '\"';\n };\n\n var str = function(key, holder) {\n var gap = '';\n var indent = ' ';\n var i = 0; // The loop counter.\n var k = ''; // The member key.\n var v = ''; // The member value.\n var length = 0;\n var mind = gap;\n var partial = [];\n var value = holder[key];\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n // What happens next depends on the value's type.\n switch (typeof value) {\n case 'string':\n return quote(value);\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n\n return String(value);\n\n case 'object':\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null';\n }\n\n // Make an array to hold the partial results of stringifying this object value.\n gap += indent;\n partial = [];\n\n // Is the value an array?\n if (toString.apply(value) === '[object Array]') {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n v = partial.length === 0 ? '[]' :\n gap ? '[\\n' + gap +\n partial.join(',\\n' + gap) + '\\n' +\n mind + ']' :\n '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n // Iterate through all of the keys in the object.\n for (k in value) {\n if (hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n\n // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n v = partial.length === 0 ? '{}' :\n gap ? '{' + partial.join(',') + '' +\n mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n };\n\n // Make a fake root object containing our value under the key of ''.\n // Return the result of stringifying the value.\n return str('', {\n '': value\n });\n };\n})();\n\n/**\n * From https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js\n * Slightly modified to throw a real Error rather than a POJO\n */\n_.JSONDecode = (function() {\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t'\n },\n text,\n error = function(m) {\n var e = new SyntaxError(m);\n e.at = at;\n e.text = text;\n throw e;\n },\n next = function(c) {\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== ch) {\n error('Expected \\'' + c + '\\' instead of \\'' + ch + '\\'');\n }\n // Get the next character. When there are no more characters,\n // return the empty string.\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function() {\n // Parse a number value.\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n return number;\n }\n },\n\n string = function() {\n // Parse a string value.\n var hex,\n i,\n string = '',\n uffff;\n // When parsing for string values, we must look for \" and \\ characters.\n if (ch === '\"') {\n while (next()) {\n if (ch === '\"') {\n next();\n return string;\n }\n if (ch === '\\\\') {\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n } else {\n string += ch;\n }\n }\n }\n error('Bad string');\n },\n white = function() {\n // Skip whitespace.\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function() {\n // true, false, or null.\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error('Unexpected \"' + ch + '\"');\n },\n value, // Placeholder for the value function.\n array = function() {\n // Parse an array value.\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function() {\n // Parse an object value.\n var key,\n object = {};\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (Object.hasOwnProperty.call(object, key)) {\n error('Duplicate key \"' + key + '\"');\n }\n object[key] = value();\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function() {\n // Parse a JSON value. It could be an object, an array, a string,\n // a number, or a word.\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the\n // above functions and variables.\n return function(source) {\n var result;\n\n text = source;\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n return result;\n };\n})();\n\n_.base64Encode = function(data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = '',\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data = _.utf8Encode(data);\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n\n return enc;\n};\n\n_.utf8Encode = function(string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n var utftext = '',\n start,\n end;\n var stringl = 0,\n n;\n\n start = end = 0;\n stringl = string.length;\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n\n if (c1 < 128) {\n end++;\n } else if ((c1 > 127) && (c1 < 2048)) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length);\n }\n\n return utftext;\n};\n\n_.UUID = function() {\n try {\n // use native Crypto API when available\n return win['crypto']['randomUUID']();\n } catch (err) {\n // fall back to generating our own UUID\n // based on https://gist.github.com/scwood/3bff42cc005cc20ab7ec98f0d8e1d59d\n var uuid = new Array(36);\n for (var i = 0; i < 36; i++) {\n uuid[i] = Math.floor(Math.random() * 16);\n }\n uuid[14] = 4; // set bits 12-15 of time-high-and-version to 0100\n uuid[19] = uuid[19] &= -5; // set bit 6 of clock-seq-and-reserved to zero\n uuid[19] = uuid[19] |= (1 << 3); // set bit 7 of clock-seq-and-reserved to one\n uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';\n\n return _.map(uuid, function(x) {\n return x.toString(16);\n }).join('');\n }\n};\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false tracking data\nvar BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'ahrefssiteaudit',\n 'amazonbot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'chrome-lighthouse',\n 'facebookexternal',\n 'petalbot',\n 'pinterest',\n 'screaming frog',\n 'yahoo! slurp',\n 'yandex',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google'\n];\n_.isBlockedUA = function(ua) {\n var i;\n ua = ua.toLowerCase();\n for (i = 0; i < BLOCKED_UA_STRS.length; i++) {\n if (ua.indexOf(BLOCKED_UA_STRS[i]) !== -1) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {Object=} formdata\n * @param {string=} arg_separator\n */\n_.HTTPBuildQuery = function(formdata, arg_separator) {\n var use_val, use_key, tmp_arr = [];\n\n if (_.isUndefined(arg_separator)) {\n arg_separator = '&';\n }\n\n _.each(formdata, function(val, key) {\n use_val = encodeURIComponent(val.toString());\n use_key = encodeURIComponent(key);\n tmp_arr[tmp_arr.length] = use_key + '=' + use_val;\n });\n\n return tmp_arr.join(arg_separator);\n};\n\n_.getQueryParam = function(url, param) {\n // Expects a raw URL\n\n param = param.replace(/[[]/g, '\\\\[').replace(/[\\]]/g, '\\\\]');\n var regexS = '[\\\\?&]' + param + '=([^]*)',\n regex = new RegExp(regexS),\n results = regex.exec(url);\n if (results === null || (results && typeof(results[1]) !== 'string' && results[1].length)) {\n return '';\n } else {\n var result = results[1];\n try {\n result = decodeURIComponent(result);\n } catch(err) {\n console$1.error('Skipping decoding for malformed query param: ' + result);\n }\n return result.replace(/\\+/g, ' ');\n }\n};\n\n\n// _.cookie\n// Methods partially borrowed from quirksmode.org/js/cookies.html\n_.cookie = {\n get: function(name) {\n var nameEQ = name + '=';\n var ca = document$1.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n }\n return null;\n },\n\n parse: function(name) {\n var cookie;\n try {\n cookie = _.JSONDecode(_.cookie.get(name)) || {};\n } catch (err) {\n // noop\n }\n return cookie;\n },\n\n set_seconds: function(name, value, seconds, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '',\n expires = '',\n secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (seconds) {\n var date = new Date();\n date.setTime(date.getTime() + (seconds * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n document$1.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n },\n\n set: function(name, value, days, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '', expires = '', secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n var new_cookie_val = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n document$1.cookie = new_cookie_val;\n return new_cookie_val;\n },\n\n remove: function(name, is_cross_subdomain, domain_override) {\n _.cookie.set(name, '', -1, is_cross_subdomain, false, false, domain_override);\n }\n};\n\nvar _testStorageSupported = function (storage) {\n var supported = true;\n try {\n var key = '__mplss_' + cheap_guid(8),\n val = 'xyz';\n storage.setItem(key, val);\n if (storage.getItem(key) !== val) {\n supported = false;\n }\n storage.removeItem(key);\n } catch (err) {\n supported = false;\n }\n return supported;\n};\n\nvar _localStorageSupported = null;\nvar localStorageSupported = function(storage, forceCheck) {\n if (_localStorageSupported !== null && !forceCheck) {\n return _localStorageSupported;\n }\n return _localStorageSupported = _testStorageSupported(storage || win.localStorage);\n};\n\nvar _sessionStorageSupported = null;\nvar sessionStorageSupported = function(storage, forceCheck) {\n if (_sessionStorageSupported !== null && !forceCheck) {\n return _sessionStorageSupported;\n }\n return _sessionStorageSupported = _testStorageSupported(storage || win.sessionStorage);\n};\n\nfunction _storageWrapper(storage, name, is_supported_fn) {\n var log_error = function(msg) {\n console$1.error(name + ' error: ' + msg);\n };\n\n return {\n is_supported: function(forceCheck) {\n var supported = is_supported_fn(storage, forceCheck);\n if (!supported) {\n console$1.error(name + ' unsupported');\n }\n return supported;\n },\n error: log_error,\n get: function(key) {\n try {\n return storage.getItem(key);\n } catch (err) {\n log_error(err);\n }\n return null;\n },\n parse: function(key) {\n try {\n return _.JSONDecode(storage.getItem(key)) || {};\n } catch (err) {\n // noop\n }\n return null;\n },\n set: function(key, value) {\n try {\n storage.setItem(key, value);\n } catch (err) {\n log_error(err);\n }\n },\n remove: function(key) {\n try {\n storage.removeItem(key);\n } catch (err) {\n log_error(err);\n }\n }\n };\n}\n\n_.localStorage = _storageWrapper(win.localStorage, 'localStorage', localStorageSupported);\n_.sessionStorage = _storageWrapper(win.sessionStorage, 'sessionStorage', sessionStorageSupported);\n\n_.register_event = (function() {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from Mixpanel\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n var register_event = function(element, type, handler, oldSchool, useCapture) {\n if (!element) {\n console$1.error('No valid element provided to register_event');\n return;\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture);\n } else {\n var ontype = 'on' + type;\n var old_handler = element[ontype]; // can be undefined\n element[ontype] = makeHandler(element, handler, old_handler);\n }\n };\n\n function makeHandler(element, new_handler, old_handlers) {\n var handler = function(event) {\n event = event || fixEvent(win.event);\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined;\n }\n\n var ret = true;\n var old_result, new_result;\n\n if (_.isFunction(old_handlers)) {\n old_result = old_handlers(event);\n }\n new_result = new_handler.call(element, event);\n\n if ((false === old_result) || (false === new_result)) {\n ret = false;\n }\n\n return ret;\n };\n\n return handler;\n }\n\n function fixEvent(event) {\n if (event) {\n event.preventDefault = fixEvent.preventDefault;\n event.stopPropagation = fixEvent.stopPropagation;\n }\n return event;\n }\n fixEvent.preventDefault = function() {\n this.returnValue = false;\n };\n fixEvent.stopPropagation = function() {\n this.cancelBubble = true;\n };\n\n return register_event;\n})();\n\n\nvar TOKEN_MATCH_REGEX = new RegExp('^(\\\\w*)\\\\[(\\\\w+)([=~\\\\|\\\\^\\\\$\\\\*]?)=?\"?([^\\\\]\"]*)\"?\\\\]$');\n\n_.dom_query = (function() {\n /* document.getElementsBySelector(selector)\n - returns an array of element objects from the current document\n matching the CSS selector. Selectors can contain element names,\n class names and ids and can be nested. For example:\n\n elements = document.getElementsBySelector('div#main p a.external')\n\n Will return an array of all 'a' elements with 'external' in their\n class attribute that are contained inside 'p' elements that are\n contained inside the 'div' element which has id=\"main\"\n\n New in version 0.4: Support for CSS2 and CSS3 attribute selectors:\n See http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\n Version 0.4 - Simon Willison, March 25th 2003\n -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows\n -- Opera 7 fails\n\n Version 0.5 - Carl Sverre, Jan 7th 2013\n -- Now uses jQuery-esque `hasClass` for testing class name\n equality. This fixes a bug related to '-' characters being\n considered not part of a 'word' in regex.\n */\n\n function getAllChildren(e) {\n // Returns all children of element. Workaround required for IE5/Windows. Ugh.\n return e.all ? e.all : e.getElementsByTagName('*');\n }\n\n var bad_whitespace = /[\\t\\r\\n]/g;\n\n function hasClass(elem, selector) {\n var className = ' ' + selector + ' ';\n return ((' ' + elem.className + ' ').replace(bad_whitespace, ' ').indexOf(className) >= 0);\n }\n\n function getElementsBySelector(selector) {\n // Attempt to fail gracefully in lesser browsers\n if (!document$1.getElementsByTagName) {\n return [];\n }\n // Split selector in to tokens\n var tokens = selector.split(' ');\n var token, bits, tagName, found, foundCount, i, j, k, elements, currentContextIndex;\n var currentContext = [document$1];\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i].replace(/^\\s+/, '').replace(/\\s+$/, '');\n if (token.indexOf('#') > -1) {\n // Token is an ID selector\n bits = token.split('#');\n tagName = bits[0];\n var id = bits[1];\n var element = document$1.getElementById(id);\n if (!element || (tagName && element.nodeName.toLowerCase() != tagName)) {\n // element not found or tag with that ID not found, return false\n return [];\n }\n // Set currentContext to contain just this element\n currentContext = [element];\n continue; // Skip to next token\n }\n if (token.indexOf('.') > -1) {\n // Token contains a class selector\n bits = token.split('.');\n tagName = bits[0];\n var className = bits[1];\n if (!tagName) {\n tagName = '*';\n }\n // Get elements matching tag, filter them for class selector\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (found[j].className &&\n _.isString(found[j].className) && // some SVG elements have classNames which are not strings\n hasClass(found[j], className)\n ) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n continue; // Skip to next token\n }\n // Code to deal with attribute selectors\n var token_match = token.match(TOKEN_MATCH_REGEX);\n if (token_match) {\n tagName = token_match[1];\n var attrName = token_match[2];\n var attrOperator = token_match[3];\n var attrValue = token_match[4];\n if (!tagName) {\n tagName = '*';\n }\n // Grab all of the tagName elements within current context\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n var checkFunction; // This function will be used to filter the elements\n switch (attrOperator) {\n case '=': // Equality\n checkFunction = function(e) {\n return (e.getAttribute(attrName) == attrValue);\n };\n break;\n case '~': // Match one of space seperated words\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('\\\\b' + attrValue + '\\\\b')));\n };\n break;\n case '|': // Match start with value followed by optional hyphen\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('^' + attrValue + '-?')));\n };\n break;\n case '^': // Match starts with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) === 0);\n };\n break;\n case '$': // Match ends with value - fails with \"Warning\" in Opera 7\n checkFunction = function(e) {\n return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length);\n };\n break;\n case '*': // Match ends with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) > -1);\n };\n break;\n default:\n // Just test for existence of attribute\n checkFunction = function(e) {\n return e.getAttribute(attrName);\n };\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (checkFunction(found[j])) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);\n continue; // Skip to next token\n }\n // If we get here, token is JUST an element (not a class or ID selector)\n tagName = token;\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n elements = currentContext[j].getElementsByTagName(tagName);\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = found;\n }\n return currentContext;\n }\n\n return function(query) {\n if (_.isElement(query)) {\n return [query];\n } else if (_.isObject(query) && !_.isUndefined(query.length)) {\n return query;\n } else {\n return getElementsBySelector.call(this, query);\n }\n };\n})();\n\nvar CAMPAIGN_KEYWORDS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term', 'utm_id', 'utm_source_platform','utm_campaign_id', 'utm_creative_format', 'utm_marketing_tactic'];\nvar CLICK_IDS = ['dclid', 'fbclid', 'gclid', 'ko_click_id', 'li_fat_id', 'msclkid', 'sccid', 'ttclid', 'twclid', 'wbraid'];\n\n_.info = {\n campaignParams: function(default_value) {\n var kw = '',\n params = {};\n _.each(CAMPAIGN_KEYWORDS, function(kwkey) {\n kw = _.getQueryParam(document$1.URL, kwkey);\n if (kw.length) {\n params[kwkey] = kw;\n } else if (default_value !== undefined) {\n params[kwkey] = default_value;\n }\n });\n\n return params;\n },\n\n clickParams: function() {\n var id = '',\n params = {};\n _.each(CLICK_IDS, function(idkey) {\n id = _.getQueryParam(document$1.URL, idkey);\n if (id.length) {\n params[idkey] = id;\n }\n });\n\n return params;\n },\n\n marketingParams: function() {\n return _.extend(_.info.campaignParams(), _.info.clickParams());\n },\n\n searchEngine: function(referrer) {\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google';\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing';\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo';\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo';\n } else {\n return null;\n }\n },\n\n searchInfo: function(referrer) {\n var search = _.info.searchEngine(referrer),\n param = (search != 'yahoo') ? 'q' : 'p',\n ret = {};\n\n if (search !== null) {\n ret['$search_engine'] = search;\n\n var keyword = _.getQueryParam(referrer, param);\n if (keyword.length) {\n ret['mp_keyword'] = keyword;\n }\n }\n\n return ret;\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function(user_agent, vendor, opera) {\n vendor = vendor || ''; // vendor is undefined for at least IE9\n if (opera || _.includes(user_agent, ' OPR/')) {\n if (_.includes(user_agent, 'Mini')) {\n return 'Opera Mini';\n }\n return 'Opera';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (_.includes(user_agent, 'IEMobile') || _.includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile';\n } else if (_.includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet';\n } else if (_.includes(user_agent, 'Edge') || _.includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge';\n } else if (_.includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile';\n } else if (_.includes(user_agent, 'Whale/')) {\n // https://user-agents.net/browsers/whale-browser\n return 'Whale Browser';\n } else if (_.includes(user_agent, 'Chrome')) {\n return 'Chrome';\n } else if (_.includes(user_agent, 'CriOS')) {\n return 'Chrome iOS';\n } else if (_.includes(user_agent, 'UCWEB') || _.includes(user_agent, 'UCBrowser')) {\n return 'UC Browser';\n } else if (_.includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS';\n } else if (_.includes(vendor, 'Apple')) {\n if (_.includes(user_agent, 'Mobile')) {\n return 'Mobile Safari';\n }\n return 'Safari';\n } else if (_.includes(user_agent, 'Android')) {\n return 'Android Mobile';\n } else if (_.includes(user_agent, 'Konqueror')) {\n return 'Konqueror';\n } else if (_.includes(user_agent, 'Firefox')) {\n return 'Firefox';\n } else if (_.includes(user_agent, 'MSIE') || _.includes(user_agent, 'Trident/')) {\n return 'Internet Explorer';\n } else if (_.includes(user_agent, 'Gecko')) {\n return 'Mozilla';\n } else {\n return '';\n }\n },\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n */\n browserVersion: function(userAgent, vendor, opera) {\n var browser = _.info.browser(userAgent, vendor, opera);\n var versionRegexs = {\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\n 'Chrome': /Chrome\\/(\\d+(\\.\\d+)?)/,\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\n 'UC Browser' : /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\n 'Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Opera': /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\n 'Firefox': /Firefox\\/(\\d+(\\.\\d+)?)/,\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\n 'Konqueror': /Konqueror:(\\d+(\\.\\d+)?)/,\n 'BlackBerry': /BlackBerry (\\d+(\\.\\d+)?)/,\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\n 'Mozilla': /rv:(\\d+(\\.\\d+)?)/,\n 'Whale Browser': /Whale\\/(\\d+(\\.\\d+)?)/\n };\n var regex = versionRegexs[browser];\n if (regex === undefined) {\n return null;\n }\n var matches = userAgent.match(regex);\n if (!matches) {\n return null;\n }\n return parseFloat(matches[matches.length - 2]);\n },\n\n os: function() {\n var a = userAgent;\n if (/Windows/i.test(a)) {\n if (/Phone/.test(a) || /WPDesktop/.test(a)) {\n return 'Windows Phone';\n }\n return 'Windows';\n } else if (/(iPhone|iPad|iPod)/.test(a)) {\n return 'iOS';\n } else if (/Android/.test(a)) {\n return 'Android';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {\n return 'BlackBerry';\n } else if (/Mac/i.test(a)) {\n return 'Mac OS X';\n } else if (/Linux/.test(a)) {\n return 'Linux';\n } else if (/CrOS/.test(a)) {\n return 'Chrome OS';\n } else {\n return '';\n }\n },\n\n device: function(user_agent) {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone';\n } else if (/iPad/.test(user_agent)) {\n return 'iPad';\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch';\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (/Android/.test(user_agent)) {\n return 'Android';\n } else {\n return '';\n }\n },\n\n referringDomain: function(referrer) {\n var split = referrer.split('/');\n if (split.length >= 3) {\n return split[2];\n }\n return '';\n },\n\n currentUrl: function() {\n return win.location.href;\n },\n\n properties: function(extra_props) {\n if (typeof extra_props !== 'object') {\n extra_props = {};\n }\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera),\n '$referrer': document$1.referrer,\n '$referring_domain': _.info.referringDomain(document$1.referrer),\n '$device': _.info.device(userAgent)\n }), {\n '$current_url': _.info.currentUrl(),\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera),\n '$screen_height': screen.height,\n '$screen_width': screen.width,\n 'mp_lib': 'web',\n '$lib_version': Config.LIB_VERSION,\n '$insert_id': cheap_guid(),\n 'time': _.timestamp() / 1000 // epoch time in seconds\n }, _.strip_empty_properties(extra_props));\n },\n\n people_properties: function() {\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera)\n }), {\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera)\n });\n },\n\n mpPageViewProperties: function() {\n return _.strip_empty_properties({\n 'current_page_title': document$1.title,\n 'current_domain': win.location.hostname,\n 'current_url_path': win.location.pathname,\n 'current_url_protocol': win.location.protocol,\n 'current_url_search': win.location.search\n });\n }\n};\n\n/**\n * Returns a throttled function that will only run at most every `waitMs` and returns a promise that resolves with the next invocation.\n * Throttled calls will build up a batch of args and invoke the callback with all args since the last invocation.\n */\nvar batchedThrottle = function (fn, waitMs) {\n var timeoutPromise = null;\n var throttledItems = [];\n return function (item) {\n var self = this;\n throttledItems.push(item);\n\n if (!timeoutPromise) {\n timeoutPromise = new PromisePolyfill(function (resolve) {\n setTimeout(function () {\n var returnValue = fn.apply(self, [throttledItems]);\n timeoutPromise = null;\n throttledItems = [];\n resolve(returnValue);\n }, waitMs);\n });\n }\n return timeoutPromise;\n };\n};\n\nvar cheap_guid = function(maxlen) {\n var guid = Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10);\n return maxlen ? guid.substring(0, maxlen) : guid;\n};\n\n/**\n * Generates a W3C traceparent header for easy interop with distributed tracing systems i.e Open Telemetry\n * https://www.w3.org/TR/trace-context/#traceparent-header\n*/\nvar generateTraceparent = function() {\n var traceID = _.UUID().replace(/-/g, '');\n var parentID = _.UUID().replace(/-/g, '').substring(0, 16);\n\n // Sampled trace\n var traceFlags = '01';\n\n return '00-' + traceID + '-' + parentID + '-' + traceFlags;\n};\n\n// naive way to extract domain name (example.com) from full hostname (my.sub.example.com)\nvar SIMPLE_DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]*\\.[a-z]+$/i;\n// this next one attempts to account for some ccSLDs, e.g. extracting oxford.ac.uk from www.oxford.ac.uk\nvar DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z.]{2,6}$/i;\n/**\n * Attempts to extract main domain name from full hostname, using a few blunt heuristics. For\n * common TLDs like .com/.org that always have a simple SLD.TLD structure (example.com), we\n * simply extract the last two .-separated parts of the hostname (SIMPLE_DOMAIN_MATCH_REGEX).\n * For others, we attempt to account for short ccSLD+TLD combos (.ac.uk) with the legacy\n * DOMAIN_MATCH_REGEX (kept to maintain backwards compatibility with existing Mixpanel\n * integrations). The only _reliable_ way to extract domain from hostname is with an up-to-date\n * list like at https://publicsuffix.org/ so for cases that this helper fails at, the SDK\n * offers the 'cookie_domain' config option to set it explicitly.\n * @example\n * extract_domain('my.sub.example.com')\n * // 'example.com'\n */\nvar extract_domain = function(hostname) {\n var domain_regex = DOMAIN_MATCH_REGEX;\n var parts = hostname.split('.');\n var tld = parts[parts.length - 1];\n if (tld.length > 4 || tld === 'com' || tld === 'org') {\n domain_regex = SIMPLE_DOMAIN_MATCH_REGEX;\n }\n var matches = hostname.match(domain_regex);\n return matches ? matches[0] : '';\n};\n\n/**\n * Check whether we have network connection. default to true for browsers that don't support navigator.onLine (IE)\n * @returns {boolean}\n */\nvar isOnline = function() {\n var onLine = win.navigator['onLine'];\n return _.isUndefined(onLine) || onLine;\n};\n\nvar NOOP_FUNC = function () {};\n\nvar JSONStringify = null, JSONParse = null;\nif (typeof JSON !== 'undefined') {\n JSONStringify = JSON.stringify;\n JSONParse = JSON.parse;\n}\nJSONStringify = JSONStringify || _.JSONEncode;\nJSONParse = JSONParse || _.JSONDecode;\n\n/**\n * Determines if CompressionStream API should be used.\n * Returns false for Safari 16.4 and 16.5 which have breaking CompressionStream bugs.\n * https://bugs.webkit.org/show_bug.cgi?id=254021\n * fixed in 16.6 https://developer.apple.com/documentation/safari-release-notes/safari-16_6-release-notes\n */\nvar canUseCompressionStream = function(userAgent, vendor, opera) {\n if (!win.CompressionStream) {\n return false;\n }\n\n var browser = _.info.browser(userAgent, vendor, opera);\n var version = _.info.browserVersion(userAgent, vendor, opera);\n if (browser === 'Safari' || browser === 'Mobile Safari') {\n if (version >= 16.4 && version < 16.6) {\n return false;\n }\n }\n\n return true;\n};\n\n// UNMINIFIED EXPORTS (for closure compiler)\n_['info'] = _.info;\n_['info']['browser'] = _.info.browser;\n_['info']['browserVersion'] = _.info.browserVersion;\n_['info']['device'] = _.info.device;\n_['info']['properties'] = _.info.properties;\n_['isBlockedUA'] = _.isBlockedUA;\n_['isEmptyObject'] = _.isEmptyObject;\n_['isObject'] = _.isObject;\n_['JSONDecode'] = _.JSONDecode;\n_['JSONEncode'] = _.JSONEncode;\n_['toArray'] = _.toArray;\n_['NPO'] = NpoPromise;\n\nvar MIXPANEL_DB_NAME = 'mixpanelBrowserDb';\n\nvar RECORDING_EVENTS_STORE_NAME = 'mixpanelRecordingEvents';\nvar RECORDING_REGISTRY_STORE_NAME = 'mixpanelRecordingRegistry';\n\n// note: increment the version number when adding new object stores\nvar DB_VERSION = 1;\nvar OBJECT_STORES = [RECORDING_EVENTS_STORE_NAME, RECORDING_REGISTRY_STORE_NAME];\n\n/**\n * @type {import('./wrapper').StorageWrapper}\n */\nvar IDBStorageWrapper = function (storeName) {\n /**\n * @type {Promise|null}\n */\n this.dbPromise = null;\n this.storeName = storeName;\n};\n\nIDBStorageWrapper.prototype._openDb = function () {\n return new PromisePolyfill(function (resolve, reject) {\n var openRequest = win.indexedDB.open(MIXPANEL_DB_NAME, DB_VERSION);\n openRequest['onerror'] = function () {\n reject(openRequest.error);\n };\n\n openRequest['onsuccess'] = function () {\n resolve(openRequest.result);\n };\n\n openRequest['onupgradeneeded'] = function (ev) {\n var db = ev.target.result;\n\n OBJECT_STORES.forEach(function (storeName) {\n db.createObjectStore(storeName);\n });\n };\n });\n};\n\nIDBStorageWrapper.prototype.init = function () {\n if (!win.indexedDB) {\n return PromisePolyfill.reject('indexedDB is not supported in this browser');\n }\n\n if (!this.dbPromise) {\n this.dbPromise = this._openDb();\n }\n\n return this.dbPromise\n .then(function (dbOrError) {\n if (dbOrError instanceof win['IDBDatabase']) {\n return PromisePolyfill.resolve();\n } else {\n return PromisePolyfill.reject(dbOrError);\n }\n });\n};\n\nIDBStorageWrapper.prototype.isInitialized = function () {\n return !!this.dbPromise;\n};\n\n/**\n * @param {IDBTransactionMode} mode\n * @param {function(IDBObjectStore): void} storeCb\n */\nIDBStorageWrapper.prototype.makeTransaction = function (mode, storeCb) {\n var storeName = this.storeName;\n var doTransaction = function (db) {\n return new PromisePolyfill(function (resolve, reject) {\n var transaction = db.transaction(storeName, mode);\n transaction.oncomplete = function () {\n resolve(transaction);\n };\n transaction.onabort = transaction.onerror = function () {\n reject(transaction.error);\n };\n\n storeCb(transaction.objectStore(storeName));\n });\n };\n\n return this.dbPromise\n .then(doTransaction)\n .catch(function (err) {\n if (err && err['name'] === 'InvalidStateError') {\n // try reopening the DB if the connection is closed\n this.dbPromise = this._openDb();\n return this.dbPromise.then(doTransaction);\n } else {\n return PromisePolyfill.reject(err);\n }\n }.bind(this));\n};\n\nIDBStorageWrapper.prototype.setItem = function (key, value) {\n return this.makeTransaction('readwrite', function (objectStore) {\n objectStore.put(value, key);\n });\n};\n\nIDBStorageWrapper.prototype.getItem = function (key) {\n var req;\n return this.makeTransaction('readonly', function (objectStore) {\n req = objectStore.get(key);\n }).then(function () {\n return req.result;\n });\n};\n\nIDBStorageWrapper.prototype.removeItem = function (key) {\n return this.makeTransaction('readwrite', function (objectStore) {\n objectStore.delete(key);\n });\n};\n\nIDBStorageWrapper.prototype.getAll = function () {\n var req;\n return this.makeTransaction('readonly', function (objectStore) {\n req = objectStore.getAll();\n }).then(function () {\n return req.result;\n });\n};\n\n/**\n * GDPR utils\n *\n * The General Data Protection Regulation (GDPR) is a regulation in EU law on data protection\n * and privacy for all individuals within the European Union. It addresses the export of personal\n * data outside the EU. The GDPR aims primarily to give control back to citizens and residents\n * over their personal data and to simplify the regulatory environment for international business\n * by unifying the regulation within the EU.\n *\n * This set of utilities is intended to enable opt in/out functionality in the Mixpanel JS SDK.\n * These functions are used internally by the SDK and are not intended to be publicly exposed.\n */\n\n\n/**\n * A function used to track a Mixpanel event (e.g. MixpanelLib.track)\n * @callback trackFunction\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n */\n\n/** Public **/\n\nvar GDPR_DEFAULT_PERSISTENCE_PREFIX = '__mp_opt_in_out_';\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction optIn(token, options) {\n _optInOut(true, token, options);\n}\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-out cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-out cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-out cookie is set as secure or not\n */\nfunction optOut(token, options) {\n _optInOut(false, token, options);\n}\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} whether the user has opted in to the given opt type\n */\nfunction hasOptedIn(token, options) {\n return _getStorageValue(token, options) === '1';\n}\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the user has opted out of the given opt type\n */\nfunction hasOptedOut(token, options) {\n if (_hasDoNotTrackFlagOn(options)) {\n console$1.warn('This browser has \"Do Not Track\" enabled. This will prevent the Mixpanel SDK from sending any data. To ignore the \"Do Not Track\" browser setting, initialize the Mixpanel instance with the config \"ignore_dnt: true\"');\n return true;\n }\n var optedOut = _getStorageValue(token, options) === '0';\n if (optedOut) {\n console$1.warn('You are opted out of Mixpanel tracking. This will prevent the Mixpanel SDK from sending any data.');\n }\n return optedOut;\n}\n\n/**\n * Wrap a MixpanelLib method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelLib(method) {\n return _addOptOutCheck(method, function(name) {\n return this.get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelPeople method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelPeople(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelGroup method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelGroup(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction clearOptInOut(token, options) {\n options = options || {};\n _getStorage(options).remove(\n _getStorageKey(token, options), !!options.crossSubdomainCookie, options.cookieDomain\n );\n}\n\n/** Private **/\n\n/**\n * Get storage util\n * @param {Object} [options]\n * @param {string} [options.persistenceType]\n * @returns {object} either _.cookie or _.localstorage\n */\nfunction _getStorage(options) {\n options = options || {};\n return options.persistenceType === 'localStorage' ? _.localStorage : _.cookie;\n}\n\n/**\n * Get the name of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the name of the cookie for the given opt type\n */\nfunction _getStorageKey(token, options) {\n options = options || {};\n return (options.persistencePrefix || GDPR_DEFAULT_PERSISTENCE_PREFIX) + token;\n}\n\n/**\n * Get the value of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the value of the cookie for the given opt type\n */\nfunction _getStorageValue(token, options) {\n return _getStorage(options).get(_getStorageKey(token, options));\n}\n\n/**\n * Check whether the user has set the DNT/doNotTrack setting to true in their browser\n * @param {Object} [options]\n * @param {string} [options.window] - alternate window object to check; used to force various DNT settings in browser tests\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the DNT setting is true\n */\nfunction _hasDoNotTrackFlagOn(options) {\n if (options && options.ignoreDnt) {\n return false;\n }\n var win$1 = (options && options.window) || win;\n var nav = win$1['navigator'] || {};\n var hasDntOn = false;\n\n _.each([\n nav['doNotTrack'], // standard\n nav['msDoNotTrack'],\n win$1['doNotTrack']\n ], function(dntValue) {\n if (_.includes([true, 1, '1', 'yes'], dntValue)) {\n hasDntOn = true;\n }\n });\n\n return hasDntOn;\n}\n\n/**\n * Set cookie/localstorage for the user indicating that they are opted in or out for the given opt type\n * @param {boolean} optValue - whether to opt the user in or out for the given opt type\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction _optInOut(optValue, token, options) {\n if (!_.isString(token) || !token.length) {\n console$1.error('gdpr.' + (optValue ? 'optIn' : 'optOut') + ' called with an invalid token');\n return;\n }\n\n options = options || {};\n\n _getStorage(options).set(\n _getStorageKey(token, options),\n optValue ? 1 : 0,\n _.isNumber(options.cookieExpiration) ? options.cookieExpiration : null,\n !!options.crossSubdomainCookie,\n !!options.secureCookie,\n !!options.crossSiteCookie,\n options.cookieDomain\n );\n\n if (options.track && optValue) { // only track event if opting in (optValue=true)\n options.track(options.trackEventName || '$opt_in', options.trackProperties, {\n 'send_immediately': true\n });\n }\n}\n\n/**\n * Wrap a method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @param {function} getConfigValue - getter function for the Mixpanel API token and other options to be used with opt-out check\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction _addOptOutCheck(method, getConfigValue) {\n return function() {\n var optedOut = false;\n\n try {\n var token = getConfigValue.call(this, 'token');\n var ignoreDnt = getConfigValue.call(this, 'ignore_dnt');\n var persistenceType = getConfigValue.call(this, 'opt_out_tracking_persistence_type');\n var persistencePrefix = getConfigValue.call(this, 'opt_out_tracking_cookie_prefix');\n var win = getConfigValue.call(this, 'window'); // used to override window during browser tests\n\n if (token) { // if there was an issue getting the token, continue method execution as normal\n optedOut = hasOptedOut(token, {\n ignoreDnt: ignoreDnt,\n persistenceType: persistenceType,\n persistencePrefix: persistencePrefix,\n window: win\n });\n }\n } catch(err) {\n console$1.error('Unexpected error when checking tracking opt-out status: ' + err);\n }\n\n if (!optedOut) {\n return method.apply(this, arguments);\n }\n\n var callback = arguments[arguments.length - 1];\n if (typeof(callback) === 'function') {\n callback(0);\n }\n\n return;\n };\n}\n\nvar logger$6 = console_with_prefix('lock');\n\n/**\n * SharedLock: a mutex built on HTML5 localStorage, to ensure that only one browser\n * window/tab at a time will be able to access shared resources.\n *\n * Based on the Alur and Taubenfeld fast lock\n * (http://www.cs.rochester.edu/research/synchronization/pseudocode/fastlock.html)\n * with an added timeout to ensure there will be eventual progress in the event\n * that a window is closed in the middle of the callback.\n *\n * Implementation based on the original version by David Wolever (https://github.com/wolever)\n * at https://gist.github.com/wolever/5fd7573d1ef6166e8f8c4af286a69432.\n *\n * @example\n * const myLock = new SharedLock('some-key');\n * myLock.withLock(function() {\n * console.log('I hold the mutex!');\n * });\n *\n * @constructor\n */\nvar SharedLock = function(key, options) {\n options = options || {};\n\n this.storageKey = key;\n this.storage = options.storage || win.localStorage;\n this.pollIntervalMS = options.pollIntervalMS || 100;\n this.timeoutMS = options.timeoutMS || 2000;\n\n // dependency-inject promise implementation for testing purposes\n this.promiseImpl = options.promiseImpl || PromisePolyfill;\n};\n\n// pass in a specific pid to test contention scenarios; otherwise\n// it is chosen randomly for each acquisition attempt\nSharedLock.prototype.withLock = function(lockedCB, pid) {\n var Promise = this.promiseImpl;\n return new Promise(_.bind(function (resolve, reject) {\n var i = pid || (new Date().getTime() + '|' + Math.random());\n var startTime = new Date().getTime();\n var key = this.storageKey;\n var pollIntervalMS = this.pollIntervalMS;\n var timeoutMS = this.timeoutMS;\n var storage = this.storage;\n\n var keyX = key + ':X';\n var keyY = key + ':Y';\n var keyZ = key + ':Z';\n\n var delay = function(cb) {\n if (new Date().getTime() - startTime > timeoutMS) {\n logger$6.error('Timeout waiting for mutex on ' + key + '; clearing lock. [' + i + ']');\n storage.removeItem(keyZ);\n storage.removeItem(keyY);\n loop();\n return;\n }\n setTimeout(function() {\n try {\n cb();\n } catch(err) {\n reject(err);\n }\n }, pollIntervalMS * (Math.random() + 0.1));\n };\n\n var waitFor = function(predicate, cb) {\n if (predicate()) {\n cb();\n } else {\n delay(function() {\n waitFor(predicate, cb);\n });\n }\n };\n\n var getSetY = function() {\n var valY = storage.getItem(keyY);\n if (valY && valY !== i) { // if Y == i then this process already has the lock (useful for test cases)\n return false;\n } else {\n storage.setItem(keyY, i);\n if (storage.getItem(keyY) === i) {\n return true;\n } else {\n if (!localStorageSupported(storage, true)) {\n reject(new Error('localStorage support dropped while acquiring lock'));\n }\n return false;\n }\n }\n };\n\n var loop = function() {\n storage.setItem(keyX, i);\n\n waitFor(getSetY, function() {\n if (storage.getItem(keyX) === i) {\n criticalSection();\n return;\n }\n\n delay(function() {\n if (storage.getItem(keyY) !== i) {\n loop();\n return;\n }\n waitFor(function() {\n return !storage.getItem(keyZ);\n }, criticalSection);\n });\n });\n };\n\n var criticalSection = function() {\n storage.setItem(keyZ, '1');\n var removeLock = function () {\n storage.removeItem(keyZ);\n if (storage.getItem(keyY) === i) {\n storage.removeItem(keyY);\n }\n if (storage.getItem(keyX) === i) {\n storage.removeItem(keyX);\n }\n };\n\n lockedCB()\n .then(function (ret) {\n removeLock();\n resolve(ret);\n })\n .catch(function (err) {\n removeLock();\n reject(err);\n });\n };\n\n try {\n if (localStorageSupported(storage, true)) {\n loop();\n } else {\n throw new Error('localStorage support check failed');\n }\n } catch(err) {\n reject(err);\n }\n }, this));\n};\n\n/**\n * @type {import('./wrapper').StorageWrapper}\n */\nvar LocalStorageWrapper = function (storageOverride) {\n this.storage = storageOverride || win.localStorage;\n};\n\nLocalStorageWrapper.prototype.init = function () {\n return PromisePolyfill.resolve();\n};\n\nLocalStorageWrapper.prototype.isInitialized = function () {\n return true;\n};\n\nLocalStorageWrapper.prototype.setItem = function (key, value) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n try {\n this.storage.setItem(key, JSONStringify(value));\n } catch (e) {\n reject(e);\n }\n resolve();\n }, this));\n};\n\nLocalStorageWrapper.prototype.getItem = function (key) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n var item;\n try {\n item = JSONParse(this.storage.getItem(key));\n } catch (e) {\n reject(e);\n }\n resolve(item);\n }, this));\n};\n\nLocalStorageWrapper.prototype.removeItem = function (key) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n try {\n this.storage.removeItem(key);\n } catch (e) {\n reject(e);\n }\n resolve();\n }, this));\n};\n\nvar logger$5 = console_with_prefix('batch');\n\n/**\n * RequestQueue: queue for batching API requests with localStorage backup for retries.\n * Maintains an in-memory queue which represents the source of truth for the current\n * page, but also writes all items out to a copy in the browser's localStorage, which\n * can be read on subsequent pageloads and retried. For batchability, all the request\n * items in the queue should be of the same type (events, people updates, group updates)\n * so they can be sent in a single request to the same API endpoint.\n *\n * LocalStorage keying and locking: In order for reloads and subsequent pageloads of\n * the same site to access the same persisted data, they must share the same localStorage\n * key (for instance based on project token and queue type). Therefore access to the\n * localStorage entry is guarded by an asynchronous mutex (SharedLock) to prevent\n * simultaneously open windows/tabs from overwriting each other's data (which would lead\n * to data loss in some situations).\n * @constructor\n */\nvar RequestQueue = function (storageKey, options) {\n options = options || {};\n this.storageKey = storageKey;\n this.usePersistence = options.usePersistence;\n if (this.usePersistence) {\n this.queueStorage = options.queueStorage || new LocalStorageWrapper();\n this.lock = new SharedLock(storageKey, {\n storage: options.sharedLockStorage || win.localStorage,\n timeoutMS: options.sharedLockTimeoutMS,\n });\n }\n this.reportError = options.errorReporter || _.bind(logger$5.error, logger$5);\n\n this.pid = options.pid || null; // pass pid to test out storage lock contention scenarios\n\n this.memQueue = [];\n this.initialized = false;\n\n if (options.enqueueThrottleMs) {\n this.enqueuePersisted = batchedThrottle(_.bind(this._enqueuePersisted, this), options.enqueueThrottleMs);\n } else {\n this.enqueuePersisted = _.bind(function (queueEntry) {\n return this._enqueuePersisted([queueEntry]);\n }, this);\n }\n};\n\nRequestQueue.prototype.ensureInit = function () {\n if (this.initialized || !this.usePersistence) {\n return PromisePolyfill.resolve();\n }\n\n return this.queueStorage\n .init()\n .then(_.bind(function () {\n this.initialized = true;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error initializing queue persistence. Disabling persistence', err);\n this.initialized = true;\n this.usePersistence = false;\n }, this));\n};\n\n/**\n * Add one item to queues (memory and localStorage). The queued entry includes\n * the given item along with an auto-generated ID and a \"flush-after\" timestamp.\n * It is expected that the item will be sent over the network and dequeued\n * before the flush-after time; if this doesn't happen it is considered orphaned\n * (e.g., the original tab where it was enqueued got closed before it could be\n * sent) and the item can be sent by any tab that finds it in localStorage.\n *\n * The final callback param is called with a param indicating success or\n * failure of the enqueue operation; it is asynchronous because the localStorage\n * lock is asynchronous.\n */\nRequestQueue.prototype.enqueue = function (item, flushInterval) {\n var queueEntry = {\n 'id': cheap_guid(),\n 'flushAfter': new Date().getTime() + flushInterval * 2,\n 'payload': item\n };\n\n if (!this.usePersistence) {\n this.memQueue.push(queueEntry);\n return PromisePolyfill.resolve(true);\n } else {\n return this.enqueuePersisted(queueEntry);\n }\n};\n\nRequestQueue.prototype._enqueuePersisted = function (queueEntries) {\n var enqueueItem = _.bind(function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n return this.saveToStorage(storedQueue.concat(queueEntries));\n }, this))\n .then(_.bind(function (succeeded) {\n // only add to in-memory queue when storage succeeds\n if (succeeded) {\n this.memQueue = this.memQueue.concat(queueEntries);\n }\n\n return succeeded;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error enqueueing items', err, queueEntries);\n return false;\n }, this));\n }, this);\n\n return this.lock\n .withLock(enqueueItem, this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n return false;\n }, this));\n};\n\n/**\n * Read out the given number of queue entries. If this.memQueue\n * has fewer than batchSize items, then look for \"orphaned\" items\n * in the persisted queue (items where the 'flushAfter' time has\n * already passed).\n */\nRequestQueue.prototype.fillBatch = function (batchSize) {\n var batch = this.memQueue.slice(0, batchSize);\n if (this.usePersistence && batch.length < batchSize) {\n // don't need lock just to read events; localStorage is thread-safe\n // and the worst that could happen is a duplicate send of some\n // orphaned events, which will be deduplicated on the server side\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n if (storedQueue.length) {\n // item IDs already in batch; don't duplicate out of storage\n var idsInBatch = {}; // poor man's Set\n _.each(batch, function (item) {\n idsInBatch[item['id']] = true;\n });\n\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (new Date().getTime() > item['flushAfter'] && !idsInBatch[item['id']]) {\n item.orphaned = true;\n batch.push(item);\n if (batch.length >= batchSize) {\n break;\n }\n }\n }\n }\n\n return batch;\n }, this));\n } else {\n return PromisePolyfill.resolve(batch);\n }\n};\n\n/**\n * Remove items with matching 'id' from array (immutably)\n * also remove any item without a valid id (e.g., malformed\n * storage entries).\n */\nvar filterOutIDsAndInvalid = function (items, idSet) {\n var filteredItems = [];\n _.each(items, function (item) {\n if (item['id'] && !idSet[item['id']]) {\n filteredItems.push(item);\n }\n });\n return filteredItems;\n};\n\n/**\n * Remove items with matching IDs from both in-memory queue\n * and persisted queue\n */\nRequestQueue.prototype.removeItemsByID = function (ids) {\n var idSet = {}; // poor man's Set\n _.each(ids, function (id) {\n idSet[id] = true;\n });\n\n this.memQueue = filterOutIDsAndInvalid(this.memQueue, idSet);\n if (!this.usePersistence) {\n return PromisePolyfill.resolve(true);\n } else {\n var removeFromStorage = _.bind(function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n storedQueue = filterOutIDsAndInvalid(storedQueue, idSet);\n return this.saveToStorage(storedQueue);\n }, this))\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n // an extra check: did storage report success but somehow\n // the items are still there?\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (item['id'] && !!idSet[item['id']]) {\n throw new Error('Item not removed from storage');\n }\n }\n return true;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error removing items', err, ids);\n return false;\n }, this));\n }, this);\n\n return this.lock\n .withLock(removeFromStorage, this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n if (!localStorageSupported(this.lock.storage, true)) {\n // Looks like localStorage writes have stopped working sometime after\n // initialization (probably full), and so nobody can acquire locks\n // anymore. Consider it temporarily safe to remove items without the\n // lock, since nobody's writing successfully anyway.\n return removeFromStorage()\n .then(_.bind(function (success) {\n if (!success) {\n // OK, we couldn't even write out the smaller queue. Try clearing it\n // entirely.\n return this.queueStorage.removeItem(this.storageKey).then(function () {\n return success;\n });\n }\n return success;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error clearing queue', err);\n return false;\n }, this));\n } else {\n return false;\n }\n }, this));\n }\n};\n\n// internal helper for RequestQueue.updatePayloads\nvar updatePayloads = function (existingItems, itemsToUpdate) {\n var newItems = [];\n _.each(existingItems, function (item) {\n var id = item['id'];\n if (id in itemsToUpdate) {\n var newPayload = itemsToUpdate[id];\n if (newPayload !== null) {\n item['payload'] = newPayload;\n newItems.push(item);\n }\n } else {\n // no update\n newItems.push(item);\n }\n });\n return newItems;\n};\n\n/**\n * Update payloads of given items in both in-memory queue and\n * persisted queue. Items set to null are removed from queues.\n */\nRequestQueue.prototype.updatePayloads = function (itemsToUpdate) {\n this.memQueue = updatePayloads(this.memQueue, itemsToUpdate);\n if (!this.usePersistence) {\n return PromisePolyfill.resolve(true);\n } else {\n return this.lock\n .withLock(_.bind(function lockAcquired() {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n storedQueue = updatePayloads(storedQueue, itemsToUpdate);\n return this.saveToStorage(storedQueue);\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error updating items', itemsToUpdate, err);\n return false;\n }, this));\n }, this), this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n return false;\n }, this));\n }\n};\n\n/**\n * Read and parse items array from localStorage entry, handling\n * malformed/missing data if necessary.\n */\nRequestQueue.prototype.readFromStorage = function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.getItem(this.storageKey);\n }, this))\n .then(_.bind(function (storageEntry) {\n if (storageEntry) {\n if (!_.isArray(storageEntry)) {\n this.reportError('Invalid storage entry:', storageEntry);\n storageEntry = null;\n }\n }\n return storageEntry || [];\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error retrieving queue', err);\n return [];\n }, this));\n};\n\n/**\n * Serialize the given items array to localStorage.\n */\nRequestQueue.prototype.saveToStorage = function (queue) {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.setItem(this.storageKey, queue);\n }, this))\n .then(function () {\n return true;\n })\n .catch(_.bind(function (err) {\n this.reportError('Error saving queue', err);\n return false;\n }, this));\n};\n\n/**\n * Clear out queues (memory and localStorage).\n */\nRequestQueue.prototype.clear = function () {\n this.memQueue = [];\n\n if (this.usePersistence) {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.removeItem(this.storageKey);\n }, this));\n } else {\n return PromisePolyfill.resolve();\n }\n};\n\n// maximum interval between request retries after exponential backoff\nvar MAX_RETRY_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes\n\nvar logger$4 = console_with_prefix('batch');\n\n/**\n * RequestBatcher: manages the queueing, flushing, retry etc of requests of one\n * type (events, people, groups).\n * Uses RequestQueue to manage the backing store.\n * @constructor\n */\nvar RequestBatcher = function(storageKey, options) {\n this.errorReporter = options.errorReporter;\n this.queue = new RequestQueue(storageKey, {\n errorReporter: _.bind(this.reportError, this),\n queueStorage: options.queueStorage,\n sharedLockStorage: options.sharedLockStorage,\n sharedLockTimeoutMS: options.sharedLockTimeoutMS,\n usePersistence: options.usePersistence,\n enqueueThrottleMs: options.enqueueThrottleMs\n });\n\n this.libConfig = options.libConfig;\n this.sendRequest = options.sendRequestFunc;\n this.beforeSendHook = options.beforeSendHook;\n this.stopAllBatching = options.stopAllBatchingFunc;\n\n // seed variable batch size + flush interval with configured values\n this.batchSize = this.libConfig['batch_size'];\n this.flushInterval = this.libConfig['batch_flush_interval_ms'];\n\n this.stopped = !this.libConfig['batch_autostart'];\n this.consecutiveRemovalFailures = 0;\n\n // extra client-side dedupe\n this.itemIdsSentSuccessfully = {};\n\n // Make the flush occur at the interval specified by flushIntervalMs, default behavior will attempt consecutive flushes\n // as long as the queue is not empty. This is useful for high-frequency events like Session Replay where we might end up\n // in a request loop and get ratelimited by the server.\n this.flushOnlyOnInterval = options.flushOnlyOnInterval || false;\n\n this._flushPromise = null;\n};\n\n/**\n * Add one item to queue.\n */\nRequestBatcher.prototype.enqueue = function(item) {\n return this.queue.enqueue(item, this.flushInterval);\n};\n\n/**\n * Start flushing batches at the configured time interval. Must call\n * this method upon SDK init in order to send anything over the network.\n */\nRequestBatcher.prototype.start = function() {\n this.stopped = false;\n this.consecutiveRemovalFailures = 0;\n return this.flush();\n};\n\n/**\n * Stop flushing batches. Can be restarted by calling start().\n */\nRequestBatcher.prototype.stop = function() {\n this.stopped = true;\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n this.timeoutID = null;\n }\n};\n\n/**\n * Clear out queue.\n */\nRequestBatcher.prototype.clear = function() {\n return this.queue.clear();\n};\n\n/**\n * Restore batch size configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetBatchSize = function() {\n this.batchSize = this.libConfig['batch_size'];\n};\n\n/**\n * Restore flush interval time configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetFlush = function() {\n this.scheduleFlush(this.libConfig['batch_flush_interval_ms']);\n};\n\n/**\n * Schedule the next flush in the given number of milliseconds.\n */\nRequestBatcher.prototype.scheduleFlush = function(flushMS) {\n this.flushInterval = flushMS;\n if (!this.stopped) { // don't schedule anymore if batching has been stopped\n this.timeoutID = setTimeout(_.bind(function() {\n if (!this.stopped) {\n this._flushPromise = this.flush();\n }\n }, this), this.flushInterval);\n }\n};\n\n/**\n * Send a request using the sendRequest callback, but promisified.\n * TODO: sendRequest should be promisified in the first place.\n */\nRequestBatcher.prototype.sendRequestPromise = function(data, options) {\n return new PromisePolyfill(_.bind(function(resolve) {\n this.sendRequest(data, options, resolve);\n }, this));\n};\n\n\n/**\n * Flush one batch to network. Depending on success/failure modes, it will either\n * remove the batch from the queue or leave it in for retry, and schedule the next\n * flush. In cases of most network or API failures, it will back off exponentially\n * when retrying.\n * @param {Object} [options]\n * @param {boolean} [options.sendBeacon] - whether to send batch with\n * navigator.sendBeacon (only useful for sending batches before page unloads, as\n * sendBeacon offers no callbacks or status indications)\n */\nRequestBatcher.prototype.flush = function(options) {\n if (this.requestInProgress) {\n logger$4.log('Flush: Request already in progress');\n return PromisePolyfill.resolve();\n }\n\n this.requestInProgress = true;\n\n options = options || {};\n var timeoutMS = this.libConfig['batch_request_timeout_ms'];\n var startTime = new Date().getTime();\n var currentBatchSize = this.batchSize;\n\n return this.queue.fillBatch(currentBatchSize)\n .then(_.bind(function(batch) {\n\n // if there's more items in the queue than the batch size, attempt\n // to flush again after the current batch is done.\n var attemptSecondaryFlush = batch.length === currentBatchSize;\n var dataForRequest = [];\n var transformedItems = {};\n _.each(batch, function(item) {\n var payload = item['payload'];\n if (this.beforeSendHook && !item.orphaned) {\n payload = this.beforeSendHook(payload);\n }\n if (payload) {\n // mp_sent_by_lib_version prop captures which lib version actually\n // sends each event (regardless of which version originally queued\n // it for sending)\n if (payload['event'] && payload['properties']) {\n payload['properties'] = _.extend(\n {},\n payload['properties'],\n {'mp_sent_by_lib_version': Config.LIB_VERSION}\n );\n }\n var addPayload = true;\n var itemId = item['id'];\n if (itemId) {\n if ((this.itemIdsSentSuccessfully[itemId] || 0) > 5) {\n this.reportError('[dupe] item ID sent too many times, not sending', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n addPayload = false;\n }\n } else {\n this.reportError('[dupe] found item with no ID', {item: item});\n }\n\n if (addPayload) {\n dataForRequest.push(payload);\n }\n }\n transformedItems[item['id']] = payload;\n }, this);\n\n if (dataForRequest.length < 1) {\n this.requestInProgress = false;\n this.resetFlush();\n return PromisePolyfill.resolve(); // nothing to do\n }\n\n var removeItemsFromQueue = _.bind(function () {\n return this.queue\n .removeItemsByID(\n _.map(batch, function (item) {\n return item['id'];\n })\n )\n .then(_.bind(function (succeeded) {\n // client-side dedupe\n _.each(batch, _.bind(function(item) {\n var itemId = item['id'];\n if (itemId) {\n this.itemIdsSentSuccessfully[itemId] = this.itemIdsSentSuccessfully[itemId] || 0;\n this.itemIdsSentSuccessfully[itemId]++;\n if (this.itemIdsSentSuccessfully[itemId] > 5) {\n this.reportError('[dupe] item ID sent too many times', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n }\n } else {\n this.reportError('[dupe] found item with no ID while removing', {item: item});\n }\n }, this));\n\n if (succeeded) {\n this.consecutiveRemovalFailures = 0;\n if (this.flushOnlyOnInterval && !attemptSecondaryFlush) {\n this.resetFlush(); // schedule next batch with a delay\n return PromisePolyfill.resolve();\n } else {\n return this.flush(); // handle next batch if the queue isn't empty\n }\n } else {\n if (++this.consecutiveRemovalFailures > 5) {\n this.reportError('Too many queue failures; disabling batching system.');\n this.stopAllBatching();\n } else {\n this.resetFlush();\n }\n return PromisePolyfill.resolve();\n }\n }, this));\n }, this);\n\n var batchSendCallback = _.bind(function(res) {\n this.requestInProgress = false;\n\n try {\n\n // handle API response in a try-catch to make sure we can reset the\n // flush operation if something goes wrong\n\n if (options.unloading) {\n // update persisted data to include hook transformations\n return this.queue.updatePayloads(transformedItems);\n } else if (\n _.isObject(res) &&\n res.error === 'timeout' &&\n new Date().getTime() - startTime >= timeoutMS\n ) {\n this.reportError('Network timeout; retrying');\n return this.flush();\n } else if (\n _.isObject(res) &&\n (\n res.httpStatusCode >= 500\n || res.httpStatusCode === 429\n || (res.httpStatusCode <= 0 && !isOnline())\n || res.error === 'timeout'\n )\n ) {\n // network or API error, or 429 Too Many Requests, retry\n var retryMS = this.flushInterval * 2;\n if (res.retryAfter) {\n retryMS = (parseInt(res.retryAfter, 10) * 1000) || retryMS;\n }\n retryMS = Math.min(MAX_RETRY_INTERVAL_MS, retryMS);\n this.reportError('Error; retry in ' + retryMS + ' ms');\n this.scheduleFlush(retryMS);\n return PromisePolyfill.resolve();\n } else if (_.isObject(res) && res.httpStatusCode === 413) {\n // 413 Payload Too Large\n if (batch.length > 1) {\n var halvedBatchSize = Math.max(1, Math.floor(currentBatchSize / 2));\n this.batchSize = Math.min(this.batchSize, halvedBatchSize, batch.length - 1);\n this.reportError('413 response; reducing batch size to ' + this.batchSize);\n this.resetFlush();\n return PromisePolyfill.resolve();\n } else {\n this.reportError('Single-event request too large; dropping', batch);\n this.resetBatchSize();\n return removeItemsFromQueue();\n }\n } else {\n // successful network request+response; remove each item in batch from queue\n // (even if it was e.g. a 400, in which case retrying won't help)\n return removeItemsFromQueue();\n }\n } catch(err) {\n this.reportError('Error handling API response', err);\n this.resetFlush();\n }\n }, this);\n var requestOptions = {\n method: 'POST',\n verbose: true,\n ignore_json_errors: true, // eslint-disable-line camelcase\n timeout_ms: timeoutMS // eslint-disable-line camelcase\n };\n if (options.unloading) {\n requestOptions.transport = 'sendBeacon';\n }\n logger$4.log('MIXPANEL REQUEST:', dataForRequest);\n return this.sendRequestPromise(dataForRequest, requestOptions).then(batchSendCallback);\n }, this))\n .catch(_.bind(function(err) {\n this.reportError('Error flushing request queue', err);\n this.resetFlush();\n }, this));\n};\n\n/**\n * Log error to global logger and optional user-defined logger.\n */\nRequestBatcher.prototype.reportError = function(msg, err) {\n logger$4.error.apply(logger$4.error, arguments);\n if (this.errorReporter) {\n try {\n if (!(err instanceof Error)) {\n err = new Error(msg);\n }\n this.errorReporter(msg, err);\n } catch(err) {\n logger$4.error(err);\n }\n }\n};\n\n/**\n * @param {import('./session-recording').SerializedRecording} serializedRecording\n * @returns {boolean}\n */\nvar isRecordingExpired = function(serializedRecording) {\n var now = Date.now();\n return !serializedRecording || now > serializedRecording['maxExpires'] || now > serializedRecording['idleExpires'];\n};\n\nvar RECORD_ENQUEUE_THROTTLE_MS = 250;\n\nvar logger$3 = console_with_prefix('recorder');\nvar CompressionStream = win['CompressionStream'];\n\nvar RECORDER_BATCHER_LIB_CONFIG = {\n 'batch_size': 1000,\n 'batch_flush_interval_ms': 10 * 1000,\n 'batch_request_timeout_ms': 90 * 1000,\n 'batch_autostart': true\n};\n\nvar ACTIVE_SOURCES = new Set([\n IncrementalSource.MouseMove,\n IncrementalSource.MouseInteraction,\n IncrementalSource.Scroll,\n IncrementalSource.ViewportResize,\n IncrementalSource.Input,\n IncrementalSource.TouchMove,\n IncrementalSource.MediaInteraction,\n IncrementalSource.Drag,\n IncrementalSource.Selection,\n]);\n\nfunction isUserEvent(ev) {\n return ev.type === EventType.IncrementalSnapshot && ACTIVE_SOURCES.has(ev.data.source);\n}\n\n/**\n * @typedef {Object} SerializedRecording\n * @property {number} idleExpires\n * @property {number} maxExpires\n * @property {number} replayStartTime\n * @property {number} lastEventTimestamp\n * @property {number} seqNo\n * @property {string} batchStartUrl\n * @property {string} replayId\n * @property {string} tabId\n * @property {string} replayStartUrl\n */\n\n/**\n * @typedef {Object} SessionRecordingOptions\n * @property {Object} [options.mixpanelInstance] - reference to the core MixpanelLib\n * @property {String} [options.replayId] - unique uuid for a single replay\n * @property {Function} [options.onIdleTimeout] - callback when a recording reaches idle timeout\n * @property {Function} [options.onMaxLengthReached] - callback when a recording reaches its maximum length\n * @property {Function} [options.rrwebRecord] - rrweb's `record` function\n * @property {Function} [options.onBatchSent] - callback when a batch of events is sent to the server\n * @property {Storage} [options.sharedLockStorage] - optional storage for shared lock, used for test dependency injection\n * optional properties for deserialization:\n * @property {number} idleExpires\n * @property {number} maxExpires\n * @property {number} replayStartTime\n * @property {number} lastEventTimestamp - the unix timestamp of the last recorded event from rrweb\n * @property {number} seqNo\n * @property {string} batchStartUrl\n * @property {string} replayStartUrl\n */\n\n/**\n * @typedef {Object} UserIdInfo\n * @property {string} distinct_id\n * @property {string} user_id\n * @property {string} device_id\n */\n\n\n/**\n * This class encapsulates a single session recording and its lifecycle.\n * @param {SessionRecordingOptions} options\n */\nvar SessionRecording = function(options) {\n this._mixpanel = options.mixpanelInstance;\n this._onIdleTimeout = options.onIdleTimeout || NOOP_FUNC;\n this._onMaxLengthReached = options.onMaxLengthReached || NOOP_FUNC;\n this._onBatchSent = options.onBatchSent || NOOP_FUNC;\n this._rrwebRecord = options.rrwebRecord || null;\n\n // internal rrweb stopRecording function\n this._stopRecording = null;\n this.replayId = options.replayId;\n\n this.batchStartUrl = options.batchStartUrl || null;\n this.replayStartUrl = options.replayStartUrl || null;\n this.idleExpires = options.idleExpires || null;\n this.maxExpires = options.maxExpires || null;\n this.replayStartTime = options.replayStartTime || null;\n this.lastEventTimestamp = options.lastEventTimestamp || null;\n this.seqNo = options.seqNo || 0;\n\n this.idleTimeoutId = null;\n this.maxTimeoutId = null;\n\n this.recordMaxMs = MAX_RECORDING_MS;\n this.recordMinMs = 0;\n\n // disable persistence if localStorage is not supported\n // request-queue will automatically disable persistence if indexedDB fails to initialize\n var usePersistence = localStorageSupported(options.sharedLockStorage, true) && !this.getConfig('disable_persistence');\n\n // each replay has its own batcher key to avoid conflicts between rrweb events of different recordings\n this.batcherKey = '__mprec_' + this.getConfig('name') + '_' + this.getConfig('token') + '_' + this.replayId;\n this.queueStorage = new IDBStorageWrapper(RECORDING_EVENTS_STORE_NAME);\n this.batcher = new RequestBatcher(this.batcherKey, {\n errorReporter: this.reportError.bind(this),\n flushOnlyOnInterval: true,\n libConfig: RECORDER_BATCHER_LIB_CONFIG,\n sendRequestFunc: this.flushEventsWithOptOut.bind(this),\n queueStorage: this.queueStorage,\n sharedLockStorage: options.sharedLockStorage,\n usePersistence: usePersistence,\n stopAllBatchingFunc: this.stopRecording.bind(this),\n\n // increased throttle and shared lock timeout because recording events are very high frequency.\n // this will minimize the amount of lock contention between enqueued events.\n // for session recordings there is a lock for each tab anyway, so there's no risk of deadlock between tabs.\n enqueueThrottleMs: RECORD_ENQUEUE_THROTTLE_MS,\n sharedLockTimeoutMS: 10 * 1000,\n });\n};\n\n/**\n * @returns {UserIdInfo}\n */\nSessionRecording.prototype.getUserIdInfo = function () {\n if (this.finalFlushUserIdInfo) {\n return this.finalFlushUserIdInfo;\n }\n\n var userIdInfo = {\n 'distinct_id': String(this._mixpanel.get_distinct_id()),\n };\n\n // send ID management props if they exist\n var deviceId = this._mixpanel.get_property('$device_id');\n if (deviceId) {\n userIdInfo['$device_id'] = deviceId;\n }\n var userId = this._mixpanel.get_property('$user_id');\n if (userId) {\n userIdInfo['$user_id'] = userId;\n }\n return userIdInfo;\n};\n\nSessionRecording.prototype.unloadPersistedData = function () {\n this.batcher.stop();\n\n return this.queueStorage.init().catch(function () {\n this.reportError('Error initializing IndexedDB storage for unloading persisted data.');\n }.bind(this)).then(function () {\n // if the recording is too short, just delete any stored events without flushing\n if (this.getDurationMs() < this._getRecordMinMs()) {\n return this.queueStorage.removeItem(this.batcherKey);\n }\n\n return this.batcher.flush()\n .then(function () {\n return this.queueStorage.removeItem(this.batcherKey);\n }.bind(this));\n }.bind(this));\n};\n\nSessionRecording.prototype.getConfig = function(configVar) {\n return this._mixpanel.get_config(configVar);\n};\n\n// Alias for getConfig, used by the common addOptOutCheckMixpanelLib function which\n// reaches into this class instance and expects the snake case version of the function.\n// eslint-disable-next-line camelcase\nSessionRecording.prototype.get_config = function(configVar) {\n return this.getConfig(configVar);\n};\n\nSessionRecording.prototype.startRecording = function (shouldStopBatcher) {\n if (this._rrwebRecord === null) {\n this.reportError('rrweb record function not provided. ');\n return;\n }\n\n if (this._stopRecording !== null) {\n logger$3.log('Recording already in progress, skipping startRecording.');\n return;\n }\n\n this.recordMaxMs = this.getConfig('record_max_ms');\n if (this.recordMaxMs > MAX_RECORDING_MS) {\n this.recordMaxMs = MAX_RECORDING_MS;\n logger$3.critical('record_max_ms cannot be greater than ' + MAX_RECORDING_MS + 'ms. Capping value.');\n }\n\n if (!this.maxExpires) {\n this.maxExpires = new Date().getTime() + this.recordMaxMs;\n }\n\n this.recordMinMs = this._getRecordMinMs();\n\n if (!this.replayStartTime) {\n this.replayStartTime = new Date().getTime();\n this.batchStartUrl = _.info.currentUrl();\n this.replayStartUrl = _.info.currentUrl();\n }\n\n if (shouldStopBatcher || this.recordMinMs > 0) {\n // the primary case for shouldStopBatcher is when we're starting recording after a reset\n // and don't want to send anything over the network until there's\n // actual user activity\n // this also applies if the minimum recording length has not been hit yet\n // so that we don't send data until we know the recording will be long enough\n this.batcher.stop();\n } else {\n this.batcher.start();\n }\n\n var resetIdleTimeout = function () {\n clearTimeout(this.idleTimeoutId);\n var idleTimeoutMs = this.getConfig('record_idle_timeout_ms');\n this.idleTimeoutId = setTimeout(this._onIdleTimeout, idleTimeoutMs);\n this.idleExpires = new Date().getTime() + idleTimeoutMs;\n }.bind(this);\n resetIdleTimeout();\n\n var blockSelector = this.getConfig('record_block_selector');\n if (blockSelector === '' || blockSelector === null) {\n blockSelector = undefined;\n }\n\n try {\n this._stopRecording = this._rrwebRecord({\n 'emit': function (ev) {\n if (this.idleExpires && this.idleExpires < ev.timestamp) {\n this._onIdleTimeout();\n return;\n }\n if (isUserEvent(ev)) {\n if (this.batcher.stopped && new Date().getTime() - this.replayStartTime >= this.recordMinMs) {\n // start flushing again after user activity\n this.batcher.start();\n }\n resetIdleTimeout();\n }\n // promise only used to await during tests\n this.__enqueuePromise = this.batcher.enqueue(ev);\n\n // Capture the timestamp of the last event for duration calculation.\n if (this.lastEventTimestamp === null || ev.timestamp > this.lastEventTimestamp) {\n this.lastEventTimestamp = ev.timestamp;\n }\n }.bind(this),\n 'blockClass': this.getConfig('record_block_class'),\n 'blockSelector': blockSelector,\n 'collectFonts': this.getConfig('record_collect_fonts'),\n 'dataURLOptions': { // canvas image options (https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL)\n 'type': 'image/webp',\n 'quality': 0.6\n },\n 'maskAllInputs': true,\n 'maskTextClass': this.getConfig('record_mask_text_class'),\n 'maskTextSelector': this.getConfig('record_mask_text_selector'),\n 'recordCanvas': this.getConfig('record_canvas'),\n 'sampling': {\n 'canvas': 15\n },\n 'plugins': this.getConfig('record_console') ? [\n getRecordConsolePlugin({\n stringifyOptions: {\n stringLengthLimit: 1000,\n numOfKeysLimit: 50,\n depthOfLimit: 2\n }\n })\n ] : []\n });\n } catch (err) {\n this.reportError('Unexpected error when starting rrweb recording.', err);\n }\n\n if (typeof this._stopRecording !== 'function') {\n this.reportError('rrweb failed to start, skipping this recording.');\n this._stopRecording = null;\n this.stopRecording(); // stop batcher looping and any timeouts\n return;\n }\n\n var maxTimeoutMs = this.maxExpires - new Date().getTime();\n this.maxTimeoutId = setTimeout(this._onMaxLengthReached.bind(this), maxTimeoutMs);\n};\n\nSessionRecording.prototype.stopRecording = function (skipFlush) {\n // store the user ID info in case this is getting called in mixpanel.reset()\n this.finalFlushUserIdInfo = this.getUserIdInfo();\n\n if (!this.isRrwebStopped()) {\n try {\n this._stopRecording();\n } catch (err) {\n this.reportError('Error with rrweb stopRecording', err);\n }\n this._stopRecording = null;\n }\n\n var flushPromise;\n if (this.batcher.stopped) {\n // never got user activity to flush after reset, so just clear the batcher\n flushPromise = this.batcher.clear();\n } else if (!skipFlush) {\n // flush any remaining events from running batcher\n flushPromise = this.batcher.flush();\n }\n this.batcher.stop();\n\n clearTimeout(this.idleTimeoutId);\n clearTimeout(this.maxTimeoutId);\n return flushPromise;\n};\n\nSessionRecording.prototype.isRrwebStopped = function () {\n return this._stopRecording === null;\n};\n\n\n/**\n * Flushes the current batch of events to the server, but passes an opt-out callback to make sure\n * we stop recording and dump any queued events if the user has opted out.\n */\nSessionRecording.prototype.flushEventsWithOptOut = function (data, options, cb) {\n var onOptOut = function (code) {\n // addOptOutCheckMixpanelLib invokes this function with code=0 when the user has opted out\n if (code === 0) {\n this.stopRecording();\n cb({error: 'Tracking has been opted out, stopping recording.'});\n }\n }.bind(this);\n\n this._flushEvents(data, options, cb, onOptOut);\n};\n\n/**\n * @returns {SerializedRecording}\n */\nSessionRecording.prototype.serialize = function () {\n // don't break if mixpanel instance was destroyed at some point\n var tabId;\n try {\n tabId = this._mixpanel.get_tab_id();\n } catch (e) {\n this.reportError('Error getting tab ID for serialization ', e);\n tabId = null;\n }\n\n return {\n 'replayId': this.replayId,\n 'seqNo': this.seqNo,\n 'replayStartTime': this.replayStartTime,\n 'batchStartUrl': this.batchStartUrl,\n 'replayStartUrl': this.replayStartUrl,\n 'lastEventTimestamp': this.lastEventTimestamp,\n 'idleExpires': this.idleExpires,\n 'maxExpires': this.maxExpires,\n 'tabId': tabId,\n };\n};\n\n\n/**\n * @static\n * @param {SerializedRecording} serializedRecording\n * @param {SessionRecordingOptions} options\n * @returns {SessionRecording}\n */\nSessionRecording.deserialize = function (serializedRecording, options) {\n var recording = new SessionRecording(_.extend({}, options, {\n replayId: serializedRecording['replayId'],\n batchStartUrl: serializedRecording['batchStartUrl'],\n replayStartUrl: serializedRecording['replayStartUrl'],\n idleExpires: serializedRecording['idleExpires'],\n maxExpires: serializedRecording['maxExpires'],\n replayStartTime: serializedRecording['replayStartTime'],\n lastEventTimestamp: serializedRecording['lastEventTimestamp'],\n seqNo: serializedRecording['seqNo'],\n sharedLockStorage: options.sharedLockStorage,\n }));\n\n return recording;\n};\n\nSessionRecording.prototype._sendRequest = function(currentReplayId, reqParams, reqBody, callback) {\n var onSuccess = function (response, responseBody) {\n // Update batch specific props only if the request was successful to guarantee ordering.\n // RequestBatcher will always flush the next batch after the previous one succeeds.\n // extra check to see if the replay ID has changed so that we don't increment the seqNo on the wrong replay\n if (response.status === 200 && this.replayId === currentReplayId) {\n this.seqNo++;\n this.batchStartUrl = _.info.currentUrl();\n }\n\n this._onBatchSent();\n callback({\n status: 0,\n httpStatusCode: response.status,\n responseBody: responseBody,\n retryAfter: response.headers.get('Retry-After')\n });\n }.bind(this);\n var apiHost = (this._mixpanel.get_api_host && this._mixpanel.get_api_host('record')) || this.getConfig('api_host');\n win['fetch'](apiHost + '/' + this.getConfig('api_routes')['record'] + '?' + new URLSearchParams(reqParams), {\n 'method': 'POST',\n 'headers': {\n 'Authorization': 'Basic ' + btoa(this.getConfig('token') + ':'),\n 'Content-Type': 'application/octet-stream'\n },\n 'body': reqBody,\n }).then(function (response) {\n response.json().then(function (responseBody) {\n onSuccess(response, responseBody);\n }).catch(function (error) {\n callback({error: error});\n });\n }).catch(function (error) {\n callback({error: error, httpStatusCode: 0});\n });\n};\n\nSessionRecording.prototype._flushEvents = addOptOutCheckMixpanelLib(function (data, options, callback) {\n var numEvents = data.length;\n\n if (numEvents > 0) {\n var replayId = this.replayId;\n\n // each rrweb event has a timestamp - leverage those to get time properties\n var batchStartTime = Infinity;\n var batchEndTime = -Infinity;\n var hasFullSnapshot = false;\n for (var i = 0; i < numEvents; i++) {\n batchStartTime = Math.min(batchStartTime, data[i].timestamp);\n batchEndTime = Math.max(batchEndTime, data[i].timestamp);\n if (data[i].type === EventType.FullSnapshot) {\n hasFullSnapshot = true;\n }\n }\n\n if (this.seqNo === 0) {\n if (!hasFullSnapshot) {\n callback({error: 'First batch does not contain a full snapshot. Aborting recording.'});\n this.stopRecording(true);\n return;\n }\n this.replayStartTime = batchStartTime;\n } else if (!this.replayStartTime) {\n this.reportError('Replay start time not set but seqNo is not 0. Using current batch start time as a fallback.');\n this.replayStartTime = batchStartTime;\n }\n\n var replayLengthMs = batchEndTime - this.replayStartTime;\n\n var reqParams = {\n '$current_url': this.batchStartUrl,\n '$lib_version': Config.LIB_VERSION,\n 'batch_start_time': batchStartTime / 1000,\n 'mp_lib': 'web',\n 'replay_id': replayId,\n 'replay_length_ms': replayLengthMs,\n 'replay_start_time': this.replayStartTime / 1000,\n 'replay_start_url': this.replayStartUrl,\n 'seq': this.seqNo\n };\n var eventsJson = JSON.stringify(data);\n Object.assign(reqParams, this.getUserIdInfo());\n\n if (canUseCompressionStream(userAgent, navigator.vendor, windowOpera)) {\n var jsonStream = new Blob([eventsJson], {type: 'application/json'}).stream();\n var gzipStream = jsonStream.pipeThrough(new CompressionStream('gzip'));\n new Response(gzipStream)\n .blob()\n .then(function(compressedBlob) {\n reqParams['format'] = 'gzip';\n this._sendRequest(replayId, reqParams, compressedBlob, callback);\n }.bind(this));\n } else {\n reqParams['format'] = 'body';\n this._sendRequest(replayId, reqParams, eventsJson, callback);\n }\n }\n});\n\n\nSessionRecording.prototype.reportError = function(msg, err) {\n logger$3.error.apply(logger$3.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.getConfig('error_reporter')(msg, err);\n } catch(err) {\n logger$3.error(err);\n }\n};\n\n/**\n * Calculates the duration of the recording in milliseconds, based on the start time and time of last recorded event.\n * @returns {number} The duration of the recording in milliseconds. Returns 0 if recording hasn't started.\n */\nSessionRecording.prototype.getDurationMs = function() {\n if (this.replayStartTime === null) {\n return 0;\n }\n\n // If the recording has no events, assume it is in progress and use the current time as the end time.\n if (this.lastEventTimestamp === null) {\n return new Date().getTime() - this.replayStartTime;\n }\n\n return this.lastEventTimestamp - this.replayStartTime;\n};\n\n/**\n * Lazily loads the minimum recording length config in milliseconds, respecting the maximum limit.\n * @returns {number} The minimum recording length in milliseconds.\n */\nSessionRecording.prototype._getRecordMinMs = function() {\n var configValue = this.getConfig('record_min_ms');\n\n if (configValue > MAX_VALUE_FOR_MIN_RECORDING_MS) {\n logger$3.critical('record_min_ms cannot be greater than ' + MAX_VALUE_FOR_MIN_RECORDING_MS + 'ms. Capping value.');\n return MAX_VALUE_FOR_MIN_RECORDING_MS;\n }\n\n return configValue;\n};\n\n/**\n * Module for handling the storage and retrieval of recording metadata as well as any active recordings.\n * Makes sure that only one tab can be recording at a time.\n */\nvar RecordingRegistry = function (options) {\n /** @type {IDBStorageWrapper} */\n this.idb = new IDBStorageWrapper(RECORDING_REGISTRY_STORE_NAME);\n this.errorReporter = options.errorReporter;\n this.mixpanelInstance = options.mixpanelInstance;\n this.sharedLockStorage = options.sharedLockStorage;\n};\n\nRecordingRegistry.prototype.isPersistenceEnabled = function() {\n return !this.mixpanelInstance.get_config('disable_persistence');\n};\n\nRecordingRegistry.prototype.handleError = function (err) {\n this.errorReporter('IndexedDB error: ', err);\n};\n\n/**\n * @param {import('./session-recording').SerializedRecording} serializedRecording\n */\nRecordingRegistry.prototype.setActiveRecording = function (serializedRecording) {\n if (!this.isPersistenceEnabled()) {\n return PromisePolyfill.resolve();\n }\n\n var tabId = serializedRecording['tabId'];\n if (!tabId) {\n console.warn('No tab ID is set, cannot persist recording metadata.');\n return PromisePolyfill.resolve();\n }\n\n return this.idb.init()\n .then(function () {\n return this.idb.setItem(tabId, serializedRecording);\n }.bind(this))\n .catch(this.handleError.bind(this));\n};\n\n/**\n * @returns {Promise}\n */\nRecordingRegistry.prototype.getActiveRecording = function () {\n if (!this.isPersistenceEnabled()) {\n return PromisePolyfill.resolve(null);\n }\n\n return this.idb.init()\n .then(function () {\n return this.idb.getItem(this.mixpanelInstance.get_tab_id());\n }.bind(this))\n .then(function (serializedRecording) {\n return isRecordingExpired(serializedRecording) ? null : serializedRecording;\n }.bind(this))\n .catch(this.handleError.bind(this));\n};\n\nRecordingRegistry.prototype.clearActiveRecording = function () {\n if (this.isPersistenceEnabled()) {\n // mark recording as expired instead of deleting it in case the page unloads mid-flush and doesn't make it to ingestion.\n // this will ensure the next pageload will flush the remaining events, but not try to continue the recording.\n return this.markActiveRecordingExpired();\n } else {\n return this.deleteActiveRecording();\n }\n};\n\nRecordingRegistry.prototype.markActiveRecordingExpired = function () {\n return this.getActiveRecording()\n .then(function (serializedRecording) {\n if (serializedRecording) {\n serializedRecording['maxExpires'] = 0;\n return this.setActiveRecording(serializedRecording);\n }\n }.bind(this))\n .catch(this.handleError.bind(this));\n};\n\nRecordingRegistry.prototype.deleteActiveRecording = function () {\n // avoid initializing IDB if this registry instance hasn't already written a recording\n if (this.idb.isInitialized()) {\n return this.idb.removeItem(this.mixpanelInstance.get_tab_id())\n .catch(this.handleError.bind(this));\n } else {\n return PromisePolyfill.resolve();\n }\n};\n\n/**\n * Flush any inactive recordings from the registry to minimize data loss.\n * The main idea here is that we can flush remaining rrweb events on the next page load if a tab is closed mid-batch.\n */\nRecordingRegistry.prototype.flushInactiveRecordings = function () {\n if (!this.isPersistenceEnabled()) {\n return PromisePolyfill.resolve([]);\n }\n\n return this.idb.init()\n .then(function() {\n return this.idb.getAll();\n }.bind(this))\n .then(function (serializedRecordings) {\n // clean up any expired recordings from the registry, non-expired ones may be active in other tabs\n var unloadPromises = serializedRecordings\n .filter(function (serializedRecording) {\n return isRecordingExpired(serializedRecording);\n })\n .map(function (serializedRecording) {\n var sessionRecording = SessionRecording.deserialize(serializedRecording, {\n mixpanelInstance: this.mixpanelInstance,\n sharedLockStorage: this.sharedLockStorage\n });\n return sessionRecording.unloadPersistedData()\n .then(function () {\n // expired recording was successfully flushed, we can clean it up from the registry\n return this.idb.removeItem(serializedRecording['tabId']);\n }.bind(this))\n .catch(this.handleError.bind(this));\n }.bind(this));\n\n return PromisePolyfill.all(unloadPromises);\n }.bind(this))\n .catch(this.handleError.bind(this));\n};\n\nvar logger$2 = console_with_prefix('recorder');\n\n/**\n * Recorder API: bundles rrweb and and exposes methods to start and stop recordings.\n * @param {Object} [options.mixpanelInstance] - reference to the core MixpanelLib\n*/\nvar MixpanelRecorder = function(mixpanelInstance, rrwebRecord, sharedLockStorage) {\n this.mixpanelInstance = mixpanelInstance;\n this.rrwebRecord = rrwebRecord || record;\n this.sharedLockStorage = sharedLockStorage;\n\n /**\n * @member {import('./registry').RecordingRegistry}\n */\n this.recordingRegistry = new RecordingRegistry({\n mixpanelInstance: this.mixpanelInstance,\n errorReporter: logger$2.error,\n sharedLockStorage: sharedLockStorage\n });\n this._flushInactivePromise = this.recordingRegistry.flushInactiveRecordings();\n\n this.activeRecording = null;\n this.stopRecordingInProgress = false;\n};\n\nMixpanelRecorder.prototype.startRecording = function(options) {\n options = options || {};\n if (this.activeRecording && !this.activeRecording.isRrwebStopped()) {\n logger$2.log('Recording already in progress, skipping startRecording.');\n return;\n }\n\n var onIdleTimeout = function () {\n logger$2.log('Idle timeout reached, restarting recording.');\n this.resetRecording();\n }.bind(this);\n\n var onMaxLengthReached = function () {\n logger$2.log('Max recording length reached, stopping recording.');\n this.resetRecording();\n }.bind(this);\n\n var onBatchSent = function () {\n this.recordingRegistry.setActiveRecording(this.activeRecording.serialize());\n this['__flushPromise'] = this.activeRecording.batcher._flushPromise;\n }.bind(this);\n\n /**\n * @type {import('./session-recording').SessionRecordingOptions}\n */\n var sessionRecordingOptions = {\n mixpanelInstance: this.mixpanelInstance,\n onBatchSent: onBatchSent,\n onIdleTimeout: onIdleTimeout,\n onMaxLengthReached: onMaxLengthReached,\n replayId: _.UUID(),\n rrwebRecord: this.rrwebRecord,\n sharedLockStorage: this.sharedLockStorage\n };\n\n if (options.activeSerializedRecording) {\n this.activeRecording = SessionRecording.deserialize(options.activeSerializedRecording, sessionRecordingOptions);\n } else {\n this.activeRecording = new SessionRecording(sessionRecordingOptions);\n }\n\n this.activeRecording.startRecording(options.shouldStopBatcher);\n return this.recordingRegistry.setActiveRecording(this.activeRecording.serialize());\n};\n\nMixpanelRecorder.prototype.stopRecording = function() {\n // Prevents activeSerializedRecording from being reused when stopping the recording.\n this.stopRecordingInProgress = true;\n return this._stopCurrentRecording(false, true).then(function() {\n return this.recordingRegistry.clearActiveRecording();\n }.bind(this)).then(function() {\n this.stopRecordingInProgress = false;\n }.bind(this));\n};\n\nMixpanelRecorder.prototype.pauseRecording = function() {\n return this._stopCurrentRecording(false);\n};\n\nMixpanelRecorder.prototype._stopCurrentRecording = function(skipFlush, disableActiveRecording) {\n if (this.activeRecording) {\n var stopRecordingPromise = this.activeRecording.stopRecording(skipFlush);\n if (disableActiveRecording) {\n this.activeRecording = null;\n }\n return stopRecordingPromise;\n }\n return PromisePolyfill.resolve();\n};\n\nMixpanelRecorder.prototype.resumeRecording = function (startNewIfInactive) {\n if (this.activeRecording && this.activeRecording.isRrwebStopped()) {\n this.activeRecording.startRecording(false);\n return PromisePolyfill.resolve(null);\n }\n\n return this.recordingRegistry.getActiveRecording()\n .then(function (activeSerializedRecording) {\n if (activeSerializedRecording && !this.stopRecordingInProgress) {\n return this.startRecording({activeSerializedRecording: activeSerializedRecording});\n } else if (startNewIfInactive) {\n return this.startRecording({shouldStopBatcher: false});\n } else {\n logger$2.log('No resumable recording found.');\n return null;\n }\n }.bind(this));\n};\n\n\nMixpanelRecorder.prototype.resetRecording = function () {\n this.stopRecording();\n this.startRecording({shouldStopBatcher: true});\n};\n\nMixpanelRecorder.prototype.getActiveReplayId = function () {\n if (this.activeRecording && !this.activeRecording.isRrwebStopped()) {\n return this.activeRecording.replayId;\n } else {\n return null;\n }\n};\n\n// getter so that older mixpanel-core versions can still retrieve the replay ID\n// when pulling the latest recorder bundle from the CDN\nObject.defineProperty(MixpanelRecorder.prototype, 'replayId', {\n get: function () {\n return this.getActiveReplayId();\n }\n});\n\nwin['__mp_recorder'] = MixpanelRecorder;\n\n// stateless utils\n// mostly from https://github.com/mixpanel/mixpanel-js/blob/989ada50f518edab47b9c4fd9535f9fbd5ec5fc0/src/autotrack-utils.js\n\n\nvar EV_CHANGE = 'change';\nvar EV_CLICK = 'click';\nvar EV_HASHCHANGE = 'hashchange';\nvar EV_INPUT = 'input';\nvar EV_LOAD = 'load';\nvar EV_MP_LOCATION_CHANGE = 'mp_locationchange';\nvar EV_POPSTATE = 'popstate';\n// TODO scrollend isn't available in Safari: document or polyfill?\nvar EV_SCROLLEND = 'scrollend';\nvar EV_SCROLL = 'scroll';\nvar EV_SELECT = 'select';\nvar EV_SUBMIT = 'submit';\nvar EV_TOGGLE = 'toggle';\nvar EV_VISIBILITYCHANGE = 'visibilitychange';\n\nvar CLICK_EVENT_PROPS = [\n 'clientX', 'clientY',\n 'offsetX', 'offsetY',\n 'pageX', 'pageY',\n 'screenX', 'screenY',\n 'x', 'y'\n];\nvar OPT_IN_CLASSES = ['mp-include'];\nvar OPT_OUT_CLASSES = ['mp-no-track'];\nvar SENSITIVE_DATA_CLASSES = OPT_OUT_CLASSES.concat(['mp-sensitive']);\nvar TRACKED_ATTRS = [\n 'aria-label', 'aria-labelledby', 'aria-describedby',\n 'href', 'name', 'role', 'title', 'type'\n];\n\nvar INTERACTIVE_ARIA_ROLES = {\n 'button': true,\n 'checkbox': true,\n 'combobox': true,\n 'grid': true,\n 'link': true,\n 'listbox': true,\n 'menu': true,\n 'menubar': true,\n 'menuitem': true,\n 'menuitemcheckbox': true,\n 'menuitemradio': true,\n 'navigation': true,\n 'option': true,\n 'radio': true,\n 'radiogroup': true,\n 'searchbox': true,\n 'slider': true,\n 'spinbutton': true,\n 'switch': true,\n 'tab': true,\n 'tablist': true,\n 'textbox': true,\n 'tree': true,\n 'treegrid': true,\n 'treeitem': true\n};\n\nvar ALWAYS_NON_INTERACTIVE_TAGS = {\n // Document metadata\n 'base': true,\n 'head': true,\n 'html': true,\n 'link': true,\n 'meta': true,\n 'script': true,\n 'style': true,\n 'title': true,\n // Text formatting\n 'br': true,\n 'hr': true,\n 'wbr': true,\n // Other\n 'noscript': true,\n 'picture': true,\n 'source': true,\n 'template': true,\n 'track': true\n};\n\n// Common container tags that need additional checks\nvar TEXT_CONTAINER_TAGS = {\n 'article': true,\n 'div': true,\n 'h1': true,\n 'h2': true,\n 'h3': true,\n 'h4': true,\n 'h5': true,\n 'h6': true,\n 'p': true,\n 'section': true,\n 'span': true\n};\n\nvar EVENT_HANDLER_ATTRIBUTES = [\n 'onclick', 'onmousedown', 'onmouseup', 'onpointerdown', 'onpointerup', 'ontouchend', 'ontouchstart'\n];\n\nvar MAX_DEPTH = 5;\n\nvar logger$1 = console_with_prefix('autocapture');\n\n\nfunction getClasses(el) {\n var classes = {};\n var classList = getClassName(el).split(' ');\n for (var i = 0; i < classList.length; i++) {\n var cls = classList[i];\n if (cls) {\n classes[cls] = true;\n }\n }\n return classes;\n}\n\n/*\n * Get the className of an element, accounting for edge cases where element.className is an object\n * @param {Element} el - element to get the className of\n * @returns {string} the element's class\n */\nfunction getClassName(el) {\n switch(typeof el.className) {\n case 'string':\n return el.className;\n case 'object': // handle cases where className might be SVGAnimatedString or some other type\n return el.className.baseVal || el.getAttribute('class') || '';\n default: // future proof\n return '';\n }\n}\n\nfunction getPreviousElementSibling(el) {\n if (el.previousElementSibling) {\n return el.previousElementSibling;\n } else {\n do {\n el = el.previousSibling;\n } while (el && !isElementNode(el));\n return el;\n }\n}\n\nfunction getPropertiesFromElement(el, ev, blockAttrsSet, extraAttrs, allowElementCallback, allowSelectors) {\n var props = {\n '$classes': getClassName(el).split(' '),\n '$tag_name': el.tagName.toLowerCase()\n };\n var elId = el.id;\n if (elId) {\n props['$id'] = elId;\n }\n\n if (shouldTrackElementDetails(el, ev, allowElementCallback, allowSelectors)) {\n _.each(TRACKED_ATTRS.concat(extraAttrs), function(attr) {\n if (el.hasAttribute(attr) && !blockAttrsSet[attr]) {\n var attrVal = el.getAttribute(attr);\n if (shouldTrackValue(attrVal)) {\n props['$attr-' + attr] = attrVal;\n }\n }\n });\n }\n\n var nthChild = 1;\n var nthOfType = 1;\n var currentElem = el;\n while (currentElem = getPreviousElementSibling(currentElem)) { // eslint-disable-line no-cond-assign\n nthChild++;\n if (currentElem.tagName === el.tagName) {\n nthOfType++;\n }\n }\n props['$nth_child'] = nthChild;\n props['$nth_of_type'] = nthOfType;\n\n return props;\n}\n\nfunction getPropsForDOMEvent(ev, config) {\n var allowElementCallback = config.allowElementCallback;\n var allowSelectors = config.allowSelectors || [];\n var blockAttrs = config.blockAttrs || [];\n var blockElementCallback = config.blockElementCallback;\n var blockSelectors = config.blockSelectors || [];\n var captureTextContent = config.captureTextContent || false;\n var captureExtraAttrs = config.captureExtraAttrs || [];\n var capturedForHeatMap = config.capturedForHeatMap || false;\n\n // convert array to set every time, as the config may have changed\n var blockAttrsSet = {};\n _.each(blockAttrs, function(attr) {\n blockAttrsSet[attr] = true;\n });\n\n var props = null;\n\n var target = typeof ev.target === 'undefined' ? ev.srcElement : ev.target;\n if (isTextNode(target)) { // defeat Safari bug (see: http://www.quirksmode.org/js/events_properties.html)\n target = target.parentNode;\n }\n\n if (\n shouldTrackDomEvent(target, ev) &&\n isElementAllowed(target, ev, allowElementCallback, allowSelectors) &&\n !isElementBlocked(target, ev, blockElementCallback, blockSelectors)\n ) {\n var targetElementList = [target];\n var curEl = target;\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n targetElementList.push(curEl.parentNode);\n curEl = curEl.parentNode;\n }\n\n var elementsJson = [];\n var href, explicitNoTrack = false;\n _.each(targetElementList, function(el) {\n var shouldTrackDetails = shouldTrackElementDetails(el, ev, allowElementCallback, allowSelectors);\n\n // if the element or a parent element is an anchor tag\n // include the href as a property\n if (!blockAttrsSet['href'] && el.tagName.toLowerCase() === 'a') {\n href = el.getAttribute('href');\n href = shouldTrackDetails && shouldTrackValue(href) && href;\n }\n\n if (isElementBlocked(el, ev, blockElementCallback, blockSelectors)) {\n explicitNoTrack = true;\n }\n\n elementsJson.push(getPropertiesFromElement(el, ev, blockAttrsSet, captureExtraAttrs, allowElementCallback, allowSelectors));\n }, this);\n\n if (!explicitNoTrack) {\n var docElement = document$1['documentElement'];\n props = {\n '$event_type': ev.type,\n '$host': win.location.host,\n '$pathname': win.location.pathname,\n '$elements': elementsJson,\n '$el_attr__href': href,\n '$viewportHeight': Math.max(docElement['clientHeight'], win['innerHeight'] || 0),\n '$viewportWidth': Math.max(docElement['clientWidth'], win['innerWidth'] || 0),\n '$pageHeight': document$1['body']['offsetHeight'] || 0,\n '$pageWidth': document$1['body']['offsetWidth'] || 0,\n };\n _.each(captureExtraAttrs, function(attr) {\n if (!blockAttrsSet[attr] && target.hasAttribute(attr)) {\n var attrVal = target.getAttribute(attr);\n if (shouldTrackValue(attrVal)) {\n props['$el_attr__' + attr] = attrVal;\n }\n }\n });\n\n if (captureTextContent) {\n elementText = getSafeText(target, ev, allowElementCallback, allowSelectors);\n if (elementText && elementText.length) {\n props['$el_text'] = elementText;\n }\n }\n\n if (ev.type === EV_CLICK) {\n _.each(CLICK_EVENT_PROPS, function(prop) {\n if (prop in ev) {\n props['$' + prop] = ev[prop];\n }\n });\n if (capturedForHeatMap) {\n props['$captured_for_heatmap'] = true;\n }\n target = guessRealClickTarget(ev);\n }\n // prioritize text content from \"real\" click target if different from original target\n if (captureTextContent) {\n var elementText = getSafeText(target, ev, allowElementCallback, allowSelectors);\n if (elementText && elementText.length) {\n props['$el_text'] = elementText;\n }\n }\n\n if (target) {\n // target may have been recalculated; check allowlists and blocklists again\n if (\n !isElementAllowed(target, ev, allowElementCallback, allowSelectors) ||\n isElementBlocked(target, ev, blockElementCallback, blockSelectors)\n ) {\n return null;\n }\n\n var targetProps = getPropertiesFromElement(target, ev, blockAttrsSet, captureExtraAttrs, allowElementCallback, allowSelectors);\n props['$target'] = targetProps;\n // pull up more props onto main event props\n props['$el_classes'] = targetProps['$classes'];\n _.extend(props, _.strip_empty_properties({\n '$el_id': targetProps['$id'],\n '$el_tag_name': targetProps['$tag_name']\n }));\n }\n }\n }\n\n return props;\n}\n\n\n/**\n * Get the direct text content of an element, protecting against sensitive data collection.\n * Concats textContent of each of the element's text node children; this avoids potential\n * collection of sensitive data that could happen if we used element.textContent and the\n * element had sensitive child elements, since element.textContent includes child content.\n * Scrubs values that look like they could be sensitive (i.e. cc or ssn number).\n * @param {Element} el - element to get the text of\n * @param {Array} allowSelectors - CSS selectors for elements that should be included\n * @returns {string} the element's direct text content\n */\nfunction getSafeText(el, ev, allowElementCallback, allowSelectors) {\n var elText = '';\n\n if (shouldTrackElementDetails(el, ev, allowElementCallback, allowSelectors) && el.childNodes && el.childNodes.length) {\n _.each(el.childNodes, function(child) {\n if (isTextNode(child) && child.textContent) {\n elText += _.trim(child.textContent)\n // scrub potentially sensitive values\n .split(/(\\s+)/).filter(shouldTrackValue).join('')\n // normalize whitespace\n .replace(/[\\r\\n]/g, ' ').replace(/[ ]+/g, ' ')\n // truncate\n .substring(0, 255);\n }\n });\n }\n\n return _.trim(elText);\n}\n\nfunction guessRealClickTarget(ev) {\n var target = ev.target;\n var composedPath = ev['composedPath']();\n for (var i = 0; i < composedPath.length; i++) {\n var node = composedPath[i];\n if (\n isTag(node, 'a') ||\n isTag(node, 'button') ||\n isTag(node, 'input') ||\n isTag(node, 'select') ||\n (node.getAttribute && node.getAttribute('role') === 'button')\n ) {\n target = node;\n break;\n }\n if (node === target) {\n break;\n }\n }\n return target;\n}\n\nfunction isElementAllowed(el, ev, allowElementCallback, allowSelectors) {\n if (allowElementCallback) {\n try {\n if (!allowElementCallback(el, ev)) {\n return false;\n }\n } catch (err) {\n logger$1.critical('Error while checking element in allowElementCallback', err);\n return false;\n }\n }\n\n if (!allowSelectors.length) {\n // no allowlist; all elements are fair game\n return true;\n }\n\n for (var i = 0; i < allowSelectors.length; i++) {\n var sel = allowSelectors[i];\n try {\n if (el['matches'](sel)) {\n return true;\n }\n } catch (err) {\n logger$1.critical('Error while checking selector: ' + sel, err);\n }\n }\n return false;\n}\n\nfunction isElementBlocked(el, ev, blockElementCallback, blockSelectors) {\n var i;\n\n if (blockElementCallback) {\n try {\n if (blockElementCallback(el, ev)) {\n return true;\n }\n } catch (err) {\n logger$1.critical('Error while checking element in blockElementCallback', err);\n return true;\n }\n }\n\n if (blockSelectors && blockSelectors.length) {\n // programmatically prevent tracking of elements that match CSS selectors\n for (i = 0; i < blockSelectors.length; i++) {\n var sel = blockSelectors[i];\n try {\n if (el['matches'](sel)) {\n return true;\n }\n } catch (err) {\n logger$1.critical('Error while checking selector: ' + sel, err);\n }\n }\n }\n\n // allow users to programmatically prevent tracking of elements by adding default classes such as 'mp-no-track'\n var classes = getClasses(el);\n for (i = 0; i < OPT_OUT_CLASSES.length; i++) {\n if (classes[OPT_OUT_CLASSES[i]]) {\n return true;\n }\n }\n\n return false;\n}\n\n/*\n * Check whether a DOM node has nodeType Node.ELEMENT_NODE\n * @param {Node} node - node to check\n * @returns {boolean} whether node is of the correct nodeType\n */\nfunction isElementNode(node) {\n return node && node.nodeType === 1; // Node.ELEMENT_NODE - use integer constant for browser portability\n}\n\n/*\n * Check whether an element is of a given tag type.\n * Due to potential reference discrepancies (such as the webcomponents.js polyfill),\n * we want to match tagNames instead of specific references because something like\n * element === document.body won't always work because element might not be a native\n * element.\n * @param {Element} el - element to check\n * @param {string} tag - tag name (e.g., \"div\")\n * @returns {boolean} whether el is of the given tag type\n */\nfunction isTag(el, tag) {\n return el && el.tagName && el.tagName.toLowerCase() === tag.toLowerCase();\n}\n\n/*\n * Check whether a DOM node is a TEXT_NODE\n * @param {Node} node - node to check\n * @returns {boolean} whether node is of type Node.TEXT_NODE\n */\nfunction isTextNode(node) {\n return node && node.nodeType === 3; // Node.TEXT_NODE - use integer constant for browser portability\n}\n\nfunction minDOMApisSupported() {\n try {\n var testEl = document$1.createElement('div');\n return !!testEl['matches'];\n } catch (err) {\n return false;\n }\n}\n\nfunction weakSetSupported() {\n return typeof WeakSet !== 'undefined';\n}\n\n/*\n * Check whether a DOM event should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @param {Event} ev - event to check\n * @returns {boolean} whether the event should be tracked\n */\nfunction shouldTrackDomEvent(el, ev) {\n if (!el || isTag(el, 'html') || !isElementNode(el)) {\n return false;\n }\n var tag = el.tagName.toLowerCase();\n switch (tag) {\n case 'form':\n return ev.type === EV_SUBMIT;\n case 'input':\n if (['button', 'submit'].indexOf(el.getAttribute('type')) === -1) {\n return ev.type === EV_CHANGE;\n } else {\n return ev.type === EV_CLICK;\n }\n case 'select':\n case 'textarea':\n return ev.type === EV_CHANGE;\n default:\n return ev.type === EV_CLICK;\n }\n}\n\n/*\n * Check whether a DOM element should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @param {Array} allowSelectors - CSS selectors for elements that should be included\n * @returns {boolean} whether the element should be tracked\n */\nfunction shouldTrackElementDetails(el, ev, allowElementCallback, allowSelectors) {\n var i;\n\n if (!isElementAllowed(el, ev, allowElementCallback, allowSelectors)) {\n return false;\n }\n\n for (var curEl = el; curEl.parentNode && !isTag(curEl, 'body'); curEl = curEl.parentNode) {\n var classes = getClasses(curEl);\n for (i = 0; i < SENSITIVE_DATA_CLASSES.length; i++) {\n if (classes[SENSITIVE_DATA_CLASSES[i]]) {\n return false;\n }\n }\n }\n\n var elClasses = getClasses(el);\n for (i = 0; i < OPT_IN_CLASSES.length; i++) {\n if (elClasses[OPT_IN_CLASSES[i]]) {\n return true;\n }\n }\n\n // don't send data from inputs or similar elements since there will always be\n // a risk of clientside javascript placing sensitive data in attributes\n if (\n isTag(el, 'input') ||\n isTag(el, 'select') ||\n isTag(el, 'textarea') ||\n el.getAttribute('contenteditable') === 'true'\n ) {\n return false;\n }\n\n // don't include hidden or password fields\n var type = el.type || '';\n if (typeof type === 'string') { // it's possible for el.type to be a DOM element if el is a form with a child input[name=\"type\"]\n switch(type.toLowerCase()) {\n case 'hidden':\n return false;\n case 'password':\n return false;\n }\n }\n\n // filter out data from fields that look like sensitive fields\n var name = el.name || el.id || '';\n if (typeof name === 'string') { // it's possible for el.name or el.id to be a DOM element if el is a form with a child input[name=\"name\"]\n var sensitiveNameRegex = /^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i;\n if (sensitiveNameRegex.test(name.replace(/[^a-zA-Z0-9]/g, ''))) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*\n * Check whether a string value should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {string} value - string value to check\n * @returns {boolean} whether the element should be tracked\n */\nfunction shouldTrackValue(value) {\n if (value === null || _.isUndefined(value)) {\n return false;\n }\n\n if (typeof value === 'string') {\n value = _.trim(value);\n\n // check to see if input value looks like a credit card number\n // see: https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch04s20.html\n var ccRegex = /^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/;\n if (ccRegex.test((value || '').replace(/[- ]/g, ''))) {\n return false;\n }\n\n // check to see if input value looks like a social security number\n var ssnRegex = /(^\\d{3}-?\\d{2}-?\\d{4}$)/;\n if (ssnRegex.test(value)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Creates a cross-browser compatible scroll end function with appropriate event listener.\n * For browsers that support scrollend, returns the original function with scrollend event.\n * For browsers without scrollend support, returns a debounced function that triggers\n * 100ms after the last scroll event to simulate scrollend behavior.\n * @param {Function} originalFunction - The function to call when scrolling ends\n * @returns {Object} Object containing listener function and eventType string\n * @returns {Function} returns.listener - The wrapped function to use as event listener\n * @returns {string} returns.eventType - The event type to listen for ('scrollend' or 'scroll')\n */\nfunction getPolyfillScrollEndFunction(originalFunction) {\n var supportsScrollEnd = 'onscrollend' in win;\n var polyfillFunction = safewrap(originalFunction);\n var polyfillEvent = EV_SCROLLEND;\n if (!supportsScrollEnd) {\n // Polyfill for browsers without scrollend support: wait 100ms after the last scroll event\n // https://developer.chrome.com/blog/scrollend-a-new-javascript-event\n var scrollTimer = null;\n var scrollDelayMs = 100;\n\n polyfillFunction = safewrap(function() {\n clearTimeout(scrollTimer);\n scrollTimer = setTimeout(originalFunction, scrollDelayMs);\n });\n\n polyfillEvent = EV_SCROLL;\n }\n\n return {\n listener: polyfillFunction,\n eventType: polyfillEvent\n };\n}\n\nfunction hasInlineEventHandlers(element) {\n for (var i = 0; i < EVENT_HANDLER_ATTRIBUTES.length; i++) {\n if (element.hasAttribute(EVENT_HANDLER_ATTRIBUTES[i])) {\n return true;\n }\n }\n return false;\n}\n\nfunction hasInteractiveAriaRole(element) {\n var role = element.getAttribute('role');\n if (!role) return false;\n\n // Handle invalid markup where multiple roles might be specified\n // Only the first token is recognized per ARIA spec\n var primaryRole = role.trim().split(/\\s+/)[0].toLowerCase();\n\n return INTERACTIVE_ARIA_ROLES[primaryRole];\n}\n\nfunction hasAnyInteractivityIndicators(element) {\n var tagName = element.tagName.toLowerCase();\n\n // Check for interactive HTML elements\n if (tagName === 'button' ||\n tagName === 'input' ||\n tagName === 'select' ||\n tagName === 'textarea' ||\n tagName === 'details' ||\n tagName === 'dialog') {\n return true;\n }\n\n if (element.isContentEditable) {\n return true;\n }\n\n if (element.onclick || element.onmousedown || element.onmouseup || element.ontouchstart || element.ontouchend) {\n return true;\n }\n\n if (hasInlineEventHandlers(element)) {\n return true;\n }\n\n if (hasInteractiveAriaRole(element)) {\n return true;\n }\n\n if (tagName === 'a' && element.hasAttribute('href')) {\n return true;\n }\n\n if (element.hasAttribute('tabindex')) {\n return true;\n }\n\n return false;\n}\n\n\nfunction isDefinitelyNonInteractive(element) {\n if (!element || !element.tagName) {\n return true;\n }\n\n var tagName = element.tagName.toLowerCase();\n\n // These tags are definitely non-interactive\n if (ALWAYS_NON_INTERACTIVE_TAGS[tagName]) {\n return true;\n }\n\n // For all other elements, we can only be certain they're non-interactive if they lack ALL indicators of interactivity\n // Check for any signs of interactivity\n if (hasAnyInteractivityIndicators(element)) {\n return false;\n }\n\n // Check parent chain for interactive context\n var parent = element.parentElement;\n var depth = 0;\n\n while (parent && depth < MAX_DEPTH) {\n if (hasAnyInteractivityIndicators(parent)) {\n return false; // Element is inside an interactive parent\n }\n\n if (parent.getRootNode && parent.getRootNode() !== document$1) {\n var root = parent.getRootNode();\n if (root.host && hasAnyInteractivityIndicators(root.host)) {\n return false; // Inside an interactive shadow host\n }\n }\n\n parent = parent.parentElement;\n depth++;\n }\n\n // Pure text containers without any interactive context\n if (TEXT_CONTAINER_TAGS[tagName]) {\n // These are non-interactive ONLY if they have no interactive indicators (already checked as part of hasAnyInteractivityIndicators)\n return true;\n }\n\n // Default: we can't be certain it's non-interactive\n return false;\n}\n\n/**\n * Get the composed path of a click event for elements embedded in shadow DOM.\n * @param {Event} event - event to get the composed path from\n * @returns {Array} the composed path of the click event\n*/\nfunction getClickEventComposedPath(event) {\n if ('composedPath' in event) {\n return event['composedPath']();\n }\n\n return [];\n}\n\n/**\n * Get the element from a click event, accounting for elements embedded in shadow DOM.\n * @param {Event} event - event to get the target from\n * @returns {Element | null} the element that was the target of the click event\n */\nfunction getClickEventTargetElement(event) {\n var path = getClickEventComposedPath(event);\n\n if (path && path.length > 0) {\n return path[0];\n }\n\n return event['target'] || event['srcElement'];\n}\n\n/** @const */ var DEFAULT_RAGE_CLICK_THRESHOLD_PX = 30;\n/** @const */ var DEFAULT_RAGE_CLICK_TIMEOUT_MS = 1000;\n/** @const */ var DEFAULT_RAGE_CLICK_CLICK_COUNT = 4;\n/** @const */ var DEFAULT_RAGE_CLICK_INTERACTIVE_ELEMENTS_ONLY = false;\n\nfunction RageClickTracker() {\n this.clicks = [];\n}\n\n/**\n * Determines if a click event is part of a rage click sequence.\n * @param {Event} event - the original click event.\n * @param {import('../index.d.ts').RageClickConfig} options - configuration options for rage click detection.\n * @returns {boolean} - true if the click is considered a rage click, false otherwise.\n */\nRageClickTracker.prototype.isRageClick = function(event, options) {\n options = options || {};\n var thresholdPx = options['threshold_px'] || DEFAULT_RAGE_CLICK_THRESHOLD_PX;\n var timeoutMs = options['timeout_ms'] || DEFAULT_RAGE_CLICK_TIMEOUT_MS;\n var clickCount = options['click_count'] || DEFAULT_RAGE_CLICK_CLICK_COUNT;\n var interactiveElementsOnly = options['interactive_elements_only'] || DEFAULT_RAGE_CLICK_INTERACTIVE_ELEMENTS_ONLY;\n\n if (interactiveElementsOnly) {\n var target = getClickEventTargetElement(event);\n if (!target || isDefinitelyNonInteractive(target)) {\n return false;\n }\n }\n\n var timestamp = Date.now();\n var x = event['pageX'], y = event['pageY'];\n\n var lastClick = this.clicks[this.clicks.length - 1];\n if (\n lastClick &&\n timestamp - lastClick.timestamp < timeoutMs &&\n Math.sqrt(Math.pow(x - lastClick.x, 2) + Math.pow(y - lastClick.y, 2)) < thresholdPx\n ) {\n this.clicks.push({ x: x, y: y, timestamp: timestamp });\n if (this.clicks.length >= clickCount) {\n this.clicks = [];\n return true;\n }\n } else {\n this.clicks = [{ x: x, y: y, timestamp: timestamp }];\n }\n return false;\n};\n\nfunction ShadowDOMObserver(changeCallback, observerConfig) {\n this.changeCallback = changeCallback || function() {};\n this.observerConfig = observerConfig;\n\n this.observedShadowRoots = null;\n this.shadowObservers = [];\n}\n\nShadowDOMObserver.prototype.getEventTarget = function(event) {\n if (!this.observedShadowRoots) {\n return;\n }\n\n return getClickEventTargetElement(event);\n};\n\nShadowDOMObserver.prototype.observeFromEvent = function(event) {\n if (!this.observedShadowRoots) {\n return;\n }\n\n var path = getClickEventComposedPath(event);\n\n // Check each element in path for shadow roots\n for (var i = 0; i < path.length; i++) {\n var element = path[i];\n\n if (element && element.shadowRoot) {\n this.observeShadowRoot(element.shadowRoot);\n }\n }\n};\n\n\nShadowDOMObserver.prototype.observeShadowRoot = function(shadowRoot) {\n if (!this.observedShadowRoots || this.observedShadowRoots.has(shadowRoot)) {\n return;\n }\n\n var self = this;\n\n try {\n this.observedShadowRoots.add(shadowRoot);\n\n var observer = new window.MutationObserver(function() {\n self.changeCallback();\n });\n\n observer.observe(shadowRoot, this.observerConfig);\n this.shadowObservers.push(observer);\n } catch (e) {\n logger$1.critical('Error while observing shadow root', e);\n }\n};\n\n\nShadowDOMObserver.prototype.start = function() {\n if (this.observedShadowRoots) {\n return;\n }\n\n if (!weakSetSupported()) {\n logger$1.critical('Shadow DOM observation unavailable: WeakSet not supported');\n return;\n }\n\n this.observedShadowRoots = new WeakSet();\n};\n\nShadowDOMObserver.prototype.stop = function() {\n if (!this.observedShadowRoots) {\n return;\n }\n\n for (var i = 0; i < this.shadowObservers.length; i++) {\n try {\n this.shadowObservers[i].disconnect();\n } catch (e) {\n logger$1.critical('Error while disconnecting shadow DOM observer', e);\n }\n }\n this.shadowObservers = [];\n this.observedShadowRoots = null;\n};\n\n/** @const */ var DEFAULT_DEAD_CLICK_TIMEOUT_MS = 500;\n/** @const */ var INTERACTION_EVENTS = [EV_CHANGE, EV_INPUT, EV_SUBMIT, EV_SELECT, EV_TOGGLE];\n/** @const */ var LAYOUT_EVENTS = [EV_SCROLLEND];\n/** @const */ var NAVIGATION_EVENTS = [EV_HASHCHANGE];\n/** @const */ var MUTATION_OBSERVER_CONFIG = {\n characterData: true,\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['style', 'class', 'hidden', 'checked', 'selected', 'value', 'display', 'visibility']\n};\n\n\nfunction DeadClickTracker(onDeadClickCallback) {\n this.eventListeners = [];\n this.mutationObserver = null;\n this.shadowDOMObserver = null;\n\n this.isTracking = false;\n this.lastChangeEventTimestamp = 0;\n this.pendingClicks = [];\n this.onDeadClickCallback = onDeadClickCallback;\n this.processingActive = false;\n this.processingTimeout = null;\n}\n\n\nDeadClickTracker.prototype.addClick = function(event) {\n var element = this.shadowDOMObserver && this.shadowDOMObserver.getEventTarget(event);\n\n if (!element) {\n element = event['target'] || event['srcElement'];\n }\n\n if (!element || isDefinitelyNonInteractive(element)) {\n return false;\n }\n\n if (this.shadowDOMObserver) {\n this.shadowDOMObserver.observeFromEvent(event);\n }\n this.pendingClicks.push({\n element: element,\n event: event,\n timestamp: Date.now()\n });\n return true;\n};\n\nDeadClickTracker.prototype.trackClick = function(event, config) {\n if (!this.isTracking) {\n return false;\n }\n\n var added = this.addClick(event);\n if (added) {\n this.triggerProcessing(config);\n }\n return added;\n};\n\nDeadClickTracker.prototype.getDeadClicks = function(config) {\n if (this.pendingClicks.length === 0) {\n return [];\n }\n\n var timeoutMs = config['timeout_ms'];\n var now = Date.now();\n var clicksToEvaluate = this.pendingClicks.slice(); // Copy array\n this.pendingClicks = []; // Clear original\n\n var deadClicks = [];\n\n for (var i = 0; i < clicksToEvaluate.length; i++) {\n var click = clicksToEvaluate[i];\n\n if (now - click.timestamp >= timeoutMs) {\n // Click has exceeded timeout, check if it's dead by looking for changes after this specific click\n if (!this.hasChangesAfter(click.timestamp)) {\n deadClicks.push(click);\n }\n } else {\n // Still pending - add back\n this.pendingClicks.push(click);\n }\n }\n\n return deadClicks;\n};\n\nDeadClickTracker.prototype.hasChangesAfter = function(timestamp) {\n // 100ms tolerance for race condition between when we record the click and the change event\n return this.lastChangeEventTimestamp >= (timestamp - 100);\n};\n\nDeadClickTracker.prototype.recordChangeEvent = function() {\n this.lastChangeEventTimestamp = Date.now();\n};\n\nDeadClickTracker.prototype.triggerProcessing = function(config) {\n // Prevent multiple concurrent processing chains\n if (this.processingActive) {\n return;\n }\n this.processingActive = true;\n this.processRecursively(config);\n};\n\nDeadClickTracker.prototype.processRecursively = function(config) {\n if (!this.isTracking || !this.onDeadClickCallback) {\n this.processingActive = false;\n return;\n }\n\n var timeoutMs = config['timeout_ms'];\n var self = this;\n\n this.processingTimeout = setTimeout(function() {\n if (!self.processingActive) {\n return;\n }\n\n var deadClicks = self.getDeadClicks(config);\n\n for (var i = 0; i < deadClicks.length; i++) {\n self.onDeadClickCallback(deadClicks[i].event);\n }\n\n if (self.pendingClicks.length > 0) {\n self.processRecursively(config);\n } else {\n self.processingActive = false;\n }\n }, timeoutMs);\n};\n\nDeadClickTracker.prototype.startTracking = function() {\n if (this.isTracking) {\n return;\n }\n\n this.isTracking = true;\n\n var self = this;\n\n INTERACTION_EVENTS.forEach(function(event) {\n var handler = function() {\n self.recordChangeEvent();\n };\n document.addEventListener(event, handler, { capture: true, passive: true });\n self.eventListeners.push({ target: document, event: event, handler: handler, options: { capture: true, passive: true } });\n });\n NAVIGATION_EVENTS.forEach(function(event) {\n var handler = function() {\n self.recordChangeEvent();\n };\n window.addEventListener(event, handler);\n self.eventListeners.push({ target: window, event: event, handler: handler });\n });\n LAYOUT_EVENTS.forEach(function(event) {\n var handler = function() {\n self.recordChangeEvent();\n };\n window.addEventListener(event, handler, { passive: true });\n self.eventListeners.push({ target: window, event: event, handler: handler, options: { passive: true } });\n });\n var selectionHandler = function() {\n self.recordChangeEvent();\n };\n document.addEventListener('selectionchange', selectionHandler);\n self.eventListeners.push({ target: document, event: 'selectionchange', handler: selectionHandler });\n\n // Set up MutationObserver\n if (window.MutationObserver) {\n try {\n this.mutationObserver = new window.MutationObserver(function() {\n self.recordChangeEvent();\n });\n\n this.mutationObserver.observe(document.body || document.documentElement, MUTATION_OBSERVER_CONFIG);\n } catch (e) {\n logger$1.critical('Error while setting up mutation observer', e);\n }\n }\n\n // Set up Shadow DOM observer\n if (window.customElements) {\n try {\n this.shadowDOMObserver = new ShadowDOMObserver(\n function() {\n self.recordChangeEvent();\n },\n MUTATION_OBSERVER_CONFIG\n );\n this.shadowDOMObserver.start();\n } catch (e) {\n logger$1.critical('Error while setting up shadow DOM observer', e);\n this.shadowDOMObserver = null;\n }\n }\n};\n\nDeadClickTracker.prototype.stopTracking = function() {\n if (!this.isTracking) {\n return;\n }\n\n this.isTracking = false;\n this.pendingClicks = [];\n this.lastChangeEventTimestamp = 0;\n this.processingActive = false;\n\n if (this.processingTimeout) {\n clearTimeout(this.processingTimeout);\n this.processingTimeout = null;\n }\n\n // Remove all event listeners\n for (var i = 0; i < this.eventListeners.length; i++) {\n var listener = this.eventListeners[i];\n try {\n listener.target.removeEventListener(listener.event, listener.handler, listener.options);\n } catch (e) {\n logger$1.critical('Error while removing event listener', e);\n }\n }\n this.eventListeners = [];\n\n if (this.mutationObserver) {\n try {\n this.mutationObserver.disconnect();\n } catch (e) {\n logger$1.critical('Error while disconnecting mutation observer', e);\n }\n this.mutationObserver = null;\n }\n\n if (this.shadowDOMObserver) {\n try {\n this.shadowDOMObserver.stop();\n } catch (e) {\n logger$1.critical('Error while stopping shadow DOM observer', e);\n }\n this.shadowDOMObserver = null;\n }\n};\n\nvar AUTOCAPTURE_CONFIG_KEY = 'autocapture';\nvar LEGACY_PAGEVIEW_CONFIG_KEY = 'track_pageview';\n\nvar PAGEVIEW_OPTION_FULL_URL = 'full-url';\nvar PAGEVIEW_OPTION_URL_WITH_PATH_AND_QUERY_STRING = 'url-with-path-and-query-string';\nvar PAGEVIEW_OPTION_URL_WITH_PATH = 'url-with-path';\n\nvar CONFIG_ALLOW_ELEMENT_CALLBACK = 'allow_element_callback';\nvar CONFIG_ALLOW_SELECTORS = 'allow_selectors';\nvar CONFIG_ALLOW_URL_REGEXES = 'allow_url_regexes';\nvar CONFIG_BLOCK_ATTRS = 'block_attrs';\nvar CONFIG_BLOCK_ELEMENT_CALLBACK = 'block_element_callback';\nvar CONFIG_BLOCK_SELECTORS = 'block_selectors';\nvar CONFIG_BLOCK_URL_REGEXES = 'block_url_regexes';\nvar CONFIG_CAPTURE_EXTRA_ATTRS = 'capture_extra_attrs';\nvar CONFIG_CAPTURE_TEXT_CONTENT = 'capture_text_content';\nvar CONFIG_SCROLL_CAPTURE_ALL = 'scroll_capture_all';\nvar CONFIG_SCROLL_CHECKPOINTS = 'scroll_depth_percent_checkpoints';\nvar CONFIG_TRACK_CLICK = 'click';\nvar CONFIG_TRACK_DEAD_CLICK = 'dead_click';\nvar CONFIG_TRACK_INPUT = 'input';\nvar CONFIG_TRACK_PAGEVIEW = 'pageview';\nvar CONFIG_TRACK_RAGE_CLICK = 'rage_click';\nvar CONFIG_TRACK_SCROLL = 'scroll';\nvar CONFIG_TRACK_PAGE_LEAVE = 'page_leave';\nvar CONFIG_TRACK_SUBMIT = 'submit';\n\nvar CONFIG_DEFAULTS$1 = {};\nCONFIG_DEFAULTS$1[CONFIG_ALLOW_SELECTORS] = [];\nCONFIG_DEFAULTS$1[CONFIG_ALLOW_URL_REGEXES] = [];\nCONFIG_DEFAULTS$1[CONFIG_BLOCK_ATTRS] = [];\nCONFIG_DEFAULTS$1[CONFIG_BLOCK_ELEMENT_CALLBACK] = null;\nCONFIG_DEFAULTS$1[CONFIG_BLOCK_SELECTORS] = [];\nCONFIG_DEFAULTS$1[CONFIG_BLOCK_URL_REGEXES] = [];\nCONFIG_DEFAULTS$1[CONFIG_CAPTURE_EXTRA_ATTRS] = [];\nCONFIG_DEFAULTS$1[CONFIG_CAPTURE_TEXT_CONTENT] = false;\nCONFIG_DEFAULTS$1[CONFIG_SCROLL_CAPTURE_ALL] = false;\nCONFIG_DEFAULTS$1[CONFIG_SCROLL_CHECKPOINTS] = [25, 50, 75, 100];\nCONFIG_DEFAULTS$1[CONFIG_TRACK_CLICK] = true;\nCONFIG_DEFAULTS$1[CONFIG_TRACK_DEAD_CLICK] = true;\nCONFIG_DEFAULTS$1[CONFIG_TRACK_INPUT] = true;\nCONFIG_DEFAULTS$1[CONFIG_TRACK_PAGEVIEW] = PAGEVIEW_OPTION_FULL_URL;\nCONFIG_DEFAULTS$1[CONFIG_TRACK_RAGE_CLICK] = true;\nCONFIG_DEFAULTS$1[CONFIG_TRACK_SCROLL] = true;\nCONFIG_DEFAULTS$1[CONFIG_TRACK_PAGE_LEAVE] = false;\nCONFIG_DEFAULTS$1[CONFIG_TRACK_SUBMIT] = true;\n\nvar DEFAULT_PROPS = {\n '$mp_autocapture': true\n};\n\nvar MP_EV_CLICK = '$mp_click';\nvar MP_EV_DEAD_CLICK = '$mp_dead_click';\nvar MP_EV_INPUT = '$mp_input_change';\nvar MP_EV_RAGE_CLICK = '$mp_rage_click';\nvar MP_EV_SCROLL = '$mp_scroll';\nvar MP_EV_SUBMIT = '$mp_submit';\nvar MP_EV_PAGE_LEAVE = '$mp_page_leave';\n\n/**\n * Autocapture: manages automatic event tracking\n * @constructor\n */\nvar Autocapture = function(mp) {\n this.mp = mp;\n this.maxScrollViewDepth = 0;\n this.hasTrackedScrollSession = false;\n this.previousScrollHeight = 0;\n};\n\nAutocapture.prototype.init = function() {\n if (!minDOMApisSupported()) {\n logger$1.critical('Autocapture unavailable: missing required DOM APIs');\n return;\n }\n this.initPageListeners();\n this.initPageviewTracking();\n this.initClickTracking();\n this.initDeadClickTracking();\n this.initInputTracking();\n this.initScrollTracking();\n this.initSubmitTracking();\n this.initRageClickTracking();\n this.initPageLeaveTracking();\n};\n\nAutocapture.prototype.getFullConfig = function() {\n var autocaptureConfig = this.mp.get_config(AUTOCAPTURE_CONFIG_KEY);\n if (!autocaptureConfig) {\n // Autocapture is completely off\n return {};\n } else if (_.isObject(autocaptureConfig)) {\n return _.extend({}, CONFIG_DEFAULTS$1, autocaptureConfig);\n } else {\n // Autocapture config is non-object truthy value, return default\n return CONFIG_DEFAULTS$1;\n }\n};\n\nAutocapture.prototype.getConfig = function(key) {\n return this.getFullConfig()[key];\n};\n\nAutocapture.prototype.currentUrlBlocked = function() {\n var i;\n var currentUrl = _.info.currentUrl();\n\n var allowUrlRegexes = this.getConfig(CONFIG_ALLOW_URL_REGEXES) || [];\n if (allowUrlRegexes.length) {\n // we're using an allowlist, only track if current URL matches\n var allowed = false;\n for (i = 0; i < allowUrlRegexes.length; i++) {\n var allowRegex = allowUrlRegexes[i];\n try {\n if (currentUrl.match(allowRegex)) {\n allowed = true;\n break;\n }\n } catch (err) {\n logger$1.critical('Error while checking block URL regex: ' + allowRegex, err);\n return true;\n }\n }\n if (!allowed) {\n // wasn't allowed by any regex\n return true;\n }\n }\n\n var blockUrlRegexes = this.getConfig(CONFIG_BLOCK_URL_REGEXES) || [];\n if (!blockUrlRegexes || !blockUrlRegexes.length) {\n return false;\n }\n\n for (i = 0; i < blockUrlRegexes.length; i++) {\n try {\n if (currentUrl.match(blockUrlRegexes[i])) {\n return true;\n }\n } catch (err) {\n logger$1.critical('Error while checking block URL regex: ' + blockUrlRegexes[i], err);\n return true;\n }\n }\n return false;\n};\n\nAutocapture.prototype.pageviewTrackingConfig = function() {\n // supports both autocapture config and old track_pageview config\n if (this.mp.get_config(AUTOCAPTURE_CONFIG_KEY)) {\n return this.getConfig(CONFIG_TRACK_PAGEVIEW);\n } else {\n return this.mp.get_config(LEGACY_PAGEVIEW_CONFIG_KEY);\n }\n};\n\n// helper for event handlers\nAutocapture.prototype.trackDomEvent = function(ev, mpEventName) {\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var isCapturedForHeatMap = this.mp.is_recording_heatmap_data() && (\n (mpEventName === MP_EV_CLICK && !this.getConfig(CONFIG_TRACK_CLICK)) ||\n (mpEventName === MP_EV_RAGE_CLICK && !this._getClickTrackingConfig(CONFIG_TRACK_RAGE_CLICK)) ||\n (mpEventName === MP_EV_DEAD_CLICK && !this._getClickTrackingConfig(CONFIG_TRACK_DEAD_CLICK))\n );\n\n var props = getPropsForDOMEvent(ev, {\n allowElementCallback: this.getConfig(CONFIG_ALLOW_ELEMENT_CALLBACK),\n allowSelectors: this.getConfig(CONFIG_ALLOW_SELECTORS),\n blockAttrs: this.getConfig(CONFIG_BLOCK_ATTRS),\n blockElementCallback: this.getConfig(CONFIG_BLOCK_ELEMENT_CALLBACK),\n blockSelectors: this.getConfig(CONFIG_BLOCK_SELECTORS),\n captureExtraAttrs: this.getConfig(CONFIG_CAPTURE_EXTRA_ATTRS),\n captureTextContent: this.getConfig(CONFIG_CAPTURE_TEXT_CONTENT),\n capturedForHeatMap: isCapturedForHeatMap,\n });\n if (props) {\n _.extend(props, DEFAULT_PROPS);\n this.mp.track(mpEventName, props);\n }\n};\n\nAutocapture.prototype.initPageListeners = function() {\n win.removeEventListener(EV_POPSTATE, this.listenerPopstate);\n win.removeEventListener(EV_HASHCHANGE, this.listenerHashchange);\n\n if (!this.pageviewTrackingConfig() && !this.getConfig(CONFIG_TRACK_PAGE_LEAVE) && !this.mp.get_config('record_heatmap_data')) {\n // These are all the configs that use these listeners\n return;\n }\n\n this.listenerPopstate = function() {\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n };\n this.listenerHashchange = function() {\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n };\n\n win.addEventListener(EV_POPSTATE, this.listenerPopstate);\n win.addEventListener(EV_HASHCHANGE, this.listenerHashchange);\n var nativePushState = win.history.pushState;\n if (typeof nativePushState === 'function') {\n win.history.pushState = function(state, unused, url) {\n nativePushState.call(win.history, state, unused, url);\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n };\n }\n var nativeReplaceState = win.history.replaceState;\n if (typeof nativeReplaceState === 'function') {\n win.history.replaceState = function(state, unused, url) {\n nativeReplaceState.call(win.history, state, unused, url);\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n };\n }\n};\n\nAutocapture.prototype._getClickTrackingConfig = function(configKey) {\n var config = this.getConfig(configKey);\n\n if (!config) {\n return null; // click tracking disabled\n }\n\n if (config === true) {\n return {}; // use defaults\n }\n\n if (typeof config === 'object') {\n return config; // use custom configuration\n }\n\n return {}; // fallback to defaults for any other truthy value\n};\n\nAutocapture.prototype._trackPageLeave = function(ev, currentUrl, currentScrollHeight) {\n if (this.hasTrackedScrollSession) {\n // User has navigated away already ending their impression.\n return;\n }\n\n if (!this.getConfig(CONFIG_TRACK_PAGE_LEAVE) && !this.mp.is_recording_heatmap_data()) {\n return;\n }\n\n this.hasTrackedScrollSession = true;\n var viewportHeight = Math.max(document$1.documentElement.clientHeight, win.innerHeight || 0);\n var scrollPercentage = Math.round(Math.max(this.maxScrollViewDepth - viewportHeight, 0) / (currentScrollHeight - viewportHeight) * 100);\n var foldLinePercentage = Math.round((viewportHeight / currentScrollHeight) * 100);\n if (currentScrollHeight <= viewportHeight) {\n // If the content fits within the viewport, consider it fully scrolled\n scrollPercentage = 100;\n foldLinePercentage = 100;\n }\n\n var props = _.extend({\n '$max_scroll_view_depth': this.maxScrollViewDepth,\n '$max_scroll_percentage': scrollPercentage,\n '$fold_line_percentage': foldLinePercentage,\n '$scroll_height': currentScrollHeight,\n '$event_type': ev.type,\n '$current_url': currentUrl || _.info.currentUrl(),\n '$viewportHeight': viewportHeight, // This is the fold line\n '$viewportWidth': Math.max(document$1.documentElement.clientWidth, win.innerWidth || 0),\n '$captured_for_heatmap': this.mp.is_recording_heatmap_data()\n }, DEFAULT_PROPS);\n\n // Send with beacon transport to ensure event is sent before unload\n this.mp.track(MP_EV_PAGE_LEAVE, props, {transport: 'sendBeacon'});\n};\n\nAutocapture.prototype._initScrollDepthTracking = function() {\n win.removeEventListener(EV_SCROLL, this.listenerScrollDepth);\n win.removeEventListener(EV_SCROLLEND, this.listenerScrollDepth);\n\n if (!this.mp.get_config('record_heatmap_data')) {\n return;\n }\n\n logger$1.log('Initializing scroll depth tracking');\n\n this.maxScrollViewDepth = Math.max(document$1.documentElement.clientHeight, win.innerHeight || 0);\n\n var updateScrollDepth = function() {\n if (this.currentUrlBlocked()) {\n return;\n }\n var scrollViewHeight = Math.max(document$1.documentElement.clientHeight, win.innerHeight || 0) + win.scrollY;\n if (scrollViewHeight > this.maxScrollViewDepth) {\n this.maxScrollViewDepth = scrollViewHeight;\n }\n this.previousScrollHeight = document$1.body.scrollHeight;\n }.bind(this);\n\n var scrollEndPolyfill = getPolyfillScrollEndFunction(updateScrollDepth);\n this.listenerScrollDepth = scrollEndPolyfill.listener;\n win.addEventListener(scrollEndPolyfill.eventType, this.listenerScrollDepth);\n};\n\nAutocapture.prototype.initClickTracking = function() {\n win.removeEventListener(EV_CLICK, this.listenerClick);\n\n if (!this.getConfig(CONFIG_TRACK_CLICK) && !this.mp.get_config('record_heatmap_data')) {\n return;\n }\n logger$1.log('Initializing click tracking');\n\n this.listenerClick = function(ev) {\n if (!this.getConfig(CONFIG_TRACK_CLICK) && !this.mp.is_recording_heatmap_data()) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_CLICK);\n }.bind(this);\n win.addEventListener(EV_CLICK, this.listenerClick);\n};\n\nAutocapture.prototype.initDeadClickTracking = function() {\n var deadClickConfig = this._getClickTrackingConfig(CONFIG_TRACK_DEAD_CLICK);\n\n if (!deadClickConfig && !this.mp.get_config('record_heatmap_data')) {\n this.stopDeadClickTracking();\n return;\n }\n\n logger$1.log('Initializing dead click tracking');\n if (!this._deadClickTracker) {\n this._deadClickTracker = new DeadClickTracker(function(deadClickEvent) {\n this.trackDomEvent(deadClickEvent, MP_EV_DEAD_CLICK);\n }.bind(this));\n this._deadClickTracker.startTracking();\n }\n\n if (!this.listenerDeadClick) {\n this.listenerDeadClick = function(ev) {\n var currentDeadClickConfig = this._getClickTrackingConfig(CONFIG_TRACK_DEAD_CLICK);\n if (!currentDeadClickConfig && !this.mp.is_recording_heatmap_data()) {\n return;\n }\n if (this.currentUrlBlocked()) {\n return;\n }\n // Normalize config to ensure timeout_ms is always set\n var normalizedConfig = currentDeadClickConfig || {};\n if (!normalizedConfig['timeout_ms']) {\n normalizedConfig['timeout_ms'] = DEFAULT_DEAD_CLICK_TIMEOUT_MS;\n }\n this._deadClickTracker.trackClick(ev, normalizedConfig);\n }.bind(this);\n win.addEventListener(EV_CLICK, this.listenerDeadClick);\n }\n};\n\nAutocapture.prototype.initInputTracking = function() {\n win.removeEventListener(EV_CHANGE, this.listenerChange);\n\n if (!this.getConfig(CONFIG_TRACK_INPUT)) {\n return;\n }\n logger$1.log('Initializing input tracking');\n\n this.listenerChange = function(ev) {\n if (!this.getConfig(CONFIG_TRACK_INPUT)) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_INPUT);\n }.bind(this);\n win.addEventListener(EV_CHANGE, this.listenerChange);\n};\n\nAutocapture.prototype.initPageviewTracking = function() {\n win.removeEventListener(EV_MP_LOCATION_CHANGE, this.listenerLocationchange);\n\n if (!this.pageviewTrackingConfig()) {\n return;\n }\n logger$1.log('Initializing pageview tracking');\n\n var previousTrackedUrl = '';\n var tracked = false;\n if (!this.currentUrlBlocked()) {\n tracked = this.mp.track_pageview(DEFAULT_PROPS);\n }\n if (tracked) {\n previousTrackedUrl = _.info.currentUrl();\n }\n\n this.listenerLocationchange = safewrap(function() {\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var currentUrl = _.info.currentUrl();\n var shouldTrack = false;\n var didPathChange = currentUrl.split('#')[0].split('?')[0] !== previousTrackedUrl.split('#')[0].split('?')[0];\n var trackPageviewOption = this.pageviewTrackingConfig();\n if (trackPageviewOption === PAGEVIEW_OPTION_FULL_URL) {\n shouldTrack = currentUrl !== previousTrackedUrl;\n } else if (trackPageviewOption === PAGEVIEW_OPTION_URL_WITH_PATH_AND_QUERY_STRING) {\n shouldTrack = currentUrl.split('#')[0] !== previousTrackedUrl.split('#')[0];\n } else if (trackPageviewOption === PAGEVIEW_OPTION_URL_WITH_PATH) {\n shouldTrack = didPathChange;\n }\n\n if (shouldTrack) {\n var tracked = this.mp.track_pageview(DEFAULT_PROPS);\n if (tracked) {\n previousTrackedUrl = currentUrl;\n }\n if (didPathChange) {\n this.lastScrollCheckpoint = 0;\n logger$1.log('Path change: re-initializing scroll depth checkpoints');\n }\n }\n }.bind(this));\n win.addEventListener(EV_MP_LOCATION_CHANGE, this.listenerLocationchange);\n};\n\nAutocapture.prototype.initRageClickTracking = function() {\n win.removeEventListener(EV_CLICK, this.listenerRageClick);\n\n var rageClickConfig = this._getClickTrackingConfig(CONFIG_TRACK_RAGE_CLICK);\n if (!rageClickConfig && !this.mp.get_config('record_heatmap_data')) {\n return;\n }\n\n logger$1.log('Initializing rage click tracking');\n if (!this._rageClickTracker) {\n this._rageClickTracker = new RageClickTracker();\n }\n\n this.listenerRageClick = function(ev) {\n var currentRageClickConfig = this._getClickTrackingConfig(CONFIG_TRACK_RAGE_CLICK);\n if (!currentRageClickConfig && !this.mp.is_recording_heatmap_data()) {\n return;\n }\n\n if (this.currentUrlBlocked()) {\n return;\n }\n\n if (this._rageClickTracker.isRageClick(ev, currentRageClickConfig)) {\n this.trackDomEvent(ev, MP_EV_RAGE_CLICK);\n }\n }.bind(this);\n win.addEventListener(EV_CLICK, this.listenerRageClick);\n};\n\nAutocapture.prototype.initScrollTracking = function() {\n win.removeEventListener(EV_SCROLLEND, this.listenerScroll);\n win.removeEventListener(EV_SCROLL, this.listenerScroll);\n\n\n if (!this.getConfig(CONFIG_TRACK_SCROLL)) {\n return;\n }\n logger$1.log('Initializing scroll tracking');\n this.lastScrollCheckpoint = 0;\n\n var scrollTrackFunction = function() {\n if (!this.getConfig(CONFIG_TRACK_SCROLL)) {\n return;\n }\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var shouldTrack = this.getConfig(CONFIG_SCROLL_CAPTURE_ALL);\n var scrollCheckpoints = (this.getConfig(CONFIG_SCROLL_CHECKPOINTS) || [])\n .slice()\n .sort(function(a, b) { return a - b; });\n\n var scrollTop = win.scrollY;\n var props = _.extend({'$scroll_top': scrollTop}, DEFAULT_PROPS);\n try {\n var scrollHeight = document$1.body.scrollHeight;\n var scrollPercentage = Math.round((scrollTop / (scrollHeight - win.innerHeight)) * 100);\n props['$scroll_height'] = scrollHeight;\n props['$scroll_percentage'] = scrollPercentage;\n if (scrollPercentage > this.lastScrollCheckpoint) {\n for (var i = 0; i < scrollCheckpoints.length; i++) {\n var checkpoint = scrollCheckpoints[i];\n if (\n scrollPercentage >= checkpoint &&\n this.lastScrollCheckpoint < checkpoint\n ) {\n props['$scroll_checkpoint'] = checkpoint;\n this.lastScrollCheckpoint = checkpoint;\n shouldTrack = true;\n }\n }\n }\n } catch (err) {\n logger$1.critical('Error while calculating scroll percentage', err);\n }\n if (shouldTrack) {\n this.mp.track(MP_EV_SCROLL, props);\n }\n }.bind(this);\n\n var scrollEndPolyfill = getPolyfillScrollEndFunction(scrollTrackFunction);\n this.listenerScroll = scrollEndPolyfill.listener;\n win.addEventListener(scrollEndPolyfill.eventType, this.listenerScroll);\n};\n\nAutocapture.prototype.initSubmitTracking = function() {\n win.removeEventListener(EV_SUBMIT, this.listenerSubmit);\n\n if (!this.getConfig(CONFIG_TRACK_SUBMIT)) {\n return;\n }\n logger$1.log('Initializing submit tracking');\n\n this.listenerSubmit = function(ev) {\n if (!this.getConfig(CONFIG_TRACK_SUBMIT)) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_SUBMIT);\n }.bind(this);\n win.addEventListener(EV_SUBMIT, this.listenerSubmit);\n};\n\nAutocapture.prototype.initPageLeaveTracking = function() {\n // Capture page_leave both when the user navigates away from the page (visibilitychange) as well\n // as when they navigate to a different page within the SPA (popstate/pushstate/hashchange).\n document$1.removeEventListener(EV_VISIBILITYCHANGE, this.listenerPageLeaveVisibilitychange);\n win.removeEventListener(EV_MP_LOCATION_CHANGE, this.listenerPageLeaveLocationchange);\n win.removeEventListener(EV_LOAD, this.listenerPageLoad);\n\n if (!this.getConfig(CONFIG_TRACK_PAGE_LEAVE) && !this.mp.get_config('record_heatmap_data')) {\n return;\n }\n\n logger$1.log('Initializing page visibility tracking.');\n this._initScrollDepthTracking();\n var previousTrackedUrl = _.info.currentUrl();\n\n // Initialize previousScrollHeight on `load` which handles async loading\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event\n this.listenerPageLoad = function() {\n this.previousScrollHeight = document$1.body.scrollHeight;\n }.bind(this);\n win.addEventListener(EV_LOAD, this.listenerPageLoad);\n\n // Track page navigation events similar to how initPageviewTracking does it\n this.listenerPageLeaveLocationchange = safewrap(function(ev) {\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var currentUrl = _.info.currentUrl();\n // Track all URL changes including query string or fragment changes as separate scroll sessions\n var shouldTrack = currentUrl !== previousTrackedUrl;\n\n if (shouldTrack) {\n this._trackPageLeave(ev, previousTrackedUrl, this.previousScrollHeight);\n previousTrackedUrl = currentUrl;\n // Fragment navigation should call scroll(end) and trigger listener, don't add window.scrollY here.\n this.maxScrollViewDepth = Math.max(document$1.documentElement.clientHeight, win.innerHeight || 0);\n this.previousScrollHeight = document$1.body.scrollHeight;\n this.hasTrackedScrollSession = false;\n }\n }.bind(this));\n win.addEventListener(EV_MP_LOCATION_CHANGE, this.listenerPageLeaveLocationchange);\n\n this.listenerPageLeaveVisibilitychange = function(ev) {\n if (document$1.hidden) {\n this._trackPageLeave(ev, previousTrackedUrl, this.previousScrollHeight);\n }\n }.bind(this);\n document$1.addEventListener(EV_VISIBILITYCHANGE, this.listenerPageLeaveVisibilitychange);\n};\n\nAutocapture.prototype.stopDeadClickTracking = function() {\n if (this.listenerDeadClick) {\n win.removeEventListener(EV_CLICK, this.listenerDeadClick);\n this.listenerDeadClick = null;\n }\n\n if (this._deadClickTracker) {\n this._deadClickTracker.stopTracking();\n this._deadClickTracker = null;\n }\n};\n\n// TODO integrate error_reporter from mixpanel instance\nsafewrapClass(Autocapture);\n\nvar logger = console_with_prefix('flags');\n\nvar FLAGS_CONFIG_KEY = 'flags';\n\nvar CONFIG_CONTEXT = 'context';\nvar CONFIG_DEFAULTS = {};\nCONFIG_DEFAULTS[CONFIG_CONTEXT] = {};\n\n/**\n * FeatureFlagManager: support for Mixpanel's feature flagging product\n * @constructor\n */\nvar FeatureFlagManager = function(initOptions) {\n this.fetch = win['fetch'];\n this.getFullApiRoute = initOptions.getFullApiRoute;\n this.getMpConfig = initOptions.getConfigFunc;\n this.setMpConfig = initOptions.setConfigFunc;\n this.getMpProperty = initOptions.getPropertyFunc;\n this.track = initOptions.trackingFunc;\n};\n\nFeatureFlagManager.prototype.init = function() {\n if (!this.minApisSupported()) {\n logger.critical('Feature Flags unavailable: missing minimum required APIs');\n return;\n }\n\n this.flags = null;\n this.fetchFlags();\n\n this.trackedFeatures = new Set();\n};\n\nFeatureFlagManager.prototype.getFullConfig = function() {\n var ffConfig = this.getMpConfig(FLAGS_CONFIG_KEY);\n if (!ffConfig) {\n // flags are completely off\n return {};\n } else if (_.isObject(ffConfig)) {\n return _.extend({}, CONFIG_DEFAULTS, ffConfig);\n } else {\n // config is non-object truthy value, return default\n return CONFIG_DEFAULTS;\n }\n};\n\nFeatureFlagManager.prototype.getConfig = function(key) {\n return this.getFullConfig()[key];\n};\n\nFeatureFlagManager.prototype.isSystemEnabled = function() {\n return !!this.getMpConfig(FLAGS_CONFIG_KEY);\n};\n\nFeatureFlagManager.prototype.updateContext = function(newContext, options) {\n if (!this.isSystemEnabled()) {\n logger.critical('Feature Flags not enabled, cannot update context');\n return Promise.resolve();\n }\n\n var ffConfig = this.getMpConfig(FLAGS_CONFIG_KEY);\n if (!_.isObject(ffConfig)) {\n ffConfig = {};\n }\n var oldContext = (options && options['replace']) ? {} : this.getConfig(CONFIG_CONTEXT);\n ffConfig[CONFIG_CONTEXT] = _.extend({}, oldContext, newContext);\n\n this.setMpConfig(FLAGS_CONFIG_KEY, ffConfig);\n return this.fetchFlags();\n};\n\nFeatureFlagManager.prototype.areFlagsReady = function() {\n if (!this.isSystemEnabled()) {\n logger.error('Feature Flags not enabled');\n }\n return !!this.flags;\n};\n\nFeatureFlagManager.prototype.fetchFlags = function() {\n if (!this.isSystemEnabled()) {\n return Promise.resolve();\n }\n\n var distinctId = this.getMpProperty('distinct_id');\n var deviceId = this.getMpProperty('$device_id');\n var traceparent = generateTraceparent();\n logger.log('Fetching flags for distinct ID: ' + distinctId);\n\n var context = _.extend({'distinct_id': distinctId, 'device_id': deviceId}, this.getConfig(CONFIG_CONTEXT));\n var searchParams = new URLSearchParams();\n searchParams.set('context', JSON.stringify(context));\n searchParams.set('token', this.getMpConfig('token'));\n searchParams.set('mp_lib', 'web');\n searchParams.set('$lib_version', Config.LIB_VERSION);\n var url = this.getFullApiRoute() + '?' + searchParams.toString();\n\n this._fetchInProgressStartTime = Date.now();\n this.fetchPromise = this.fetch.call(win, url, {\n 'method': 'GET',\n 'headers': {\n 'Authorization': 'Basic ' + btoa(this.getMpConfig('token') + ':'),\n 'traceparent': traceparent\n }\n }).then(function(response) {\n this.markFetchComplete();\n return response.json().then(function(responseBody) {\n var responseFlags = responseBody['flags'];\n if (!responseFlags) {\n throw new Error('No flags in API response');\n }\n var flags = new Map();\n _.each(responseFlags, function(data, key) {\n flags.set(key, {\n 'key': data['variant_key'],\n 'value': data['variant_value'],\n 'experiment_id': data['experiment_id'],\n 'is_experiment_active': data['is_experiment_active'],\n 'is_qa_tester': data['is_qa_tester']\n });\n });\n this.flags = flags;\n this._traceparent = traceparent;\n }.bind(this)).catch(function(error) {\n this.markFetchComplete();\n logger.error(error);\n }.bind(this));\n }.bind(this)).catch(function(error) {\n this.markFetchComplete();\n logger.error(error);\n }.bind(this));\n\n return this.fetchPromise;\n};\n\nFeatureFlagManager.prototype.markFetchComplete = function() {\n if (!this._fetchInProgressStartTime) {\n logger.error('Fetch in progress started time not set, cannot mark fetch complete');\n return;\n }\n this._fetchStartTime = this._fetchInProgressStartTime;\n this._fetchCompleteTime = Date.now();\n this._fetchLatency = this._fetchCompleteTime - this._fetchStartTime;\n this._fetchInProgressStartTime = null;\n};\n\nFeatureFlagManager.prototype.getVariant = function(featureName, fallback) {\n if (!this.fetchPromise) {\n return new Promise(function(resolve) {\n logger.critical('Feature Flags not initialized');\n resolve(fallback);\n });\n }\n\n return this.fetchPromise.then(function() {\n return this.getVariantSync(featureName, fallback);\n }.bind(this)).catch(function(error) {\n logger.error(error);\n return fallback;\n });\n};\n\nFeatureFlagManager.prototype.getVariantSync = function(featureName, fallback) {\n if (!this.areFlagsReady()) {\n logger.log('Flags not loaded yet');\n return fallback;\n }\n var feature = this.flags.get(featureName);\n if (!feature) {\n logger.log('No flag found: \"' + featureName + '\"');\n return fallback;\n }\n this.trackFeatureCheck(featureName, feature);\n return feature;\n};\n\nFeatureFlagManager.prototype.getVariantValue = function(featureName, fallbackValue) {\n return this.getVariant(featureName, {'value': fallbackValue}).then(function(feature) {\n return feature['value'];\n }).catch(function(error) {\n logger.error(error);\n return fallbackValue;\n });\n};\n\n// TODO remove deprecated method\nFeatureFlagManager.prototype.getFeatureData = function(featureName, fallbackValue) {\n logger.critical('mixpanel.flags.get_feature_data() is deprecated and will be removed in a future release. Use mixpanel.flags.get_variant_value() instead.');\n return this.getVariantValue(featureName, fallbackValue);\n};\n\nFeatureFlagManager.prototype.getVariantValueSync = function(featureName, fallbackValue) {\n return this.getVariantSync(featureName, {'value': fallbackValue})['value'];\n};\n\nFeatureFlagManager.prototype.isEnabled = function(featureName, fallbackValue) {\n return this.getVariantValue(featureName).then(function() {\n return this.isEnabledSync(featureName, fallbackValue);\n }.bind(this)).catch(function(error) {\n logger.error(error);\n return fallbackValue;\n });\n};\n\nFeatureFlagManager.prototype.isEnabledSync = function(featureName, fallbackValue) {\n fallbackValue = fallbackValue || false;\n var val = this.getVariantValueSync(featureName, fallbackValue);\n if (val !== true && val !== false) {\n logger.error('Feature flag \"' + featureName + '\" value: ' + val + ' is not a boolean; returning fallback value: ' + fallbackValue);\n val = fallbackValue;\n }\n return val;\n};\n\nFeatureFlagManager.prototype.trackFeatureCheck = function(featureName, feature) {\n if (this.trackedFeatures.has(featureName)) {\n return;\n }\n this.trackedFeatures.add(featureName);\n\n var trackingProperties = {\n 'Experiment name': featureName,\n 'Variant name': feature['key'],\n '$experiment_type': 'feature_flag',\n 'Variant fetch start time': new Date(this._fetchStartTime).toISOString(),\n 'Variant fetch complete time': new Date(this._fetchCompleteTime).toISOString(),\n 'Variant fetch latency (ms)': this._fetchLatency,\n 'Variant fetch traceparent': this._traceparent,\n };\n\n if (feature['experiment_id'] !== 'undefined') {\n trackingProperties['$experiment_id'] = feature['experiment_id'];\n }\n if (feature['is_experiment_active'] !== 'undefined') {\n trackingProperties['$is_experiment_active'] = feature['is_experiment_active'];\n }\n if (feature['is_qa_tester'] !== 'undefined') {\n trackingProperties['$is_qa_tester'] = feature['is_qa_tester'];\n }\n\n this.track('$experiment_started', trackingProperties);\n};\n\nFeatureFlagManager.prototype.minApisSupported = function() {\n return !!this.fetch &&\n typeof Promise !== 'undefined' &&\n typeof Map !== 'undefined' &&\n typeof Set !== 'undefined';\n};\n\nsafewrapClass(FeatureFlagManager);\n\nFeatureFlagManager.prototype['are_flags_ready'] = FeatureFlagManager.prototype.areFlagsReady;\nFeatureFlagManager.prototype['get_variant'] = FeatureFlagManager.prototype.getVariant;\nFeatureFlagManager.prototype['get_variant_sync'] = FeatureFlagManager.prototype.getVariantSync;\nFeatureFlagManager.prototype['get_variant_value'] = FeatureFlagManager.prototype.getVariantValue;\nFeatureFlagManager.prototype['get_variant_value_sync'] = FeatureFlagManager.prototype.getVariantValueSync;\nFeatureFlagManager.prototype['is_enabled'] = FeatureFlagManager.prototype.isEnabled;\nFeatureFlagManager.prototype['is_enabled_sync'] = FeatureFlagManager.prototype.isEnabledSync;\nFeatureFlagManager.prototype['update_context'] = FeatureFlagManager.prototype.updateContext;\n\n// Deprecated method\nFeatureFlagManager.prototype['get_feature_data'] = FeatureFlagManager.prototype.getFeatureData;\n\n/* eslint camelcase: \"off\" */\n\n\n/**\n * DomTracker Object\n * @constructor\n */\nvar DomTracker = function() {};\n\n\n// interface\nDomTracker.prototype.create_properties = function() {};\nDomTracker.prototype.event_handler = function() {};\nDomTracker.prototype.after_track_handler = function() {};\n\nDomTracker.prototype.init = function(mixpanel_instance) {\n this.mp = mixpanel_instance;\n return this;\n};\n\n/**\n * @param {Object|string} query\n * @param {string} event_name\n * @param {Object=} properties\n * @param {function=} user_callback\n */\nDomTracker.prototype.track = function(query, event_name, properties, user_callback) {\n var that = this;\n var elements = _.dom_query(query);\n\n if (elements.length === 0) {\n console$1.error('The DOM query (' + query + ') returned 0 elements');\n return;\n }\n\n _.each(elements, function(element) {\n _.register_event(element, this.override_event, function(e) {\n var options = {};\n var props = that.create_properties(properties, this);\n var timeout = that.mp.get_config('track_links_timeout');\n\n that.event_handler(e, this, options);\n\n // in case the mixpanel servers don't get back to us in time\n window.setTimeout(that.track_callback(user_callback, props, options, true), timeout);\n\n // fire the tracking event\n that.mp.track(event_name, props, that.track_callback(user_callback, props, options));\n });\n }, this);\n\n return true;\n};\n\n/**\n * @param {function} user_callback\n * @param {Object} props\n * @param {boolean=} timeout_occured\n */\nDomTracker.prototype.track_callback = function(user_callback, props, options, timeout_occured) {\n timeout_occured = timeout_occured || false;\n var that = this;\n\n return function() {\n // options is referenced from both callbacks, so we can have\n // a 'lock' of sorts to ensure only one fires\n if (options.callback_fired) { return; }\n options.callback_fired = true;\n\n if (user_callback && user_callback(timeout_occured, props) === false) {\n // user can prevent the default functionality by\n // returning false from their callback\n return;\n }\n\n that.after_track_handler(props, options, timeout_occured);\n };\n};\n\nDomTracker.prototype.create_properties = function(properties, element) {\n var props;\n\n if (typeof(properties) === 'function') {\n props = properties(element);\n } else {\n props = _.extend({}, properties);\n }\n\n return props;\n};\n\n/**\n * LinkTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar LinkTracker = function() {\n this.override_event = 'click';\n};\n_.inherit(LinkTracker, DomTracker);\n\nLinkTracker.prototype.create_properties = function(properties, element) {\n var props = LinkTracker.superclass.create_properties.apply(this, arguments);\n\n if (element.href) { props['url'] = element.href; }\n\n return props;\n};\n\nLinkTracker.prototype.event_handler = function(evt, element, options) {\n options.new_tab = (\n evt.which === 2 ||\n evt.metaKey ||\n evt.ctrlKey ||\n element.target === '_blank'\n );\n options.href = element.href;\n\n if (!options.new_tab) {\n evt.preventDefault();\n }\n};\n\nLinkTracker.prototype.after_track_handler = function(props, options) {\n if (options.new_tab) { return; }\n\n setTimeout(function() {\n window.location = options.href;\n }, 0);\n};\n\n/**\n * FormTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar FormTracker = function() {\n this.override_event = 'submit';\n};\n_.inherit(FormTracker, DomTracker);\n\nFormTracker.prototype.event_handler = function(evt, element, options) {\n options.element = element;\n evt.preventDefault();\n};\n\nFormTracker.prototype.after_track_handler = function(props, options) {\n setTimeout(function() {\n options.element.submit();\n }, 0);\n};\n\n/* eslint camelcase: \"off\" */\n\n\n/** @const */ var SET_ACTION = '$set';\n/** @const */ var SET_ONCE_ACTION = '$set_once';\n/** @const */ var UNSET_ACTION = '$unset';\n/** @const */ var ADD_ACTION = '$add';\n/** @const */ var APPEND_ACTION = '$append';\n/** @const */ var UNION_ACTION = '$union';\n/** @const */ var REMOVE_ACTION = '$remove';\n/** @const */ var DELETE_ACTION = '$delete';\n\n// Common internal methods for mixpanel.people and mixpanel.group APIs.\n// These methods shouldn't involve network I/O.\nvar apiActions = {\n set_action: function(prop, to) {\n var data = {};\n var $set = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set[k] = v;\n }\n }, this);\n } else {\n $set[prop] = to;\n }\n\n data[SET_ACTION] = $set;\n return data;\n },\n\n unset_action: function(prop) {\n var data = {};\n var $unset = [];\n if (!_.isArray(prop)) {\n prop = [prop];\n }\n\n _.each(prop, function(k) {\n if (!this._is_reserved_property(k)) {\n $unset.push(k);\n }\n }, this);\n\n data[UNSET_ACTION] = $unset;\n return data;\n },\n\n set_once_action: function(prop, to) {\n var data = {};\n var $set_once = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set_once[k] = v;\n }\n }, this);\n } else {\n $set_once[prop] = to;\n }\n data[SET_ONCE_ACTION] = $set_once;\n return data;\n },\n\n union_action: function(list_name, values) {\n var data = {};\n var $union = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $union[k] = _.isArray(v) ? v : [v];\n }\n }, this);\n } else {\n $union[list_name] = _.isArray(values) ? values : [values];\n }\n data[UNION_ACTION] = $union;\n return data;\n },\n\n append_action: function(list_name, value) {\n var data = {};\n var $append = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $append[k] = v;\n }\n }, this);\n } else {\n $append[list_name] = value;\n }\n data[APPEND_ACTION] = $append;\n return data;\n },\n\n remove_action: function(list_name, value) {\n var data = {};\n var $remove = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $remove[k] = v;\n }\n }, this);\n } else {\n $remove[list_name] = value;\n }\n data[REMOVE_ACTION] = $remove;\n return data;\n },\n\n delete_action: function() {\n var data = {};\n data[DELETE_ACTION] = '';\n return data;\n }\n};\n\n/* eslint camelcase: \"off\" */\n\n/**\n * Mixpanel Group Object\n * @constructor\n */\nvar MixpanelGroup = function() {};\n\n_.extend(MixpanelGroup.prototype, apiActions);\n\nMixpanelGroup.prototype._init = function(mixpanel_instance, group_key, group_id) {\n this._mixpanel = mixpanel_instance;\n this._group_key = group_key;\n this._group_id = group_id;\n};\n\n/**\n * Set properties on a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, dates, or lists\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Set properties on a group, only if they do not yet exist.\n * This will not overwrite previous group property values, unlike\n * group.set().\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set_once('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set_once({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, lists or dates\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set_once = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Unset properties on a group permanently.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').unset('Founded');\n *\n * @param {String} prop The name of the property.\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.unset = addOptOutCheckMixpanelGroup(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/**\n * Merge a given list with a list-valued group property, excluding duplicate values.\n *\n * ### Usage:\n *\n * // merge a value to a list, creating it if needed\n * mixpanel.get_group('company', 'mixpanel').union('Location', ['San Francisco', 'London']);\n *\n * @param {String} list_name Name of the property.\n * @param {Array} values Values to merge with the given property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.union = addOptOutCheckMixpanelGroup(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/**\n * Permanently delete a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').delete();\n *\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype['delete'] = addOptOutCheckMixpanelGroup(function(callback) {\n // bracket notation above prevents a minification error related to reserved words\n var data = this.delete_action();\n return this._send_request(data, callback);\n});\n\n/**\n * Remove a property from a group. The value will be ignored if doesn't exist.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').remove('Location', 'London');\n *\n * @param {String} list_name Name of the property.\n * @param {Object} value Value to remove from the given group property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.remove = addOptOutCheckMixpanelGroup(function(list_name, value, callback) {\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\nMixpanelGroup.prototype._send_request = function(data, callback) {\n data['$group_key'] = this._group_key;\n data['$group_id'] = this._group_id;\n data['$token'] = this._get_config('token');\n\n var date_encoded_data = _.encodeDates(data);\n return this._mixpanel._track_or_batch({\n type: 'groups',\n data: date_encoded_data,\n endpoint: this._mixpanel.get_api_host('groups') + '/' + this._get_config('api_routes')['groups'],\n batcher: this._mixpanel.request_batchers.groups\n }, callback);\n};\n\nMixpanelGroup.prototype._is_reserved_property = function(prop) {\n return prop === '$group_key' || prop === '$group_id';\n};\n\nMixpanelGroup.prototype._get_config = function(conf) {\n return this._mixpanel.get_config(conf);\n};\n\nMixpanelGroup.prototype.toString = function() {\n return this._mixpanel.toString() + '.group.' + this._group_key + '.' + this._group_id;\n};\n\n// MixpanelGroup Exports\nMixpanelGroup.prototype['remove'] = MixpanelGroup.prototype.remove;\nMixpanelGroup.prototype['set'] = MixpanelGroup.prototype.set;\nMixpanelGroup.prototype['set_once'] = MixpanelGroup.prototype.set_once;\nMixpanelGroup.prototype['union'] = MixpanelGroup.prototype.union;\nMixpanelGroup.prototype['unset'] = MixpanelGroup.prototype.unset;\nMixpanelGroup.prototype['toString'] = MixpanelGroup.prototype.toString;\n\n/* eslint camelcase: \"off\" */\n\n/**\n * Mixpanel People Object\n * @constructor\n */\nvar MixpanelPeople = function() {};\n\n_.extend(MixpanelPeople.prototype, apiActions);\n\nMixpanelPeople.prototype._init = function(mixpanel_instance) {\n this._mixpanel = mixpanel_instance;\n};\n\n/*\n* Set properties on a user record.\n*\n* ### Usage:\n*\n* mixpanel.people.set('gender', 'm');\n*\n* // or set multiple properties at once\n* mixpanel.people.set({\n* 'Company': 'Acme',\n* 'Plan': 'Premium',\n* 'Upgrade date': new Date()\n* });\n* // properties can be strings, integers, dates, or lists\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n // make sure that the referrer info has been updated and saved\n if (this._get_config('save_referrer')) {\n this._mixpanel['persistence'].update_referrer_info(document.referrer);\n }\n\n // update $set object with default people properties\n data[SET_ACTION] = _.extend(\n {},\n _.info.people_properties(),\n data[SET_ACTION]\n );\n return this._send_request(data, callback);\n});\n\n/*\n* Set properties on a user record, only if they do not yet exist.\n* This will not overwrite previous people property values, unlike\n* people.set().\n*\n* ### Usage:\n*\n* mixpanel.people.set_once('First Login Date', new Date());\n*\n* // or set multiple properties at once\n* mixpanel.people.set_once({\n* 'First Login Date': new Date(),\n* 'Starting Plan': 'Premium'\n* });\n*\n* // properties can be strings, integers or dates\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set_once = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/*\n* Unset properties on a user record (permanently removes the properties and their values from a profile).\n*\n* ### Usage:\n*\n* mixpanel.people.unset('gender');\n*\n* // or unset multiple properties at once\n* mixpanel.people.unset(['gender', 'Company']);\n*\n* @param {Array|String} prop If a string, this is the name of the property. If an array, this is a list of property names.\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.unset = addOptOutCheckMixpanelPeople(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/*\n* Increment/decrement numeric people analytics properties.\n*\n* ### Usage:\n*\n* mixpanel.people.increment('page_views', 1);\n*\n* // or, for convenience, if you're just incrementing a counter by\n* // 1, you can simply do\n* mixpanel.people.increment('page_views');\n*\n* // to decrement a counter, pass a negative number\n* mixpanel.people.increment('credits_left', -1);\n*\n* // like mixpanel.people.set(), you can increment multiple\n* // properties at once:\n* mixpanel.people.increment({\n* counter1: 1,\n* counter2: 6\n* });\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and numeric values.\n* @param {Number} [by] An amount to increment the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.increment = addOptOutCheckMixpanelPeople(function(prop, by, callback) {\n var data = {};\n var $add = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n if (isNaN(parseFloat(v))) {\n console$1.error('Invalid increment value passed to mixpanel.people.increment - must be a number');\n return;\n } else {\n $add[k] = v;\n }\n }\n }, this);\n callback = by;\n } else {\n // convenience: mixpanel.people.increment('property'); will\n // increment 'property' by 1\n if (_.isUndefined(by)) {\n by = 1;\n }\n $add[prop] = by;\n }\n data[ADD_ACTION] = $add;\n\n return this._send_request(data, callback);\n});\n\n/*\n* Append a value to a list-valued people analytics property.\n*\n* ### Usage:\n*\n* // append a value to a list, creating it if needed\n* mixpanel.people.append('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.append({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value An item to append to the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.append = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.append_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Remove a value from a list-valued people analytics property.\n*\n* ### Usage:\n*\n* mixpanel.people.remove('School', 'UCB');\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value Item to remove from the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.remove = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Merge a given list with a list-valued people analytics property,\n* excluding duplicate values.\n*\n* ### Usage:\n*\n* // merge a value to a list, creating it if needed\n* mixpanel.people.union('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.union({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* // like mixpanel.people.append(), you can append multiple\n* // values to the same list:\n* mixpanel.people.union({\n* list1: ['bob', 'billy']\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] Value / values to merge with the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.union = addOptOutCheckMixpanelPeople(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/*\n * Record that you have charged the current user a certain amount\n * of money. Charges recorded with track_charge() will appear in the\n * Mixpanel revenue report.\n *\n * ### Usage:\n *\n * // charge a user $50\n * mixpanel.people.track_charge(50);\n *\n * // charge a user $30.50 on the 2nd of january\n * mixpanel.people.track_charge(30.50, {\n * '$time': new Date('jan 1 2012')\n * });\n *\n * @param {Number} amount The amount of money charged to the current user\n * @param {Object} [properties] An associative array of properties associated with the charge\n * @param {Function} [callback] If provided, the callback will be called when the server responds\n * @deprecated\n */\nMixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function() {\n console$1.error('mixpanel.people.track_charge() is deprecated and no longer has any effect.');\n});\n\n/*\n * Permanently clear all revenue report transactions from the\n * current user's people analytics profile.\n *\n * ### Usage:\n *\n * mixpanel.people.clear_charges();\n *\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n * @deprecated\n */\nMixpanelPeople.prototype.clear_charges = function(callback) {\n return this.set('$transactions', [], callback);\n};\n\n/*\n* Permanently deletes the current people analytics profile from\n* Mixpanel (using the current distinct_id).\n*\n* ### Usage:\n*\n* // remove the all data you have stored about the current user\n* mixpanel.people.delete_user();\n*\n*/\nMixpanelPeople.prototype.delete_user = function() {\n if (!this._identify_called()) {\n console$1.error('mixpanel.people.delete_user() requires you to call identify() first');\n return;\n }\n var data = {'$delete': this._mixpanel.get_distinct_id()};\n return this._send_request(data);\n};\n\nMixpanelPeople.prototype.toString = function() {\n return this._mixpanel.toString() + '.people';\n};\n\nMixpanelPeople.prototype._send_request = function(data, callback) {\n data['$token'] = this._get_config('token');\n data['$distinct_id'] = this._mixpanel.get_distinct_id();\n var device_id = this._mixpanel.get_property('$device_id');\n var user_id = this._mixpanel.get_property('$user_id');\n var had_persisted_distinct_id = this._mixpanel.get_property('$had_persisted_distinct_id');\n if (device_id) {\n data['$device_id'] = device_id;\n }\n if (user_id) {\n data['$user_id'] = user_id;\n }\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id;\n }\n\n var date_encoded_data = _.encodeDates(data);\n\n if (!this._identify_called()) {\n this._enqueue(data);\n if (!_.isUndefined(callback)) {\n if (this._get_config('verbose')) {\n callback({status: -1, error: null});\n } else {\n callback(-1);\n }\n }\n return _.truncate(date_encoded_data, 255);\n }\n\n return this._mixpanel._track_or_batch({\n type: 'people',\n data: date_encoded_data,\n endpoint: this._mixpanel.get_api_host('people') + '/' + this._get_config('api_routes')['engage'],\n batcher: this._mixpanel.request_batchers.people\n }, callback);\n};\n\nMixpanelPeople.prototype._get_config = function(conf_var) {\n return this._mixpanel.get_config(conf_var);\n};\n\nMixpanelPeople.prototype._identify_called = function() {\n return this._mixpanel._flags.identify_called === true;\n};\n\n// Queue up engage operations if identify hasn't been called yet.\nMixpanelPeople.prototype._enqueue = function(data) {\n if (SET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ACTION, data);\n } else if (SET_ONCE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ONCE_ACTION, data);\n } else if (UNSET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNSET_ACTION, data);\n } else if (ADD_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(ADD_ACTION, data);\n } else if (APPEND_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, data);\n } else if (REMOVE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, data);\n } else if (UNION_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNION_ACTION, data);\n } else {\n console$1.error('Invalid call to _enqueue():', data);\n }\n};\n\nMixpanelPeople.prototype._flush_one_queue = function(action, action_method, callback, queue_to_params_fn) {\n var _this = this;\n var queued_data = _.extend({}, this._mixpanel['persistence'].load_queue(action));\n var action_params = queued_data;\n\n if (!_.isUndefined(queued_data) && _.isObject(queued_data) && !_.isEmptyObject(queued_data)) {\n _this._mixpanel['persistence']._pop_from_people_queue(action, queued_data);\n _this._mixpanel['persistence'].save();\n if (queue_to_params_fn) {\n action_params = queue_to_params_fn(queued_data);\n }\n action_method.call(_this, action_params, function(response, data) {\n // on bad response, we want to add it back to the queue\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(action, queued_data);\n }\n if (!_.isUndefined(callback)) {\n callback(response, data);\n }\n });\n }\n};\n\n// Flush queued engage operations - order does not matter,\n// and there are network level race conditions anyway\nMixpanelPeople.prototype._flush = function(\n _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n var _this = this;\n\n this._flush_one_queue(SET_ACTION, this.set, _set_callback);\n this._flush_one_queue(SET_ONCE_ACTION, this.set_once, _set_once_callback);\n this._flush_one_queue(UNSET_ACTION, this.unset, _unset_callback, function(queue) { return _.keys(queue); });\n this._flush_one_queue(ADD_ACTION, this.increment, _add_callback);\n this._flush_one_queue(UNION_ACTION, this.union, _union_callback);\n\n // we have to fire off each $append individually since there is\n // no concat method server side\n var $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n if (!_.isUndefined($append_queue) && _.isArray($append_queue) && $append_queue.length) {\n var $append_item;\n var append_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, $append_item);\n }\n if (!_.isUndefined(_append_callback)) {\n _append_callback(response, data);\n }\n };\n for (var i = $append_queue.length - 1; i >= 0; i--) {\n $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n $append_item = $append_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($append_item)) {\n _this.append($append_item, append_callback);\n }\n }\n }\n\n // same for $remove\n var $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n if (!_.isUndefined($remove_queue) && _.isArray($remove_queue) && $remove_queue.length) {\n var $remove_item;\n var remove_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, $remove_item);\n }\n if (!_.isUndefined(_remove_callback)) {\n _remove_callback(response, data);\n }\n };\n for (var j = $remove_queue.length - 1; j >= 0; j--) {\n $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n $remove_item = $remove_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($remove_item)) {\n _this.remove($remove_item, remove_callback);\n }\n }\n }\n};\n\nMixpanelPeople.prototype._is_reserved_property = function(prop) {\n return prop === '$distinct_id' || prop === '$token' || prop === '$device_id' || prop === '$user_id' || prop === '$had_persisted_distinct_id';\n};\n\n// MixpanelPeople Exports\nMixpanelPeople.prototype['set'] = MixpanelPeople.prototype.set;\nMixpanelPeople.prototype['set_once'] = MixpanelPeople.prototype.set_once;\nMixpanelPeople.prototype['unset'] = MixpanelPeople.prototype.unset;\nMixpanelPeople.prototype['increment'] = MixpanelPeople.prototype.increment;\nMixpanelPeople.prototype['append'] = MixpanelPeople.prototype.append;\nMixpanelPeople.prototype['remove'] = MixpanelPeople.prototype.remove;\nMixpanelPeople.prototype['union'] = MixpanelPeople.prototype.union;\nMixpanelPeople.prototype['track_charge'] = MixpanelPeople.prototype.track_charge;\nMixpanelPeople.prototype['clear_charges'] = MixpanelPeople.prototype.clear_charges;\nMixpanelPeople.prototype['delete_user'] = MixpanelPeople.prototype.delete_user;\nMixpanelPeople.prototype['toString'] = MixpanelPeople.prototype.toString;\n\n/* eslint camelcase: \"off\" */\n\n\n/*\n * Constants\n */\n/** @const */ var SET_QUEUE_KEY = '__mps';\n/** @const */ var SET_ONCE_QUEUE_KEY = '__mpso';\n/** @const */ var UNSET_QUEUE_KEY = '__mpus';\n/** @const */ var ADD_QUEUE_KEY = '__mpa';\n/** @const */ var APPEND_QUEUE_KEY = '__mpap';\n/** @const */ var REMOVE_QUEUE_KEY = '__mpr';\n/** @const */ var UNION_QUEUE_KEY = '__mpu';\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\n/** @const */ var PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';\n/** @const */ var ALIAS_ID_KEY = '__alias';\n/** @const */ var EVENT_TIMERS_KEY = '__timers';\n/** @const */ var RESERVED_PROPERTIES = [\n SET_QUEUE_KEY,\n SET_ONCE_QUEUE_KEY,\n UNSET_QUEUE_KEY,\n ADD_QUEUE_KEY,\n APPEND_QUEUE_KEY,\n REMOVE_QUEUE_KEY,\n UNION_QUEUE_KEY,\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n EVENT_TIMERS_KEY\n];\n\n/**\n * Mixpanel Persistence Object\n * @constructor\n */\nvar MixpanelPersistence = function(config) {\n this['props'] = {};\n this.campaign_params_saved = false;\n\n if (config['persistence_name']) {\n this.name = 'mp_' + config['persistence_name'];\n } else {\n this.name = 'mp_' + config['token'] + '_mixpanel';\n }\n\n var storage_type = config['persistence'];\n if (storage_type !== 'cookie' && storage_type !== 'localStorage') {\n console$1.critical('Unknown persistence type ' + storage_type + '; falling back to cookie');\n storage_type = config['persistence'] = 'cookie';\n }\n\n if (storage_type === 'localStorage' && _.localStorage.is_supported()) {\n this.storage = _.localStorage;\n } else {\n this.storage = _.cookie;\n }\n\n this.load();\n this.update_config(config);\n this.upgrade();\n this.save();\n};\n\nMixpanelPersistence.prototype.properties = function() {\n var p = {};\n\n this.load();\n\n // Filter out reserved properties\n _.each(this['props'], function(v, k) {\n if (!_.include(RESERVED_PROPERTIES, k)) {\n p[k] = v;\n }\n });\n return p;\n};\n\nMixpanelPersistence.prototype.load = function() {\n if (this.disabled) { return; }\n\n var entry = this.storage.parse(this.name);\n\n if (entry) {\n this['props'] = _.extend({}, entry);\n }\n};\n\nMixpanelPersistence.prototype.upgrade = function() {\n var old_cookie,\n old_localstorage;\n\n // if transferring from cookie to localStorage or vice-versa, copy existing\n // super properties over to new storage mode\n if (this.storage === _.localStorage) {\n old_cookie = _.cookie.parse(this.name);\n\n _.cookie.remove(this.name);\n _.cookie.remove(this.name, true);\n\n if (old_cookie) {\n this.register_once(old_cookie);\n }\n } else if (this.storage === _.cookie) {\n old_localstorage = _.localStorage.parse(this.name);\n\n _.localStorage.remove(this.name);\n\n if (old_localstorage) {\n this.register_once(old_localstorage);\n }\n }\n};\n\nMixpanelPersistence.prototype.save = function() {\n if (this.disabled) { return; }\n\n this.storage.set(\n this.name,\n JSONStringify(this['props']),\n this.expire_days,\n this.cross_subdomain,\n this.secure,\n this.cross_site,\n this.cookie_domain\n );\n};\n\nMixpanelPersistence.prototype.load_prop = function(key) {\n this.load();\n return this['props'][key];\n};\n\nMixpanelPersistence.prototype.remove = function() {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false, this.cookie_domain);\n this.storage.remove(this.name, true, this.cookie_domain);\n};\n\n// removes the storage entry and deletes all loaded data\n// forced name for tests\nMixpanelPersistence.prototype.clear = function() {\n this.remove();\n this['props'] = {};\n};\n\n/**\n* @param {Object} props\n* @param {*=} default_value\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register_once = function(props, default_value, days) {\n if (_.isObject(props)) {\n if (typeof(default_value) === 'undefined') { default_value = 'None'; }\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n\n _.each(props, function(val, prop) {\n if (!this['props'].hasOwnProperty(prop) || this['props'][prop] === default_value) {\n this['props'][prop] = val;\n }\n }, this);\n\n this.save();\n\n return true;\n }\n return false;\n};\n\n/**\n* @param {Object} props\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register = function(props, days) {\n if (_.isObject(props)) {\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n _.extend(this['props'], props);\n this.save();\n\n return true;\n }\n return false;\n};\n\nMixpanelPersistence.prototype.unregister = function(prop) {\n this.load();\n if (prop in this['props']) {\n delete this['props'][prop];\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.update_search_keyword = function(referrer) {\n this.register(_.info.searchInfo(referrer));\n};\n\n// EXPORTED METHOD, we test this directly.\nMixpanelPersistence.prototype.update_referrer_info = function(referrer) {\n // If referrer doesn't exist, we want to note the fact that it was type-in traffic.\n this.register_once({\n '$initial_referrer': referrer || '$direct',\n '$initial_referring_domain': _.info.referringDomain(referrer) || '$direct'\n }, '');\n};\n\nMixpanelPersistence.prototype.get_referrer_info = function() {\n return _.strip_empty_properties({\n '$initial_referrer': this['props']['$initial_referrer'],\n '$initial_referring_domain': this['props']['$initial_referring_domain']\n });\n};\n\nMixpanelPersistence.prototype.update_config = function(config) {\n this.default_expiry = this.expire_days = config['cookie_expiration'];\n this.set_disabled(config['disable_persistence']);\n this.set_cookie_domain(config['cookie_domain']);\n this.set_cross_site(config['cross_site_cookie']);\n this.set_cross_subdomain(config['cross_subdomain_cookie']);\n this.set_secure(config['secure_cookie']);\n};\n\nMixpanelPersistence.prototype.set_disabled = function(disabled) {\n this.disabled = disabled;\n if (this.disabled) {\n this.remove();\n } else {\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cookie_domain = function(cookie_domain) {\n if (cookie_domain !== this.cookie_domain) {\n this.remove();\n this.cookie_domain = cookie_domain;\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_site = function(cross_site) {\n if (cross_site !== this.cross_site) {\n this.cross_site = cross_site;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_subdomain = function(cross_subdomain) {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.get_cross_subdomain = function() {\n return this.cross_subdomain;\n};\n\nMixpanelPersistence.prototype.set_secure = function(secure) {\n if (secure !== this.secure) {\n this.secure = secure ? true : false;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype._add_to_people_queue = function(queue, data) {\n var q_key = this._get_queue_key(queue),\n q_data = data[queue],\n set_q = this._get_or_create_queue(SET_ACTION),\n set_once_q = this._get_or_create_queue(SET_ONCE_ACTION),\n unset_q = this._get_or_create_queue(UNSET_ACTION),\n add_q = this._get_or_create_queue(ADD_ACTION),\n union_q = this._get_or_create_queue(UNION_ACTION),\n remove_q = this._get_or_create_queue(REMOVE_ACTION, []),\n append_q = this._get_or_create_queue(APPEND_ACTION, []);\n\n if (q_key === SET_QUEUE_KEY) {\n // Update the set queue - we can override any existing values\n _.extend(set_q, q_data);\n // if there was a pending increment, override it\n // with the set.\n this._pop_from_people_queue(ADD_ACTION, q_data);\n // if there was a pending union, override it\n // with the set.\n this._pop_from_people_queue(UNION_ACTION, q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === SET_ONCE_QUEUE_KEY) {\n // only queue the data if there is not already a set_once call for it.\n _.each(q_data, function(v, k) {\n if (!(k in set_once_q)) {\n set_once_q[k] = v;\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNSET_QUEUE_KEY) {\n _.each(q_data, function(prop) {\n\n // undo previously-queued actions on this key\n _.each([set_q, set_once_q, add_q, union_q], function(enqueued_obj) {\n if (prop in enqueued_obj) {\n delete enqueued_obj[prop];\n }\n });\n _.each(append_q, function(append_obj) {\n if (prop in append_obj) {\n delete append_obj[prop];\n }\n });\n\n unset_q[prop] = true;\n\n });\n } else if (q_key === ADD_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n // If it exists in the set queue, increment\n // the value\n if (k in set_q) {\n set_q[k] += v;\n } else {\n // If it doesn't exist, update the add\n // queue\n if (!(k in add_q)) {\n add_q[k] = 0;\n }\n add_q[k] += v;\n }\n }, this);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNION_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n if (_.isArray(v)) {\n if (!(k in union_q)) {\n union_q[k] = [];\n }\n // Prevent duplicate values\n _.each(v, function(item) {\n if (!_.include(union_q[k], item)) {\n union_q[k].push(item);\n }\n });\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === REMOVE_QUEUE_KEY) {\n remove_q.push(q_data);\n this._pop_from_people_queue(APPEND_ACTION, q_data);\n } else if (q_key === APPEND_QUEUE_KEY) {\n append_q.push(q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n }\n\n console$1.log('MIXPANEL PEOPLE REQUEST (QUEUED, PENDING IDENTIFY):');\n console$1.log(data);\n\n this.save();\n};\n\nMixpanelPersistence.prototype._pop_from_people_queue = function(queue, data) {\n var q = this['props'][this._get_queue_key(queue)];\n if (!_.isUndefined(q)) {\n _.each(data, function(v, k) {\n if (queue === APPEND_ACTION || queue === REMOVE_ACTION) {\n // list actions: only remove if both k+v match\n // e.g. remove should not override append in a case like\n // append({foo: 'bar'}); remove({foo: 'qux'})\n _.each(q, function(queued_action) {\n if (queued_action[k] === v) {\n delete queued_action[k];\n }\n });\n } else {\n delete q[k];\n }\n }, this);\n }\n};\n\nMixpanelPersistence.prototype.load_queue = function(queue) {\n return this.load_prop(this._get_queue_key(queue));\n};\n\nMixpanelPersistence.prototype._get_queue_key = function(queue) {\n if (queue === SET_ACTION) {\n return SET_QUEUE_KEY;\n } else if (queue === SET_ONCE_ACTION) {\n return SET_ONCE_QUEUE_KEY;\n } else if (queue === UNSET_ACTION) {\n return UNSET_QUEUE_KEY;\n } else if (queue === ADD_ACTION) {\n return ADD_QUEUE_KEY;\n } else if (queue === APPEND_ACTION) {\n return APPEND_QUEUE_KEY;\n } else if (queue === REMOVE_ACTION) {\n return REMOVE_QUEUE_KEY;\n } else if (queue === UNION_ACTION) {\n return UNION_QUEUE_KEY;\n } else {\n console$1.error('Invalid queue:', queue);\n }\n};\n\nMixpanelPersistence.prototype._get_or_create_queue = function(queue, default_val) {\n var key = this._get_queue_key(queue);\n default_val = _.isUndefined(default_val) ? {} : default_val;\n return this['props'][key] || (this['props'][key] = default_val);\n};\n\nMixpanelPersistence.prototype.set_event_timer = function(event_name, timestamp) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n timers[event_name] = timestamp;\n this['props'][EVENT_TIMERS_KEY] = timers;\n this.save();\n};\n\nMixpanelPersistence.prototype.remove_event_timer = function(event_name) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n var timestamp = timers[event_name];\n if (!_.isUndefined(timestamp)) {\n delete this['props'][EVENT_TIMERS_KEY][event_name];\n this.save();\n }\n return timestamp;\n};\n\n/* eslint camelcase: \"off\" */\n\n/*\n * Mixpanel JS Library\n *\n * Copyright 2012, Mixpanel, Inc. All Rights Reserved\n * http://mixpanel.com/\n *\n * Includes portions of Underscore.js\n * http://documentcloud.github.com/underscore/\n * (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.\n * Released under the MIT License.\n */\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nvar init_type; // MODULE or SNIPPET loader\n// allow bundlers to specify how extra code (recorder bundle) should be loaded\n// eslint-disable-next-line no-unused-vars\nvar load_extra_bundle = function(src, _onload) {\n throw new Error(src + ' not available in this build.');\n};\n\nvar mixpanel_master; // main mixpanel instance / object\nvar INIT_MODULE = 0;\nvar INIT_SNIPPET = 1;\n\nvar IDENTITY_FUNC = function(x) {return x;};\n\n/** @const */ var PRIMARY_INSTANCE_NAME = 'mixpanel';\n/** @const */ var PAYLOAD_TYPE_BASE64 = 'base64';\n/** @const */ var PAYLOAD_TYPE_JSON = 'json';\n/** @const */ var DEVICE_ID_PREFIX = '$device:';\n\n\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\nvar USE_XHR = (win.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest());\n\n// IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\nvar ENQUEUE_REQUESTS = !USE_XHR && (userAgent.indexOf('MSIE') === -1) && (userAgent.indexOf('Mozilla') === -1);\n\n// save reference to navigator.sendBeacon so it can be minified\nvar sendBeacon = null;\nif (navigator['sendBeacon']) {\n sendBeacon = function() {\n // late reference to navigator.sendBeacon to allow patching/spying\n return navigator['sendBeacon'].apply(navigator, arguments);\n };\n}\n\nvar DEFAULT_API_ROUTES = {\n 'track': 'track/',\n 'engage': 'engage/',\n 'groups': 'groups/',\n 'record': 'record/',\n 'flags': 'flags/'\n};\n\n/*\n * Module-level globals\n */\nvar DEFAULT_CONFIG = {\n 'api_host': 'https://api-js.mixpanel.com',\n 'api_hosts': {},\n 'api_routes': DEFAULT_API_ROUTES,\n 'api_extra_query_params': {},\n 'api_method': 'POST',\n 'api_transport': 'XHR',\n 'api_payload_format': PAYLOAD_TYPE_BASE64,\n 'app_host': 'https://mixpanel.com',\n 'autocapture': false,\n 'cdn': 'https://cdn.mxpnl.com',\n 'cross_site_cookie': false,\n 'cross_subdomain_cookie': true,\n 'error_reporter': NOOP_FUNC,\n 'flags': false,\n 'persistence': 'cookie',\n 'persistence_name': '',\n 'cookie_domain': '',\n 'cookie_name': '',\n 'loaded': NOOP_FUNC,\n 'mp_loader': null,\n 'track_marketing': true,\n 'track_pageview': false,\n 'skip_first_touch_marketing': false,\n 'store_google': true,\n 'stop_utm_persistence': false,\n 'save_referrer': true,\n 'test': false,\n 'verbose': false,\n 'img': false,\n 'debug': false,\n 'track_links_timeout': 300,\n 'cookie_expiration': 365,\n 'upgrade': false,\n 'disable_persistence': false,\n 'disable_cookie': false,\n 'secure_cookie': false,\n 'ip': true,\n 'opt_out_tracking_by_default': false,\n 'opt_out_persistence_by_default': false,\n 'opt_out_tracking_persistence_type': 'localStorage',\n 'opt_out_tracking_cookie_prefix': null,\n 'property_blacklist': [],\n 'xhr_headers': {}, // { header: value, header2: value }\n 'ignore_dnt': false,\n 'batch_requests': true,\n 'batch_size': 50,\n 'batch_flush_interval_ms': 5000,\n 'batch_request_timeout_ms': 90000,\n 'batch_autostart': true,\n 'hooks': {},\n 'record_block_class': new RegExp('^(mp-block|fs-exclude|amp-block|rr-block|ph-no-capture)$'),\n 'record_block_selector': 'img, video, audio',\n 'record_canvas': false,\n 'record_collect_fonts': false,\n 'record_console': true,\n 'record_heatmap_data': false,\n 'record_idle_timeout_ms': 30 * 60 * 1000, // 30 minutes\n 'record_mask_text_class': new RegExp('^(mp-mask|fs-mask|amp-mask|rr-mask|ph-mask)$'),\n 'record_mask_text_selector': '*',\n 'record_max_ms': MAX_RECORDING_MS,\n 'record_min_ms': 0,\n 'record_sessions_percent': 0,\n 'recorder_src': 'https://cdn.mxpnl.com/libs/mixpanel-recorder.min.js'\n};\n\nvar DOM_LOADED = false;\n\n/**\n * Mixpanel Library Object\n * @constructor\n */\nvar MixpanelLib = function() {};\n\n\n/**\n * create_mplib(token:string, config:object, name:string)\n *\n * This function is used by the init method of MixpanelLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.mixpanel as well as any additional instances\n * declared before this file has loaded).\n */\nvar create_mplib = function(token, config, name) {\n var instance,\n target = (name === PRIMARY_INSTANCE_NAME) ? mixpanel_master : mixpanel_master[name];\n\n if (target && init_type === INIT_MODULE) {\n instance = target;\n } else {\n if (target && !_.isArray(target)) {\n console$1.error('You have already initialized ' + name);\n return;\n }\n instance = new MixpanelLib();\n }\n\n instance._cached_groups = {}; // cache groups in a pool\n\n instance._init(token, config, name);\n\n instance['people'] = new MixpanelPeople();\n instance['people']._init(instance);\n\n if (!instance.get_config('skip_first_touch_marketing')) {\n // We need null UTM params in the object because\n // UTM parameters act as a tuple. If any UTM param\n // is present, then we set all UTM params including\n // empty ones together\n var utm_params = _.info.campaignParams(null);\n var initial_utm_params = {};\n var has_utm = false;\n _.each(utm_params, function(utm_value, utm_key) {\n initial_utm_params['initial_' + utm_key] = utm_value;\n if (utm_value) {\n has_utm = true;\n }\n });\n if (has_utm) {\n instance['people'].set_once(initial_utm_params);\n }\n }\n\n // if any instance on the page has debug = true, we set the\n // global debug to be true\n Config.DEBUG = Config.DEBUG || instance.get_config('debug');\n\n // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n if (!_.isUndefined(target) && _.isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance['people'], target['people']);\n instance._execute_array(target);\n }\n\n return instance;\n};\n\n// Initialization methods\n\n/**\n * This function initializes a new instance of the Mixpanel tracking object.\n * All new instances are added to the main mixpanel object as sub properties (such as\n * mixpanel.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * mixpanel.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * mixpanel.library_name.track(...);\n *\n * @param {String} token Your Mixpanel API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options .\n * @param {String} [name] The name for the new mixpanel instance that you want created\n */\nMixpanelLib.prototype.init = function (token, config, name) {\n if (_.isUndefined(name)) {\n this.report_error('You must name your new library: init(token, config, name)');\n return;\n }\n if (name === PRIMARY_INSTANCE_NAME) {\n this.report_error('You must initialize the main mixpanel object right after you include the Mixpanel js snippet');\n return;\n }\n\n var instance = create_mplib(token, config, name);\n mixpanel_master[name] = instance;\n instance._loaded();\n\n return instance;\n};\n\n// mixpanel._init(token:string, config:object, name:string)\n//\n// This function sets up the current instance of the mixpanel\n// library. The difference between this method and the init(...)\n// method is this one initializes the actual instance, whereas the\n// init(...) method sets up a new library and calls _init on it.\n//\nMixpanelLib.prototype._init = function(token, config, name) {\n config = config || {};\n\n this['__loaded'] = true;\n this['config'] = {};\n\n var variable_features = {};\n\n // default to JSON payload for standard mixpanel.com API hosts\n if (!('api_payload_format' in config)) {\n var api_host = config['api_host'] || DEFAULT_CONFIG['api_host'];\n if (api_host.match(/\\.mixpanel\\.com/)) {\n variable_features['api_payload_format'] = PAYLOAD_TYPE_JSON;\n }\n }\n\n this.set_config(_.extend({}, DEFAULT_CONFIG, variable_features, config, {\n 'name': name,\n 'token': token,\n 'callback_fn': ((name === PRIMARY_INSTANCE_NAME) ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc'\n }));\n\n this['_jsc'] = NOOP_FUNC;\n\n this.__dom_loaded_queue = [];\n this.__request_queue = [];\n this.__disabled_events = [];\n this._flags = {\n 'disable_all_events': false,\n 'identify_called': false\n };\n\n // set up request queueing/batching\n this.request_batchers = {};\n this._batch_requests = this.get_config('batch_requests');\n if (this._batch_requests) {\n if (!_.localStorage.is_supported(true) || !USE_XHR) {\n this._batch_requests = false;\n console$1.log('Turning off Mixpanel request-queueing; needs XHR and localStorage support');\n _.each(this.get_batcher_configs(), function(batcher_config) {\n console$1.log('Clearing batch queue ' + batcher_config.queue_key);\n _.localStorage.remove(batcher_config.queue_key);\n });\n } else {\n this.init_batchers();\n if (sendBeacon && win.addEventListener) {\n // Before page closes or hides (user tabs away etc), attempt to flush any events\n // queued up via navigator.sendBeacon. Since sendBeacon doesn't report success/failure,\n // events will not be removed from the persistent store; if the site is loaded again,\n // the events will be flushed again on startup and deduplicated on the Mixpanel server\n // side.\n // There is no reliable way to capture only page close events, so we lean on the\n // visibilitychange and pagehide events as recommended at\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event#usage_notes.\n // These events fire when the user clicks away from the current page/tab, so will occur\n // more frequently than page unload, but are the only mechanism currently for capturing\n // this scenario somewhat reliably.\n var flush_on_unload = _.bind(function() {\n if (!this.request_batchers.events.stopped) {\n this.request_batchers.events.flush({unloading: true});\n }\n }, this);\n win.addEventListener('pagehide', function(ev) {\n if (ev['persisted']) {\n flush_on_unload();\n }\n });\n win.addEventListener('visibilitychange', function() {\n if (document$1['visibilityState'] === 'hidden') {\n flush_on_unload();\n }\n });\n }\n }\n }\n\n this['persistence'] = this['cookie'] = new MixpanelPersistence(this['config']);\n this.unpersisted_superprops = {};\n this._gdpr_init();\n\n var uuid = _.UUID();\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n }\n\n this.flags = new FeatureFlagManager({\n getFullApiRoute: _.bind(function() {\n return this.get_api_host('flags') + '/' + this.get_config('api_routes')['flags'];\n }, this),\n getConfigFunc: _.bind(this.get_config, this),\n setConfigFunc: _.bind(this.set_config, this),\n getPropertyFunc: _.bind(this.get_property, this),\n trackingFunc: _.bind(this.track, this)\n });\n this.flags.init();\n this['flags'] = this.flags;\n\n this.autocapture = new Autocapture(this);\n this.autocapture.init();\n\n this._init_tab_id();\n this._check_and_start_session_recording();\n};\n\n/**\n * Assigns a unique UUID to this tab / window by leveraging sessionStorage.\n * This is primarily used for session recording, where data must be isolated to the current tab.\n */\nMixpanelLib.prototype._init_tab_id = function() {\n if (this.get_config('disable_persistence')) {\n console$1.log('Tab ID initialization skipped due to disable_persistence config');\n } else if (_.sessionStorage.is_supported()) {\n try {\n var key_suffix = this.get_config('name') + '_' + this.get_config('token');\n var tab_id_key = 'mp_tab_id_' + key_suffix;\n\n // A flag is used to determine if sessionStorage is copied over and we need to generate a new tab ID.\n // This enforces a unique ID in the cases like duplicated tab, window.open(...)\n var should_generate_new_tab_id_key = 'mp_gen_new_tab_id_' + key_suffix;\n if (_.sessionStorage.get(should_generate_new_tab_id_key) || !_.sessionStorage.get(tab_id_key)) {\n _.sessionStorage.set(tab_id_key, '$tab-' + _.UUID());\n }\n\n _.sessionStorage.set(should_generate_new_tab_id_key, '1');\n this.tab_id = _.sessionStorage.get(tab_id_key);\n\n // Remove the flag when the tab is unloaded to indicate the stored tab ID can be reused. This event is not reliable to detect all page unloads,\n // but reliable in cases where the user remains in the tab e.g. a refresh or href navigation.\n // If the flag is absent, this indicates to the next SDK instance that we can reuse the stored tab_id.\n win.addEventListener('beforeunload', function () {\n _.sessionStorage.remove(should_generate_new_tab_id_key);\n });\n } catch(err) {\n this.report_error('Error initializing tab id', err);\n }\n } else {\n this.report_error('Session storage is not supported, cannot keep track of unique tab ID.');\n }\n};\n\nMixpanelLib.prototype.get_tab_id = function () {\n return this.tab_id || null;\n};\n\nMixpanelLib.prototype._should_load_recorder = function () {\n if (this.get_config('disable_persistence')) {\n console$1.log('Load recorder check skipped due to disable_persistence config');\n return Promise.resolve(false);\n }\n\n var recording_registry_idb = new IDBStorageWrapper(RECORDING_REGISTRY_STORE_NAME);\n var tab_id = this.get_tab_id();\n return recording_registry_idb.init()\n .then(function () {\n return recording_registry_idb.getAll();\n })\n .then(function (recordings) {\n for (var i = 0; i < recordings.length; i++) {\n // if there are expired recordings in the registry, we should load the recorder to flush them\n // if there's a recording for this tab id, we should load the recorder to continue the recording\n if (isRecordingExpired(recordings[i]) || recordings[i]['tabId'] === tab_id) {\n return true;\n }\n }\n return false;\n })\n .catch(_.bind(function (err) {\n this.report_error('Error checking recording registry', err);\n }, this));\n};\n\nMixpanelLib.prototype._check_and_start_session_recording = addOptOutCheckMixpanelLib(function(force_start) {\n if (!win['MutationObserver']) {\n console$1.critical('Browser does not support MutationObserver; skipping session recording');\n return;\n }\n\n var loadRecorder = _.bind(function(startNewIfInactive) {\n var handleLoadedRecorder = _.bind(function() {\n this._recorder = this._recorder || new win['__mp_recorder'](this);\n this._recorder['resumeRecording'](startNewIfInactive);\n }, this);\n\n if (_.isUndefined(win['__mp_recorder'])) {\n load_extra_bundle(this.get_config('recorder_src'), handleLoadedRecorder);\n } else {\n handleLoadedRecorder();\n }\n }, this);\n\n /**\n * If the user is sampled or start_session_recording is called, we always load the recorder since it's guaranteed a recording should start.\n * Otherwise, if the recording registry has any records then it's likely there's a recording in progress or orphaned data that needs to be flushed.\n */\n var is_sampled = this.get_config('record_sessions_percent') > 0 && Math.random() * 100 <= this.get_config('record_sessions_percent');\n if (force_start || is_sampled) {\n loadRecorder(true);\n } else {\n this._should_load_recorder()\n .then(function (shouldLoad) {\n if (shouldLoad) {\n loadRecorder(false);\n }\n });\n }\n});\n\nMixpanelLib.prototype.start_session_recording = function () {\n this._check_and_start_session_recording(true);\n};\n\nMixpanelLib.prototype.stop_session_recording = function () {\n if (this._recorder) {\n return this._recorder['stopRecording']();\n }\n return Promise.resolve();\n};\n\nMixpanelLib.prototype.pause_session_recording = function () {\n if (this._recorder) {\n return this._recorder['pauseRecording']();\n }\n return Promise.resolve();\n};\n\nMixpanelLib.prototype.resume_session_recording = function () {\n if (this._recorder) {\n return this._recorder['resumeRecording']();\n }\n return Promise.resolve();\n};\n\nMixpanelLib.prototype.is_recording_heatmap_data = function () {\n return this._get_session_replay_id() && this.get_config('record_heatmap_data');\n};\n\nMixpanelLib.prototype.get_session_recording_properties = function () {\n var props = {};\n var replay_id = this._get_session_replay_id();\n if (replay_id) {\n props['$mp_replay_id'] = replay_id;\n }\n return props;\n};\n\nMixpanelLib.prototype.get_session_replay_url = function () {\n var replay_url = null;\n var replay_id = this._get_session_replay_id();\n if (replay_id) {\n var query_params = _.HTTPBuildQuery({\n 'replay_id': replay_id,\n 'distinct_id': this.get_distinct_id(),\n 'token': this.get_config('token')\n });\n replay_url = 'https://mixpanel.com/projects/replay-redirect?' + query_params;\n }\n return replay_url;\n};\n\nMixpanelLib.prototype._get_session_replay_id = function () {\n var replay_id = null;\n if (this._recorder) {\n replay_id = this._recorder['replayId'];\n }\n return replay_id || null;\n};\n\n// \"private\" public method to reach into the recorder in test cases\nMixpanelLib.prototype.__get_recorder = function () {\n return this._recorder;\n};\n\n// Private methods\n\nMixpanelLib.prototype._loaded = function() {\n this.get_config('loaded')(this);\n this._set_default_superprops();\n this['people'].set_once(this['persistence'].get_referrer_info());\n\n // `store_google` is now deprecated and previously stored UTM parameters are cleared\n // from persistence by default.\n if (this.get_config('store_google') && this.get_config('stop_utm_persistence')) {\n var utm_params = _.info.campaignParams(null);\n _.each(utm_params, function(_utm_value, utm_key) {\n // We need to unregister persisted UTM parameters so old values\n // are not mixed with the new UTM parameters\n this.unregister(utm_key);\n }.bind(this));\n }\n};\n\n// update persistence with info on referrer, UTM params, etc\nMixpanelLib.prototype._set_default_superprops = function() {\n this['persistence'].update_search_keyword(document$1.referrer);\n // Registering super properties for UTM persistence by 'store_google' is deprecated.\n if (this.get_config('store_google') && !this.get_config('stop_utm_persistence')) {\n this.register(_.info.campaignParams());\n }\n if (this.get_config('save_referrer')) {\n this['persistence'].update_referrer_info(document$1.referrer);\n }\n};\n\nMixpanelLib.prototype._dom_loaded = function() {\n _.each(this.__dom_loaded_queue, function(item) {\n this._track_dom.apply(this, item);\n }, this);\n\n if (!this.has_opted_out_tracking()) {\n _.each(this.__request_queue, function(item) {\n this._send_request.apply(this, item);\n }, this);\n }\n\n delete this.__dom_loaded_queue;\n delete this.__request_queue;\n};\n\nMixpanelLib.prototype._track_dom = function(DomClass, args) {\n if (this.get_config('img')) {\n this.report_error('You can\\'t use DOM tracking functions with img = true.');\n return false;\n }\n\n if (!DOM_LOADED) {\n this.__dom_loaded_queue.push([DomClass, args]);\n return false;\n }\n\n var dt = new DomClass().init(this);\n return dt.track.apply(dt, args);\n};\n\n/**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\nMixpanelLib.prototype._prepare_callback = function(callback, data) {\n if (_.isUndefined(callback)) {\n return null;\n }\n\n if (USE_XHR) {\n var callback_function = function(response) {\n callback(response, data);\n };\n return callback_function;\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n var jsc = this['_jsc'];\n var randomized_cb = '' + Math.floor(Math.random() * 100000000);\n var callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']';\n jsc[randomized_cb] = function(response) {\n delete jsc[randomized_cb];\n callback(response, data);\n };\n return callback_string;\n }\n};\n\nMixpanelLib.prototype._send_request = function(url, data, options, callback) {\n var succeeded = true;\n\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push(arguments);\n return succeeded;\n }\n\n var DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose')\n };\n var body_data = null;\n\n if (!callback && (_.isFunction(options) || typeof options === 'string')) {\n callback = options;\n options = null;\n }\n options = _.extend(DEFAULT_OPTIONS, options || {});\n if (!USE_XHR) {\n options.method = 'GET';\n }\n var use_post = options.method === 'POST';\n var use_sendBeacon = sendBeacon && use_post && options.transport.toLowerCase() === 'sendbeacon';\n\n // needed to correctly format responses\n var verbose_mode = options.verbose;\n if (data['verbose']) { verbose_mode = true; }\n\n if (this.get_config('test')) { data['test'] = 1; }\n if (verbose_mode) { data['verbose'] = 1; }\n if (this.get_config('img')) { data['img'] = 1; }\n if (!USE_XHR) {\n if (callback) {\n data['callback'] = callback;\n } else if (verbose_mode || this.get_config('test')) {\n // Verbose output (from verbose mode, or an error in test mode) is a json blob,\n // which by itself is not valid javascript. Without a callback, this verbose output will\n // cause an error when returned via jsonp, so we force a no-op callback param.\n // See the ECMA script spec: http://www.ecma-international.org/ecma-262/5.1/#sec-12.4\n data['callback'] = '(function(){})';\n }\n }\n\n data['ip'] = this.get_config('ip')?1:0;\n data['_'] = new Date().getTime().toString();\n\n if (use_post) {\n body_data = 'data=' + encodeURIComponent(data['data']);\n delete data['data'];\n }\n\n _.extend(data, this.get_config('api_extra_query_params'));\n\n url += '?' + _.HTTPBuildQuery(data);\n\n var lib = this;\n if ('img' in data) {\n var img = document$1.createElement('img');\n img.src = url;\n document$1.body.appendChild(img);\n } else if (use_sendBeacon) {\n try {\n succeeded = sendBeacon(url, body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n try {\n if (callback) {\n callback(succeeded ? 1 : 0);\n }\n } catch (e) {\n lib.report_error(e);\n }\n } else if (USE_XHR) {\n try {\n var req = new XMLHttpRequest();\n req.open(options.method, url, true);\n\n var headers = this.get_config('xhr_headers');\n if (use_post) {\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n _.each(headers, function(headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue);\n });\n\n if (options.timeout_ms && typeof req.timeout !== 'undefined') {\n req.timeout = options.timeout_ms;\n var start_time = new Date().getTime();\n }\n\n // send the mp_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true;\n req.onreadystatechange = function () {\n if (req.readyState === 4) { // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.status === 200) {\n if (callback) {\n if (verbose_mode) {\n var response;\n try {\n response = _.JSONDecode(req.responseText);\n } catch (e) {\n lib.report_error(e);\n if (options.ignore_json_errors) {\n response = req.responseText;\n } else {\n return;\n }\n }\n callback(response);\n } else {\n callback(Number(req.responseText));\n }\n }\n } else {\n var error;\n if (\n req.timeout &&\n !req.status &&\n new Date().getTime() - start_time >= req.timeout\n ) {\n error = 'timeout';\n } else {\n error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText;\n }\n lib.report_error(error);\n if (callback) {\n if (verbose_mode) {\n var response_headers = req['responseHeaders'] || {};\n callback({status: 0, httpStatusCode: req['status'], error: error, retryAfter: response_headers['Retry-After']});\n } else {\n callback(0);\n }\n }\n }\n }\n };\n req.send(body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n } else {\n var script = document$1.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n var s = document$1.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(script, s);\n }\n\n return succeeded;\n};\n\n/**\n * _execute_array() deals with processing any mixpanel function\n * calls that were called before the Mixpanel library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the mixpanel function calls && user defined\n * functions BEFORE we fire off mixpanel tracking calls. This is so\n * identify/register/set_config calls can properly modify early\n * tracking calls.\n *\n * @param {Array} array\n */\nMixpanelLib.prototype._execute_array = function(array) {\n var fn_name, alias_calls = [], other_calls = [], tracking_calls = [];\n _.each(array, function(item) {\n if (item) {\n fn_name = item[0];\n if (_.isArray(fn_name)) {\n tracking_calls.push(item); // chained call e.g. mixpanel.get_group().set()\n } else if (typeof(item) === 'function') {\n item.call(this);\n } else if (_.isArray(item) && fn_name === 'alias') {\n alias_calls.push(item);\n } else if (_.isArray(item) && fn_name.indexOf('track') !== -1 && typeof(this[fn_name]) === 'function') {\n tracking_calls.push(item);\n } else {\n other_calls.push(item);\n }\n }\n }, this);\n\n var execute = function(calls, context) {\n _.each(calls, function(item) {\n if (_.isArray(item[0])) {\n // chained call\n var caller = context;\n _.each(item, function(call) {\n caller = caller[call[0]].apply(caller, call.slice(1));\n });\n } else {\n this[item[0]].apply(this, item.slice(1));\n }\n }, context);\n };\n\n execute(alias_calls, this);\n execute(other_calls, this);\n execute(tracking_calls, this);\n};\n\n// request queueing utils\n\nMixpanelLib.prototype.are_batchers_initialized = function() {\n return !!this.request_batchers.events;\n};\n\nMixpanelLib.prototype.get_batcher_configs = function() {\n var queue_prefix = '__mpq_' + this.get_config('token');\n this._batcher_configs = this._batcher_configs || {\n events: {type: 'events', api_name: 'track', queue_key: queue_prefix + '_ev'},\n people: {type: 'people', api_name: 'engage', queue_key: queue_prefix + '_pp'},\n groups: {type: 'groups', api_name: 'groups', queue_key: queue_prefix + '_gr'}\n };\n return this._batcher_configs;\n};\n\nMixpanelLib.prototype.init_batchers = function() {\n if (!this.are_batchers_initialized()) {\n var batcher_for = _.bind(function(attrs) {\n return new RequestBatcher(\n attrs.queue_key,\n {\n libConfig: this['config'],\n errorReporter: this.get_config('error_reporter'),\n sendRequestFunc: _.bind(function(data, options, cb) {\n var api_routes = this.get_config('api_routes');\n this._send_request(\n this.get_api_host(attrs.api_name) + '/' + api_routes[attrs.api_name],\n this._encode_data_for_request(data),\n options,\n this._prepare_callback(cb, data)\n );\n }, this),\n beforeSendHook: _.bind(function(item) {\n return this._run_hook('before_send_' + attrs.type, item);\n }, this),\n stopAllBatchingFunc: _.bind(this.stop_batch_senders, this),\n usePersistence: true,\n }\n );\n }, this);\n var batcher_configs = this.get_batcher_configs();\n this.request_batchers = {\n events: batcher_for(batcher_configs.events),\n people: batcher_for(batcher_configs.people),\n groups: batcher_for(batcher_configs.groups)\n };\n }\n if (this.get_config('batch_autostart')) {\n this.start_batch_senders();\n }\n};\n\nMixpanelLib.prototype.start_batch_senders = function() {\n this._batchers_were_started = true;\n if (this.are_batchers_initialized()) {\n this._batch_requests = true;\n _.each(this.request_batchers, function(batcher) {\n batcher.start();\n });\n }\n};\n\nMixpanelLib.prototype.stop_batch_senders = function() {\n this._batch_requests = false;\n _.each(this.request_batchers, function(batcher) {\n batcher.stop();\n batcher.clear();\n });\n};\n\n/**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * mixpanel.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\nMixpanelLib.prototype.push = function(item) {\n this._execute_array([item]);\n};\n\n/**\n * Disable events on the Mixpanel object. If passed no arguments,\n * this function disables tracking of any event. If passed an\n * array of event names, those events will be disabled, but other\n * events will continue to be tracked.\n *\n * Note: this function does not stop other mixpanel functions from\n * firing, such as register() or people.set().\n *\n * @param {Array} [events] An array of event names to disable\n */\nMixpanelLib.prototype.disable = function(events) {\n if (typeof(events) === 'undefined') {\n this._flags.disable_all_events = true;\n } else {\n this.__disabled_events = this.__disabled_events.concat(events);\n }\n};\n\nMixpanelLib.prototype._encode_data_for_request = function(data) {\n var encoded_data = JSONStringify(data);\n if (this.get_config('api_payload_format') === PAYLOAD_TYPE_BASE64) {\n encoded_data = _.base64Encode(encoded_data);\n }\n return {'data': encoded_data};\n};\n\n// internal method for handling track vs batch-enqueue logic\nMixpanelLib.prototype._track_or_batch = function(options, callback) {\n var truncated_data = _.truncate(options.data, 255);\n var endpoint = options.endpoint;\n var batcher = options.batcher;\n var should_send_immediately = options.should_send_immediately;\n var send_request_options = options.send_request_options || {};\n callback = callback || NOOP_FUNC;\n\n var request_enqueued_or_initiated = true;\n var send_request_immediately = _.bind(function() {\n if (!send_request_options.skip_hooks) {\n truncated_data = this._run_hook('before_send_' + options.type, truncated_data);\n }\n if (truncated_data) {\n console$1.log('MIXPANEL REQUEST:');\n console$1.log(truncated_data);\n return this._send_request(\n endpoint,\n this._encode_data_for_request(truncated_data),\n send_request_options,\n this._prepare_callback(callback, truncated_data)\n );\n } else {\n return null;\n }\n }, this);\n\n if (this._batch_requests && !should_send_immediately) {\n batcher.enqueue(truncated_data).then(function(succeeded) {\n if (succeeded) {\n callback(1, truncated_data);\n } else {\n send_request_immediately();\n }\n });\n } else {\n request_enqueued_or_initiated = send_request_immediately();\n }\n\n return request_enqueued_or_initiated && truncated_data;\n};\n\n/**\n * Track an event. This is the most important and\n * frequently used Mixpanel function.\n *\n * ### Usage:\n *\n * // track an event named 'Registered'\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // track an event using navigator.sendBeacon\n * mixpanel.track('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * To track link clicks or form submissions, see track_links() or track_forms().\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this track request.\n * @param {String} [options.transport] Transport method for network request ('xhr' or 'sendBeacon').\n * @param {Boolean} [options.send_immediately] Whether to bypass batching/queueing and send track request immediately.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track = addOptOutCheckMixpanelLib(function(event_name, properties, options, callback) {\n if (!callback && typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n var transport = options['transport']; // external API, don't minify 'transport' prop\n if (transport) {\n options.transport = transport; // 'transport' prop name can be minified internally\n }\n var should_send_immediately = options['send_immediately'];\n if (typeof callback !== 'function') {\n callback = NOOP_FUNC;\n }\n\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.track');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n callback(0);\n return;\n }\n\n // set defaults\n properties = _.extend({}, properties);\n properties['token'] = this.get_config('token');\n\n // set $duration if time_event was previously called for this event\n var start_timestamp = this['persistence'].remove_event_timer(event_name);\n if (!_.isUndefined(start_timestamp)) {\n var duration_in_ms = new Date().getTime() - start_timestamp;\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3));\n }\n\n this._set_default_superprops();\n\n var marketing_properties = this.get_config('track_marketing')\n ? _.info.marketingParams()\n : {};\n\n // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n\n // update properties with pageview info and super-properties\n properties = _.extend(\n {},\n _.info.properties({'mp_loader': this.get_config('mp_loader')}),\n marketing_properties,\n this['persistence'].properties(),\n this.unpersisted_superprops,\n this.get_session_recording_properties(),\n properties\n );\n\n var property_blacklist = this.get_config('property_blacklist');\n if (_.isArray(property_blacklist)) {\n _.each(property_blacklist, function(blacklisted_prop) {\n delete properties[blacklisted_prop];\n });\n } else {\n this.report_error('Invalid value for property_blacklist config: ' + property_blacklist);\n }\n\n var data = {\n 'event': event_name,\n 'properties': properties\n };\n var ret = this._track_or_batch({\n type: 'events',\n data: data,\n endpoint: this.get_api_host('events') + '/' + this.get_config('api_routes')['track'],\n batcher: this.request_batchers.events,\n should_send_immediately: should_send_immediately,\n send_request_options: options\n }, callback);\n\n return ret;\n});\n\n/**\n * Register the current user into one/many groups.\n *\n * ### Usage:\n *\n * mixpanel.set_group('company', ['mixpanel', 'google']) // an array of IDs\n * mixpanel.set_group('company', 'mixpanel')\n * mixpanel.set_group('company', 128746312)\n *\n * @param {String} group_key Group key\n * @param {Array|String|Number} group_ids An array of group IDs, or a singular group ID\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n *\n */\nMixpanelLib.prototype.set_group = addOptOutCheckMixpanelLib(function(group_key, group_ids, callback) {\n if (!_.isArray(group_ids)) {\n group_ids = [group_ids];\n }\n var prop = {};\n prop[group_key] = group_ids;\n this.register(prop);\n return this['people'].set(group_key, group_ids, callback);\n});\n\n/**\n * Add a new group for this user.\n *\n * ### Usage:\n *\n * mixpanel.add_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.add_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_values = this.get_property(group_key);\n var prop = {};\n if (old_values === undefined) {\n prop[group_key] = [group_id];\n this.register(prop);\n } else {\n if (old_values.indexOf(group_id) === -1) {\n old_values.push(group_id);\n prop[group_key] = old_values;\n this.register(prop);\n }\n }\n return this['people'].union(group_key, group_id, callback);\n});\n\n/**\n * Remove a group from this user.\n *\n * ### Usage:\n *\n * mixpanel.remove_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.remove_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_value = this.get_property(group_key);\n // if the value doesn't exist, the persistent store is unchanged\n if (old_value !== undefined) {\n var idx = old_value.indexOf(group_id);\n if (idx > -1) {\n old_value.splice(idx, 1);\n this.register({group_key: old_value});\n }\n if (old_value.length === 0) {\n this.unregister(group_key);\n }\n }\n return this['people'].remove(group_key, group_id, callback);\n});\n\n/**\n * Track an event with specific groups.\n *\n * ### Usage:\n *\n * mixpanel.track_with_groups('purchase', {'product': 'iphone'}, {'University': ['UCB', 'UCLA']})\n *\n * @param {String} event_name The name of the event (see `mixpanel.track()`)\n * @param {Object=} properties A set of properties to include with the event you're sending (see `mixpanel.track()`)\n * @param {Object=} groups An object mapping group name keys to one or more values\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.track_with_groups = addOptOutCheckMixpanelLib(function(event_name, properties, groups, callback) {\n var tracking_props = _.extend({}, properties || {});\n _.each(groups, function(v, k) {\n if (v !== null && v !== undefined) {\n tracking_props[k] = v;\n }\n });\n return this.track(event_name, tracking_props, callback);\n});\n\nMixpanelLib.prototype._create_map_key = function (group_key, group_id) {\n return group_key + '_' + JSON.stringify(group_id);\n};\n\nMixpanelLib.prototype._remove_group_from_cache = function (group_key, group_id) {\n delete this._cached_groups[this._create_map_key(group_key, group_id)];\n};\n\n/**\n * Look up reference to a Mixpanel group\n *\n * ### Usage:\n *\n * mixpanel.get_group(group_key, group_id)\n *\n * @param {String} group_key Group key\n * @param {Object} group_id A valid Mixpanel property type\n * @returns {Object} A MixpanelGroup identifier\n */\nMixpanelLib.prototype.get_group = function (group_key, group_id) {\n var map_key = this._create_map_key(group_key, group_id);\n var group = this._cached_groups[map_key];\n if (group === undefined || group._group_key !== group_key || group._group_id !== group_id) {\n group = new MixpanelGroup();\n group._init(this, group_key, group_id);\n this._cached_groups[map_key] = group;\n }\n return group;\n};\n\n/**\n * Track a default Mixpanel page view event, which includes extra default event properties to\n * improve page view data.\n *\n * ### Usage:\n *\n * // track a default $mp_web_page_view event\n * mixpanel.track_pageview();\n *\n * // track a page view event with additional event properties\n * mixpanel.track_pageview({'ab_test_variant': 'card-layout-b'});\n *\n * // example approach to track page views on different page types as event properties\n * mixpanel.track_pageview({'page': 'pricing'});\n * mixpanel.track_pageview({'page': 'homepage'});\n *\n * // UNCOMMON: Tracking a page view event with a custom event_name option. NOT expected to be used for\n * // individual pages on the same site or product. Use cases for custom event_name may be page\n * // views on different products or internal applications that are considered completely separate\n * mixpanel.track_pageview({'page': 'customer-search'}, {'event_name': '[internal] Admin Page View'});\n *\n * ### Notes:\n *\n * The `config.track_pageview` option for mixpanel.init() \n * may be turned on for tracking page loads automatically.\n *\n * // track only page loads\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: true});\n *\n * // track when the URL changes in any manner\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'full-url'});\n *\n * // track when the URL changes, ignoring any changes in the hash part\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'url-with-path-and-query-string'});\n *\n * // track when the path changes, ignoring any query parameter or hash changes\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'url-with-path'});\n *\n * @param {Object} [properties] An optional set of additional properties to send with the page view event\n * @param {Object} [options] Page view tracking options\n * @param {String} [options.event_name] - Alternate name for the tracking event\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track_pageview = addOptOutCheckMixpanelLib(function(properties, options) {\n if (typeof properties !== 'object') {\n properties = {};\n }\n options = options || {};\n var event_name = options['event_name'] || '$mp_web_page_view';\n\n var default_page_properties = _.extend(\n _.info.mpPageViewProperties(),\n _.info.campaignParams(),\n _.info.clickParams()\n );\n\n var event_properties = _.extend(\n {},\n default_page_properties,\n properties\n );\n\n return this.track(event_name, event_properties);\n});\n\n/**\n * Track clicks on a set of document elements. Selector must be a\n * valid query. Elements must exist on the page at the time track_links is called.\n *\n * ### Usage:\n *\n * // track click for link id #nav\n * mixpanel.track_links('#nav', 'Clicked Nav Link');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the Mixpanel\n * servers to respond. If they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] A properties object or function that returns a dictionary of properties when passed a DOMElement\n */\nMixpanelLib.prototype.track_links = function() {\n return this._track_dom.call(this, LinkTracker, arguments);\n};\n\n/**\n * Track form submissions. Selector must be a valid query.\n *\n * ### Usage:\n *\n * // track submission for form id 'register'\n * mixpanel.track_forms('#register', 'Created Account');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the mixpanel\n * servers to respond, if they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] This can be a set of properties, or a function that returns a set of properties after being passed a DOMElement\n */\nMixpanelLib.prototype.track_forms = function() {\n return this._track_dom.call(this, FormTracker, arguments);\n};\n\n/**\n * Time an event by including the time between this call and a\n * later 'track' call for the same event in the properties sent\n * with the event.\n *\n * ### Usage:\n *\n * // time an event named 'Registered'\n * mixpanel.time_event('Registered');\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * When called for a particular event name, the next track call for that event\n * name will include the elapsed time between the 'time_event' and 'track'\n * calls. This value is stored as seconds in the '$duration' property.\n *\n * @param {String} event_name The name of the event.\n */\nMixpanelLib.prototype.time_event = function(event_name) {\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.time_event');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n return;\n }\n\n this['persistence'].set_event_timer(event_name, new Date().getTime());\n};\n\nvar REGISTER_DEFAULTS = {\n 'persistent': true\n};\n/**\n * Helper to parse options param for register methods, maintaining\n * legacy support for plain \"days\" param instead of options object\n * @param {Number|Object} [days_or_options] 'days' option (Number), or Options object for register methods\n * @returns {Object} options object\n */\nvar options_for_register = function(days_or_options) {\n var options;\n if (_.isObject(days_or_options)) {\n options = days_or_options;\n } else if (!_.isUndefined(days_or_options)) {\n options = {'days': days_or_options};\n } else {\n options = {};\n }\n return _.extend({}, REGISTER_DEFAULTS, options);\n};\n\n/**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values.\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * mixpanel.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * mixpanel.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // register only for the current pageload\n * mixpanel.register({'Name': 'Pat'}, {persistent: false});\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register = function(props, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register(props, options['days']);\n } else {\n _.extend(this.unpersisted_superprops, props);\n }\n};\n\n/**\n * Register a set of super properties only once. This will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * mixpanel.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // register once, only for the current pageload\n * mixpanel.register_once({\n * 'First interaction time': new Date().toISOString()\n * }, 'None', {persistent: false});\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register_once = function(props, default_value, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register_once(props, default_value, options['days']);\n } else {\n if (typeof(default_value) === 'undefined') {\n default_value = 'None';\n }\n _.each(props, function(val, prop) {\n if (!this.unpersisted_superprops.hasOwnProperty(prop) || this.unpersisted_superprops[prop] === default_value) {\n this.unpersisted_superprops[prop] = val;\n }\n }, this);\n }\n};\n\n/**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n * @param {Object} [options]\n * @param {boolean} [options.persistent=true] - whether to look in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.unregister = function(property, options) {\n options = options_for_register(options);\n if (options['persistent']) {\n this['persistence'].unregister(property);\n } else {\n delete this.unpersisted_superprops[property];\n }\n};\n\nMixpanelLib.prototype._register_single = function(prop, value) {\n var props = {};\n props[prop] = value;\n this.register(props);\n};\n\n/**\n * Identify a user with a unique ID to track user activity across\n * devices, tie a user to their events, and create a user profile.\n * If you never call this method, unique visitors are tracked using\n * a UUID generated the first time they visit the site.\n *\n * Call identify when you know the identity of the current user,\n * typically after login or signup. We recommend against using\n * identify for anonymous visitors to your site.\n *\n * ### Notes:\n * If your project has\n * ID Merge \n * enabled, the identify method will connect pre- and\n * post-authentication events when appropriate.\n *\n * If your project does not have ID Merge enabled, identify will\n * change the user's local distinct_id to the unique ID you pass.\n * Events tracked prior to authentication will not be connected\n * to the same user identity. If ID Merge is disabled, alias can\n * be used to connect pre- and post-registration events.\n *\n * @param {String} [unique_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n */\nMixpanelLib.prototype.identify = function(\n new_distinct_id, _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n // Optional Parameters\n // _set_callback:function A callback to be run if and when the People set queue is flushed\n // _add_callback:function A callback to be run if and when the People add queue is flushed\n // _append_callback:function A callback to be run if and when the People append queue is flushed\n // _set_once_callback:function A callback to be run if and when the People set_once queue is flushed\n // _union_callback:function A callback to be run if and when the People union queue is flushed\n // _unset_callback:function A callback to be run if and when the People unset queue is flushed\n\n var previous_distinct_id = this.get_distinct_id();\n if (new_distinct_id && previous_distinct_id !== new_distinct_id) {\n // we allow the following condition if previous distinct_id is same as new_distinct_id\n // so that you can force flush people updates for anonymous profiles.\n if (typeof new_distinct_id === 'string' && new_distinct_id.indexOf(DEVICE_ID_PREFIX) === 0) {\n this.report_error('distinct_id cannot have $device: prefix');\n return -1;\n }\n this.register({'$user_id': new_distinct_id});\n }\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n var device_id = previous_distinct_id;\n this.register_once({\n '$had_persisted_distinct_id': true,\n '$device_id': device_id\n }, '');\n }\n\n // identify only changes the distinct id if it doesn't match either the existing or the alias;\n // if it's new, blow away the alias as well.\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY);\n this.register({'distinct_id': new_distinct_id});\n }\n this._flags.identify_called = true;\n // Flush any queued up people requests\n this['people']._flush(_set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback);\n\n // send an $identify event any time the distinct_id is changing - logic on the server\n // will determine whether or not to do anything with it.\n if (new_distinct_id !== previous_distinct_id) {\n this.track('$identify', {\n 'distinct_id': new_distinct_id,\n '$anon_distinct_id': previous_distinct_id\n }, {skip_hooks: true});\n }\n\n // check feature flags again if distinct id has changed\n if (new_distinct_id !== previous_distinct_id) {\n this.flags.fetchFlags();\n }\n};\n\n/**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\nMixpanelLib.prototype.reset = function() {\n this.stop_session_recording();\n this['persistence'].clear();\n this._flags.identify_called = false;\n var uuid = _.UUID();\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n this._check_and_start_session_recording();\n};\n\n/**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * distinct_id = mixpanel.get_distinct_id();\n * }\n * });\n */\nMixpanelLib.prototype.get_distinct_id = function() {\n return this.get_property('distinct_id');\n};\n\n/**\n * The alias method creates an alias which Mixpanel will use to\n * remap one id to another. Multiple aliases can point to the\n * same identifier.\n *\n * The following is a valid use of alias:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // You can add multiple id aliases to the existing ID\n * mixpanel.alias('newer_id', 'existing_id');\n *\n * Aliases can also be chained - the following is a valid example:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // chain newer_id - new_id - existing_id\n * mixpanel.alias('newer_id', 'new_id');\n *\n * Aliases cannot point to multiple identifiers - the following\n * example will not work:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // this is invalid as 'new_id' already points to 'existing_id'\n * mixpanel.alias('new_id', 'newer_id');\n *\n * ### Notes:\n *\n * If your project does not have\n * ID Merge \n * enabled, the best practice is to call alias once when a unique\n * ID is first created for a user (e.g., when a user first registers\n * for an account). Do not use alias multiple times for a single\n * user without ID Merge enabled.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\nMixpanelLib.prototype.alias = function(alias, original) {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // mixpanel.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n this.report_error('Attempting to create alias for existing People user - aborting.');\n return -2;\n }\n\n var _this = this;\n if (_.isUndefined(original)) {\n original = this.get_distinct_id();\n }\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias);\n return this.track('$create_alias', {\n 'alias': alias,\n 'distinct_id': original\n }, {\n skip_hooks: true\n }, function() {\n // Flush the people queue\n _this.identify(alias);\n });\n } else {\n this.report_error('alias matches current distinct_id - skipping api call.');\n this.identify(alias);\n return -1;\n }\n};\n\n/**\n * Provide a string to recognize the user by. The string passed to\n * this method will appear in the Mixpanel Streams product rather\n * than an automatically generated name. Name tags do not have to\n * be unique.\n *\n * This value will only be included in Streams data.\n *\n * @param {String} name_tag A human readable name for the user\n * @deprecated\n */\nMixpanelLib.prototype.name_tag = function(name_tag) {\n this._register_single('mp_name_tag', name_tag);\n};\n\n/**\n * Update the configuration of a mixpanel library instance.\n *\n * The default config is:\n *\n * {\n * // host for requests (customizable for e.g. a local proxy)\n * api_host: 'https://api-js.mixpanel.com',\n *\n * // endpoints for different types of requests\n * api_routes: {\n * track: 'track/',\n * engage: 'engage/',\n * groups: 'groups/',\n * }\n *\n * // HTTP method for tracking requests\n * api_method: 'POST'\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. Mixpanel\n * // tracking via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // request-batching/queueing/retry\n * batch_requests: true,\n *\n * // maximum number of events/updates to send in a single\n * // network request\n * batch_size: 50,\n *\n * // milliseconds to wait between sending batch requests\n * batch_flush_interval_ms: 5000,\n *\n * // milliseconds to wait for network responses to batch requests\n * // before they are considered timed-out and retried\n * batch_request_timeout_ms: 90000,\n *\n * // override value for cookie domain, only useful for ensuring\n * // correct cross-subdomain cookies on unusual domains like\n * // subdomain.mainsite.avocat.fr; NB this cannot be used to\n * // set cookies on a different domain than the current origin\n * cookie_domain: ''\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // if true, cookie will be set with SameSite=None; Secure\n * // this is only useful in special situations, like embedded\n * // 3rd-party iframes that set up a Mixpanel instance\n * cross_site_cookie: false\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the mixpanel cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, Mixpanel will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of tracking by this Mixpanel instance by default\n * opt_out_tracking_by_default: false\n *\n * // opt users out of browser data storage by this Mixpanel instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_tracking_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_tracking_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // mixpanel cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with track() calls\n * property_blacklist: []\n *\n * // if this is true, mixpanel cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // disables enriching user profiles with first touch marketing data\n * skip_first_touch_marketing: false\n *\n * // the amount of time track_links will\n * // wait for Mixpanel's servers to respond\n * track_links_timeout: 300\n *\n * // adds any UTM parameters and click IDs present on the page to any events fired\n * track_marketing: true\n *\n * // enables automatic page view tracking using default page view events through\n * // the track_pageview() method\n * track_pageview: false\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // whether to ignore or respect the web browser's Do Not Track setting\n * ignore_dnt: false\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\nMixpanelLib.prototype.set_config = function(config) {\n if (_.isObject(config)) {\n _.extend(this['config'], config);\n\n var new_batch_size = config['batch_size'];\n if (new_batch_size) {\n _.each(this.request_batchers, function(batcher) {\n batcher.resetBatchSize();\n });\n }\n\n if (!this.get_config('persistence_name')) {\n this['config']['persistence_name'] = this['config']['cookie_name'];\n }\n if (!this.get_config('disable_persistence')) {\n this['config']['disable_persistence'] = this['config']['disable_cookie'];\n }\n\n if (this['persistence']) {\n this['persistence'].update_config(this['config']);\n }\n Config.DEBUG = Config.DEBUG || this.get_config('debug');\n\n if (('autocapture' in config || 'record_heatmap_data' in config) && this.autocapture) {\n this.autocapture.init();\n }\n }\n};\n\n/**\n * returns the current config object for the library.\n */\nMixpanelLib.prototype.get_config = function(prop_name) {\n return this['config'][prop_name];\n};\n\n/**\n * Fetch a hook function from config, with safe default, and run it\n * against the given arguments\n * @param {string} hook_name which hook to retrieve\n * @returns {any|null} return value of user-provided hook, or null if nothing was returned\n */\nMixpanelLib.prototype._run_hook = function(hook_name) {\n var ret = (this['config']['hooks'][hook_name] || IDENTITY_FUNC).apply(this, slice.call(arguments, 1));\n if (typeof ret === 'undefined') {\n this.report_error(hook_name + ' hook did not return a value');\n ret = null;\n }\n return ret;\n};\n\n/**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * user_id = mixpanel.get_property('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\nMixpanelLib.prototype.get_property = function(property_name) {\n return this['persistence'].load_prop([property_name]);\n};\n\n/**\n * Get the API host for a specific endpoint type, falling back to the default api_host if not specified\n *\n * @param {String} endpoint_type The type of endpoint (e.g., \"events\", \"people\", \"groups\")\n * @returns {String} The API host to use for this endpoint\n */\nMixpanelLib.prototype.get_api_host = function(endpoint_type) {\n return this.get_config('api_hosts')[endpoint_type] || this.get_config('api_host');\n};\n\nMixpanelLib.prototype.toString = function() {\n var name = this.get_config('name');\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name;\n }\n return name;\n};\n\nMixpanelLib.prototype._event_is_disabled = function(event_name) {\n return _.isBlockedUA(userAgent) ||\n this._flags.disable_all_events ||\n _.include(this.__disabled_events, event_name);\n};\n\n// perform some housekeeping around GDPR opt-in/out state\nMixpanelLib.prototype._gdpr_init = function() {\n var is_localStorage_requested = this.get_config('opt_out_tracking_persistence_type') === 'localStorage';\n\n // try to convert opt-in/out cookies to localStorage if possible\n if (is_localStorage_requested && _.localStorage.is_supported()) {\n if (!this.has_opted_in_tracking() && this.has_opted_in_tracking({'persistence_type': 'cookie'})) {\n this.opt_in_tracking({'enable_persistence': false});\n }\n if (!this.has_opted_out_tracking() && this.has_opted_out_tracking({'persistence_type': 'cookie'})) {\n this.opt_out_tracking({'clear_persistence': false});\n }\n this.clear_opt_in_out_tracking({\n 'persistence_type': 'cookie',\n 'enable_persistence': false\n });\n }\n\n // check whether the user has already opted out - if so, clear & disable persistence\n if (this.has_opted_out_tracking()) {\n this._gdpr_update_persistence({'clear_persistence': true});\n\n // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n } else if (!this.has_opted_in_tracking() && (\n this.get_config('opt_out_tracking_by_default') || _.cookie.get('mp_optout')\n )) {\n _.cookie.remove('mp_optout');\n this.opt_out_tracking({\n 'clear_persistence': this.get_config('opt_out_persistence_by_default')\n });\n }\n};\n\n/**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\nMixpanelLib.prototype._gdpr_update_persistence = function(options) {\n var disabled;\n if (options && options['clear_persistence']) {\n disabled = true;\n } else if (options && options['enable_persistence']) {\n disabled = false;\n } else {\n return;\n }\n\n if (!this.get_config('disable_persistence') && this['persistence'].disabled !== disabled) {\n this['persistence'].set_disabled(disabled);\n }\n\n if (disabled) {\n this.stop_batch_senders();\n this.stop_session_recording();\n } else {\n // only start batchers after opt-in if they have previously been started\n // in order to avoid unintentionally starting up batching for the first time\n if (this._batchers_were_started) {\n this.start_batch_senders();\n }\n }\n};\n\n// call a base gdpr function after constructing the appropriate token and options args\nMixpanelLib.prototype._gdpr_call_func = function(func, options) {\n options = _.extend({\n 'track': _.bind(this.track, this),\n 'persistence_type': this.get_config('opt_out_tracking_persistence_type'),\n 'cookie_prefix': this.get_config('opt_out_tracking_cookie_prefix'),\n 'cookie_expiration': this.get_config('cookie_expiration'),\n 'cross_site_cookie': this.get_config('cross_site_cookie'),\n 'cross_subdomain_cookie': this.get_config('cross_subdomain_cookie'),\n 'cookie_domain': this.get_config('cookie_domain'),\n 'secure_cookie': this.get_config('secure_cookie'),\n 'ignore_dnt': this.get_config('ignore_dnt')\n }, options);\n\n // check if localStorage can be used for recording opt out status, fall back to cookie if not\n if (!_.localStorage.is_supported()) {\n options['persistence_type'] = 'cookie';\n }\n\n return func(this.get_config('token'), {\n track: options['track'],\n trackEventName: options['track_event_name'],\n trackProperties: options['track_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieDomain: options['cookie_domain'],\n cookieExpiration: options['cookie_expiration'],\n crossSiteCookie: options['cross_site_cookie'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie'],\n ignoreDnt: options['ignore_dnt']\n });\n};\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // opt user in\n * mixpanel.opt_in_tracking();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * mixpanel.opt_in_tracking({\n * track_event_name: 'User opted in',\n * track_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.track] Function used for tracking a Mixpanel event to record the opt-in action (default is this Mixpanel instance's track method)\n * @param {string} [options.track_event_name=$opt_in] Event name to be used for tracking the opt-in action\n * @param {Object} [options.track_properties] Set of properties to be tracked along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_in_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(optIn, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // opt user out\n * mixpanel.opt_out_tracking();\n *\n * // opt user out with different cookie configuration from Mixpanel instance\n * mixpanel.opt_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.delete_user=true] If true, will delete the currently identified user's profile and clear all charges after opting the user out\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_out_tracking = function(options) {\n options = _.extend({\n 'clear_persistence': true,\n 'delete_user': true\n }, options);\n\n // delete user and clear charges since these methods may be disabled by opt-out\n if (options['delete_user'] && this['people'] && this['people']._identify_called()) {\n this['people'].delete_user();\n this['people'].clear_charges();\n }\n\n this._gdpr_call_func(optOut, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * var has_opted_in = mixpanel.has_opted_in_tracking();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\nMixpanelLib.prototype.has_opted_in_tracking = function(options) {\n return this._gdpr_call_func(hasOptedIn, options);\n};\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * var has_opted_out = mixpanel.has_opted_out_tracking();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\nMixpanelLib.prototype.has_opted_out_tracking = function(options) {\n return this._gdpr_call_func(hasOptedOut, options);\n};\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // clear user's opt-in/out status\n * mixpanel.clear_opt_in_out_tracking();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_tracking/opt_out_tracking methods were called.\n * mixpanel.clear_opt_in_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.clear_opt_in_out_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(clearOptInOut, options);\n this._gdpr_update_persistence(options);\n};\n\nMixpanelLib.prototype.report_error = function(msg, err) {\n console$1.error.apply(console$1.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.get_config('error_reporter')(msg, err);\n } catch(err) {\n console$1.error(err);\n }\n};\n\n// EXPORTS (for closure compiler)\n\n// MixpanelLib Exports\nMixpanelLib.prototype['init'] = MixpanelLib.prototype.init;\nMixpanelLib.prototype['reset'] = MixpanelLib.prototype.reset;\nMixpanelLib.prototype['disable'] = MixpanelLib.prototype.disable;\nMixpanelLib.prototype['time_event'] = MixpanelLib.prototype.time_event;\nMixpanelLib.prototype['track'] = MixpanelLib.prototype.track;\nMixpanelLib.prototype['track_links'] = MixpanelLib.prototype.track_links;\nMixpanelLib.prototype['track_forms'] = MixpanelLib.prototype.track_forms;\nMixpanelLib.prototype['track_pageview'] = MixpanelLib.prototype.track_pageview;\nMixpanelLib.prototype['register'] = MixpanelLib.prototype.register;\nMixpanelLib.prototype['register_once'] = MixpanelLib.prototype.register_once;\nMixpanelLib.prototype['unregister'] = MixpanelLib.prototype.unregister;\nMixpanelLib.prototype['identify'] = MixpanelLib.prototype.identify;\nMixpanelLib.prototype['alias'] = MixpanelLib.prototype.alias;\nMixpanelLib.prototype['name_tag'] = MixpanelLib.prototype.name_tag;\nMixpanelLib.prototype['set_config'] = MixpanelLib.prototype.set_config;\nMixpanelLib.prototype['get_config'] = MixpanelLib.prototype.get_config;\nMixpanelLib.prototype['get_api_host'] = MixpanelLib.prototype.get_api_host;\nMixpanelLib.prototype['get_property'] = MixpanelLib.prototype.get_property;\nMixpanelLib.prototype['get_distinct_id'] = MixpanelLib.prototype.get_distinct_id;\nMixpanelLib.prototype['toString'] = MixpanelLib.prototype.toString;\nMixpanelLib.prototype['opt_out_tracking'] = MixpanelLib.prototype.opt_out_tracking;\nMixpanelLib.prototype['opt_in_tracking'] = MixpanelLib.prototype.opt_in_tracking;\nMixpanelLib.prototype['has_opted_out_tracking'] = MixpanelLib.prototype.has_opted_out_tracking;\nMixpanelLib.prototype['has_opted_in_tracking'] = MixpanelLib.prototype.has_opted_in_tracking;\nMixpanelLib.prototype['clear_opt_in_out_tracking'] = MixpanelLib.prototype.clear_opt_in_out_tracking;\nMixpanelLib.prototype['get_group'] = MixpanelLib.prototype.get_group;\nMixpanelLib.prototype['set_group'] = MixpanelLib.prototype.set_group;\nMixpanelLib.prototype['add_group'] = MixpanelLib.prototype.add_group;\nMixpanelLib.prototype['remove_group'] = MixpanelLib.prototype.remove_group;\nMixpanelLib.prototype['track_with_groups'] = MixpanelLib.prototype.track_with_groups;\nMixpanelLib.prototype['start_batch_senders'] = MixpanelLib.prototype.start_batch_senders;\nMixpanelLib.prototype['stop_batch_senders'] = MixpanelLib.prototype.stop_batch_senders;\nMixpanelLib.prototype['start_session_recording'] = MixpanelLib.prototype.start_session_recording;\nMixpanelLib.prototype['stop_session_recording'] = MixpanelLib.prototype.stop_session_recording;\nMixpanelLib.prototype['pause_session_recording'] = MixpanelLib.prototype.pause_session_recording;\nMixpanelLib.prototype['resume_session_recording'] = MixpanelLib.prototype.resume_session_recording;\nMixpanelLib.prototype['get_session_recording_properties'] = MixpanelLib.prototype.get_session_recording_properties;\nMixpanelLib.prototype['get_session_replay_url'] = MixpanelLib.prototype.get_session_replay_url;\nMixpanelLib.prototype['get_tab_id'] = MixpanelLib.prototype.get_tab_id;\nMixpanelLib.prototype['DEFAULT_API_ROUTES'] = DEFAULT_API_ROUTES;\n\n// Exports intended only for testing\nMixpanelLib.prototype['__get_recorder'] = MixpanelLib.prototype.__get_recorder;\n\n// MixpanelPersistence Exports\nMixpanelPersistence.prototype['properties'] = MixpanelPersistence.prototype.properties;\nMixpanelPersistence.prototype['update_search_keyword'] = MixpanelPersistence.prototype.update_search_keyword;\nMixpanelPersistence.prototype['update_referrer_info'] = MixpanelPersistence.prototype.update_referrer_info;\nMixpanelPersistence.prototype['get_cross_subdomain'] = MixpanelPersistence.prototype.get_cross_subdomain;\nMixpanelPersistence.prototype['clear'] = MixpanelPersistence.prototype.clear;\n\n\nvar instances = {};\nvar extend_mp = function() {\n // add all the sub mixpanel instances\n _.each(instances, function(instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) { mixpanel_master[name] = instance; }\n });\n\n // add private functions as _\n mixpanel_master['_'] = _;\n};\n\nvar override_mp_init_func = function() {\n // we override the snippets init function to handle the case where a\n // user initializes the mixpanel library after the script loads & runs\n mixpanel_master['init'] = function(token, config, name) {\n if (name) {\n // initialize a sub library\n if (!mixpanel_master[name]) {\n mixpanel_master[name] = instances[name] = create_mplib(token, config, name);\n mixpanel_master[name]._loaded();\n }\n return mixpanel_master[name];\n } else {\n var instance = mixpanel_master;\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main mixpanel lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME];\n } else if (token) {\n // intialize the main mixpanel lib\n instance = create_mplib(token, config, PRIMARY_INSTANCE_NAME);\n instance._loaded();\n instances[PRIMARY_INSTANCE_NAME] = instance;\n }\n\n mixpanel_master = instance;\n if (init_type === INIT_SNIPPET) {\n win[PRIMARY_INSTANCE_NAME] = mixpanel_master;\n }\n extend_mp();\n }\n };\n};\n\nvar add_dom_loaded_handler = function() {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if (dom_loaded_handler.done) { return; }\n dom_loaded_handler.done = true;\n\n DOM_LOADED = true;\n ENQUEUE_REQUESTS = false;\n\n _.each(instances, function(inst) {\n inst._dom_loaded();\n });\n }\n\n function do_scroll_check() {\n try {\n document$1.documentElement.doScroll('left');\n } catch(e) {\n setTimeout(do_scroll_check, 1);\n return;\n }\n\n dom_loaded_handler();\n }\n\n if (document$1.addEventListener) {\n if (document$1.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler();\n } else {\n document$1.addEventListener('DOMContentLoaded', dom_loaded_handler, false);\n }\n } else if (document$1.attachEvent) {\n // IE\n document$1.attachEvent('onreadystatechange', dom_loaded_handler);\n\n // check to make sure we arn't in a frame\n var toplevel = false;\n try {\n toplevel = win.frameElement === null;\n } catch(e) {\n // noop\n }\n\n if (document$1.documentElement.doScroll && toplevel) {\n do_scroll_check();\n }\n }\n\n // fallback handler, always will work\n _.register_event(win, 'load', dom_loaded_handler, true);\n};\n\nfunction init_as_module(bundle_loader) {\n load_extra_bundle = bundle_loader;\n init_type = INIT_MODULE;\n mixpanel_master = new MixpanelLib();\n\n override_mp_init_func();\n mixpanel_master['init']();\n add_dom_loaded_handler();\n\n return mixpanel_master;\n}\n\n// For loading separate bundles asynchronously via script tag\n// so that we don't load them until they are needed at runtime.\n\n// For builds that have everything in one bundle, no extra work.\nfunction loadNoop (_src, onload) {\n onload();\n}\n\n/* eslint camelcase: \"off\" */\n\nvar mixpanel = init_as_module(loadNoop);\n\nexport { mixpanel as default };\n","/**\n * Mixpanel Tracking Utility\n *\n * Provides centralized tracking functionality with error handling\n * and support for global and event-specific properties.\n */\n\nimport mixpanel from 'mixpanel-browser';\n\n// Track initialization status\nlet isInitialized = false;\n\n// Initialize Mixpanel if token is provided and data consent is given\nconst initializeMixpanel = () => {\n try {\n if (typeof window === 'undefined') {\n return false;\n }\n\n // Don't re-initialize if already done\n if (isInitialized) {\n return true;\n }\n\n const config = window.marketplaceConfig || {};\n\n // Check if data consent is given\n const dataConsentStatus = config.data_consent_status;\n if (!dataConsentStatus) {\n return false;\n }\n\n const mixpanelConfig = config.mixpanel || {};\n const token = mixpanelConfig.token;\n\n // Only initialize if token is provided\n if (!token || token === '') {\n return false;\n }\n\n mixpanel.init(token, {\n debug: mixpanelConfig.debug || false,\n track_pageview: false, // We'll handle page views manually\n persistence: 'localStorage',\n // Disable automatic collection of potentially sensitive properties for privacy\n property_blacklist: [\n '$initial_referrer',\n '$initial_referring_domain',\n '$current_url',\n '$referrer',\n '$referring_domain',\n 'mp_lib',\n '$lib_version',\n '$browser',\n '$browser_version',\n '$device',\n '$screen_height',\n '$screen_width',\n '$os',\n '$search_engine',\n ],\n });\n\n // Set distinct_id if provided\n const distinctId = mixpanelConfig.distinctId;\n if (distinctId && distinctId !== '') {\n mixpanel.identify(distinctId);\n }\n\n isInitialized = true;\n return true;\n } catch (error) {\n return false;\n }\n};\n\n// Export initializeMixpanel for manual initialization from React components\nexport { initializeMixpanel };\n\n// Check if Mixpanel is available\nconst isMixpanelAvailable = () => {\n try {\n return isInitialized && typeof mixpanel !== 'undefined';\n } catch (error) {\n return false;\n }\n};\n\n/**\n * Disable Mixpanel tracking (when consent is revoked)\n * Resets the SDK and clears the initialization flag\n */\nexport const disableMixpanel = () => {\n try {\n if (isInitialized && typeof mixpanel !== 'undefined') {\n // Reset Mixpanel instance to stop tracking\n mixpanel.reset();\n isInitialized = false;\n }\n } catch (error) {\n console.error('[MixpanelTracking] Error disabling Mixpanel:', error);\n }\n};\n\n/**\n * Enable Mixpanel tracking (when consent is granted)\n * Reinitializes Mixpanel with current config from window.marketplaceConfig\n */\nexport const enableMixpanel = () => {\n try {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const config = window.marketplaceConfig || {};\n const mixpanelConfig = config.mixpanel || {};\n const token = mixpanelConfig.token;\n\n // Only initialize if token is provided\n if (!token || token === '') {\n return false;\n }\n\n // Reset flag to allow re-initialization\n isInitialized = false;\n\n // Initialize Mixpanel\n return initializeMixpanel();\n } catch (error) {\n console.error('[MixpanelTracking] Error enabling Mixpanel:', error);\n return false;\n }\n};\n\n/**\n * Get global tracking properties from window.marketplaceConfig.mixpanel.globalProperties\n * @returns {Object} Global properties object\n */\nexport const getGlobalProperties = () => {\n try {\n if (typeof window === 'undefined') {\n return {};\n }\n\n const config = window.marketplaceConfig || {};\n const mixpanelConfig = config.mixpanel || {};\n const globalProps = mixpanelConfig.globalProperties || {};\n\n // Add hit_type and page/path properties to the global properties from PHP\n // Extract base path from query params for 'page' property\n const urlParams = new URLSearchParams(window.location.search);\n const pageParam = urlParams.get('page') || '';\n\n const enhancedProperties = {\n ...globalProps,\n hit_type: 'event',\n page: pageParam || window.location.pathname,\n path: window.location.pathname + window.location.search,\n referrer: document.referrer.split('/').filter(Boolean).pop() || '',\n };\n\n // Filter out empty values to keep the payload clean\n return Object.fromEntries(\n Object.entries(enhancedProperties).filter(([_, value]) => {\n if (value === '' || value === null || value === undefined) {\n return false;\n }\n if (Array.isArray(value) && value.length === 0) {\n return false;\n }\n return true;\n })\n );\n } catch (error) {\n return {};\n }\n};\n\n/**\n * Track a Mixpanel event with global and event-specific properties\n * @param {string} eventName - Name of the event to track\n * @param {Object} eventProperties - Event-specific properties\n */\nexport const trackEvent = (eventName, eventProperties = {}) => {\n try {\n if (!isMixpanelAvailable()) {\n // Silently skip tracking if Mixpanel is not available\n // This is expected when data consent is not given or token is missing\n return;\n }\n\n // Merge global properties with event-specific properties\n const properties = {\n ...getGlobalProperties(),\n ...eventProperties,\n };\n\n // Track the event\n mixpanel.track(eventName, properties);\n\n } catch (error) {\n console.error('[MixpanelTracking] Error tracking event:', eventName, error);\n }\n};\n\n/**\n * Track page view event\n * @param {Object} options - Page view options\n * @param {string} options.pluginSlug - Plugin slug (for detail pages)\n * @param {string} options.pluginName - Plugin name (for detail pages)\n * @param {string} options.category - Plugin category\n * @param {string} options.itemName - Custom item_name value (overrides default)\n * @param {boolean} options.isContentRendered - Whether content was successfully rendered (default: true)\n * @param {number} options.contentReceivedAt - Timestamp when API content was received\n * @param {number} options.contentRenderedAt - Timestamp when content was rendered to page\n * @param {boolean} options.isCached - Whether the response was served from cache (default: false)\n */\nexport const trackPageView = ({ pluginSlug, pluginName, category, itemName, isContentRendered = true, contentReceivedAt = null, contentRenderedAt = null, isCached = false } = {}) => {\n try {\n const timestamp = Date.now();\n\n const eventProperties = {\n content_received_at: contentReceivedAt || timestamp,\n is_content_rendered: isContentRendered,\n is_cached: isCached,\n };\n\n // Only add content_rendered_at if content was successfully rendered\n if (isContentRendered) {\n eventProperties.content_rendered_at = contentRenderedAt || timestamp;\n }\n\n // Use itemName if provided, otherwise use pluginSlug (for backward compatibility)\n if (itemName) {\n eventProperties.item_name = itemName;\n } else if (pluginSlug) {\n eventProperties.item_name = pluginSlug;\n }\n\n if (pluginSlug) {\n eventProperties.product_slug = pluginSlug;\n }\n\n if (pluginName) {\n eventProperties.product_name = pluginName;\n }\n\n if (category) {\n eventProperties.item_category = category;\n }\n\n trackEvent('Page Viewed', eventProperties);\n } catch (error) {\n console.error('[MixpanelTracking] Error tracking page view:', error);\n }\n};\n\n/**\n * Track plugin action (install, activate, etc.)\n * @param {Object} options - Action options\n * @param {string} options.action - Action type (e.g., 'install', 'activate')\n * @param {Object} options.plugin - Plugin object\n * @param {string} options.result - Action result (e.g., 'success', 'error')\n */\nexport const trackPluginAction = ({ action, plugin, result = 'initiated' } = {}) => {\n try {\n if (!plugin) {\n return;\n }\n\n const eventName = `Plugin ${action.charAt(0).toUpperCase() + action.slice(1)}`;\n\n const eventProperties = {\n action: action,\n product_slug: plugin.slug || '',\n product_name: plugin.name || '',\n item_name: plugin.slug || '',\n result: result,\n timestamp: Date.now(),\n };\n\n // Add plugin-specific properties\n if (plugin.categories && plugin.categories.length > 0) {\n const category = typeof plugin.categories[0] === 'object'\n ? plugin.categories[0].slug || plugin.categories[0].title\n : plugin.categories[0];\n eventProperties.item_category = category;\n }\n\n if (plugin.licenseType) {\n eventProperties.license_type = plugin.licenseType;\n }\n\n if (plugin.priceAmount !== undefined) {\n eventProperties.price_amount = plugin.priceAmount;\n }\n\n if (plugin.priceCurrency) {\n eventProperties.price_currency = plugin.priceCurrency;\n }\n\n trackEvent(eventName, eventProperties);\n } catch (error) {\n console.error('[MixpanelTracking] Error tracking plugin action:', error);\n }\n};\n\n/**\n * Extract common properties from a plugin object\n * @param {Object} plugin - Plugin object\n * @returns {Object} Extracted properties\n */\nconst extractPluginProperties = (plugin) => {\n if (!plugin) return {};\n\n const properties = {\n product_slug: plugin.slug || '',\n product_name: plugin.name || '',\n // Note: item_name is NOT included here by default\n // It should be set contextually by the calling function\n };\n\n // Extract category\n if (plugin.categories && plugin.categories.length > 0) {\n const category = typeof plugin.categories[0] === 'object'\n ? plugin.categories[0].slug || plugin.categories[0].title\n : plugin.categories[0];\n properties.item_category = category;\n }\n\n // Extract license type\n if (plugin.licenseType) {\n properties.license_type = plugin.licenseType;\n }\n\n // Extract price information\n if (plugin.priceAmount !== undefined) {\n properties.price_amount = plugin.priceAmount;\n }\n\n if (plugin.priceCurrency) {\n properties.price_currency = plugin.priceCurrency;\n }\n\n return properties;\n};\n\n/**\n * Track button click event\n * @param {Object} options - Click options\n * @param {string} options.buttonName - Name/label of the button\n * @param {string} options.buttonAction - Action associated with the button\n * @param {Object} options.plugin - Optional plugin object (will auto-extract properties)\n * @param {Object} options.context - Additional context (merged with plugin properties)\n */\nexport const trackButtonClick = ({ buttonName, buttonAction, plugin = null, context = {} } = {}) => {\n try {\n // Start with base properties\n const eventProperties = {\n button_name: buttonName || '',\n button_action: buttonAction || '',\n item_name: buttonName || '', // item_name should be the button name\n timestamp: Date.now(),\n };\n\n // Auto-extract plugin properties if plugin object is provided\n if (plugin) {\n Object.assign(eventProperties, extractPluginProperties(plugin));\n }\n\n // Merge additional context (context takes precedence over auto-extracted properties)\n Object.assign(eventProperties, context);\n\n trackEvent('Button Clicked', eventProperties);\n } catch (error) {\n console.error('[MixpanelTracking] Error tracking button click:', error);\n }\n};\n\n/**\n * Track marketplace visit\n * @param {number} contentReceivedAt - Timestamp when API content was received\n * @param {number} contentRenderedAt - Timestamp when content was rendered to page\n * @param {boolean} isCached - Whether the response was served from cache\n */\nexport const trackMarketplaceVisit = (contentReceivedAt = null, contentRenderedAt = null, isCached = false) => {\n try {\n trackPageView({\n category: 'marketplace_home',\n itemName: 'Catalog Page', // Set item_name to 'Catalog page' for marketplace listing\n contentReceivedAt: contentReceivedAt,\n contentRenderedAt: contentRenderedAt,\n isCached: isCached,\n });\n } catch (error) {\n console.error('[MixpanelTracking] Error tracking marketplace visit:', error);\n }\n};\n\n/**\n * Track plugin detail page visit\n * @param {Object} plugin - Plugin object\n * @param {number} contentReceivedAt - Timestamp when API content was received\n * @param {number} contentRenderedAt - Timestamp when content was rendered to page\n * @param {boolean} isCached - Whether the response was served from cache\n */\nexport const trackPluginDetailVisit = (plugin, contentReceivedAt = null, contentRenderedAt = null, isCached = false) => {\n try {\n if (!plugin) {\n console.warn('[MixpanelTracking] Plugin object required for tracking detail visit');\n return;\n }\n\n const category = plugin.categories && plugin.categories.length > 0\n ? (typeof plugin.categories[0] === 'object'\n ? plugin.categories[0].slug || plugin.categories[0].title\n : plugin.categories[0])\n : '';\n\n trackPageView({\n pluginSlug: plugin.slug,\n pluginName: plugin.name,\n category: category,\n itemName: 'Product Page', // Set item_name to 'Product page' for plugin detail page\n contentReceivedAt: contentReceivedAt,\n contentRenderedAt: contentRenderedAt,\n isCached: isCached,\n });\n } catch (error) {\n console.error('[MixpanelTracking] Error tracking plugin detail visit:', error);\n }\n};\n\n// Export default object with all tracking functions\nexport default {\n trackEvent,\n trackPageView,\n trackPluginAction,\n trackButtonClick,\n trackMarketplaceVisit,\n trackPluginDetailVisit,\n getGlobalProperties,\n isMixpanelAvailable,\n};\n","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport const setDefaults = (options = {}) => {\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n};\nexport const getDefaults = () => defaultOptions;","import React, { createContext, useContext, useState, useEffect, useCallback, useRef } from 'react';\nimport { trackButtonClick, initializeMixpanel, enableMixpanel, disableMixpanel } from '../utils/mixpanelTracking';\nimport { isWpVersionSupported as isWpVersionSupportedHelper } from '../utils/wpVersionHelper';\n\nconst MarketplaceContext = createContext(null);\n\nexport const MarketplaceProvider = ({\n children,\n apiBaseUrl,\n useWPHandlers,\n wpConfig,\n enableDefaultStyles,\n assetsBaseUrl\n}) => {\n const [pluginInAction, setPluginInAction] = useState({});\n const [subscriptionStatus, setSubscriptionStatus] = useState({});\n const [isCheckingSubscription, setIsCheckingSubscription] = useState({});\n const [plugins, setPlugins] = useState([]);\n const [uiI18n, setUiI18n] = useState({});\n const [loadingAction, setLoadingAction] = useState('');\n const [loadingPlugin, setLoadingPlugin] = useState('');\n const [noticeState, setNoticeState] = useState({ visible: false, type: null, pluginSlug: null });\n const [errorState, setErrorState] = useState({ visible: false, type: null, pluginSlug: null });\n const [successState, setSuccessState] = useState({ visible: false, type: null, pluginSlug: null });\n const [allPluginsActivated, setAllPluginsActivated] = useState(false);\n const [catalogError, setCatalogError] = useState(false);\n const [catalogLoading, setCatalogLoading] = useState(true);\n\n // State for tracking consent status\n const [consentStatus, setConsentStatus] = useState(() => {\n const initialConsent = typeof window !== \"undefined\" && window.marketplaceConfig?.data_consent_status;\n // Convert to boolean: handle true, 'true', '1', 1 as true\n return initialConsent === true || initialConsent === 'true' || initialConsent === '1' || initialConsent === 1;\n });\n\n // Use ref to track which subscriptions have been checked to avoid recreation of fetchSubscriptionStatus\n const checkedSubscriptionsRef = useRef({});\n\n // Use ref to track reload timeout so it can be cancelled if user navigates\n const reloadTimeoutRef = useRef(null);\n\n const brand = typeof window !== \"undefined\" && window.marketplaceConfig?.brand;\n const isOnecomBrand = brand === \"onecom\";\n\n // Get active plugin slugs from WordPress config\n const activePlugins = typeof window !== \"undefined\" && window.marketplaceConfig?.activePlugins\n ? window.marketplaceConfig.activePlugins\n : [];\n\n // Get active theme author from WordPress config\n const activeThemeAuthor = typeof window !== \"undefined\" && window.marketplaceConfig?.activeThemeAuthor\n ? window.marketplaceConfig.activeThemeAuthor\n : \"\";\n\n // Get WP version from WordPress config\n const wpVersion = typeof window !== \"undefined\" && window.marketplaceConfig?.wpVersion\n ? window.marketplaceConfig.wpVersion\n : \"\";\n\n useEffect(() => {\n const persistedNotice = sessionStorage.getItem('mp_success_notice');\n if (persistedNotice) {\n try {\n const noticeData = JSON.parse(persistedNotice);\n setNoticeState({\n visible: noticeData.visible,\n type: noticeData.type,\n pluginSlug: noticeData.pluginSlug\n });\n setSuccessState({\n visible: noticeData.visible,\n type: noticeData.successType,\n pluginSlug: noticeData.pluginSlug\n });\n\n // Schedule clearing from sessionStorage AFTER the notice is set in state\n // and the components have had a chance to mount and check it.\n // We use a small timeout to ensure it stays in sessionStorage long enough\n // for ProductDetail.jsx mount effect to see it.\n setTimeout(() => {\n sessionStorage.removeItem('mp_success_notice');\n }, 100);\n } catch (e) {\n console.error('Error parsing persisted success notice', e);\n }\n }\n }, []);\n\n // Initialize Mixpanel on mount and monitor consent changes\n // Uses useEffect to ensure Mixpanel only initializes when consent is given\n useEffect(() => {\n // Initialize Mixpanel on component mount based on initial consent status\n if (consentStatus === true) {\n initializeMixpanel();\n }\n\n // Set up listener for consent changes from plugin\n const handleConsentChange = (e) => {\n const newConsentStatus = e.detail?.data_consent_status !== undefined ? e.detail.data_consent_status : false;\n\n // Update state\n setConsentStatus(newConsentStatus);\n\n // Handle Mixpanel based on new consent status\n if (newConsentStatus === true) {\n // Consent granted - enable Mixpanel\n // Update window.marketplaceConfig consent status\n // Note: mixpanel config (token, globalProperties, distinctId) is always sent by PHP\n // regardless of consent status, so we can use it directly\n if (typeof window !== \"undefined\" && window.marketplaceConfig) {\n window.marketplaceConfig.data_consent_status = true;\n }\n\n // Enable Mixpanel - it will read the config from window.marketplaceConfig\n enableMixpanel();\n } else {\n\n // Update window.marketplaceConfig\n if (typeof window !== \"undefined\" && window.marketplaceConfig) {\n window.marketplaceConfig.data_consent_status = false;\n // Keep mixpanel config available for when consent is granted again\n }\n\n disableMixpanel();\n }\n };\n\n // Listen for custom consent change event from plugin (same page)\n window.addEventListener('onConsentStatusChanged', handleConsentChange);\n\n // Listen for localStorage changes (cross-page communication)\n const handleStorageChange = (e) => {\n // Only handle changes to our consent key\n if (e.key === 'onecom_data_consent_status') {\n const newConsentStatus = e.newValue === '1';\n\n // Trigger the same handler with the new consent status\n handleConsentChange({ detail: { data_consent_status: newConsentStatus } });\n }\n };\n\n window.addEventListener('storage', handleStorageChange);\n\n // Cleanup on unmount\n return () => {\n window.removeEventListener('onConsentStatusChanged', handleConsentChange);\n window.removeEventListener('storage', handleStorageChange);\n };\n }, []); // Empty dependency array - only run on mount/unmount\n\n // Fetch subscription status for special plugins (wp-rocket, rank-math-pro)\n const fetchSubscriptionStatus = useCallback(async (pluginSlug) => {\n if (!isOnecomBrand) return;\n\n if (!isSpecialPlugin(pluginSlug)) return;\n\n // Mark as being checked\n setIsCheckingSubscription(prev => ({ ...prev, [pluginSlug]: true }));\n\n try {\n const ajaxUrl = typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.wpConfig?.ajaxUrl;\n if (!ajaxUrl) {\n setIsCheckingSubscription(prev => ({ ...prev, [pluginSlug]: false }));\n return;\n }\n\n const formData = new FormData();\n formData.append('action', 'get_addon_purchase_status');\n formData.append('addon_purchase_check', 'true');\n formData.append('addon_slug', pluginSlug);\n\n const res = await fetch(ajaxUrl, {\n method: 'POST',\n body: formData\n });\n\n const json = await res.json();\n\n setSubscriptionStatus(prev => ({ ...prev, [pluginSlug]: json.is_purchased }));\n } catch (e) {\n setSubscriptionStatus(prev => ({ ...prev, [pluginSlug]: false }));\n } finally {\n setIsCheckingSubscription(prev => ({ ...prev, [pluginSlug]: false }));\n }\n }, [isOnecomBrand]);\n\n // Function to cancel scheduled reload (called when user clicks \"Get Started\")\n const cancelReload = useCallback(() => {\n if (reloadTimeoutRef.current) {\n clearTimeout(reloadTimeoutRef.current);\n reloadTimeoutRef.current = null;\n }\n sessionStorage.removeItem('mp_success_notice');\n }, []);\n\n const isSpecialPlugin = useCallback((pluginSlug) => {\n return pluginSlug === \"wp-rocket\" || pluginSlug === \"seo-by-rank-math-pro\";\n }, []);\n\n const isWpVersionSupported = useCallback((minVersion) => {\n return isWpVersionSupportedHelper(wpVersion, minVersion);\n }, [wpVersion]);\n\n const shouldShowProvision = useCallback((plugin) => {\n if (!plugin || !isOnecomBrand) return false;\n return isSpecialPlugin(plugin.slug) && !plugin.installed && subscriptionStatus[plugin.slug] === true;\n }, [isOnecomBrand, subscriptionStatus, isSpecialPlugin]);\n\n // Helper function to check if a plugin should be visible based on its rules\n const shouldShowPlugin = useCallback((plugin) => {\n // If plugin has no rules, show it by default\n if (!plugin.rules) {\n return true;\n }\n\n // Check mustHavePlugins rule\n if (plugin.rules.mustHavePlugins && Array.isArray(plugin.rules.mustHavePlugins)) {\n // If the array is empty, no requirements exist, so show the plugin\n if (plugin.rules.mustHavePlugins.length === 0) {\n return true;\n }\n\n // Plugin should be visible if ANY of the required plugins is active\n const hasRequiredPlugin = plugin.rules.mustHavePlugins.some(requiredSlug =>\n activePlugins.includes(requiredSlug)\n );\n\n // If mustHavePlugins rule exists but no required plugin is active, hide the plugin\n if (!hasRequiredPlugin) {\n return false;\n }\n }\n\n // Check mustHaveThemesByAuthor rule\n if (plugin.rules.mustHaveThemesByAuthor && typeof plugin.rules.mustHaveThemesByAuthor === 'string') {\n // Plugin should be visible only if the active theme author matches the required author\n const requiredAuthor = plugin.rules.mustHaveThemesByAuthor;\n if (activeThemeAuthor !== requiredAuthor) {\n return false;\n }\n }\n\n // Add support for other rule types here in the future\n // For now, if all rules pass (or don't exist), show the plugin\n return true;\n }, [activePlugins, activeThemeAuthor]);\n\n // Handle plugin actions (install, activate, deactivate)\n const handlePluginAction = useCallback(async (action, plugin, source = '') => {\n // Check if this is Imagify plugin activation (handles 302 redirect case)\n const isImagifyActivation = action === 'activate' && plugin.slug === 'imagify';\n\n setPluginInAction(prev => ({ ...prev, [plugin.slug]: true }));\n\n // Use ref to track if action was successful (to prevent finally block from clearing pluginInAction)\n let actionSuccessful = false;\n\n // Set loading state for overlay using API response keys\n const pluginName = plugin.name || plugin.slug;\n let loadingMessage = '';\n\n if (action === 'activate') {\n const activatingMsg = uiI18n?.notifications?.activating || 'Activating {0}';\n loadingMessage = activatingMsg.replace('{0}', pluginName) + '...';\n } else if (action === 'deactivate') {\n const deactivatingMsg = uiI18n?.notifications?.deactivating || 'Deactivating {0}';\n loadingMessage = deactivatingMsg.replace('{0}', pluginName) + '...';\n } else if (action === 'install') {\n const installingMsg = uiI18n?.notifications?.installing || 'Installing {0}';\n loadingMessage = installingMsg.replace('{0}', pluginName) + '...';\n } else if (action === 'delete') {\n const deletingMsg = uiI18n?.notifications?.deleting || 'Deleting {0}';\n loadingMessage = deletingMsg.replace('{0}', pluginName) + '...';\n } else {\n // Fallback for other actions\n const actionText = action.charAt(0).toUpperCase() + (action.endsWith('e') ? action.slice(1, -1) : action.slice(1)) + 'ing';\n loadingMessage = `${actionText} ${pluginName}`;\n }\n\n setLoadingAction(loadingMessage);\n setLoadingPlugin('');\n\n // For Imagify, use setTimeout to allow React to render the loading overlay first\n if (isImagifyActivation) {\n // Build URL for activation\n let url = `${apiBaseUrl}${action}/${plugin.slug}`;\n const downloadParam = `download_url=${encodeURIComponent(plugin.download || '')}`;\n\n if (useWPHandlers) {\n url = `${wpConfig.ajaxUrl}?action=marketplace_${action}_plugin&_wpnonce=${wpConfig.nonce}&nonce=${wpConfig.nonce}&slug=${plugin.slug}&${downloadParam}`;\n } else {\n url = url + (url.includes('?') ? '&' : '?') + downloadParam;\n }\n\n // Allow React to render loading overlay, then execute Imagify flow\n setTimeout(async () => {\n // Initiate the activation request (don't wait for response due to 302 redirect)\n try {\n await fetch(url, { method: \"POST\" });\n } catch (err) {\n console.log(\"Imagify activation request initiated\");\n }\n\n // Poll for activation status\n let attempts = 0;\n const maxAttempts = 6;\n const checkActivation = async () => {\n try {\n const checkUrl = `${apiBaseUrl}active/${plugin.slug}`;\n const response = await fetch(checkUrl);\n const data = await response.json();\n\n if (data && data.activated) {\n // Track successful Imagify activation\n trackButtonClick({\n buttonName: 'Activate',\n buttonAction: 'product_activate',\n plugin: plugin,\n context: {\n action: action,\n result: 'success',\n special_case: 'imagify_redirect',\n }\n });\n\n if (source === 'product_detail') {\n // Set flag to skip page view tracking on reload\n sessionStorage.setItem('mp_skip_page_view', 'true');\n sessionStorage.setItem('mp_success_notice', JSON.stringify({\n visible: true,\n type: 'activated',\n pluginSlug: plugin.slug,\n successType: 'activate'\n }));\n\n // Schedule reload\n reloadTimeoutRef.current = setTimeout(() => {\n window.location.reload();\n }, 500);\n } else {\n // Old flow for addons page\n setSuccessState({ visible: true, type: 'activate', pluginSlug: plugin.slug });\n\n // Schedule reload after a while\n reloadTimeoutRef.current = setTimeout(() => {\n sessionStorage.setItem('mp_skip_page_view', 'true');\n window.location.reload();\n }, 3000);\n\n // Clear loading state only\n setLoadingAction('');\n setLoadingPlugin('');\n actionSuccessful = true;\n }\n return;\n }\n } catch (e) {\n console.error(\"Error checking activation status\", e);\n }\n\n attempts++;\n if (attempts < maxAttempts) {\n setTimeout(checkActivation, 1000);\n } else {\n // If we reached max attempts and still not activated, show error\n setErrorState({ visible: true, type: 'activate', pluginSlug: plugin.slug });\n\n // Track activation error\n trackButtonClick({\n buttonName: 'Activate',\n buttonAction: 'product_activate',\n plugin: plugin,\n context: {\n action: action,\n result: 'error',\n error_message: 'Imagify activation timeout after polling',\n }\n });\n\n // Clear loading state\n setLoadingAction('');\n setLoadingPlugin('');\n setPluginInAction(prev => ({ ...prev, [plugin.slug]: false }));\n }\n };\n\n // Start checking\n setTimeout(checkActivation, 1000);\n }, 100);\n return;\n }\n\n try {\n let url = `${apiBaseUrl}/${action}/${plugin.slug}`;\n\n // prepare encoded download param (safe if plugin.download is undefined)\n const downloadParam = `download_url=${encodeURIComponent(plugin.download || '')}`;\n\n if (useWPHandlers) {\n // original WP-AJAX URL + download_url appended\n url = `${wpConfig.ajaxUrl}?action=marketplace_${action}_plugin&_wpnonce=${wpConfig.nonce}&nonce=${wpConfig.nonce}&slug=${plugin.slug}&${downloadParam}`;\n } else {\n // append download_url to non-WP URL (adds ? or & correctly)\n url = url + (url.includes('?') ? '&' : '?') + downloadParam;\n }\n\n const res = await fetch(url, { method: \"POST\" });\n const result = await res.json();\n\n if (result.success) {\n setPlugins(prev =>\n prev.map(p => {\n if (p.slug === plugin.slug) {\n return { ...p, installed: result.data.installed, activated: result.data.activated };\n }\n\n // Handle Rank Math dependency: if Free is deactivated, Pro is also deactivated\n if (action === 'deactivate' && plugin.slug === 'seo-by-rank-math' && p.slug === 'seo-by-rank-math-pro') {\n return { ...p, activated: false };\n }\n\n // Handle Rank Math dependency: if Pro is activated, Free is also activated\n if (action === 'activate' && plugin.slug === 'seo-by-rank-math-pro' && p.slug === 'seo-by-rank-math') {\n return { ...p, activated: true };\n }\n\n return p;\n })\n );\n\n // Show success notice for install, activate and delete actions\n if (action === 'install' && result.data.installed) {\n setNoticeState({ visible: true, type: 'installed', pluginSlug: plugin.slug });\n\n // Track successful install\n trackButtonClick({\n buttonName: 'Install',\n buttonAction: 'product_install',\n plugin: plugin,\n context: {\n action: action,\n result: 'success',\n }\n });\n } else if (action === 'delete' && !result.data.installed) {\n setNoticeState({ visible: true, type: 'deleted', pluginSlug: plugin.slug });\n setSuccessState({ visible: true, type: 'delete', pluginSlug: plugin.slug });\n\n // Track successful delete\n trackButtonClick({\n buttonName: 'Delete',\n buttonAction: 'product_delete',\n plugin: plugin,\n context: {\n action: action,\n result: 'success',\n }\n });\n } else if (action === 'activate' && result.data.activated) {\n actionSuccessful = true; // Mark action as successful to prevent finally block from clearing pluginInAction\n\n // Track successful activate\n trackButtonClick({\n buttonName: 'Activate',\n buttonAction: 'product_activate',\n plugin: plugin,\n context: {\n action: action,\n result: 'success',\n }\n });\n\n if (source === 'product_detail') {\n // Set flag to skip page view tracking on reload\n sessionStorage.setItem('mp_skip_page_view', 'true');\n sessionStorage.setItem('mp_success_notice', JSON.stringify({\n visible: true,\n type: 'activated',\n pluginSlug: plugin.slug,\n successType: 'activate'\n }));\n\n // Schedule reload almost instantly\n reloadTimeoutRef.current = setTimeout(() => {\n window.location.reload();\n }, 500);\n } else {\n // Old flow for addons page\n setSuccessState({ visible: true, type: 'activate', pluginSlug: plugin.slug });\n\n // Schedule reload after a while\n reloadTimeoutRef.current = setTimeout(() => {\n // Set flag to skip page view tracking on reload\n sessionStorage.setItem('mp_skip_page_view', 'true');\n window.location.reload();\n }, 3000);\n\n // Clear loading state only\n setLoadingAction('');\n setLoadingPlugin('');\n }\n\n return; // Skip finally block (though finally will still execute, actionSuccessful flag prevents clearing)\n } else if (action === 'deactivate' && !result.data.activated) {\n actionSuccessful = true; // Mark action as successful to prevent finally block from clearing pluginInAction\n setSuccessState({ visible: true, type: 'deactivate', pluginSlug: plugin.slug });\n\n // Track successful deactivate\n trackButtonClick({\n buttonName: 'Deactivate',\n buttonAction: 'product_deactivate',\n plugin: plugin,\n context: {\n action: action,\n result: 'success',\n }\n });\n\n // Schedule reload after deactivation to refresh plugin state\n reloadTimeoutRef.current = setTimeout(() => {\n // Set flag to skip page view tracking on reload\n sessionStorage.setItem('mp_skip_page_view', 'true');\n window.location.reload();\n }, 3000);\n\n // Don't clear pluginInAction for successful deactivation - keep back button disabled until reload\n // Clear loading state only\n setLoadingAction('');\n setLoadingPlugin('');\n return;\n }\n } else {\n // Show error toast for activation and installation errors\n if (action === 'activate') {\n setErrorState({ visible: true, type: 'activate', pluginSlug: plugin.slug });\n\n // Track activation error\n trackButtonClick({\n buttonName: 'Activate',\n buttonAction: 'product_activate',\n plugin: plugin,\n context: {\n action: action,\n result: 'error',\n error_message: result.data?.message || uiI18n?.notifications?.pluginActivationFailed || 'Activation failed',\n }\n });\n } else if (action === 'deactivate') {\n setErrorState({ visible: true, type: 'deactivate', pluginSlug: plugin.slug });\n\n // Track deactivation error\n trackButtonClick({\n buttonName: 'Deactivate',\n buttonAction: 'product_deactivate',\n plugin: plugin,\n context: {\n action: action,\n result: 'error',\n error_message: result.data?.message || uiI18n?.notifications?.pluginDeactivationFailed || 'Deactivation failed',\n }\n });\n } else if (action === 'install') {\n setErrorState({ visible: true, type: 'install', pluginSlug: plugin.slug });\n\n // Track installation error\n trackButtonClick({\n buttonName: 'Install',\n buttonAction: 'product_install',\n plugin: plugin,\n context: {\n action: action,\n result: 'error',\n error_message: result.data?.message || 'Installation failed',\n }\n });\n } else if (action === 'delete') {\n setErrorState({ visible: true, type: 'delete', pluginSlug: plugin.slug });\n\n // Track deletion error\n trackButtonClick({\n buttonName: 'Delete',\n buttonAction: 'product_delete',\n plugin: plugin,\n context: {\n action: action,\n result: 'error',\n error_message: result.data?.message || uiI18n?.notifications?.pluginDeletionFailed || 'Deletion failed',\n }\n });\n } else {\n alert(result.data?.message || \"Failed to perform action\");\n }\n }\n } catch (err) {\n console.error(\"Plugin action failed\", err);\n\n // Track network/exception errors for install and activate\n if (action === 'activate' || action === 'install' || action === 'delete') {\n trackButtonClick({\n buttonName: action === 'activate' ? 'Activate' : (action === 'install' ? 'Install' : 'Delete'),\n buttonAction: action === 'activate' ? 'product_activate' : (action === 'install' ? 'product_install' : 'product_delete'),\n plugin: plugin,\n context: {\n action: action,\n result: 'error',\n error_message: err.message || 'Network error',\n }\n });\n }\n } finally {\n // Only clear pluginInAction if action was not successful\n // For successful actions (activate/deactivate), keep it true until page reload\n if (!actionSuccessful) {\n setPluginInAction(prev => ({ ...prev, [plugin.slug]: false }));\n }\n // Clear loading state\n setLoadingAction('');\n setLoadingPlugin('');\n }\n }, [apiBaseUrl, useWPHandlers, wpConfig, uiI18n]);\n\n const value = {\n apiBaseUrl,\n useWPHandlers,\n wpConfig,\n enableDefaultStyles,\n assetsBaseUrl,\n pluginInAction,\n setPluginInAction,\n subscriptionStatus,\n isCheckingSubscription,\n fetchSubscriptionStatus,\n isOnecomBrand,\n plugins,\n setPlugins,\n uiI18n,\n setUiI18n,\n handlePluginAction,\n cancelReload,\n loadingAction,\n loadingPlugin,\n noticeState,\n setNoticeState,\n errorState,\n setErrorState,\n successState,\n setSuccessState,\n allPluginsActivated,\n setAllPluginsActivated,\n catalogError,\n setCatalogError,\n catalogLoading,\n setCatalogLoading,\n shouldShowProvision,\n isSpecialPlugin,\n shouldShowPlugin,\n isWpVersionSupported,\n wpVersion,\n activePlugins,\n activeThemeAuthor\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useMarketplace = () => {\n const context = useContext(MarketplaceContext);\n if (!context) {\n throw new Error('useMarketplace must be used within MarketplaceProvider');\n }\n return context;\n};\n","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace, isString, isObject } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nconst alwaysNewT = (i18n, language, namespace, keyPrefix) => i18n.getFixedT(language, namespace, keyPrefix);\nconst useMemoizedT = (i18n, language, namespace, keyPrefix) => useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\nexport const useTranslation = (ns, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', 'useTranslation: You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (isString(optsOrDefaultValue)) return optsOrDefaultValue;\n if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react?.wait) warnOnce(i18n, 'DEPRECATED_OPTION', 'useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options?.defaultNS;\n namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n i18n.reportNamespaces.addUsedNamespaces?.(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n const boundReset = () => {\n if (isMounted.current) setT(getNewT);\n };\n if (bindI18n) i18n?.on(bindI18n, boundReset);\n if (bindI18nStore) i18n?.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (i18n && bindI18n) bindI18n?.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n useEffect(() => {\n if (isMounted.current && ready) {\n setT(getT);\n }\n }, [i18n, keyPrefix, ready]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n};","let i18nInstance;\nexport const setI18n = instance => {\n i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","export const warn = (i18n, code, msg, rest) => {\n const args = [msg, {\n code,\n ...(rest || {})\n }];\n if (i18n?.services?.logger?.forward) {\n return i18n.services.logger.forward(args, 'warn', 'react-i18next::', true);\n }\n if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;\n if (i18n?.services?.logger?.warn) {\n i18n.services.logger.warn(...args);\n } else if (console?.warn) {\n console.warn(...args);\n }\n};\nconst alreadyWarned = {};\nexport const warnOnce = (i18n, code, msg, rest) => {\n if (isString(msg) && alreadyWarned[msg]) return;\n if (isString(msg)) alreadyWarned[msg] = new Date();\n warn(i18n, code, msg, rest);\n};\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport const loadNamespaces = (i18n, ns, cb) => {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n};\nexport const loadLanguages = (i18n, lng, ns, cb) => {\n if (isString(ns)) ns = [ns];\n if (i18n.options.preload && i18n.options.preload.indexOf(lng) > -1) return loadNamespaces(i18n, ns, cb);\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n};\nexport const hasLoadedNamespace = (ns, i18n, options = {}) => {\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(i18n, 'NO_LANGUAGES', 'i18n.languages were undefined or empty', {\n languages: i18n.languages\n });\n return true;\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n};\nexport const getDisplayName = Component => Component.displayName || Component.name || (isString(Component) && Component.length > 0 ? Component : 'Unknown');\nexport const isString = obj => typeof obj === 'string';\nexport const isObject = obj => typeof obj === 'object' && obj !== null;","import React, { useState, useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport PluginActions from \"./PluginActions\";\nimport SuccessNotice from \"./SuccessNotice\";\nimport ErrorToast from \"./ErrorToast\";\nimport { useMarketplace } from \"../context/MarketplaceContext\";\nimport { formatPluginPrice, getFullPrice } from \"../utils/priceFormatter\";\n\nexport default function ProductDetailRankMath({\n plugin,\n onClose,\n usePortal = true,\n loading = false\n}) {\n const {\n assetsBaseUrl,\n useWPHandlers,\n pluginInAction,\n plugins,\n uiI18n,\n subscriptionStatus,\n isCheckingSubscription,\n noticeState,\n setNoticeState,\n setErrorState\n } = useMarketplace();\n\n // Always get both plugins from context - seo-by-rank-math for first column, rank-math-pro for second\n const freePlugin = plugins.find(p => p.slug === \"seo-by-rank-math\") || null;\n const proPlugin = plugins.find(p => p.slug === \"seo-by-rank-math-pro\") || null;\n\n const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== \"undefined\" && window.marketplaceConfig?.assetsBaseUrl) || \"\";\n const iconBase = assetBase ? `${assetBase}assets/icons/` : \"\";\n\n // Show skeleton loaders while loading (even if plugin is null)\n if (loading) {\n const skeletonContent = (\n \n );\n return usePortal ? createPortal(skeletonContent, document.body) : skeletonContent;\n }\n\n // If not loading and plugin is null, return null\n if (!plugin) return null;\n\n // Refs for slider elements\n const tableSliderRef = useRef(null);\n const sliderNavRef = useRef(null);\n const tableRef = useRef(null);\n const tableHeaderRef = useRef(null);\n const paginationRef = useRef(null);\n const dotsRef = useRef([]);\n\n // State for active slide\n const [activeSlide, setActiveSlide] = useState(0);\n\n // Scroll to top when component mounts or plugin changes\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [plugin]);\n\n // Clear banners when component mounts (handles case when user returns via browser back button)\n useEffect(() => {\n // Clear any existing banners when ProductDetail mounts\n // BUT don't clear them if they are for the current plugin (e.g. just activated and reloaded)\n setNoticeState(prev => (prev.visible && (prev.pluginSlug === freePlugin?.slug || prev.pluginSlug === proPlugin?.slug)) ? prev : { visible: false, type: null, pluginSlug: null });\n setErrorState(prev => (prev.visible && (prev.pluginSlug === freePlugin?.slug || prev.pluginSlug === proPlugin?.slug)) ? prev : { visible: false, type: null, pluginSlug: null });\n }, [freePlugin?.slug, proPlugin?.slug, setNoticeState, setErrorState]);\n\n // Hide banners when user navigates back and returns to the product detail page\n useEffect(() => {\n const handlePopState = () => {\n // Clear notice and error state when navigating via browser back/forward\n setNoticeState({ visible: false, type: null, pluginSlug: null });\n setErrorState({ visible: false, type: null, pluginSlug: null });\n };\n\n window.addEventListener('popstate', handlePopState);\n return () => window.removeEventListener('popstate', handlePopState);\n }, [setNoticeState, setErrorState]);\n\n // Navigation button click handlers\n const handlePrevClick = () => {\n const tableSlider = tableSliderRef.current;\n if (!tableSlider) return;\n\n const slideWidth = tableSlider.offsetWidth;\n tableSlider.scrollTo({\n left: tableSlider.scrollLeft - slideWidth,\n behavior: 'smooth'\n });\n };\n\n const handleNextClick = () => {\n const tableSlider = tableSliderRef.current;\n if (!tableSlider) return;\n\n const slideWidth = tableSlider.offsetWidth;\n tableSlider.scrollTo({\n left: tableSlider.scrollLeft + slideWidth,\n behavior: 'smooth'\n });\n };\n\n // Dot click handler\n const handleDotClick = (slideIndex) => {\n const tableSlider = tableSliderRef.current;\n if (!tableSlider) return;\n\n const slideWidth = tableSlider.offsetWidth;\n tableSlider.scrollTo({\n left: slideWidth * slideIndex,\n behavior: 'smooth'\n });\n };\n\n // Slider functionality\n useEffect(() => {\n const tableSlider = tableSliderRef.current;\n const sliderNav = sliderNavRef.current;\n const table = tableRef.current;\n const tableHeader = tableHeaderRef.current;\n const pagination = paginationRef.current;\n\n if (!tableSlider || !sliderNav || !table || !tableHeader || !pagination) return;\n\n const prevButton = sliderNav.querySelector('.gv-previous');\n const nextButton = sliderNav.querySelector('.gv-next');\n\n // State tracking flags to prevent continuous class toggling\n let navIsAtBottom = false;\n let paginationState = 'top'; // 'top', 'overlay', or 'bottom'\n let isPaginationScrolledPast = false;\n let isTableBottomVisible = false;\n let isUpdatingClasses = false; // Flag to prevent observer callbacks during class updates\n\n // Throttle timer for scroll events\n let scrollThrottleTimer = null;\n let isScrollThrottled = false;\n\n // Update active dot and button states based on scroll position\n const updateSliderState = () => {\n const scrollLeft = tableSlider.scrollLeft;\n const slideWidth = tableSlider.offsetWidth;\n const currentSlide = Math.round(scrollLeft / slideWidth);\n\n setActiveSlide(currentSlide);\n\n // Update button disabled states\n if (prevButton) {\n if (currentSlide === 0) {\n prevButton.classList.add('gv-disabled');\n } else {\n prevButton.classList.remove('gv-disabled');\n }\n }\n\n if (nextButton) {\n const maxSlide = Math.round(tableSlider.scrollWidth / slideWidth) - 1;\n if (currentSlide >= maxSlide) {\n nextButton.classList.add('gv-disabled');\n } else {\n nextButton.classList.remove('gv-disabled');\n }\n }\n };\n\n // Calculate and set dynamic positioning for sticky navigation (only when needed)\n const calculateNavPosition = () => {\n const tablePaddingTop = parseFloat(getComputedStyle(table).paddingTop) || 0;\n const headerHeight = tableHeader.offsetHeight;\n const halfHeaderHeight = headerHeight / 2;\n\n // [X] = half of table header height + padding-top of table\n const translateY = halfHeaderHeight + tablePaddingTop;\n\n // [Y] = half viewport height - [X]\n const topValue = (window.innerHeight / 2) - translateY;\n\n // [Z] = half of table header height (excluding padding)\n const bottomValue = 2 * halfHeaderHeight;\n\n sliderNav.style.transform = `translateY(${translateY}px)`;\n sliderNav.style.top = `${topValue}px`;\n sliderNav.style.bottom = `${bottomValue}px`;\n\n return { bottomValue, halfHeaderHeight };\n };\n\n // Check nav boundary and update class only when state changes\n const checkNavBoundary = (bottomValue) => {\n const tableRect = table.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n\n // Calculate the threshold where sticky bottom constraint activates\n const stickyBottomThreshold = viewportHeight - bottomValue;\n\n // Only update class when boundary is crossed (state changes)\n const shouldBeAtBottom = tableRect.bottom <= stickyBottomThreshold;\n\n if (shouldBeAtBottom !== navIsAtBottom) {\n navIsAtBottom = shouldBeAtBottom;\n\n if (navIsAtBottom) {\n sliderNav.classList.add('gv-state-bottom');\n } else {\n sliderNav.classList.remove('gv-state-bottom');\n }\n }\n };\n\n // Update pagination state based on intersection observer flags\n const updatePaginationStateFromObservers = () => {\n // If already updating classes, ignore this call to prevent infinite loop\n if (isUpdatingClasses) {\n return;\n }\n\n // Determine the new state based on observer flags\n let newState;\n if (!isPaginationScrolledPast) {\n newState = 'top';\n } else if (isPaginationScrolledPast && !isTableBottomVisible) {\n newState = 'overlay';\n } else {\n newState = 'bottom';\n }\n\n // Only update classes when state actually changes\n if (newState !== paginationState) {\n // Set flag to prevent observer callbacks during class updates\n isUpdatingClasses = true;\n paginationState = newState;\n\n if (paginationState === 'top') {\n pagination.classList.add('gv-state-top');\n pagination.classList.remove('gv-state-overlay');\n } else if (paginationState === 'overlay') {\n pagination.classList.remove('gv-state-top');\n pagination.classList.add('gv-state-overlay');\n } else {\n pagination.classList.remove('gv-state-top');\n pagination.classList.remove('gv-state-overlay');\n }\n\n // Use requestAnimationFrame to clear flag after browser completes layout update\n requestAnimationFrame(() => {\n // Add a small delay to ensure layout is fully complete\n setTimeout(() => {\n isUpdatingClasses = false;\n }, 50);\n });\n }\n };\n\n // Initial calculation of nav position\n const { bottomValue } = calculateNavPosition();\n\n // Scroll event listener for slider\n tableSlider.addEventListener('scroll', updateSliderState);\n\n // Set up Intersection Observer for pagination element\n // Observes when pagination scrolls past the top of viewport\n const paginationObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n // When pagination is NOT intersecting and is above viewport, it's scrolled past\n if (!entry.isIntersecting && entry.boundingClientRect.top < 0) {\n isPaginationScrolledPast = true;\n } else if (entry.isIntersecting || entry.boundingClientRect.top >= 0) {\n isPaginationScrolledPast = false;\n }\n updatePaginationStateFromObservers();\n });\n },\n {\n threshold: [0, 1],\n rootMargin: '0px'\n }\n );\n\n // Set up Intersection Observer for table bottom\n // Create a sentinel element at the bottom of the table to observe\n const tableBottomSentinel = document.createElement('div');\n tableBottomSentinel.style.position = 'absolute';\n tableBottomSentinel.style.bottom = '0';\n tableBottomSentinel.style.left = '0';\n tableBottomSentinel.style.width = '1px';\n tableBottomSentinel.style.height = '1px';\n tableBottomSentinel.style.pointerEvents = 'none';\n table.style.position = 'relative';\n table.appendChild(tableBottomSentinel);\n\n const tableBottomObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n isTableBottomVisible = entry.isIntersecting;\n updatePaginationStateFromObservers();\n });\n },\n {\n threshold: [0],\n rootMargin: '-100px 0px 0px 0px'\n }\n );\n\n // Start observing\n paginationObserver.observe(pagination);\n tableBottomObserver.observe(tableBottomSentinel);\n\n // Throttled scroll handler - only executes nav boundary check when not already throttled\n const handleScroll = () => {\n if (isScrollThrottled) return;\n\n isScrollThrottled = true;\n\n // Use requestAnimationFrame for smooth updates\n requestAnimationFrame(() => {\n checkNavBoundary(bottomValue);\n });\n\n // Throttle for 100ms to reduce continuous execution\n scrollThrottleTimer = setTimeout(() => {\n isScrollThrottled = false;\n }, 100);\n };\n\n // Resize handler - recalculate positions and check boundaries\n const handleResize = () => {\n const { bottomValue: newBottomValue } = calculateNavPosition();\n checkNavBoundary(newBottomValue);\n };\n\n window.addEventListener('scroll', handleScroll);\n window.addEventListener('resize', handleResize);\n\n // Initial updates\n updateSliderState();\n checkNavBoundary(bottomValue);\n updatePaginationStateFromObservers();\n\n // Cleanup\n return () => {\n if (scrollThrottleTimer) {\n clearTimeout(scrollThrottleTimer);\n }\n tableSlider.removeEventListener('scroll', updateSliderState);\n window.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', handleResize);\n paginationObserver.disconnect();\n tableBottomObserver.disconnect();\n if (tableBottomSentinel && tableBottomSentinel.parentNode) {\n tableBottomSentinel.parentNode.removeChild(tableBottomSentinel);\n }\n };\n }, []);\n\n // Use the clicked plugin for header/main content, but always use freePlugin for first column\n const imageURL = (typeof window.onecomWpVars !== \"undefined\" && window.onecomWpVars?.imageURL) || assetBase;\n const iconSrc = plugin.thumbnail || `${assetBase}assets/icons/placeholder.svg`;\n const mainImage = plugin.bannerUrl || plugin.image || plugin.thumbnail || 'https://gravity.group.one/guide-images/product-image@2x.png';\n\n // Extract data with fallbacks for free version (first column - always seo-by-rank-math)\n const title = freePlugin?.name || plugin.name || 'Product';\n const description = freePlugin?.i18n?.description || freePlugin?.i18n?.subtitle;\n const subtitle = freePlugin?.i18n?.subtitle;\n\n // Extract data for pro version (second column - always rank-math-pro)\n const proTitle = proPlugin?.name || 'Rank Math Pro';\n const proDescription = proPlugin?.i18n?.subtitle || proPlugin?.i18n?.description;\n const proPrice = proPlugin ? formatPluginPrice(proPlugin, uiI18n?.labels?.free || 'Free', uiI18n) : '';\n\n // Check if proPrice is \"Free until renewal\" (rebate amount is 0)\n const isProFreeUntilRenewal = proPrice === (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal');\n\n // Extract full price for pro plugin using common utility function\n const proFullPriceAmount = getFullPrice(proPlugin);\n\n // Helper function to extract numbered properties dynamically from i18n object\n const extractNumberedProps = (obj, baseName) => {\n if (!obj || typeof obj !== 'object') return [];\n const results = [];\n let i = 1;\n while (obj[`${baseName}${i}`]) {\n const value = obj[`${baseName}${i}`];\n if (value && value.trim() !== '') {\n results.push(value);\n }\n i++;\n }\n return results;\n };\n\n // Extract key benefits from i18n (use freePlugin's i18n if available, otherwise plugin's i18n)\n const i18nSource = freePlugin?.i18n || plugin.i18n;\n const benefitsFromI18n = extractNumberedProps(i18nSource, 'keyBenefitContent');\n\n // Extract key features separately for both free and pro plugins\n const freeKeyFeatures = extractNumberedProps(freePlugin?.i18n, 'keyFeatureContent');\n const proKeyFeatures = extractNumberedProps(proPlugin?.i18n, 'keyFeatureContent');\n\n // Determine the maximum number of features to display all from both plugins\n const maxFeatures = Math.max(freeKeyFeatures.length, proKeyFeatures.length);\n\n // Extract core features (title/content pairs) from i18n\n const coreFeaturesFromI18n = [];\n if (i18nSource && typeof i18nSource === 'object') {\n let i = 1;\n while (i18nSource[`coreFeatureTitle${i}`] || i18nSource[`coreFeatureContent${i}`]) {\n const title = i18nSource[`coreFeatureTitle${i}`];\n const content = i18nSource[`coreFeatureContent${i}`];\n if (title && title.trim() !== '' && content && content.trim() !== '') {\n coreFeaturesFromI18n.push({ name: title, desc: content });\n }\n i++;\n }\n }\n\n // Use only i18n data - no fallbacks\n const benefits = benefitsFromI18n;\n const coreFeatures = coreFeaturesFromI18n;\n\n const content = (\n \n );\n\n return usePortal ? createPortal(content, document.body) : content;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport MarketplaceApp from \"./MarketplaceApp\";\nimport './i18n'\nimport { isWpVersionSupported } from \"./utils/wpVersionHelper\";\n\n// Inside-WP auto-mount\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const el = document.getElementById(\"marketplace-root\");\n if (el) {\n const config = window.marketplaceConfig || {};\n if (config.locale) {\n import(\"i18next\").then(({ default: i18n }) => {\n i18n.changeLanguage(config.locale);\n });\n }\n\n const isSupported = isWpVersionSupported(config.wpVersion, '6.2');\n\n if (typeof ReactDOM.createRoot === 'function' && isSupported) {\n // React 18+\n const root = ReactDOM.createRoot(el);\n root.render( );\n } else {\n // React 17 or unsupported version\n // For unsupported versions, MarketplaceApp will still render and show WpVersionErrorState\n // We just need to use the compatible render method\n ReactDOM.render( , el);\n }\n }\n});\n"],"names":["isWpVersionSupported","version","minVersion","v1","String","split","v2","i","Math","max","length","num1","parseInt","num2","CURRENCY_SYMBOLS","CURRENCIES_WITH_POST_SYMBOL","getCurrencySymbol","currencyCode","formatPriceWithSymbol","amount","symbol","includes","getFullPrice","plugin","prices","Array","isArray","fullPrice","find","p","priceType","currency","formattedAmount","Number","toFixed","getRebatePrice","rebatePrice","undefined","formatPluginPrice","freeLabel","uiI18n","licenseType","price","labels","freeUntilRenewal","priceToUse","isActive","priceCurrency","priceAmount","WpVersionErrorState","useMarketplace","updateText","notifications","updateWPText","replace","createElement","className","updateWPTitle","type","onClick","handleUpdateClick","window","location","href","marketplaceConfig","wpConfig","adminUrl","updateWPButton","PluginActions","assetsBaseUrl","pluginInAction","subscriptionStatus","isCheckingSubscription","isOnecomBrand","handlePluginAction","isSpecialPlugin","pluginSubscriptionStatus","slug","pluginIsCheckingSubscription","assetBase","iconBase","handleClick","action","isNotInstalled","installed","trackButtonClick","buttonName","buttonAction","context","result","event","CustomEvent","detail","bubbles","cancelable","composed","document","dispatchEvent","formatMessage","message","pluginName","name","shouldShowSelectButton","shouldShowSkeleton","handleSelectClick","disabled","activated","handleManage","product_slug","product_name","has_redirect_url","redirectUrl","trim","has_onboarding_url","onboardingUrl","getPluginRedirectUrl","navigateToPluginUrl","manage","src","activating","activateButton","i18n","installing","installButton","I18nContext","createContext","ReportNamespaces","constructor","this","usedNamespaces","addUsedNamespaces","namespaces","forEach","ns","getUsedNamespaces","Object","keys","module","exports","ErrorState","useTranslation","t","handleRefresh","reload","initReactI18next","init","instance","options","react","isString","obj","defer","res","rej","promise","Promise","resolve","reject","makeString","object","lastOfPathSeparatorRegExp","cleanKey","key","indexOf","canNotTraverseDeeper","getLastOfPath","path","Empty","stack","stackIndex","prototype","hasOwnProperty","call","k","setPath","newValue","e","slice","last","getPath","deepExtend","target","source","overwrite","prop","regexEscape","str","_entityMap","escape","data","s","chars","looksLikeObjectPathRegExpCache","capacity","regExpMap","Map","regExpQueue","getRegExp","pattern","regExpFromCache","get","regExpNew","RegExp","delete","shift","set","push","deepFind","keySeparator","tokens","current","next","nextPath","j","getCleanedCode","code","consoleLogger","log","args","output","warn","error","console","apply","Logger","concreteLogger","prefix","logger","debug","forward","deprecate","lvl","debugOnly","create","moduleName","clone","baseLogger","EventEmitter","observers","on","events","listener","numListeners","off","emit","from","entries","observer","numTimesAdded","ResourceStore","defaultNS","super","ignoreJSONStructure","addNamespaces","removeNamespaces","index","splice","getResource","lng","join","addResource","value","silent","concat","addResources","resources","m","addResourceBundle","deep","skipCopy","pack","JSON","parse","stringify","removeResourceBundle","hasResourceBundle","getResourceBundle","getDataByLanguage","hasLanguageSomeTranslations","v","toJSON","postProcessor","processors","addPostProcessor","handle","translator","processor","process","PATH_KEY","Symbol","keysFromSelector","selector","opts","state","handler","proxy","revoke","Proxy","revocable","createProxy","checkedLoadedFor","shouldHandleAsObject","Translator","services","a","copy","changeLanguage","language","exists","o","interpolation","opt","resolved","extractFromKey","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","filter","c","r","map","matched","test","ki","substring","looksLikeObjectPath","match","interpolator","nestingRegexp","parts","translate","lastKey","overloadTranslationOptionHandler","arguments","returnDetails","namespace","appendNamespaceToCIMode","toLowerCase","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","needsZeroSuffixLookup","defaultValue","pluralSeparator","resForObjHndl","resType","toString","extendTranslation","usedDefault","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","l","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","suffixes","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","defaultVariables","skipInterpolation","skipOnVariables","nestBef","nb","interpolate","na","nest","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","contextSeparator","possibleKey","pop","returnNull","returnEmptyString","resourceStore","optionsKeys","useOptionsReplaceForData","option","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","formattedCode","Intl","getCanonicalLocales","lowerCaseLng","cleanCode","isSupportedCode","load","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngScOnly","lngOnly","supportedLng","fallbacks","default","fallbackCode","fallbackCodes","addCode","fc","suffixesOrder","zero","one","two","few","many","other","dummyRule","select","resolvedOptions","pluralCategories","PluralResolver","pluralRulesCache","addRule","rules","clearCache","getRule","cleanedCode","cacheKey","rule","PluralRules","err","lngPart","needsPlural","getPluralFormsOfKey","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","deepFindWithDefaults","defaultData","getPathWithDefaults","regexSafe","val","Interpolator","format","escapeValue","escape$1","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","lastIndex","regexp","regexpUnescape","replaces","handleFormat","interpolationkey","f","missingInterpolationHandler","regex","safeValue","todo","exec","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","keyEndIndex","lastIndexOf","elem","Boolean","reduce","createCachedFormatter","fn","cache","optForCache","formatParams","frm","createNonCachedFormatter","Formatter","cf","cacheInBuiltFormats","formats","number","formatter","NumberFormat","style","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","list","ListFormat","add","addCached","findIndex","mem","formatName","formatOptions","formatStr","optStr","rest","trimmedKey","isNaN","parseFormatStr","formatted","valOptions","locale","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queue","queueLoad","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","pendingCount","loaded","errors","q","pushPath","removePending","done","loadedKeys","n","read","fcName","tried","wait","resolver","setTimeout","bind","then","catch","prepareLoading","loadOne","fallbackValue","isUpdate","clb","initAsync","preload","simplifyPluralSuffix","partialBundledLanguages","ret","tDescription","transformOptions","initImmediate","noop","I18n","inst","modules","external","getOwnPropertyNames","getPrototypeOf","isInitialized","isClone","isInitializing","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","deferred","finish","initializedStoreOnce","loadResources","usedCallback","append","resolvedLanguage","setResolvedLanguage","reloadResources","use","Error","li","lngInLngs","unshift","isLanguageChangingTo","setLngProps","setLng","fl","cacheUserLanguage","async","detect","getFixedT","keyPrefix","fixedT","resultKey","setDefaultNamespace","lastLng","loadNotPending","loadState","precheck","preResult","loadNamespaces","loadLanguages","preloaded","newLngs","dir","Locale","getTextInfo","ti","direction","createInstance","cloneInstance","forkResourceStore","mergedOptions","clonedData","prev","acc","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","unescape","text","forceOnboarding","isRankMath","hasOnboardingUrl","rankMathRegistrationSkip","redirectPath","cleanPath","startsWith","fullUrl","origin","FeaturedCarousel","loading","plugins","currentIndex","setCurrentIndex","useState","slidesPerView","setSlidesPerView","activePlugins","activeThemeAuthor","useEffect","updateSlidesPerView","innerWidth","addEventListener","removeEventListener","shouldShowPlugin","mustHavePlugins","some","requiredSlug","mustHaveThemesByAuthor","requiredAuthor","rankMathActivated","rankMathProActivated","featuredPlugins","featured","b","displayOrder","Infinity","totalSlides","maxIndex","width","position","overflow","display","gap","_","minWidth","maxWidth","flex","backgroundColor","borderRadius","justifyContent","maxHeight","border","background","marginBottom","marginTop","height","headings","recommendedHeading","transition","transform","title","featuredTitle","description","featuredContent","freeTrialPeriod","free","mainImage","bannerUrl","image","thumbnail","categoryObj","categories","WebkitLineClamp","WebkitBoxOrient","textOverflow","url","URL","searchParams","history","pushState","PopStateEvent","handleReadMore","featuredCta","timeMonth","media","srcSet","alt","goToPrevious","alignItems","cursor","opacity","min","goToSlide","padding","goToNext","LoadingOverlay","loadingAction","loadingPlugin","spinnerSrc","normalizePlugins","rawResponse","catalog","items","normalized","_plugin$installed","_plugin$activated","descriptionFromTextKeys","values","download","download_url","downloadUrl","authorName","author","authorUrl","seen","Set","has","SuccessNotice","noticeState","setNoticeState","cancelReload","visible","pluginSlug","isInstalled","isActivated","pluginInstalled","pluginActivated","activateNow","manageInMyProducts","handleActivate","activatePluginButton","handleClose","sessionStorage","removeItem","ProductDetail","onClose","usePortal","useWPHandlers","setErrorState","skeletonContent","minHeight","role","createPortal","body","scrollTo","handlePopState","onecomWpVars","subtitle","shortDescription","subTitle","isFree","freeTrialText","hasFreeTrialText","hasFreeTrialPeriod","freeTrial","isFreeUntilRenewal","fullPriceAmount","rebatePriceAmount","extractNumberedProps","baseName","results","benefitsFromI18n","keyFeaturesFromI18n","coreFeaturesFromI18n","featureTitle","content","desc","keyFeatures","benefits","coreFeatures","preventDefault","back","pointerEvents","backButton","ErrorToast","Fragment","untilRenewal","afterThat","keyFeatureHeading","benefitHeading","featureOverviewHeading","propPlugin","errorState","isVisible","timer","clearTimeout","isActivateError","isDeactivateError","isInstallError","isDeleteError","pluginActivationFailed","pluginDeactivationFailed","pluginInstallationFailed","pluginDeletionFailed","Marketplace","apiBaseUrl","enableDefaultStyles","setPluginInAction","fetchSubscriptionStatus","setPlugins","setUiI18n","allPluginsActivated","setAllPluginsActivated","catalogError","setCatalogError","catalogLoading","setCatalogLoading","shouldShowProvision","downloadingPlugins","setDownloadingPlugins","selectedPlugin","setSelectedPlugin","hasFetchedPlugins","useRef","hasTrackedMarketplaceVisit","lastTrackedPluginSlug","contentReceivedTimestamp","contentRenderTimestamp","isCachedRef","pluginFromQuery","URLSearchParams","search","getBaseUrl","currentPluginParam","fetch","json","Date","now","is_cached","success","trackPageView","category","isContentRendered","normalizedPlugins","apiUiI18n","fetchPlugins","visiblePlugins","React","bySlug","allActivated","getItem","trackMarketplaceVisit","trackPluginDetailVisit","shouldUseRankMathDetail","brand","isRankMathPlugin","DetailComponent","ProductDetailRankMath","replaceState","categoryMap","categoryKey","info","catKey","allPluginsOwned","managePlugins","viewProductsButton","iconUrl","listingDescription","en_GB","translation","da_DK","de_DE","es_ES","fi_FI","fr_FR","it_IT","nl_NL","no_NO","nb_NO","pt_PT","sv_SE","fi","MarketplaceContent","isSupportedWpVersion","isDetailPage","setIsDetailPage","checkDetailPage","hasPlugin","originalPushState","originalReplaceState","ProductBanner","MarketplaceApp","MarketplaceProvider","leftBannerUrl","rightBannerUrl","pageTitle","pageContent","__defProp","defineProperty","__publicField","enumerable","configurable","writable","__defNormalProp","promises","fetchWithCache","self","caches","open","response","ok","put","GvFlagElement","HTMLElement","observedAttributes","fetchFlag","svg","innerHTML","connectedCallback","getAttribute","attributeChangedCallback","oldValue","GvIconElement","fetchIcon","GvIllustrationElement","fetchIllustration","GvIndicatorElement","fetchIndicator","GvLoaderElement","fetchLoader","GvLogoElement","fetchLogo","GvPayIconElement","fetchPayIcon","GvTileElement","fetchTile","defineCustomElement","tagName","elementClass","customElements","define","TAG_NAME","win","loc","hostname","crypto","randomUUID","navigator","userAgent","onLine","referrer","screen","_array_like_to_array","arr","len","arr2","asyncGeneratorStep","gen","_next","_throw","arg","_async_to_generator","_construct","Parent","Class","_is_native_reflect_construct","Reflect","construct","Function","_set_prototype_of","_create_class","Constructor","protoProps","staticProps","props","descriptor","_defineProperties","_extends","assign","_get_prototype_of","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","_instanceof","left","right","hasInstance","_object_without_properties_loose","excluded","sourceKeys","_type_of","_wrap_native_super","_cache","Wrapper","valueOf","_create_for_of_iterator_helper_loose","allowArrayLike","it","iterator","minLen","_unsupported_iterable_to_array","_ts_generator","thisArg","y","g","label","sent","trys","ops","verb","op","step","_ts_values","_a","__defProp$1","__publicField$1","__defNormalProp$1","__defProp$1$1","__publicField$1$1","__defNormalProp$1$1","NodeType$3","NodeType2","testableAccessors$1","Node","ShadowRoot","Element","MutationObserver","testableMethods$1","untaintedBasePrototype$1","getUntaintedPrototype$1","defaultObj","globalThis","defaultPrototype","accessorNames","isUntaintedAccessors","every","accessor","_a2","_b","getOwnPropertyDescriptor","methodNames","isUntaintedMethods","method","Zone","iframeEl","appendChild","contentWindow","untaintedObject","removeChild","untaintedAccessorCache$1","getUntaintedAccessor$1","untaintedPrototype","untaintedAccessor","index$1","n2","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","cssRules","sheetHref","ownerNode","ownerDocument","cssText","rule2","stringifyRule","isCSSImportRule","importStringified","styleSheet","statement","layerName","supportsText","mediaText","escapeImportStatement","absolutifyURLs","ruleStringified","isCSSStyleRule","selectorText","Mirror","WeakMap","_proto","getId","id","getMeta","getNode","idNodeMap","getIds","nodeMetaMap","removeNodeFromMap","_this","childNodes","childNode","hasNode","node2","meta","oldNode","maskInputValue","param","element","maskInputOptions","maskInputFn","actualType","repeat","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","baseURL","_ref","pathname","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","quote1","path1","quote2","path2","path3","filePath","maybeQuote","_step","_iterator","part","normalizeCssString","_testNoPxNorm","canvasService","canvasCtx","_id","tagNameRegex","genId","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","cachedDocument","absoluteToDoc","doc","attributeValue","getHref","customHref","a2","setAttribute","transformAttribute","pos","collectCharacters","regEx","chars2","descriptorsStr","inParens","c2","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","classList","needMaskingText","maskTextClass","maskTextSelector","el","closest","contains","matches","e2","serializeNode","mirror2","mirror","blockClass","blockSelector","needsMask","inlineStylesheet","_options_maskInputOptions","maskTextFn","_options_dataURLOptions","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","_options_newlyAddedElement","newlyAddedElement","_options_cssCaptured","cssCaptured","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","isCustomElement","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","i2","attr","stylesheet","styleSheets","rel","_cssText","sheet","cssText1","childNodes2","splits","iterCount","cssTextNorm","normFactor","textContent","textContentNorm","startSubstring","cssNormSplits","splitNorm","jLimit","prevTextContent","prevMinLength","floor","normPart","splitCssText","markCssSplits","checked","selected","rr_open_mode","__context","canvas","ctx","getContext","x2","getImageData","originalGetImageData","Uint32Array","buffer","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","imageSrc","currentSrc","priorCrossOrigin","crossOrigin","recordInlineImage","naturalWidth","naturalHeight","drawImage","complete","removeAttribute","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","_n2_getBoundingClientRect","getBoundingClientRect","class","rr_width","rr_height","contentDocument","rr_src","isSVG","ownerSVGElement","isCustom","serializeElementNode","TEXT_NODE","parent","parentTagName","textContent2","isStyle","isScript","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","serializeNodeWithId","_options_skipChild","skipChild","_options_inlineStylesheet","slimDOMOptions","_options_inlineImages","_options_recordCanvas","onSerialize","onIframeLoad","_options_iframeLoadTimeout","iframeLoadTimeout","onStylesheetLoad","_options_stylesheetLoadTimeout","stylesheetLoadTimeout","_options_keepIframeSrcFn","_options_preserveWhiteSpace","preserveWhiteSpace","_serializedNode","sn","comment","script","as","headFavicon","headMetaDescKeywords","headMetaSocial","property","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","slimDOMExcluded","serializedNode","recordChild","shadowRootEl","isShadowHost","headWhitespace","bypassOptions","serializedChildNode","shadowRootEl1","_step1","_iterator1","serializedChildNode1","isShadow","readyState","fired","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","getDefaultExportFromCjs$1","__esModule","getAugmentedNamespace$1","f2","a22","d","picocolors_browser$1","x$1","create$1","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","picocolors_browserExports$1","require$$2$1","freeze","toStringTag","pico$1","terminalHighlight$1$1","CssSyntaxError$3$1","Error1","CssSyntaxError","line","column","file","plugin22","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","start","end","_pico$1_createColors","index2","gutter","spacing","cssSyntaxError$1","symbols$1","isClean","my","DEFAULT_RAW$1","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","Stringifier$2$1","Stringifier","builder","atrule","params","rawValue","raws","afterName","nodes","block","between","beforeAfter","raw","buf","depth","child","before","decl","string","important","own","first","root2","root","rawCache","toUpperCase","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","rawSemicolon","ownSemicolon","stringifier$1","Stringifier$1$1","stringify$4$1","stringify_1$1","isClean$2$1","my$2$1","CssSyntaxError$2$1","Stringifier2$1","stringify$3$1","cloneNode$1","cloned","Node$4$1","Node2","defaults","addToError","postcssNode","input","insertAfter","overrides","insertBefore","cleanRaws","keepBetween","cloneAfter","cloneBefore","_this_rangeBy","rangeBy","getProxyProcessor","toProxy","markDirty","positionBy","stringRepresentation","positionInside","word","endIndex","defaultType","remove","replaceWith","_len","_key","bookmark","foundSelf","result2","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","proxyCache","stringifier2","node","node$1","Declaration$4$1","Node$3$1","Declaration","declaration$1","SourceMapConsumer$2$1","SourceMapConsumer","SourceMapGenerator$2$1","SourceMapGenerator","existsSync$1","existsSync","readFileSync$1","readFileSync","dirname$1$1","dirname","join$1","PreviousMap$2$1","PreviousMap","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","decodeURIComponent","substr","lastMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","loadFile","fromSourceMap","prevPath","map1","withContent","sourcesContent","previousMap$1","SourceMapConsumer$1$1","SourceMapGenerator$1$1","fileURLToPath$1","fileURLToPath","pathToFileURL$1$1","pathToFileURL","isAbsolute$1","isAbsolute","resolve$1$1","nanoid$2","size","random","terminalHighlight$2","CssSyntaxError$1$1","PreviousMap$1$1","fromOffsetCache$1","sourceMapAvailable$1$1","pathAvailable$1$1","Input$4$1","Input","hasBOM","mapResolve","offset","fromOffset","col","pos1","pos2","lineToIndex","prevIndex","l2","mid","sourceRoot","to","fromUrl","originalPositionFor","protocol","sourceContentFor","_i","_iter","input$1","registerInput","SourceMapConsumer$3","SourceMapGenerator$3","dirname$2","relative$1","relative","resolve$2","sep$1","pathToFileURL$2","Input$3$1","sourceMapAvailable$2","pathAvailable$2","mapGenerator$1","MapGenerator","stringify2","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","isInline","toBase64","outputFile","eol","applyPrevMaps","previous","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","encodeURIComponent","fileURL","encodeURI","Comment$4$1","Node$2$1","comment$1","parse$4$1","Rule$4$1","AtRule$4$1","Root$6$1","isClean$1$1","my$1$1","Declaration$3$1","Comment$3$1","cleanSource$1","markDirtyUp$1","proxyOf","Container$7$1","Node$1$1","Container","children","normalize","each","getIterator","indexes","condition","lastEach","_node2","cb","exist","existIndex","reverse","sample","i21","processed","rebuild","removeAll","replaceValues","fast","walkAtRules","walkRules","registerParse","dependant","registerRule","registerAtRule","registerRoot","container$1","LazyResult$4$1","Processor$3$1","Document$3$1","Container$6$1","Document2","toResult","registerLazyResult","registerProcessor","document$1$1","Warning$2$1","Warning","warning$1","Warning$1$1","Result$3$1","Result","processor2","messages","lastPlugin","postcssPlugin","warning2","warnings","result$1","SINGLE_QUOTE$1","DOUBLE_QUOTE$1","BACKSLASH$1","SLASH$1","NEWLINE$1","SPACE$1","FEED$1","TAB$1","CR$1","OPEN_SQUARE$1","CLOSE_SQUARE$1","OPEN_PARENTHESES$1","CLOSE_PARENTHESES$1","OPEN_CURLY$1","CLOSE_CURLY$1","SEMICOLON$1","ASTERISK$1","COLON$1","AT$1","RE_AT_END$1","RE_WORD_END$1","RE_BAD_BRACKET$1","RE_HEX_ESCAPE$1","Container$5$1","AtRule$3$1","AtRule","_Container$5$1_prototype_append","_Container$5$1_prototype_prepend","atRule$1","LazyResult$3$1","Processor$2$1","Container$4$1","Root$5$1","Root","ignore","root$1","list$2$1","comma","space","separators","array","func","inQuote","prevQuote","letter","list_1$1","Container$3$1","list$1$1","Rule$3$1","Rule","sep2","rule$1","Declaration$2$1","Comment$2$1","AtRule$2$1","Root$4$1","Rule$2$1","SAFE_COMMENT_NEIGHBOR$1","empty","Parser$1$1","Parser","spaces","createTokenizer","token","unnamedAtrule","brackets","tokenizer","endOfFile","nextToken","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","founded","_step_value","doubleColon","quote","escaped","escapePos","currentToken","ignoreErrors","returned","unclosed","what","ignoreUnclosed","controlChar","fromCharCode","tokenizer2$1","customProperty","findLastWithPosition$1","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","type1","hasWord","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","clean","all","lastTokenType","Container$2$1","Parser2$1","Input$2$1","parse$3$1","parser2","parse_1$1","isClean$3","my$3","MapGenerator$1$1","stringify$2$1","Container$1$1","Document$2$1","Result$2$1","parse$2$1","Root$3$1","TYPE_TO_CLASS_NAME$1","PLUGIN_PROPS$1","AtRuleExit","CommentExit","DeclarationExit","DocumentExit","Once","OnceExit","prepare","RootExit","RuleExit","NOT_VISITORS$1","isPromise$1","getEvents$1","toStack$1","eventIndex","visitorIndex","visitors","cleanMarks$1","postcss$2$1","LazyResult$2$1","LazyResult","stringified","syntax","parser","helpers","postcss","processing","runAsync","onRejected","finally","onFinally","getAsyncError","handleError","postcssVersion","prepareVisitors","listeners","hasListener","promise1","_loop","_state","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","walkSync","visitSync","onFulfilled","visit2","_visitors_visit2_visitorIndex","registerPostcss","lazyResult$1","MapGenerator2$1","stringify$1$1","parse$1$1","Result$1$1","NoWorkResult$1$1","NoWorkResult","_processor","_css","_opts","_map","_map_generate","generatedCSS","generatedMap","_root","noWorkResult$1","NoWorkResult2$1","LazyResult$1$1","Document$1$1","Root$2$1","Processor$1$1","Processor","processor$1","Declaration$1$1","PreviousMap2$1","Comment$1$1","AtRule$1$1","Input$1$1","Root$1$1","Rule$1$1","fromJSON$1$1","ownInputs","inputHydrated","_defaults_source","fromJSON_1$1","CssSyntaxError2$1","Declaration2$1","LazyResult2$1","Container2$1","Processor2$1","stringify$5","fromJSON$2","Document22","Warning2$1","Comment2$1","AtRule2$1","Result2$1","Input2$1","parse$5","list$3","Rule2$1","Root2$1","Node2$1","postcss$3","initializer","warningPrinted","creator","env","LANG","transformer","processOpts","pluginOpts","fromJSON","atRule","postcss_1$1","postcss$1$1","__defProp2","__publicField2","__defNormalProp2","getDefaultExportFromCjs","getAugmentedNamespace","picocolors_browser","x","picocolors_browserExports","require$$2","pico","terminalHighlight$1","CssSyntaxError$3","CssSyntaxError2","_pico_createColors","cssSyntaxError","symbols","DEFAULT_RAW","Stringifier$2","Stringifier2","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier22","stringify$3","cloneNode","Node$4","Node3","Declaration$4","Node$3","Declaration2","declaration","SourceMapConsumer$2","SourceMapGenerator$2","dirname$1","PreviousMap$2","PreviousMap2","previousMap","SourceMapConsumer$1","SourceMapGenerator$1","pathToFileURL$1","resolve$1","nanoid","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","Input$4","Input2","resolve$3","Input$3","sourceMapAvailable","pathAvailable","mapGenerator","MapGenerator2","Comment$4","Node$2","Comment2","parse$4","Rule$4","AtRule$4","Root$6","isClean$1","my$1","Declaration$3","Comment$3","cleanSource","markDirtyUp","Container$7","Node$1","Container2","container","LazyResult$4","Processor$3","Document$3","Container$6","Document23","document$1$2","Warning$2","Warning2","warning","Warning$1","Result$3","Result2","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","Container$5","AtRule$3","AtRule2","_Container$5_prototype_append","_Container$5_prototype_prepend","LazyResult$3","Processor$2","Container$4","Root$5","Root2","list$2","list_1","Container$3","list$1","Rule$3","Rule2","Declaration$2","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","Parser$1","Parser2","tokenizer22","findLastWithPosition","Container$2","Parser22","Input$2","parse$3","parse_1","MapGenerator$1","stringify$2","Container$1","Document$2","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","isPromise","getEvents","toStack","cleanMarks","postcss$2","LazyResult$2","LazyResult2","lazyResult","MapGenerator22","stringify$1","parse$1","Result$1","NoWorkResult$1","NoWorkResult2","noWorkResult","NoWorkResult22","LazyResult$1","Document$1","Root$2","Processor$1","Processor2","Declaration$1","PreviousMap22","Comment$1","AtRule$1","Input$1","Root$1","Rule$1","fromJSON$1","fromJSON_1","CssSyntaxError22","Declaration22","LazyResult22","Container22","Processor22","stringify$6","Document222","Warning22","Comment22","AtRule22","Result22","Input22","Rule22","Root22","Node22","postcss_1","postcss$1","BaseRRNode","_args","parentNode","_newChild","_refChild","_node","childIterator","firstChild","nextSibling","testableAccessors","testableMethods","untaintedBasePrototype","getUntaintedPrototype","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","untaintedMethod","mutationObserverCtor","patch$2","replacement","wrapped","defineProperties","__rrweb_original__","capture","passive","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","timeout","leading","remaining","trailing","hookSetter","isRevoked","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","headTitleMutations","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","shadowRoot","getTime","StyleSheetMirror","_this_styleIDMap_get","styleIDMap","newId","idStyleMap","getStyle","generateId","getShadowHost","shadowHost","DOCUMENT_FRAGMENT_NODE","inDom","rootShadowHost","getRootShadowHost","shadowHostInDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","NodeType","isNodeInLinkedList","errorHandler","DoubleLinkedList","head","addNode","__ln","previousSibling","current1","tail","removeNode","moveKey","parentId","MutationBuffer","mutations","processMutation","frozen","locked","adds","addedIds","addList","getNextId","nextId","pushAdd","parentTag","addedSet","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removesSubTreeCache","n21","isAncestorInSet","droppedSet","candidate","tailNode","parentId1","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","removes","attributeMap","movedMap","mutationCb","textarea","item","cn","attributeName","value1","unattachedDoc","implementation","createHTMLDocument","old","pname","getPropertyValue","newPriority","getPropertyPriority","pname1","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","n22","processRemoves","processedNodeManager","inOtherBuffer","targetId","childN","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","callbackWrapper","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","processMutations","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initScrollObserver","scrollCb","sampling","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","index21","recurse","getIdAndStyleId","styleMirror","styleId","initAdoptedStyleSheetObserver","host2","hostId","patchTarget","originalPropertyDescriptor","_a3","sheets","adoptStyleSheets","initObservers","o2","hooks","mutationObserver","currentWindow","mousemoveCb","mouseInteractionCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","_hooks","mutation","mousemove","mouseInteraction","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","handlers","mousemoveHandler","timeBaseline","threshold","callbackThreshold","mousemoveCallback","positions","wrappedCb","totalOffset","timeOffset","updatePosition","clientX","clientY","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","h","initMoveObserver","mouseInteractionHandler","disableMap","currentPointerType","endsWith","eventKey","eventName","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","getHandler","PointerEvent","TouchStart","TouchEnd","initMouseInteractionObserver","scrollHandler","viewportResizeHandler","param1","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","querySelectorAll","text2","lastInputValue","_handlers","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","Play","Pause","Seeked","VolumeChange","RateChange","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","argumentsList","_getIdAndStyleId","styleBlock","replaceSync","deleteRule","removeRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","collapsed","updateSelection","getSelection","isCollapsed","ranges","rangeCount","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","initCustomElementObserver","pluginHandlers","plugin3","disconnect","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","IframeManager","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","iframes","crossOriginIframeMap","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","crossOriginIframeMirror","replaceIdOnNode","crossOriginIframeRootIdMap","patchRootIdOnNode","timestamp","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","ShadowDomManager","WeakSet","patchAttachShadow","shadowDoms","restoreHandlers","iframeElement","manager","sRoot","lookup","i$1","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","list2","ctor","contextMap","variableListFor$1","serializeArg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","recordArgs","hookHandler","setter","encodedJs","blob","Blob","WorkerWrapper","objURL","webkitURL","createObjectURL","worker","Worker","revokeObjectURL","takeFullSnapshot$1","CanvasManager","latestId","invokeId","rafStamps","pendingCanvasMutations","_options_sampling","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","canvasContextReset","snapshotInProgressMap","onmessage","_e2_data","commands","rafId","timeBetweenSnapshots","lastSnapshotTime","takeCanvasSnapshots","requestAnimationFrame","matchedCanvas","_this1","bitmap","getContextAttributes","COLOR_BUFFER_BIT","createImageBitmap","postMessage","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","_handlers1","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","_values","flushPendingCanvasMutationFor","valuesWithType","StylesheetManager","adoptedStyleSheetCb","linkEl","trackedLinkElements","trackStylesheetInLinkElement","CSSRule","r2","adoptedStyleSheetData","styleIds","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","recording","cleanFrame","t2","record","checkoutEveryNms","checkoutEveryNth","_options_blockClass","_options_blockSelector","_options_ignoreClass","_options_ignoreSelector","_options_maskTextClass","_options_maskTextSelector","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","_options_recordDOM","_options_recordCrossOriginIframes","_options_recordAfter","recordAfter","_options_userTriggeredOnInput","_options_collectFonts","_options_ignoreCSSAttributes","errorHandler2","inEmittingFrame","passEmitsToParent","lastFullSnapshotEvent","date","email","month","tel","time","week","password","NodeList","DOMTokenList","polyfill$1","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","tmp","_ref_blockClass","_ref_blockSelector","_ref_maskTextClass","_ref_maskTextSelector","_ref_inlineStylesheet","_ref_inlineImages","_ref_recordCanvas","_ref_maskAllInputs","_ref_slimDOM","slimDOM","_ref_keepIframeSrcFn","snapshot","initialOffset","CustomElement","addCustomEvent","tag","freezePage","takeFullSnapshot","NotStarted","Running","Stopped","StackFrame","fileName","functionName","lineNumber","columnNumber","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","ErrorStackParser","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","extractLocation","urlLike","sanitizedLine","locationParts","functionNameRegex","parseOpera9","parseOpera11","parseOpera10","lineRE","parseFloat","pathToSelector","outerHTML","parentElement","localName","domSiblings","sibling","isObject","isObjTooDeep","limit","stringifyOptions","numOfKeysLimit","depthOfLimit","thisPos","_obj","stringLengthLimit","Event","eventResult","eventValue","defaultLogOptions","level","lengthThreshold","initLogObserver","logOptions","loggerType","logCount","inStack","cancelHandlers","trace","stackFrame","unhandledrejectionHandler","levelType","_logger","patch","builtInProp","cycle","schedulingQueue","setImmediate","ToString","config","schedule","drain","isThenable","_then","oType","notify","chain","notifyIsolated","failure","msg","triggered","def","defWrapper","MakeDefWrapper","iteratePromises","rejecter","idx","MakeDef","NpoPromise","executor","Item","PromisePolyfill","PromisePrototype","msgs","at","ch","escapee","Config","DEBUG","LIB_VERSION","MAX_RECORDING_MS","ArrayProto","FuncProto","ObjProto","windowConsole","document$1","windowOpera","opera","nativeBind","nativeForEach","nativeIndexOf","nativeMap","nativeIsArray","breaker","console$1","isUndefined","toArray","critical","log_func_with_prefix","console_with_prefix","safewrap","safewrapClass","klass","proto","bound","isFunction","extend","isArguments","iterable","include","needle","inherit","subclass","superclass","isEmptyObject","isDate","isNumber","encodeDates","formatDate","pad","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","strip_empty_properties","truncate","JSONEncode","mixed_val","escapable","holder","mind","partial","isFinite","JSONDecode","SyntaxError","hex","uffff","base64Encode","h1","h2","h3","h4","bits","b64","ac","enc","tmp_arr","utf8Encode","stringl","utftext","c1","UUID","uuid","BLOCKED_UA_STRS","isBlockedUA","ua","HTTPBuildQuery","formdata","arg_separator","use_val","use_key","getQueryParam","cookie","nameEQ","ca","set_seconds","seconds","is_cross_subdomain","is_secure","is_cross_site","domain_override","cdomain","expires","secure","domain","extract_domain","setTime","toGMTString","days","new_cookie_val","_testStorageSupported","storage","supported","cheap_guid","setItem","_localStorageSupported","localStorageSupported","forceCheck","localStorage","_sessionStorageSupported","_storageWrapper","is_supported_fn","log_error","is_supported","register_event","fixEvent","stopPropagation","returnValue","cancelBubble","oldSchool","useCapture","ontype","old_handler","new_handler","old_handlers","old_result","new_result","makeHandler","TOKEN_MATCH_REGEX","dom_query","getAllChildren","getElementsByTagName","bad_whitespace","hasClass","getElementsBySelector","foundCount","elements","currentContextIndex","currentContext","getElementById","token_match","checkFunction","attrName","attrOperator","attrValue","query","CAMPAIGN_KEYWORDS","CLICK_IDS","campaignParams","default_value","kw","kwkey","clickParams","idkey","marketingParams","searchEngine","searchInfo","keyword","browser","user_agent","vendor","browserVersion","os","device","referringDomain","currentUrl","properties","extra_props","people_properties","mpPageViewProperties","maxlen","guid","SIMPLE_DOMAIN_MATCH_REGEX","DOMAIN_MATCH_REGEX","domain_regex","tld","NOOP_FUNC","JSONStringify","JSONParse","RECORDING_EVENTS_STORE_NAME","RECORDING_REGISTRY_STORE_NAME","OBJECT_STORES","IDBStorageWrapper","storeName","dbPromise","optIn","_optInOut","optOut","hasOptedIn","_getStorageValue","hasOptedOut","ignoreDnt","win$1","nav","hasDntOn","dntValue","_hasDoNotTrackFlagOn","optedOut","addOptOutCheckMixpanelLib","_addOptOutCheck","get_config","addOptOutCheckMixpanelPeople","_get_config","addOptOutCheckMixpanelGroup","clearOptInOut","_getStorage","_getStorageKey","crossSubdomainCookie","cookieDomain","persistenceType","persistencePrefix","optValue","cookieExpiration","secureCookie","crossSiteCookie","track","trackEventName","trackProperties","getConfigValue","_openDb","openRequest","indexedDB","ev","db","createObjectStore","dbOrError","makeTransaction","mode","storeCb","doTransaction","transaction","oncomplete","onabort","onerror","objectStore","req","getAll","logger$6","SharedLock","storageKey","pollIntervalMS","timeoutMS","promiseImpl","withLock","lockedCB","pid","startTime","keyX","keyY","keyZ","delay","waitFor","predicate","getSetY","valY","criticalSection","removeLock","LocalStorageWrapper","storageOverride","logger$5","RequestQueue","waitMs","timeoutPromise","throttledItems","usePersistence","queueStorage","sharedLockStorage","sharedLockTimeoutMS","reportError","errorReporter","memQueue","initialized","enqueueThrottleMs","enqueuePersisted","_enqueuePersisted","queueEntry","ensureInit","enqueue","flushInterval","queueEntries","enqueueItem","readFromStorage","storedQueue","saveToStorage","succeeded","fillBatch","batchSize","batch","idsInBatch","orphaned","filterOutIDsAndInvalid","idSet","filteredItems","removeItemsByID","removeFromStorage","updatePayloads","existingItems","itemsToUpdate","newItems","newPayload","storageEntry","logger$4","RequestBatcher","libConfig","sendRequest","sendRequestFunc","beforeSendHook","stopAllBatching","stopAllBatchingFunc","stopped","consecutiveRemovalFailures","itemIdsSentSuccessfully","flushOnlyOnInterval","_flushPromise","flush","stop","timeoutID","resetBatchSize","resetFlush","scheduleFlush","flushMS","sendRequestPromise","requestInProgress","currentBatchSize","attemptSecondaryFlush","dataForRequest","transformedItems","addPayload","itemId","timesSent","removeItemsFromQueue","batchSendCallback","unloading","httpStatusCode","retryMS","retryAfter","halvedBatchSize","requestOptions","verbose","ignore_json_errors","timeout_ms","transport","isRecordingExpired","serializedRecording","logger$3","CompressionStream","RECORDER_BATCHER_LIB_CONFIG","ACTIVE_SOURCES","SessionRecording","_mixpanel","mixpanelInstance","_onIdleTimeout","onIdleTimeout","_onMaxLengthReached","onMaxLengthReached","_onBatchSent","onBatchSent","_rrwebRecord","rrwebRecord","_stopRecording","replayId","batchStartUrl","replayStartUrl","idleExpires","maxExpires","replayStartTime","lastEventTimestamp","seqNo","idleTimeoutId","maxTimeoutId","recordMaxMs","recordMinMs","getConfig","batcherKey","batcher","flushEventsWithOptOut","stopRecording","getUserIdInfo","finalFlushUserIdInfo","userIdInfo","get_distinct_id","deviceId","get_property","userId","unloadPersistedData","getDurationMs","_getRecordMinMs","configVar","startRecording","shouldStopBatcher","resetIdleTimeout","idleTimeoutMs","isUserEvent","__enqueuePromise","maxTimeoutMs","skipFlush","isRrwebStopped","flushPromise","onOptOut","_flushEvents","serialize","tabId","get_tab_id","deserialize","_sendRequest","currentReplayId","reqParams","reqBody","onSuccess","responseBody","status","headers","apiHost","get_api_host","numEvents","batchStartTime","batchEndTime","hasFullSnapshot","replayLengthMs","eventsJson","canUseCompressionStream","gzipStream","stream","pipeThrough","Response","compressedBlob","configValue","RecordingRegistry","idb","isPersistenceEnabled","setActiveRecording","getActiveRecording","clearActiveRecording","markActiveRecordingExpired","deleteActiveRecording","flushInactiveRecordings","serializedRecordings","unloadPromises","logger$2","MixpanelRecorder","recordingRegistry","_flushInactivePromise","activeRecording","stopRecordingInProgress","resetRecording","sessionRecordingOptions","activeSerializedRecording","_stopCurrentRecording","pauseRecording","disableActiveRecording","stopRecordingPromise","resumeRecording","startNewIfInactive","getActiveReplayId","EV_CHANGE","EV_CLICK","EV_HASHCHANGE","EV_LOAD","EV_MP_LOCATION_CHANGE","EV_POPSTATE","EV_SCROLLEND","EV_SCROLL","EV_SUBMIT","EV_VISIBILITYCHANGE","CLICK_EVENT_PROPS","OPT_IN_CLASSES","OPT_OUT_CLASSES","SENSITIVE_DATA_CLASSES","TRACKED_ATTRS","INTERACTIVE_ARIA_ROLES","ALWAYS_NON_INTERACTIVE_TAGS","TEXT_CONTAINER_TAGS","EVENT_HANDLER_ATTRIBUTES","logger$1","getClasses","classes","getClassName","cls","baseVal","getPreviousElementSibling","previousElementSibling","isElementNode","getPropertiesFromElement","blockAttrsSet","extraAttrs","allowElementCallback","allowSelectors","elId","shouldTrackElementDetails","attrVal","shouldTrackValue","nthChild","nthOfType","currentElem","getSafeText","elText","isTextNode","isElementAllowed","sel","isElementBlocked","blockElementCallback","blockSelectors","isTag","curEl","elClasses","getPolyfillScrollEndFunction","originalFunction","supportsScrollEnd","polyfillFunction","polyfillEvent","scrollTimer","eventType","hasAnyInteractivityIndicators","isContentEditable","onclick","onmousedown","onmouseup","ontouchstart","ontouchend","hasInlineEventHandlers","primaryRole","hasInteractiveAriaRole","isDefinitelyNonInteractive","getRootNode","host","getClickEventComposedPath","getClickEventTargetElement","RageClickTracker","clicks","ShadowDOMObserver","changeCallback","observerConfig","observedShadowRoots","shadowObservers","isRageClick","thresholdPx","timeoutMs","clickCount","lastClick","sqrt","pow","observeFromEvent","observeShadowRoot","INTERACTION_EVENTS","LAYOUT_EVENTS","NAVIGATION_EVENTS","MUTATION_OBSERVER_CONFIG","attributeFilter","DeadClickTracker","onDeadClickCallback","eventListeners","shadowDOMObserver","isTracking","lastChangeEventTimestamp","pendingClicks","processingActive","processingTimeout","addClick","trackClick","added","triggerProcessing","getDeadClicks","clicksToEvaluate","deadClicks","click","hasChangesAfter","recordChangeEvent","processRecursively","startTracking","selectionHandler","stopTracking","AUTOCAPTURE_CONFIG_KEY","PAGEVIEW_OPTION_FULL_URL","CONFIG_ALLOW_SELECTORS","CONFIG_ALLOW_URL_REGEXES","CONFIG_BLOCK_ATTRS","CONFIG_BLOCK_ELEMENT_CALLBACK","CONFIG_BLOCK_SELECTORS","CONFIG_BLOCK_URL_REGEXES","CONFIG_CAPTURE_EXTRA_ATTRS","CONFIG_CAPTURE_TEXT_CONTENT","CONFIG_SCROLL_CAPTURE_ALL","CONFIG_SCROLL_CHECKPOINTS","CONFIG_TRACK_CLICK","CONFIG_TRACK_DEAD_CLICK","CONFIG_TRACK_INPUT","CONFIG_TRACK_PAGEVIEW","CONFIG_TRACK_RAGE_CLICK","CONFIG_TRACK_SCROLL","CONFIG_TRACK_PAGE_LEAVE","CONFIG_TRACK_SUBMIT","CONFIG_DEFAULTS$1","DEFAULT_PROPS","MP_EV_CLICK","MP_EV_DEAD_CLICK","MP_EV_RAGE_CLICK","Autocapture","mp","maxScrollViewDepth","hasTrackedScrollSession","previousScrollHeight","minDOMApisSupported","initPageListeners","initPageviewTracking","initClickTracking","initDeadClickTracking","initInputTracking","initScrollTracking","initSubmitTracking","initRageClickTracking","initPageLeaveTracking","getFullConfig","autocaptureConfig","currentUrlBlocked","allowUrlRegexes","allowed","allowRegex","blockUrlRegexes","pageviewTrackingConfig","trackDomEvent","mpEventName","isCapturedForHeatMap","is_recording_heatmap_data","_getClickTrackingConfig","blockAttrs","captureTextContent","captureExtraAttrs","capturedForHeatMap","srcElement","shouldTrackDomEvent","targetElementList","elementsJson","explicitNoTrack","shouldTrackDetails","docElement","elementText","guessRealClickTarget","targetProps","getPropsForDOMEvent","listenerPopstate","listenerHashchange","nativePushState","unused","nativeReplaceState","configKey","_trackPageLeave","currentScrollHeight","viewportHeight","scrollPercentage","round","foldLinePercentage","_initScrollDepthTracking","listenerScrollDepth","scrollEndPolyfill","scrollViewHeight","scrollY","scrollHeight","listenerClick","_deadClickTracker","deadClickEvent","listenerDeadClick","currentDeadClickConfig","normalizedConfig","stopDeadClickTracking","listenerChange","listenerLocationchange","previousTrackedUrl","tracked","track_pageview","shouldTrack","didPathChange","trackPageviewOption","lastScrollCheckpoint","listenerRageClick","_rageClickTracker","currentRageClickConfig","listenerScroll","scrollCheckpoints","checkpoint","listenerSubmit","listenerPageLeaveVisibilitychange","listenerPageLeaveLocationchange","listenerPageLoad","FLAGS_CONFIG_KEY","CONFIG_CONTEXT","CONFIG_DEFAULTS","FeatureFlagManager","initOptions","getFullApiRoute","getMpConfig","getConfigFunc","setMpConfig","setConfigFunc","getMpProperty","getPropertyFunc","trackingFunc","minApisSupported","flags","fetchFlags","trackedFeatures","ffConfig","isSystemEnabled","updateContext","newContext","oldContext","areFlagsReady","distinctId","traceparent","_fetchInProgressStartTime","fetchPromise","markFetchComplete","responseFlags","_traceparent","_fetchStartTime","_fetchCompleteTime","_fetchLatency","getVariant","featureName","fallback","getVariantSync","feature","trackFeatureCheck","getVariantValue","getFeatureData","getVariantValueSync","isEnabled","isEnabledSync","trackingProperties","toISOString","DomTracker","create_properties","event_handler","after_track_handler","mixpanel_instance","event_name","user_callback","that","override_event","track_callback","timeout_occured","callback_fired","LinkTracker","new_tab","which","metaKey","ctrlKey","FormTracker","submit","SET_ACTION","SET_ONCE_ACTION","UNSET_ACTION","ADD_ACTION","APPEND_ACTION","UNION_ACTION","REMOVE_ACTION","apiActions","set_action","$set","_is_reserved_property","unset_action","$unset","set_once_action","$set_once","union_action","list_name","$union","append_action","$append","remove_action","$remove","delete_action","MixpanelGroup","_init","group_key","group_id","_group_key","_group_id","_send_request","set_once","unset","union","date_encoded_data","_track_or_batch","endpoint","request_batchers","groups","conf","MixpanelPeople","update_referrer_info","increment","by","$add","track_charge","clear_charges","delete_user","_identify_called","device_id","user_id","had_persisted_distinct_id","people","_enqueue","conf_var","_flags","identify_called","_add_to_people_queue","_flush_one_queue","action_method","queue_to_params_fn","queued_data","load_queue","action_params","_pop_from_people_queue","save","_flush","_set_callback","_add_callback","_append_callback","_set_once_callback","_union_callback","_unset_callback","_remove_callback","$append_queue","$append_item","append_callback","$remove_queue","$remove_item","remove_callback","init_type","SET_QUEUE_KEY","SET_ONCE_QUEUE_KEY","UNSET_QUEUE_KEY","ADD_QUEUE_KEY","APPEND_QUEUE_KEY","REMOVE_QUEUE_KEY","UNION_QUEUE_KEY","PEOPLE_DISTINCT_ID_KEY","ALIAS_ID_KEY","EVENT_TIMERS_KEY","RESERVED_PROPERTIES","MixpanelPersistence","campaign_params_saved","storage_type","update_config","upgrade","entry","old_cookie","old_localstorage","register_once","expire_days","cross_subdomain","cross_site","cookie_domain","load_prop","default_expiry","register","unregister","update_search_keyword","get_referrer_info","set_disabled","set_cookie_domain","set_cross_site","set_cross_subdomain","set_secure","get_cross_subdomain","q_key","_get_queue_key","q_data","set_q","_get_or_create_queue","set_once_q","unset_q","add_q","union_q","remove_q","append_q","enqueued_obj","append_obj","queued_action","default_val","set_event_timer","timers","remove_event_timer","mixpanel_master","load_extra_bundle","_onload","IDENTITY_FUNC","PRIMARY_INSTANCE_NAME","PAYLOAD_TYPE_BASE64","DEVICE_ID_PREFIX","USE_XHR","XMLHttpRequest","ENQUEUE_REQUESTS","sendBeacon","DEFAULT_API_ROUTES","DEFAULT_CONFIG","DOM_LOADED","MixpanelLib","create_mplib","_cached_groups","utm_params","initial_utm_params","has_utm","utm_value","utm_key","_execute_array","report_error","_loaded","variable_features","set_config","__dom_loaded_queue","__request_queue","__disabled_events","_batch_requests","init_batchers","flush_on_unload","get_batcher_configs","batcher_config","queue_key","unpersisted_superprops","_gdpr_init","autocapture","_init_tab_id","_check_and_start_session_recording","key_suffix","tab_id_key","should_generate_new_tab_id_key","tab_id","_should_load_recorder","recording_registry_idb","recordings","force_start","loadRecorder","handleLoadedRecorder","_recorder","is_sampled","shouldLoad","start_session_recording","stop_session_recording","pause_session_recording","resume_session_recording","_get_session_replay_id","get_session_recording_properties","replay_id","get_session_replay_url","replay_url","__get_recorder","_set_default_superprops","_utm_value","_dom_loaded","_track_dom","has_opted_out_tracking","DomClass","dt","_prepare_callback","jsc","randomized_cb","callback_string","DEFAULT_OPTIONS","body_data","use_post","use_sendBeacon","verbose_mode","lib","img","headerValue","headerName","setRequestHeader","start_time","withCredentials","onreadystatechange","responseText","statusText","response_headers","fn_name","alias_calls","other_calls","tracking_calls","execute","calls","caller","are_batchers_initialized","queue_prefix","_batcher_configs","api_name","batcher_for","attrs","api_routes","_encode_data_for_request","_run_hook","stop_batch_senders","batcher_configs","start_batch_senders","_batchers_were_started","disable","disable_all_events","encoded_data","truncated_data","should_send_immediately","send_request_options","request_enqueued_or_initiated","send_request_immediately","skip_hooks","_event_is_disabled","start_timestamp","duration_in_ms","marketing_properties","property_blacklist","blacklisted_prop","set_group","group_ids","add_group","old_values","remove_group","old_value","track_with_groups","tracking_props","_create_map_key","_remove_group_from_cache","get_group","map_key","group","default_page_properties","event_properties","track_links","track_forms","time_event","REGISTER_DEFAULTS","options_for_register","days_or_options","_register_single","identify","new_distinct_id","previous_distinct_id","alias","name_tag","prop_name","hook_name","property_name","endpoint_type","has_opted_in_tracking","opt_in_tracking","opt_out_tracking","clear_opt_in_out_tracking","_gdpr_update_persistence","_gdpr_call_func","instances","mixpanel","_src","onload","dom_loaded_handler","attachEvent","toplevel","frameElement","doScroll","do_scroll_check","add_dom_loaded_handler","initializeMixpanel","data_consent_status","mixpanelConfig","persistence","disableMixpanel","enableMixpanel","getGlobalProperties","globalProps","globalProperties","pageParam","enhancedProperties","hit_type","page","fromEntries","trackEvent","eventProperties","isMixpanelAvailable","itemName","contentReceivedAt","contentRenderedAt","isCached","content_received_at","is_content_rendered","content_rendered_at","item_name","item_category","button_name","button_action","license_type","price_amount","price_currency","extractPluginProperties","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","setDefaults","getDefaults","MarketplaceContext","setSubscriptionStatus","setIsCheckingSubscription","setLoadingAction","setLoadingPlugin","successState","setSuccessState","consentStatus","setConsentStatus","initialConsent","reloadTimeoutRef","wpVersion","persistedNotice","noticeData","successType","handleConsentChange","newConsentStatus","handleStorageChange","useCallback","ajaxUrl","formData","FormData","is_purchased","isWpVersionSupportedHelper","isImagifyActivation","actionSuccessful","loadingMessage","deactivating","deleting","downloadParam","nonce","attempts","checkActivation","checkUrl","special_case","error_message","alert","Provider","useContext","alwaysNewT","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","optsOrDefaultValue","retNotReady","ready","i18nOptions","memoGetT","useMemoizedT","nsMode","getT","getNewT","setT","joinedNS","previousJoinedNS","ref","usePrevious","isMounted","boundReset","i18nInstance","setI18n","getI18n","alreadyWarned","warnOnce","loadedClb","freePlugin","proPlugin","tableSliderRef","sliderNavRef","tableRef","tableHeaderRef","paginationRef","activeSlide","setActiveSlide","tableSlider","sliderNav","table","tableHeader","pagination","prevButton","querySelector","nextButton","navIsAtBottom","paginationState","isPaginationScrolledPast","isTableBottomVisible","isUpdatingClasses","scrollThrottleTimer","isScrollThrottled","updateSliderState","slideWidth","offsetWidth","currentSlide","scrollWidth","calculateNavPosition","tablePaddingTop","getComputedStyle","paddingTop","halfHeaderHeight","offsetHeight","translateY","topValue","bottomValue","bottom","checkNavBoundary","tableRect","stickyBottomThreshold","shouldBeAtBottom","updatePaginationStateFromObservers","newState","paginationObserver","IntersectionObserver","isIntersecting","boundingClientRect","rootMargin","tableBottomSentinel","tableBottomObserver","handleScroll","handleResize","newBottomValue","proTitle","proDescription","proPrice","isProFreeUntilRenewal","proFullPriceAmount","i18nSource","freeKeyFeatures","proKeyFeatures","maxFeatures","handlePrevClick","behavior","handleNextClick","slideIndex","handleDotClick","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","isSupported","ReactDOM","render"],"sourceRoot":""}
\ No newline at end of file
diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js
new file mode 100644
index 0000000..c0a8284
--- /dev/null
+++ b/frontend/eslint.config.js
@@ -0,0 +1,85 @@
+const js = require('@eslint/js');
+const reactPlugin = require('eslint-plugin-react');
+const reactHooksPlugin = require('eslint-plugin-react-hooks');
+const jsxA11yPlugin = require('eslint-plugin-jsx-a11y');
+const eslintConfigPrettier = require('eslint-config-prettier');
+const globals = require('globals');
+
+module.exports = [
+ {
+ ignores: [
+ 'node_modules/**',
+ 'build/**',
+ 'standalone/**',
+ 'webpack.wp.js',
+ 'vite.config.js',
+ ],
+ },
+ js.configs.recommended,
+ {
+ files: ['**/*.{js,jsx}'],
+ languageOptions: {
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+ globals: {
+ ...globals.browser,
+ ...globals.node,
+ ...globals.es2021,
+ process: 'readonly',
+ Buffer: 'readonly',
+ __dirname: 'readonly',
+ require: 'readonly',
+ module: 'readonly',
+ setTimeout: 'readonly',
+ clearTimeout: 'readonly',
+ setInterval: 'readonly',
+ clearInterval: 'readonly',
+ URL: 'readonly',
+ btoa: 'readonly',
+ setImmediate: 'readonly',
+ console: 'readonly',
+ },
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+ },
+ plugins: {
+ react: reactPlugin,
+ 'react-hooks': reactHooksPlugin,
+ 'jsx-a11y': jsxA11yPlugin,
+ },
+ settings: {
+ react: {
+ version: 'detect',
+ },
+ },
+ rules: {
+ ...reactPlugin.configs.recommended.rules,
+ ...reactHooksPlugin.configs.recommended.rules,
+ ...jsxA11yPlugin.configs.recommended.rules,
+ ...eslintConfigPrettier.rules,
+ 'react/react-in-jsx-scope': 'off',
+ 'react/prop-types': 'off',
+ 'no-console': 'off',
+ 'no-undef': 'error',
+ semi: 'error',
+ 'semi-spacing': 'error',
+ 'arrow-spacing': 'error',
+ 'no-confusing-arrow': ['error', {allowParens: true}],
+ 'no-duplicate-imports': 'error',
+ 'no-var': 'error',
+ 'object-shorthand': 'off',
+ 'prefer-const': 'error',
+ eqeqeq: 'warn',
+ 'no-invalid-this': 'error',
+ 'no-return-assign': 'error',
+ 'no-unused-expressions': ['error', {allowTernary: true}],
+ 'no-useless-concat': 'error',
+ 'no-useless-return': 'error',
+ 'no-constant-condition': 'warn',
+ 'no-unused-vars': 'off',
+ },
+ },
+];
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 7bb7d8c..ab0bf06 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -9,24 +9,68 @@
"version": "1.0.0-beta.5",
"license": "GPL-2.0-or-later",
"dependencies": {
- "@group.one/gravity": "^5.22.1",
- "mixpanel-browser": "^2.72.0",
- "react-i18next": "^15.7.3"
+ "@dogado/gravity": "^5.25.3",
+ "@eslint/js": "^8.57.1",
+ "globals": "^15.15.0",
+ "mixpanel-browser": "^2.73.0",
+ "prop-types": "^15.8.1",
+ "react-i18next": "^16.5.0"
},
"devDependencies": {
"@vitejs/plugin-react": "^4.0.0",
- "@wordpress/scripts": "^26.0.0",
+ "@wordpress/scripts": "^31.1.0",
"clean-css-cli": "^5.6.3",
"cross-env": "^7.0.3",
- "vite": "^5.0.0",
- "webpack": "^5.0.0",
- "webpack-cli": "^5.0.0"
+ "eslint": "^8.57.1",
+ "eslint-config-prettier": "^9.1.2",
+ "eslint-plugin-jsx-a11y": "^6.10.2",
+ "eslint-plugin-react": "^7.37.4",
+ "eslint-plugin-react-hooks": "^4.6.2",
+ "prettier": "^3.5.1",
+ "vite": "^6.1.0",
+ "webpack": "^5.97.1",
+ "webpack-cli": "^6.0.1"
},
"peerDependencies": {
"react": ">=18 || >=19",
"react-dom": ">=18 || >=19"
}
},
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@asamuzakjp/css-color": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
+ "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.3",
+ "@csstools/css-color-parser": "^3.0.9",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "lru-cache": "^10.4.3"
+ }
+ },
+ "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/@babel/code-frame": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
@@ -81,10 +125,11 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.4.tgz",
- "integrity": "sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@@ -481,6 +526,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
"integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -493,6 +539,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
"integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -505,6 +552,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
"integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.12.13"
},
@@ -517,6 +565,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
"integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -527,6 +576,32 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
"node_modules/@babel/plugin-syntax-import-assertions": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz",
@@ -562,6 +637,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
"integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -574,6 +650,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
"integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -601,6 +678,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
"integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -613,6 +691,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
"integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -625,6 +704,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
"integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -637,6 +717,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
"integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -649,6 +730,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
"integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -661,6 +743,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
"integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -673,6 +756,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
"integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -688,6 +772,7 @@
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
"integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -1508,16 +1593,17 @@
}
},
"node_modules/@babel/plugin-transform-runtime": {
- "version": "7.28.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz",
- "integrity": "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz",
+ "integrity": "sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "babel-plugin-polyfill-corejs2": "^0.4.14",
- "babel-plugin-polyfill-corejs3": "^0.13.0",
- "babel-plugin-polyfill-regenerator": "^0.6.5",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
"semver": "^6.3.1"
},
"engines": {
@@ -1527,6 +1613,20 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.10.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
+ "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "core-js-compat": "^3.38.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
"node_modules/@babel/plugin-transform-shorthand-properties": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz",
@@ -1823,9 +1923,10 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
- "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz",
+ "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -1879,22 +1980,227 @@
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/@csstools/selector-specificity": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
- "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
+ "node_modules/@cacheable/memory": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.7.tgz",
+ "integrity": "sha512-RbxnxAMf89Tp1dLhXMS7ceft/PGsDl1Ip7T20z5nZ+pwIAsQ1p2izPjVG69oCLv/jfQ7HDPHTWK0c9rcAWXN3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cacheable/utils": "^2.3.3",
+ "@keyv/bigmap": "^1.3.0",
+ "hookified": "^1.14.0",
+ "keyv": "^5.5.5"
+ }
+ },
+ "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.0.tgz",
+ "integrity": "sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hashery": "^1.2.0",
+ "hookified": "^1.13.0"
+ },
"engines": {
- "node": "^14 || ^16 || >=18"
+ "node": ">= 18"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "peerDependencies": {
+ "keyv": "^5.5.4"
+ }
+ },
+ "node_modules/@cacheable/memory/node_modules/keyv": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz",
+ "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@keyv/serialize": "^1.1.1"
+ }
+ },
+ "node_modules/@cacheable/utils": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.3.3.tgz",
+ "integrity": "sha512-JsXDL70gQ+1Vc2W/KUFfkAJzgb4puKwwKehNLuB+HrNKWf91O736kGfxn4KujXCCSuh6mRRL4XEB0PkAFjWS0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hashery": "^1.3.0",
+ "keyv": "^5.5.5"
+ }
+ },
+ "node_modules/@cacheable/utils/node_modules/keyv": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz",
+ "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@keyv/serialize": "^1.1.1"
+ }
+ },
+ "node_modules/@csstools/color-helpers": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
+ "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/css-calc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
+ "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
},
"peerDependencies": {
- "postcss-selector-parser": "^6.0.10"
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-color-parser": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
+ "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/color-helpers": "^5.1.0",
+ "@csstools/css-calc": "^2.1.4"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
+ "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.4"
+ }
+ },
+ "node_modules/@csstools/css-syntax-patches-for-csstree": {
+ "version": "1.0.25",
+ "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.25.tgz",
+ "integrity": "sha512-g0Kw9W3vjx5BEBAF8c5Fm2NcB/Fs8jJXh85aXqwEXiL+tqtOut07TWgyaGzAAfTM+gKckrrncyeGEZPcaRgm2Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz",
+ "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.1",
+ "@csstools/css-tokenizer": "^3.0.1"
}
},
"node_modules/@discoveryjs/json-ext": {
@@ -1906,11 +2212,63 @@
"node": ">=10.0.0"
}
},
+ "node_modules/@dogado/gravity": {
+ "version": "5.25.3",
+ "resolved": "https://registry.npmjs.org/@dogado/gravity/-/gravity-5.25.3.tgz",
+ "integrity": "sha512-M/iwMLf2F8q7TbUPnBuZ5MFNxYpoEB9vPu7DjHQ50PxfBD/FpmWz9fV+r8iIGVSeqrCABt17Nj2kvRYIGXhP1g==",
+ "license": "UNLICENSED"
+ },
+ "node_modules/@dual-bundle/import-meta-resolve": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz",
+ "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/JounQin"
+ }
+ },
+ "node_modules/@emnapi/core": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz",
+ "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.1.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz",
+ "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
+ "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@es-joy/jsdoccomment": {
"version": "0.41.0",
"resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz",
"integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"comment-parser": "1.4.1",
"esquery": "^1.5.0",
@@ -1921,9 +2279,9 @@
}
},
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
"cpu": [
"ppc64"
],
@@ -1934,13 +2292,13 @@
"aix"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
"cpu": [
"arm"
],
@@ -1951,13 +2309,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
"cpu": [
"arm64"
],
@@ -1968,13 +2326,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
"cpu": [
"x64"
],
@@ -1985,13 +2343,13 @@
"android"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
"cpu": [
"arm64"
],
@@ -2002,13 +2360,13 @@
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
"cpu": [
"x64"
],
@@ -2019,13 +2377,13 @@
"darwin"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
"cpu": [
"arm64"
],
@@ -2036,13 +2394,13 @@
"freebsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
"cpu": [
"x64"
],
@@ -2053,13 +2411,13 @@
"freebsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
"cpu": [
"arm"
],
@@ -2070,13 +2428,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
"cpu": [
"arm64"
],
@@ -2087,13 +2445,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
"cpu": [
"ia32"
],
@@ -2104,13 +2462,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
"cpu": [
"loong64"
],
@@ -2121,13 +2479,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
"cpu": [
"mips64el"
],
@@ -2138,13 +2496,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
"cpu": [
"ppc64"
],
@@ -2155,13 +2513,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
"cpu": [
"riscv64"
],
@@ -2172,13 +2530,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
"cpu": [
"s390x"
],
@@ -2189,13 +2547,13 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
"cpu": [
"x64"
],
@@ -2206,13 +2564,30 @@
"linux"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
"cpu": [
"x64"
],
@@ -2223,13 +2598,30 @@
"netbsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
"cpu": [
"x64"
],
@@ -2240,13 +2632,30 @@
"openbsd"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
"cpu": [
"x64"
],
@@ -2257,13 +2666,13 @@
"sunos"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
"cpu": [
"arm64"
],
@@ -2274,13 +2683,13 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
"cpu": [
"ia32"
],
@@ -2291,13 +2700,13 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
"cpu": [
"x64"
],
@@ -2308,7 +2717,7 @@
"win32"
],
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/@eslint-community/eslint-utils": {
@@ -2389,11 +2798,28 @@
"concat-map": "0.0.1"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -2417,29 +2843,118 @@
"version": "8.57.1",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
"integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
- "dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/@group.one/gravity": {
- "version": "5.22.1",
- "resolved": "https://gitlab.group.one/api/v4/projects/5722/packages/npm/@group.one/gravity/-/@group.one/gravity-5.22.1.tgz",
- "integrity": "sha1-3EdTKvE0jRR/MEZEDKoUT3EcsiM="
+ "node_modules/@formatjs/ecma402-abstract": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz",
+ "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/intl-localematcher": "0.6.2",
+ "decimal.js": "^10.4.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/fast-memoize": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz",
+ "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/icu-messageformat-parser": {
+ "version": "2.11.4",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz",
+ "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "@formatjs/icu-skeleton-parser": "1.8.16",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/icu-skeleton-parser": {
+ "version": "1.8.16",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz",
+ "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/intl-localematcher": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz",
+ "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@hapi/address": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/address/-/address-5.1.1.tgz",
+ "integrity": "sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^11.0.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@hapi/formula": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-3.0.2.tgz",
+ "integrity": "sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
- "dev": true
+ "version": "11.0.7",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz",
+ "integrity": "sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/pinpoint": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.1.tgz",
+ "integrity": "sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/tlds": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.4.tgz",
+ "integrity": "sha512-Fq+20dxsxLaUn5jSSWrdtSRcIUba2JquuorF9UW1wIJS5cSUwxIsO2GIhaWynPRflvxSzFN+gxKte2HEW1OuoA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=14.0.0"
+ }
},
"node_modules/@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-6.0.2.tgz",
+ "integrity": "sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@hapi/hoek": "^9.0.0"
+ "@hapi/hoek": "^11.0.2"
}
},
"node_modules/@humanwhocodes/config-array": {
@@ -2504,6 +3019,7 @@
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
"integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"camelcase": "^5.3.1",
"find-up": "^4.1.0",
@@ -2520,6 +3036,7 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -2529,6 +3046,7 @@
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -2538,6 +3056,7 @@
"resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
"integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -2555,6 +3074,7 @@
"resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
"integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/reporters": "^29.7.0",
@@ -2602,6 +3122,7 @@
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
"integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/fake-timers": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -2612,11 +3133,234 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/@jest/environment-jsdom-abstract": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.2.0.tgz",
+ "integrity": "sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "30.2.0",
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/jsdom": "^21.1.7",
+ "@types/node": "*",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "canvas": "^3.0.0",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/environment": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz",
+ "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-mock": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/fake-timers": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz",
+ "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@sinonjs/fake-timers": "^13.0.0",
+ "@types/node": "*",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/schemas": {
+ "version": "30.0.5",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+ "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.34.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@jest/types": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+ "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@sinclair/typebox": {
+ "version": "0.34.47",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.47.tgz",
+ "integrity": "sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/@sinonjs/fake-timers": {
+ "version": "13.0.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz",
+ "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/ci-info": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-message-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
+ "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@jest/types": "30.2.0",
+ "@types/stack-utils": "^2.0.3",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.2.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.6"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-mock": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
+ "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/jest-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
+ "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/@jest/environment-jsdom-abstract/node_modules/pretty-format": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+ "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "30.0.5",
+ "ansi-styles": "^5.2.0",
+ "react-is": "^18.3.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
"node_modules/@jest/expect": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
"integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expect": "^29.7.0",
"jest-snapshot": "^29.7.0"
@@ -2630,6 +3374,7 @@
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
"integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3"
},
@@ -2642,6 +3387,7 @@
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
"integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@sinonjs/fake-timers": "^10.0.2",
@@ -2659,6 +3405,7 @@
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
"integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
@@ -2669,11 +3416,36 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/@jest/pattern": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz",
+ "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-regex-util": "30.0.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/@jest/pattern/node_modules/jest-regex-util": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz",
+ "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
"node_modules/@jest/reporters": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
"integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "^29.7.0",
@@ -2717,6 +3489,7 @@
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
"integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/core": "^7.23.9",
"@babel/parser": "^7.23.9",
@@ -2729,10 +3502,11 @@
}
},
"node_modules/@jest/reporters/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -2745,6 +3519,7 @@
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
"integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@sinclair/typebox": "^0.27.8"
},
@@ -2757,6 +3532,7 @@
"resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
"integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.18",
"callsites": "^3.0.0",
@@ -2771,6 +3547,7 @@
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
"integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -2786,6 +3563,7 @@
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
"integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/test-result": "^29.7.0",
"graceful-fs": "^4.2.9",
@@ -2801,6 +3579,7 @@
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
"integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/types": "^29.6.3",
@@ -2827,6 +3606,7 @@
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
"integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -2894,11 +3674,139 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@jsonjoy.com/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/@jsonjoy.com/buffers": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz",
+ "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/@jsonjoy.com/codegen": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz",
+ "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/@jsonjoy.com/json-pack": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz",
+ "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/base64": "^1.1.2",
+ "@jsonjoy.com/buffers": "^1.2.0",
+ "@jsonjoy.com/codegen": "^1.0.0",
+ "@jsonjoy.com/json-pointer": "^1.0.2",
+ "@jsonjoy.com/util": "^1.9.0",
+ "hyperdyperid": "^1.2.0",
+ "thingies": "^2.5.0",
+ "tree-dump": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/@jsonjoy.com/json-pointer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz",
+ "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/codegen": "^1.0.0",
+ "@jsonjoy.com/util": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/@jsonjoy.com/util": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz",
+ "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jsonjoy.com/buffers": "^1.0.0",
+ "@jsonjoy.com/codegen": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
+ "node_modules/@keyv/serialize": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",
+ "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@leichtgewicht/ip-codec": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
"integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@mixpanel/rrdom": {
"version": "2.0.0-alpha.18.2",
@@ -2956,15 +3864,42 @@
"integrity": "sha512-OomKIB6GTx5xvCLJ7iic2khT/t/tnCJUex13aEqsbSqIT/UzUUsqf+LTrgUK5ex+f6odmkCNjre2y5jvpNqn+g==",
"license": "MIT"
},
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz",
+ "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.4.3",
+ "@emnapi/runtime": "^1.4.3",
+ "@tybys/wasm-util": "^0.10.0"
+ }
+ },
"node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
"version": "5.1.1-v1",
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
"integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eslint-scope": "5.1.1"
}
},
+ "node_modules/@noble/hashes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -3000,194 +3935,793 @@
"node": ">= 8"
}
},
- "node_modules/@parcel/watcher": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
- "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "node_modules/@opentelemetry/api": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
+ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
"dev": true,
- "hasInstallScript": true,
- "optional": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@opentelemetry/api-logs": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz",
+ "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "detect-libc": "^1.0.3",
- "is-glob": "^4.0.3",
- "micromatch": "^4.0.5",
- "node-addon-api": "^7.0.0"
+ "@opentelemetry/api": "^1.3.0"
},
"engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "@parcel/watcher-android-arm64": "2.5.1",
- "@parcel/watcher-darwin-arm64": "2.5.1",
- "@parcel/watcher-darwin-x64": "2.5.1",
- "@parcel/watcher-freebsd-x64": "2.5.1",
- "@parcel/watcher-linux-arm-glibc": "2.5.1",
- "@parcel/watcher-linux-arm-musl": "2.5.1",
- "@parcel/watcher-linux-arm64-glibc": "2.5.1",
- "@parcel/watcher-linux-arm64-musl": "2.5.1",
- "@parcel/watcher-linux-x64-glibc": "2.5.1",
- "@parcel/watcher-linux-x64-musl": "2.5.1",
- "@parcel/watcher-win32-arm64": "2.5.1",
- "@parcel/watcher-win32-ia32": "2.5.1",
- "@parcel/watcher-win32-x64": "2.5.1"
+ "node": ">=14"
}
},
- "node_modules/@parcel/watcher-android-arm64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
- "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@opentelemetry/context-async-hooks": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz",
+ "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==",
"dev": true,
- "optional": true,
- "os": [
- "android"
- ],
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=14"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@parcel/watcher-darwin-arm64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
- "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@opentelemetry/core": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz",
+ "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==",
"dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=14"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
}
},
- "node_modules/@parcel/watcher-darwin-x64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
- "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
"dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "node": ">=14"
}
},
- "node_modules/@parcel/watcher-freebsd-x64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
- "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@opentelemetry/instrumentation": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz",
+ "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==",
"dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/api-logs": "0.57.2",
+ "@types/shimmer": "^1.2.0",
+ "import-in-the-middle": "^1.8.1",
+ "require-in-the-middle": "^7.1.1",
+ "semver": "^7.5.2",
+ "shimmer": "^1.2.1"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=14"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@parcel/watcher-linux-arm-glibc": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
- "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@opentelemetry/instrumentation-amqplib": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz",
+ "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=14"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@parcel/watcher-linux-arm-musl": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
- "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@opentelemetry/instrumentation-connect": {
+ "version": "0.43.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.1.tgz",
+ "integrity": "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/connect": "3.4.38"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=14"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@parcel/watcher-linux-arm64-glibc": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
- "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@opentelemetry/instrumentation-dataloader": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.1.tgz",
+ "integrity": "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=14"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
}
},
- "node_modules/@parcel/watcher-linux-arm64-musl": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
- "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@opentelemetry/instrumentation-express": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.1.tgz",
+ "integrity": "sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==",
"dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-fs": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.1.tgz",
+ "integrity": "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-generic-pool": {
+ "version": "0.43.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.1.tgz",
+ "integrity": "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-graphql": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.1.tgz",
+ "integrity": "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-hapi": {
+ "version": "0.45.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.2.tgz",
+ "integrity": "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-http": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.2.tgz",
+ "integrity": "sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/instrumentation": "0.57.2",
+ "@opentelemetry/semantic-conventions": "1.28.0",
+ "forwarded-parse": "2.1.2",
+ "semver": "^7.5.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-http/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-http/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-ioredis": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.1.tgz",
+ "integrity": "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/redis-common": "^0.36.2",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-kafkajs": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.1.tgz",
+ "integrity": "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-knex": {
+ "version": "0.44.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.1.tgz",
+ "integrity": "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-koa": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.1.tgz",
+ "integrity": "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-lru-memoizer": {
+ "version": "0.44.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.1.tgz",
+ "integrity": "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-mongodb": {
+ "version": "0.52.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.52.0.tgz",
+ "integrity": "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-mongoose": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.1.tgz",
+ "integrity": "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-mysql": {
+ "version": "0.45.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.1.tgz",
+ "integrity": "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/mysql": "2.15.26"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-mysql2": {
+ "version": "0.45.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.2.tgz",
+ "integrity": "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@opentelemetry/sql-common": "^0.40.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-pg": {
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.1.tgz",
+ "integrity": "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.26.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@opentelemetry/sql-common": "^0.40.1",
+ "@types/pg": "8.6.1",
+ "@types/pg-pool": "2.0.6"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-redis-4": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.1.tgz",
+ "integrity": "sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/redis-common": "^0.36.2",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-tedious": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.1.tgz",
+ "integrity": "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/tedious": "^4.0.14"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation-undici": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.1.tgz",
+ "integrity": "sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.7.0"
+ }
+ },
+ "node_modules/@opentelemetry/instrumentation/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@opentelemetry/redis-common": {
+ "version": "0.36.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz",
+ "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/resources": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz",
+ "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-base": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz",
+ "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/resources": "1.30.1",
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
+ }
+ },
+ "node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/semantic-conventions": {
+ "version": "1.39.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.39.0.tgz",
+ "integrity": "sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@opentelemetry/sql-common": {
+ "version": "0.40.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz",
+ "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@opentelemetry/core": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.1.0"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
"node": ">= 10.0.0"
},
@@ -3296,11 +4830,182 @@
"url": "https://opencollective.com/parcel"
}
},
+ "node_modules/@paulirish/trace_engine": {
+ "version": "0.0.59",
+ "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.59.tgz",
+ "integrity": "sha512-439NUzQGmH+9Y017/xCchBP9571J4bzhpcNhrxorf7r37wcyJZkgUfrUsRL3xl+JDcZ6ORhoFCzCw98c6S3YHw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "legacy-javascript": "latest",
+ "third-party-web": "latest"
+ }
+ },
+ "node_modules/@peculiar/asn1-cms": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.0.tgz",
+ "integrity": "sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "@peculiar/asn1-x509-attr": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-csr": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.0.tgz",
+ "integrity": "sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-ecc": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.0.tgz",
+ "integrity": "sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-pfx": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.0.tgz",
+ "integrity": "sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-cms": "^2.6.0",
+ "@peculiar/asn1-pkcs8": "^2.6.0",
+ "@peculiar/asn1-rsa": "^2.6.0",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-pkcs8": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.0.tgz",
+ "integrity": "sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-pkcs9": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.0.tgz",
+ "integrity": "sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-cms": "^2.6.0",
+ "@peculiar/asn1-pfx": "^2.6.0",
+ "@peculiar/asn1-pkcs8": "^2.6.0",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "@peculiar/asn1-x509-attr": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-rsa": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.0.tgz",
+ "integrity": "sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-schema": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz",
+ "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asn1js": "^3.0.6",
+ "pvtsutils": "^1.3.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-x509": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.0.tgz",
+ "integrity": "sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "pvtsutils": "^1.3.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/asn1-x509-attr": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.0.tgz",
+ "integrity": "sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/@peculiar/x509": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz",
+ "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@peculiar/asn1-cms": "^2.6.0",
+ "@peculiar/asn1-csr": "^2.6.0",
+ "@peculiar/asn1-ecc": "^2.6.0",
+ "@peculiar/asn1-pkcs9": "^2.6.0",
+ "@peculiar/asn1-rsa": "^2.6.0",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "pvtsutils": "^1.3.6",
+ "reflect-metadata": "^0.2.2",
+ "tslib": "^2.8.1",
+ "tsyringe": "^4.10.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
"node_modules/@pkgr/core": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz",
"integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.18.0 || >=16.0.0"
},
@@ -3309,13 +5014,14 @@
}
},
"node_modules/@playwright/test": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.0.tgz",
- "integrity": "sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==",
+ "version": "1.57.0",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0.tgz",
+ "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==",
"dev": true,
+ "license": "Apache-2.0",
"peer": true,
"dependencies": {
- "playwright": "1.55.0"
+ "playwright": "1.57.0"
},
"bin": {
"playwright": "cli.js"
@@ -3378,110 +5084,53 @@
"integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
"dev": true
},
- "node_modules/@puppeteer/browsers": {
- "version": "1.4.6",
- "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz",
- "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==",
+ "node_modules/@prisma/instrumentation": {
+ "version": "6.11.1",
+ "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz",
+ "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "debug": "4.3.4",
- "extract-zip": "2.0.1",
- "progress": "2.0.3",
- "proxy-agent": "6.3.0",
- "tar-fs": "3.0.4",
- "unbzip2-stream": "1.4.3",
- "yargs": "17.7.1"
- },
- "bin": {
- "browsers": "lib/cjs/main-cli.js"
- },
- "engines": {
- "node": ">=16.3.0"
+ "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0"
},
"peerDependencies": {
- "typescript": ">= 4.7.4"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/b4a": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.1.tgz",
- "integrity": "sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==",
- "dev": true,
- "peerDependencies": {
- "react-native-b4a": "*"
- },
- "peerDependenciesMeta": {
- "react-native-b4a": {
- "optional": true
- }
+ "@opentelemetry/api": "^1.8"
}
},
- "node_modules/@puppeteer/browsers/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/@puppeteer/browsers": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz",
+ "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "ms": "2.1.2"
+ "debug": "^4.4.0",
+ "extract-zip": "^2.0.1",
+ "progress": "^2.0.3",
+ "proxy-agent": "^6.5.0",
+ "semver": "^7.6.3",
+ "tar-fs": "^3.0.6",
+ "unbzip2-stream": "^1.4.3",
+ "yargs": "^17.7.2"
},
- "engines": {
- "node": ">=6.0"
+ "bin": {
+ "browsers": "lib/cjs/main-cli.js"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@puppeteer/browsers/node_modules/tar-fs": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
- "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
- "dev": true,
- "dependencies": {
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^3.1.5"
- }
- },
- "node_modules/@puppeteer/browsers/node_modules/tar-stream": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
- "dev": true,
- "dependencies": {
- "b4a": "^1.6.4",
- "fast-fifo": "^1.2.0",
- "streamx": "^2.15.0"
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/@puppeteer/browsers/node_modules/yargs": {
- "version": "17.7.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
- "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
+ "node_modules/@puppeteer/browsers/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
- "dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">=12"
+ "node": ">=10"
}
},
"node_modules/@rolldown/pluginutils": {
@@ -3789,155 +5438,123 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
"integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@sentry/core": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz",
- "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==",
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz",
+ "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==",
"dev": true,
- "dependencies": {
- "@sentry/hub": "6.19.7",
- "@sentry/minimal": "6.19.7",
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "tslib": "^1.9.3"
- },
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=18"
}
},
- "node_modules/@sentry/core/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@sentry/hub": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz",
- "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==",
+ "node_modules/@sentry/node": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-9.47.1.tgz",
+ "integrity": "sha512-CDbkasBz3fnWRKSFs6mmaRepM2pa+tbZkrqhPWifFfIkJDidtVW40p6OnquTvPXyPAszCnDZRnZT14xyvNmKPQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "tslib": "^1.9.3"
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-async-hooks": "^1.30.1",
+ "@opentelemetry/core": "^1.30.1",
+ "@opentelemetry/instrumentation": "^0.57.2",
+ "@opentelemetry/instrumentation-amqplib": "^0.46.1",
+ "@opentelemetry/instrumentation-connect": "0.43.1",
+ "@opentelemetry/instrumentation-dataloader": "0.16.1",
+ "@opentelemetry/instrumentation-express": "0.47.1",
+ "@opentelemetry/instrumentation-fs": "0.19.1",
+ "@opentelemetry/instrumentation-generic-pool": "0.43.1",
+ "@opentelemetry/instrumentation-graphql": "0.47.1",
+ "@opentelemetry/instrumentation-hapi": "0.45.2",
+ "@opentelemetry/instrumentation-http": "0.57.2",
+ "@opentelemetry/instrumentation-ioredis": "0.47.1",
+ "@opentelemetry/instrumentation-kafkajs": "0.7.1",
+ "@opentelemetry/instrumentation-knex": "0.44.1",
+ "@opentelemetry/instrumentation-koa": "0.47.1",
+ "@opentelemetry/instrumentation-lru-memoizer": "0.44.1",
+ "@opentelemetry/instrumentation-mongodb": "0.52.0",
+ "@opentelemetry/instrumentation-mongoose": "0.46.1",
+ "@opentelemetry/instrumentation-mysql": "0.45.1",
+ "@opentelemetry/instrumentation-mysql2": "0.45.2",
+ "@opentelemetry/instrumentation-pg": "0.51.1",
+ "@opentelemetry/instrumentation-redis-4": "0.46.1",
+ "@opentelemetry/instrumentation-tedious": "0.18.1",
+ "@opentelemetry/instrumentation-undici": "0.10.1",
+ "@opentelemetry/resources": "^1.30.1",
+ "@opentelemetry/sdk-trace-base": "^1.30.1",
+ "@opentelemetry/semantic-conventions": "^1.34.0",
+ "@prisma/instrumentation": "6.11.1",
+ "@sentry/core": "9.47.1",
+ "@sentry/node-core": "9.47.1",
+ "@sentry/opentelemetry": "9.47.1",
+ "import-in-the-middle": "^1.14.2",
+ "minimatch": "^9.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=18"
}
},
- "node_modules/@sentry/hub/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@sentry/minimal": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz",
- "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==",
+ "node_modules/@sentry/node-core": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-9.47.1.tgz",
+ "integrity": "sha512-7TEOiCGkyShJ8CKtsri9lbgMCbB+qNts2Xq37itiMPN2m+lIukK3OX//L8DC5nfKYZlgikrefS63/vJtm669hQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sentry/hub": "6.19.7",
- "@sentry/types": "6.19.7",
- "tslib": "^1.9.3"
+ "@sentry/core": "9.47.1",
+ "@sentry/opentelemetry": "9.47.1",
+ "import-in-the-middle": "^1.14.2"
},
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/@sentry/minimal/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@sentry/node": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz",
- "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==",
- "dev": true,
- "dependencies": {
- "@sentry/core": "6.19.7",
- "@sentry/hub": "6.19.7",
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "cookie": "^0.4.1",
- "https-proxy-agent": "^5.0.0",
- "lru_map": "^0.3.3",
- "tslib": "^1.9.3"
+ "node": ">=18"
},
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@sentry/node/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@sentry/types": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz",
- "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/core": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/instrumentation": ">=0.57.1 <1",
+ "@opentelemetry/resources": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/semantic-conventions": "^1.34.0"
}
},
- "node_modules/@sentry/utils": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz",
- "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==",
+ "node_modules/@sentry/opentelemetry": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-9.47.1.tgz",
+ "integrity": "sha512-STtFpjF7lwzeoedDJV+5XA6P89BfmFwFftmHSGSe3UTI8z8IoiR5yB6X2vCjSPvXlfeOs13qCNNCEZyznxM8Xw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@sentry/types": "6.19.7",
- "tslib": "^1.9.3"
+ "@sentry/core": "9.47.1"
},
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/@sentry/utils/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "dev": true,
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/core": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.0.0",
+ "@opentelemetry/semantic-conventions": "^1.34.0"
}
},
- "node_modules/@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
- "dev": true
- },
- "node_modules/@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "dev": true
- },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
"integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@sinonjs/commons": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
"integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"type-detect": "4.0.8"
}
@@ -3947,10 +5564,51 @@
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
"integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@sinonjs/commons": "^3.0.0"
}
},
+ "node_modules/@standard-schema/spec": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@stylistic/stylelint-plugin": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz",
+ "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.1",
+ "@csstools/css-tokenizer": "^3.0.1",
+ "@csstools/media-query-list-parser": "^3.0.1",
+ "is-plain-object": "^5.0.0",
+ "postcss": "^8.4.41",
+ "postcss-selector-parser": "^6.1.2",
+ "postcss-value-parser": "^4.2.0",
+ "style-search": "^0.1.0"
+ },
+ "engines": {
+ "node": "^18.12 || >=20.9"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.8.0"
+ }
+ },
+ "node_modules/@stylistic/stylelint-plugin/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/@svgr/babel-plugin-add-jsx-attribute": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
@@ -4208,51 +5866,12 @@
"url": "https://github.com/sponsors/gregberge"
}
},
- "node_modules/@tannin/compile": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz",
- "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==",
- "dev": true,
- "dependencies": {
- "@tannin/evaluate": "^1.2.0",
- "@tannin/postfix": "^1.1.0"
- }
- },
- "node_modules/@tannin/evaluate": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz",
- "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==",
- "dev": true
- },
- "node_modules/@tannin/plural-forms": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz",
- "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==",
- "dev": true,
- "dependencies": {
- "@tannin/compile": "^1.1.0"
- }
- },
- "node_modules/@tannin/postfix": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz",
- "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==",
- "dev": true
- },
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
"node_modules/@tootallnate/quickjs-emscripten": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
"integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@trysound/sax": {
"version": "0.2.0",
@@ -4263,6 +5882,17 @@
"node": ">=10.13.0"
}
},
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
@@ -4309,6 +5939,7 @@
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
"integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/connect": "*",
"@types/node": "*"
@@ -4319,6 +5950,7 @@
"resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
"integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -4328,6 +5960,7 @@
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
"integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -4337,6 +5970,7 @@
"resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
"integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/express-serve-static-core": "*",
"@types/node": "*"
@@ -4375,34 +6009,24 @@
"dev": true
},
"node_modules/@types/express": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz",
- "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==",
+ "version": "4.17.25",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz",
+ "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.33",
"@types/qs": "*",
- "@types/serve-static": "*"
+ "@types/serve-static": "^1"
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz",
- "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/express/node_modules/@types/express-serve-static-core": {
- "version": "4.19.6",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
- "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
+ "version": "4.19.8",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
+ "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -4410,21 +6034,12 @@
"@types/send": "*"
}
},
- "node_modules/@types/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
- "dev": true,
- "dependencies": {
- "@types/minimatch": "*",
- "@types/node": "*"
- }
- },
"node_modules/@types/graceful-fs": {
"version": "4.1.9",
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
"integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -4433,13 +6048,15 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
"integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/http-proxy": {
- "version": "1.17.16",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz",
- "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==",
+ "version": "1.17.17",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz",
+ "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -4448,13 +6065,15 @@
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
"integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/istanbul-lib-report": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
"integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-coverage": "*"
}
@@ -4464,15 +6083,17 @@
"resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
"integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/istanbul-lib-report": "*"
}
},
"node_modules/@types/jsdom": {
- "version": "20.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz",
- "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==",
+ "version": "21.1.7",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
+ "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"@types/tough-cookie": "*",
@@ -4489,29 +6110,32 @@
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/mime": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
- "dev": true
- },
- "node_modules/@types/minimatch": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-6.0.0.tgz",
- "integrity": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==",
- "deprecated": "This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.",
"dev": true,
- "dependencies": {
- "minimatch": "*"
- }
+ "license": "MIT"
},
"node_modules/@types/minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/mysql": {
+ "version": "2.15.26",
+ "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz",
+ "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
},
"node_modules/@types/node": {
"version": "24.4.0",
@@ -4522,20 +6146,12 @@
"undici-types": "~7.11.0"
}
},
- "node_modules/@types/node-forge": {
- "version": "1.3.14",
- "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz",
- "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/normalize-package-data": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
"integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/parse-json": {
"version": "4.0.2",
@@ -4543,37 +6159,91 @@
"integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
"dev": true
},
+ "node_modules/@types/pg": {
+ "version": "8.6.1",
+ "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz",
+ "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "pg-protocol": "*",
+ "pg-types": "^2.2.0"
+ }
+ },
+ "node_modules/@types/pg-pool": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz",
+ "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/pg": "*"
+ }
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/qs": {
"version": "6.14.0",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
"integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/range-parser": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.27",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz",
+ "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "18.3.7",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
+ }
},
"node_modules/@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "dev": true
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz",
+ "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz",
"integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/send": {
- "version": "0.17.5",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz",
- "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/mime": "^1",
"@types/node": "*"
}
},
@@ -4582,26 +6252,47 @@
"resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
"integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/express": "*"
}
},
"node_modules/@types/serve-static": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz",
- "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==",
+ "version": "1.15.10",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz",
+ "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/http-errors": "*",
"@types/node": "*",
- "@types/send": "*"
+ "@types/send": "<1"
}
},
+ "node_modules/@types/serve-static/node_modules/@types/send": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
+ "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/shimmer": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz",
+ "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/sockjs": {
"version": "0.3.36",
"resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
"integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -4610,31 +6301,49 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz",
"integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==",
- "dev": true
+ "dev": true,
+ "optional": true,
+ "peer": true
},
"node_modules/@types/stack-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
"integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/tapable": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz",
"integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==",
- "dev": true
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/@types/tedious": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz",
+ "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
},
"node_modules/@types/tough-cookie": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/uglify-js": {
"version": "3.17.5",
"resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz",
"integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==",
"dev": true,
+ "optional": true,
+ "peer": true,
"dependencies": {
"source-map": "^0.6.1"
}
@@ -4644,6 +6353,8 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4653,6 +6364,8 @@
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz",
"integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==",
"dev": true,
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/node": "*",
"@types/tapable": "^1",
@@ -4667,6 +6380,8 @@
"resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz",
"integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==",
"dev": true,
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/node": "*",
"@types/source-list-map": "*",
@@ -4678,6 +6393,8 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4687,15 +6404,17 @@
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
"integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/yargs": {
- "version": "17.0.33",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
- "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "version": "17.0.35",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
+ "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
}
@@ -4704,13 +6423,15 @@
"version": "21.0.3",
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
"integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/yauzl": {
"version": "2.10.3",
"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
"integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
"dev": true,
+ "license": "MIT",
"optional": true,
"dependencies": {
"@types/node": "*"
@@ -4721,6 +6442,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
"integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.5.1",
"@typescript-eslint/scope-manager": "6.21.0",
@@ -4752,10 +6474,11 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -4768,6 +6491,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
"integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/scope-manager": "6.21.0",
"@typescript-eslint/types": "6.21.0",
@@ -4796,6 +6520,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
"integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "6.21.0",
"@typescript-eslint/visitor-keys": "6.21.0"
@@ -4813,6 +6538,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
"integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/typescript-estree": "6.21.0",
"@typescript-eslint/utils": "6.21.0",
@@ -4840,6 +6566,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
"integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
@@ -4853,6 +6580,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
"integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/types": "6.21.0",
"@typescript-eslint/visitor-keys": "6.21.0",
@@ -4877,10 +6605,11 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -4893,6 +6622,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
"integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12",
@@ -4914,51 +6644,323 @@
}
},
"node_modules/@typescript-eslint/utils/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "dev": true
+ },
+ "node_modules/@unrs/resolver-binding-android-arm-eabi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz",
+ "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-android-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz",
+ "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz",
+ "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-darwin-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz",
+ "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-freebsd-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz",
+ "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz",
+ "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz",
+ "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz",
+ "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz",
+ "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz",
+ "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz",
+ "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz",
+ "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz",
+ "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz",
+ "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-linux-x64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz",
+ "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==",
+ "cpu": [
+ "x64"
+ ],
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
},
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
- "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+ "node_modules/@unrs/resolver-binding-wasm32-wasi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz",
+ "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==",
+ "cpu": [
+ "wasm32"
+ ],
"dev": true,
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "eslint-visitor-keys": "^3.4.1"
+ "@napi-rs/wasm-runtime": "^0.2.11"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
+ "node": ">=14.0.0"
}
},
- "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz",
+ "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==",
+ "cpu": [
+ "arm64"
+ ],
"dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
- "node_modules/@ungap/structured-clone": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
- "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
- "dev": true
+ "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz",
+ "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz",
+ "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
},
"node_modules/@vitejs/plugin-react": {
"version": "4.7.0",
@@ -5138,42 +7140,45 @@
}
},
"node_modules/@webpack-cli/configtest": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
- "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz",
+ "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=14.15.0"
+ "node": ">=18.12.0"
},
"peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
+ "webpack": "^5.82.0",
+ "webpack-cli": "6.x.x"
}
},
"node_modules/@webpack-cli/info": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
- "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz",
+ "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=14.15.0"
+ "node": ">=18.12.0"
},
"peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
+ "webpack": "^5.82.0",
+ "webpack-cli": "6.x.x"
}
},
"node_modules/@webpack-cli/serve": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
- "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz",
+ "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=14.15.0"
+ "node": ">=18.12.0"
},
"peerDependencies": {
- "webpack": "5.x.x",
- "webpack-cli": "5.x.x"
+ "webpack": "^5.82.0",
+ "webpack-cli": "6.x.x"
},
"peerDependenciesMeta": {
"webpack-dev-server": {
@@ -5181,124 +7186,334 @@
}
}
},
- "node_modules/@wordpress/api-fetch": {
- "version": "6.55.0",
- "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz",
- "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==",
+ "node_modules/@wordpress/babel-preset-default": {
+ "version": "8.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.38.0.tgz",
+ "integrity": "sha512-5DxPlGcB2EDpZjYI9FD1rOcYRaYuPr9EXNhDsiX+Mbxgj6ZZvWeJAT+E/8YlAOO969skUjxk/BIScQRSE99HbA==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/url": "^3.59.0"
+ "@babel/core": "7.25.7",
+ "@babel/plugin-syntax-import-attributes": "7.26.0",
+ "@babel/plugin-transform-react-jsx": "7.25.7",
+ "@babel/plugin-transform-runtime": "7.25.7",
+ "@babel/preset-env": "7.25.7",
+ "@babel/preset-typescript": "7.25.7",
+ "@wordpress/browserslist-config": "^6.38.0",
+ "@wordpress/warning": "^3.38.0",
+ "browserslist": "^4.21.10",
+ "core-js": "^3.31.0",
+ "react": "^18.3.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
- "node_modules/@wordpress/babel-plugin-import-jsx-pragma": {
- "version": "4.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.41.0.tgz",
- "integrity": "sha512-hYxj2Uobxk86ctlfaJou9v13XqXZ30yx4ZwRNu5cH5/LWXe2MIXBTPv7dUk6wqN/qFOjsFvP9jCB0NsW6MnkrA==",
+ "node_modules/@wordpress/babel-preset-default/node_modules/@babel/core": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
"engines": {
- "node": ">=14"
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@wordpress/babel-preset-default/node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
+ "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
},
"peerDependencies": {
- "@babel/core": "^7.12.9"
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/@wordpress/babel-preset-default": {
- "version": "7.42.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.42.0.tgz",
- "integrity": "sha512-AWSxWuEuzazt/nWomKiaVhYQeXuqxTniPCKhvks58wB3P4UXvSe3hRnO+nujz20IuxIk2xHT6x47HgpDZy30jw==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.16.0",
- "@babel/plugin-transform-react-jsx": "^7.16.0",
- "@babel/plugin-transform-runtime": "^7.16.0",
- "@babel/preset-env": "^7.16.0",
- "@babel/preset-typescript": "^7.16.0",
- "@babel/runtime": "^7.16.0",
- "@wordpress/babel-plugin-import-jsx-pragma": "^4.41.0",
- "@wordpress/browserslist-config": "^5.41.0",
- "@wordpress/warning": "^2.58.0",
- "browserslist": "^4.21.10",
- "core-js": "^3.31.0",
- "react": "^18.3.0"
+ "node_modules/@wordpress/babel-preset-default/node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz",
+ "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/plugin-syntax-jsx": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
- "node": ">=14"
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@wordpress/babel-preset-default/node_modules/@babel/preset-env": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.7.tgz",
+ "integrity": "sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.25.7",
+ "@babel/plugin-syntax-import-attributes": "^7.25.7",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.25.7",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.7",
+ "@babel/plugin-transform-async-to-generator": "^7.25.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.7",
+ "@babel/plugin-transform-block-scoping": "^7.25.7",
+ "@babel/plugin-transform-class-properties": "^7.25.7",
+ "@babel/plugin-transform-class-static-block": "^7.25.7",
+ "@babel/plugin-transform-classes": "^7.25.7",
+ "@babel/plugin-transform-computed-properties": "^7.25.7",
+ "@babel/plugin-transform-destructuring": "^7.25.7",
+ "@babel/plugin-transform-dotall-regex": "^7.25.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.7",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-dynamic-import": "^7.25.7",
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.7",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.7",
+ "@babel/plugin-transform-for-of": "^7.25.7",
+ "@babel/plugin-transform-function-name": "^7.25.7",
+ "@babel/plugin-transform-json-strings": "^7.25.7",
+ "@babel/plugin-transform-literals": "^7.25.7",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.7",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.7",
+ "@babel/plugin-transform-modules-amd": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.7",
+ "@babel/plugin-transform-modules-umd": "^7.25.7",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-new-target": "^7.25.7",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.7",
+ "@babel/plugin-transform-numeric-separator": "^7.25.7",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.7",
+ "@babel/plugin-transform-object-super": "^7.25.7",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.7",
+ "@babel/plugin-transform-optional-chaining": "^7.25.7",
+ "@babel/plugin-transform-parameters": "^7.25.7",
+ "@babel/plugin-transform-private-methods": "^7.25.7",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.7",
+ "@babel/plugin-transform-property-literals": "^7.25.7",
+ "@babel/plugin-transform-regenerator": "^7.25.7",
+ "@babel/plugin-transform-reserved-words": "^7.25.7",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.7",
+ "@babel/plugin-transform-spread": "^7.25.7",
+ "@babel/plugin-transform-sticky-regex": "^7.25.7",
+ "@babel/plugin-transform-template-literals": "^7.25.7",
+ "@babel/plugin-transform-typeof-symbol": "^7.25.7",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.7",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.7",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "core-js-compat": "^3.38.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@wordpress/babel-preset-default/node_modules/@babel/preset-typescript": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz",
+ "integrity": "sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-syntax-jsx": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-typescript": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@wordpress/babel-preset-default/node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.10.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
+ "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "core-js-compat": "^3.38.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
"node_modules/@wordpress/base-styles": {
- "version": "4.49.0",
- "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.49.0.tgz",
- "integrity": "sha512-yFRYqNtd26ULZ0oAHhCu/IcaA0XHI3E7kRCKajZqUvyRQj7YprXnpD3o0/pnwvF6ZFTXzCX8pXHjUc2TIv97ig==",
- "dev": true
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.14.0.tgz",
+ "integrity": "sha512-0NoWb5+gVGUMZ8RiAE4g4dJ08ZdSMrWdnt/fp//BclezTdOLepZPzZ9O6nDWLVdlNgnYLhPwK/t5jxOow5WRoA==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
},
"node_modules/@wordpress/browserslist-config": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.41.0.tgz",
- "integrity": "sha512-J7ejzzDpPZddVIiq2YiK8J/pNTJDy3X1s+5ZtwkwklCxBMZJurxf9pEhtbaf7us0Q6c1j8Ubv7Fpx3lqk2ypxA==",
+ "version": "6.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.38.0.tgz",
+ "integrity": "sha512-cLm8mg7jHdajpkuC0ohjy1/DWB7X/mrW8N5spA0ukKfj+CbJi7+PVFeeEPCjDLEybnlqrVCJ8VaLaxde+xU3UA==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
"node_modules/@wordpress/dependency-extraction-webpack-plugin": {
- "version": "4.31.0",
- "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.31.0.tgz",
- "integrity": "sha512-Xpm8EEhi6e8GL1juYh/70AFbcE/ZVXJ3p47KMkkEsn5t+hG9QHjKe2lTj98v2r3rB+ampoK+whdV1w6gItXYpw==",
+ "version": "6.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.38.0.tgz",
+ "integrity": "sha512-N/wjZ7Ne5D3ASXgEqKhLeAsbYPUtmSAXmyd31dMChIP6HnN9kuN+iyrxNR3COg2VoW7K9VAhwTzEEGQrOQv/rw==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "json2php": "^0.0.7",
- "webpack-sources": "^3.2.2"
+ "json2php": "^0.0.7"
},
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
- "webpack": "^4.8.3 || ^5.0.0"
+ "webpack": "^5.0.0"
}
},
- "node_modules/@wordpress/e2e-test-utils-playwright": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.16.0.tgz",
- "integrity": "sha512-CktRj5/Cc/pAvTHXIAPIMrmmnb0VjtXbTGSjYG6pW/JI2YAmpwY2yBA+DlHJjqOIpcjDDj+sSsJomRSxT2chwQ==",
+ "node_modules/@wordpress/dependency-extraction-webpack-plugin/node_modules/json2php": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz",
+ "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==",
+ "dev": true,
+ "license": "BSD"
+ },
+ "node_modules/@wordpress/element": {
+ "version": "6.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.38.0.tgz",
+ "integrity": "sha512-4N9xtuE2TIvaZ037fQREKrBw4TTt90PWswAfNFvxUVu5vdp91PLuR6rmeO0ohKg2CJLzozQLEKZF+6VuSaYowQ==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@wordpress/api-fetch": "^6.45.0",
- "@wordpress/keycodes": "^3.48.0",
- "@wordpress/url": "^3.49.0",
+ "@types/react": "^18.3.27",
+ "@types/react-dom": "^18.3.1",
+ "@wordpress/escape-html": "^3.38.0",
"change-case": "^4.1.2",
- "form-data": "^4.0.0",
- "get-port": "^5.1.1",
- "lighthouse": "^10.4.0",
- "mime": "^3.0.0",
- "web-vitals": "^3.5.0"
+ "is-plain-object": "^5.0.0",
+ "react": "^18.3.0",
+ "react-dom": "^18.3.0"
},
"engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "@playwright/test": ">=1"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
+ "node_modules/@wordpress/element/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@wordpress/escape-html": {
+ "version": "3.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.38.0.tgz",
+ "integrity": "sha512-LItqIdFnn/JAVEzTtvDZGJfsdmzeIE4ryMjovHkJhRElzcQWKHuq806DMprL40NcvJbdn0YfJZSv+aeP+9Ah3g==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
"node_modules/@wordpress/eslint-plugin": {
- "version": "17.13.0",
- "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-17.13.0.tgz",
- "integrity": "sha512-QnG5HmOd+XsweKOvrqbOugm9rINUjcsh1jo2SN4cbbTWZJ6nPmcfLS0YJdrKkgOQUnKDPQgBPVEyI8tp19OtBw==",
+ "version": "24.0.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-24.0.0.tgz",
+ "integrity": "sha512-FXf427hQNXymMxk+qvzejXLEnnn64aGNHBEDMUYpt4MJx98+Upo2uYG0JGWm5y/Aqm+rBlGgdyNsQjjSB+Q6pQ==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@babel/eslint-parser": "^7.16.0",
+ "@babel/eslint-parser": "7.25.7",
"@typescript-eslint/eslint-plugin": "^6.4.1",
"@typescript-eslint/parser": "^6.4.1",
- "@wordpress/babel-preset-default": "^7.40.0",
- "@wordpress/prettier-config": "^3.13.0",
+ "@wordpress/babel-preset-default": "^8.38.0",
+ "@wordpress/prettier-config": "^4.38.0",
+ "@wordpress/theme": "^0.5.0",
"cosmiconfig": "^7.0.0",
"eslint-config-prettier": "^8.3.0",
+ "eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-import": "^2.25.2",
- "eslint-plugin-jest": "^27.2.3",
+ "eslint-plugin-jest": "^27.4.3",
"eslint-plugin-jsdoc": "^46.4.6",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-playwright": "^0.15.3",
@@ -5309,14 +7524,14 @@
"requireindex": "^1.2.0"
},
"engines": {
- "node": ">=14",
- "npm": ">=6.14.4"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
"@babel/core": ">=7",
"eslint": ">=8",
"prettier": ">=3",
- "typescript": ">=4"
+ "typescript": ">=5"
},
"peerDependenciesMeta": {
"prettier": {
@@ -5332,6 +7547,7 @@
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
"integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/parse-json": "^4.0.0",
"import-fresh": "^3.2.1",
@@ -5343,185 +7559,203 @@
"node": ">=10"
}
},
- "node_modules/@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
+ "node_modules/@wordpress/eslint-plugin/node_modules/eslint-config-prettier": {
+ "version": "8.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz",
+ "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==",
"dev": true,
- "dependencies": {
- "@babel/runtime": "^7.16.0"
+ "license": "MIT",
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
},
- "engines": {
- "node": ">=12"
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
}
},
- "node_modules/@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
+ "node_modules/@wordpress/eslint-plugin/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
+ "type-fest": "^0.20.2"
},
- "bin": {
- "pot-to-php": "tools/pot-to-php.js"
+ "engines": {
+ "node": ">=8"
},
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@wordpress/eslint-plugin/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "license": "ISC",
"engines": {
- "node": ">=12"
+ "node": ">= 6"
}
},
"node_modules/@wordpress/jest-console": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.29.0.tgz",
- "integrity": "sha512-/9PZJhyszdRX4mka7t1WzoooM+Q/DwC4jkNVtJxqci5lbL3Lrhy1cCJGCgMr1n/9w+zs7eLmExFBvV4v44iyNw==",
+ "version": "8.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.38.0.tgz",
+ "integrity": "sha512-pRvWbxr/PHs2IsjsVvb9kBgqcxOcPnTN/baOmmEJFHVtOa5hp/ze6zbz/c18RCmrxWt5doRwHpfH84M/yivo2A==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@babel/runtime": "^7.16.0",
- "jest-matcher-utils": "^29.6.2"
+ "jest-matcher-utils": "^29.6.2",
+ "jest-mock": "^29.6.2"
},
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
"jest": ">=29"
}
},
"node_modules/@wordpress/jest-preset-default": {
- "version": "11.29.0",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.29.0.tgz",
- "integrity": "sha512-7LA0ZS5t0Thn7xrdwPL3hLgjB9LKloneGhMwnnDUTgJP330lyfdDfJ+O6Lnz3iL+bg68mkA3AzrT9Fs9f3WKww==",
+ "version": "12.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.38.0.tgz",
+ "integrity": "sha512-rAEYTMbpmfhYA5p3HmkhsTXM3rHq+4mdmt8xS5izXn5SzZdsHs+oa1Ej9COMi6xThpMN5i0+N+vz3HDzAMLCsg==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@wordpress/jest-console": "^7.29.0",
- "babel-jest": "^29.6.2"
+ "@wordpress/jest-console": "^8.38.0",
+ "babel-jest": "29.7.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
"@babel/core": ">=7",
"jest": ">=29"
}
},
- "node_modules/@wordpress/keycodes": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.58.0.tgz",
- "integrity": "sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@wordpress/npm-package-json-lint-config": {
- "version": "4.43.0",
- "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.43.0.tgz",
- "integrity": "sha512-XSb7AdDC7yGTBVYeRM4oqmOygEB+/+tk7lobLIGDmlZJs+M3F/NUvQq0Vcas1pojq2fyPYTUwOlu81ga33fNwQ==",
+ "version": "5.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.38.0.tgz",
+ "integrity": "sha512-/8oarSArKiN2ZUTCexn27YQLPXpxmNAYQEzgubmALtR5wGWnMwpCw9bt/+/cG6t6o1YaAN8ZOO3gattQYssYrA==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
"npm-package-json-lint": ">=6.0.0"
}
},
"node_modules/@wordpress/postcss-plugins-preset": {
- "version": "4.42.0",
- "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.42.0.tgz",
- "integrity": "sha512-5xmKF7IUsqS5JcmJlHKHq7RaR6ZpaLj3n9c+X0X0/Oo7ZCIGp6WeDQngx13sH4NJoKXrZ9g4n1rbzhEKeo/Wtg==",
+ "version": "5.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.38.0.tgz",
+ "integrity": "sha512-I8QFM8pPv04VTvakhIqRL5CU8s6Irf7onixBjXD95+ae3kmVJY548mp7cBU5MV9n92IZbGbwLjhaOIegS3QxfQ==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@wordpress/base-styles": "^4.49.0",
- "autoprefixer": "^10.2.5"
+ "@wordpress/base-styles": "^6.14.0",
+ "autoprefixer": "^10.4.20",
+ "postcss-import": "^16.1.1"
},
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
"postcss": "^8.0.0"
}
},
"node_modules/@wordpress/prettier-config": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.15.0.tgz",
- "integrity": "sha512-exC2rkEioTt//AnzPRyaaFv8FNYIvamPDytNol5bKQ6Qh65QSdZZE9V+GtRCrIPL7/Bq6xba03XuRVxl9TjtJg==",
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.38.0.tgz",
+ "integrity": "sha512-kWGpmmkIvvObtteeOBkZM3GiTOL8tBkccBJwIWV7kBIC71HrBERnvQZKga84QW5thdt+S0ccjBZk41saEGXavw==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"engines": {
- "node": ">=14"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
"prettier": ">=3"
}
},
+ "node_modules/@wordpress/private-apis": {
+ "version": "1.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.38.0.tgz",
+ "integrity": "sha512-6Hj9x3xJb64Xu/p2M4XA9fGeY2omTly2bb+Kayaa55eEZi6iXlcIhvv7UAdKhJ2PF9hfuENccgqhG7OrvaEEJg==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ }
+ },
"node_modules/@wordpress/scripts": {
- "version": "26.19.0",
- "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.19.0.tgz",
- "integrity": "sha512-m3QYlgpWRfIqCfU4jWKwGeA12Qkt6d9CMewEIxIBGVlEGd/sL5rU1fM7LKNBEbSPQpaOTWJApNGWPcW75Fwp+w==",
+ "version": "31.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-31.3.0.tgz",
+ "integrity": "sha512-gZiw7y3/tNbzxcW4IXBszyTzP7KkZivDGAvL01sJ1bcVTTuD4LyQ4MXhesCUYEYXPkSRNQh1Q4oAXk1FH3DlSQ==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@babel/core": "^7.16.0",
+ "@babel/core": "7.25.7",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
"@svgr/webpack": "^8.0.1",
- "@wordpress/babel-preset-default": "^7.32.0",
- "@wordpress/browserslist-config": "^5.31.0",
- "@wordpress/dependency-extraction-webpack-plugin": "^4.31.0",
- "@wordpress/e2e-test-utils-playwright": "^0.16.0",
- "@wordpress/eslint-plugin": "^17.5.0",
- "@wordpress/jest-preset-default": "^11.19.0",
- "@wordpress/npm-package-json-lint-config": "^4.33.0",
- "@wordpress/postcss-plugins-preset": "^4.32.0",
- "@wordpress/prettier-config": "^3.5.0",
- "@wordpress/stylelint-config": "^21.31.0",
+ "@wordpress/babel-preset-default": "^8.38.0",
+ "@wordpress/browserslist-config": "^6.38.0",
+ "@wordpress/dependency-extraction-webpack-plugin": "^6.38.0",
+ "@wordpress/e2e-test-utils-playwright": "^1.38.0",
+ "@wordpress/eslint-plugin": "^24.0.0",
+ "@wordpress/jest-preset-default": "^12.38.0",
+ "@wordpress/npm-package-json-lint-config": "^5.38.0",
+ "@wordpress/postcss-plugins-preset": "^5.38.0",
+ "@wordpress/prettier-config": "^4.38.0",
+ "@wordpress/stylelint-config": "^23.30.0",
"adm-zip": "^0.5.9",
- "babel-jest": "^29.6.2",
- "babel-loader": "^8.2.3",
+ "babel-jest": "29.7.0",
+ "babel-loader": "9.2.1",
"browserslist": "^4.21.10",
"chalk": "^4.0.0",
"check-node-version": "^4.1.0",
- "clean-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^10.2.0",
- "cross-spawn": "^5.1.0",
+ "cross-spawn": "^7.0.6",
"css-loader": "^6.2.0",
"cssnano": "^6.0.1",
"cwd": "^0.10.0",
"dir-glob": "^3.0.1",
- "eslint": "^8.3.0",
+ "eslint": "^8.57.1",
"expect-puppeteer": "^4.4.0",
"fast-glob": "^3.2.7",
"filenamify": "^4.2.0",
"jest": "^29.6.2",
- "jest-dev-server": "^9.0.1",
- "jest-environment-jsdom": "^29.6.2",
+ "jest-dev-server": "^10.1.4",
+ "jest-environment-jsdom": "^30.2.0",
"jest-environment-node": "^29.6.2",
+ "json2php": "^0.0.9",
"markdownlint-cli": "^0.31.1",
"merge-deep": "^3.0.3",
- "mini-css-extract-plugin": "^2.5.1",
+ "mini-css-extract-plugin": "^2.9.2",
"minimist": "^1.2.0",
"npm-package-json-lint": "^6.4.0",
"npm-packlist": "^3.0.0",
- "playwright-core": "1.39.0",
"postcss": "^8.4.5",
"postcss-loader": "^6.2.1",
"prettier": "npm:wp-prettier@3.0.3",
- "puppeteer-core": "^13.2.0",
+ "puppeteer-core": "^23.10.1",
"react-refresh": "^0.14.0",
"read-pkg-up": "^7.0.1",
"resolve-bin": "^0.4.0",
- "sass": "^1.35.2",
- "sass-loader": "^12.1.0",
+ "rtlcss": "^4.3.0",
+ "sass": "^1.54.0",
+ "sass-loader": "^16.0.3",
+ "schema-utils": "^4.2.0",
"source-map-loader": "^3.0.0",
- "stylelint": "^14.2.0",
- "terser-webpack-plugin": "^5.3.9",
+ "stylelint": "^16.8.2",
+ "terser-webpack-plugin": "^5.3.10",
"url-loader": "^4.1.1",
- "webpack": "^5.88.2",
+ "webpack": "^5.97.0",
"webpack-bundle-analyzer": "^4.9.1",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1"
@@ -5530,51 +7764,336 @@
"wp-scripts": "bin/wp-scripts.js"
},
"engines": {
- "node": ">=14",
- "npm": ">=6.14.4"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
},
"peerDependencies": {
- "@playwright/test": "^1.39.0",
+ "@playwright/test": "^1.57.0",
+ "@wordpress/env": "^10.0.0",
"react": "^18.0.0",
"react-dom": "^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@wordpress/env": {
+ "optional": true
+ }
}
},
- "node_modules/@wordpress/stylelint-config": {
- "version": "21.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.41.0.tgz",
- "integrity": "sha512-2wxFu8ICeRGF3Lxz7H7o2SU1u6pTI4mjuog39DgtCNb+v+f6yhgREDuNQEeti3Svb0rjj63AJ7r2CqLZk+EQIQ==",
+ "node_modules/@wordpress/scripts/node_modules/@babel/core": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/@types/node": {
+ "version": "20.19.30",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.30.tgz",
+ "integrity": "sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/@webpack-cli/configtest": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
+ "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/@webpack-cli/info": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
+ "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/@webpack-cli/serve": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
+ "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x",
+ "webpack-cli": "5.x.x"
+ },
+ "peerDependenciesMeta": {
+ "webpack-dev-server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/@wordpress/e2e-test-utils-playwright": {
+ "version": "1.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.38.0.tgz",
+ "integrity": "sha512-/3Qo6/N5BtCbQJJShy3pY5xr68OkMctouYcz1mvL8Q8tMO1fdiZTlJvU9bSMwdM1G1NEbE8pa/9q2F1Va/2S2A==",
+ "dev": true,
+ "license": "GPL-2.0-or-later",
+ "dependencies": {
+ "change-case": "^4.1.2",
+ "get-port": "^5.1.1",
+ "lighthouse": "^12.2.2",
+ "mime": "^3.0.0",
+ "web-vitals": "^4.2.1"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "@playwright/test": ">=1",
+ "@types/node": "^20.17.10"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "stylelint-config-recommended": "^6.0.0",
- "stylelint-config-recommended-scss": "^5.0.2"
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/prettier": {
+ "name": "wp-prettier",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz",
+ "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "prettier": "bin/prettier.cjs"
},
"engines": {
"node": ">=14"
},
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@wordpress/scripts/node_modules/webpack-cli": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
+ "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@discoveryjs/json-ext": "^0.5.0",
+ "@webpack-cli/configtest": "^2.1.1",
+ "@webpack-cli/info": "^2.0.2",
+ "@webpack-cli/serve": "^2.0.5",
+ "colorette": "^2.0.14",
+ "commander": "^10.0.1",
+ "cross-spawn": "^7.0.3",
+ "envinfo": "^7.7.3",
+ "fastest-levenshtein": "^1.0.12",
+ "import-local": "^3.0.2",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
+ "webpack-merge": "^5.7.3"
+ },
+ "bin": {
+ "webpack-cli": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "5.x.x"
+ },
+ "peerDependenciesMeta": {
+ "@webpack-cli/generators": {
+ "optional": true
+ },
+ "webpack-bundle-analyzer": {
+ "optional": true
+ },
+ "webpack-dev-server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@wordpress/scripts/node_modules/webpack-merge": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
+ "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "flat": "^5.0.2",
+ "wildcard": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@wordpress/stylelint-config": {
+ "version": "23.30.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.30.0.tgz",
+ "integrity": "sha512-35s8w52ZxTVkvllBSCMbV2cFLQjHd+8FzROUIBW0OaUlZum3bQXnz2I3Q71e6fG2/jXvXVrHRh45P2oIhWnKPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@stylistic/stylelint-plugin": "^3.0.1",
+ "@wordpress/theme": "^0.5.0",
+ "stylelint-config-recommended": "^14.0.1",
+ "stylelint-config-recommended-scss": "^14.1.0"
+ },
+ "engines": {
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
"peerDependencies": {
- "stylelint": "^14.2"
+ "stylelint": "^16.8.2",
+ "stylelint-scss": "^6.4.0"
}
},
- "node_modules/@wordpress/url": {
- "version": "3.59.0",
- "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.59.0.tgz",
- "integrity": "sha512-GxvoMjYCav0w4CiX0i0h3qflrE/9rhLIZg5aPCQjbrBdwTxYR3Exfw0IJYcmVaTKXQOUU8fOxlDxULsbLmKe9w==",
+ "node_modules/@wordpress/theme": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.5.0.tgz",
+ "integrity": "sha512-6V14snLXUqVs3fBPmGJhWkgtWcrwEe7vUS04nTl7hyI5uyL+N7LXRldWTjnzwaQL0ywBIx4u13gJU/GZqOc8dQ==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"dependencies": {
- "@babel/runtime": "^7.16.0",
- "remove-accents": "^0.5.0"
+ "@wordpress/element": "^6.38.0",
+ "@wordpress/private-apis": "^1.38.0",
+ "colorjs.io": "^0.6.0",
+ "memize": "^2.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0",
+ "stylelint": "^16.8.2"
+ },
+ "peerDependenciesMeta": {
+ "stylelint": {
+ "optional": true
+ }
}
},
"node_modules/@wordpress/warning": {
- "version": "2.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.58.0.tgz",
- "integrity": "sha512-9bZlORhyMY2nbWozeyC5kqJsFzEPP4DCLhGmjtbv+YWGHttUrxUZEfrKdqO+rUODA8rP5zeIly1nCQOUnkw4Lg==",
+ "version": "3.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.38.0.tgz",
+ "integrity": "sha512-4eHJoNC/Ofrp+hOIf/2KqSoyIZLFIoyAhfTBrFxq3bGKNFJlOEHAJ3+tGiy77Ja93uQzrSWctZsH1CpSRYKkng==",
"dev": true,
+ "license": "GPL-2.0-or-later",
"engines": {
- "node": ">=12"
+ "node": ">=18.12.0",
+ "npm": ">=8.19.2"
}
},
"node_modules/@xstate/fsm": {
@@ -5607,6 +8126,7 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
@@ -5620,6 +8140,7 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -5636,14 +8157,14 @@
"node": ">=0.4.0"
}
},
- "node_modules/acorn-globals": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz",
- "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==",
+ "node_modules/acorn-import-attributes": {
+ "version": "1.9.5",
+ "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
+ "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
"dev": true,
- "dependencies": {
- "acorn": "^8.1.0",
- "acorn-walk": "^8.0.2"
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^8"
}
},
"node_modules/acorn-import-phases": {
@@ -5689,15 +8210,13 @@
}
},
"node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
"dev": true,
- "dependencies": {
- "debug": "4"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 6.0.0"
+ "node": ">= 14"
}
},
"node_modules/ajv": {
@@ -5721,6 +8240,7 @@
"resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
"integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"ajv": ">=5.0.0"
}
@@ -5778,6 +8298,7 @@
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -5787,6 +8308,7 @@
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
"integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"type-fest": "^0.21.3"
},
@@ -5802,6 +8324,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
"integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -5829,6 +8352,7 @@
"engines": [
"node >= 0.8.0"
],
+ "license": "Apache-2.0",
"bin": {
"ansi-html": "bin/ansi-html"
}
@@ -5875,6 +8399,7 @@
"resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
"integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=14"
}
@@ -5884,16 +8409,11 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
},
- "node_modules/argparse/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
"node_modules/aria-query": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
@@ -5932,7 +8452,8 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/array-includes": {
"version": "3.1.9",
@@ -5961,19 +8482,11 @@
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/array.prototype.findlast": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
@@ -5999,6 +8512,7 @@
"resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
"integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.8",
"call-bound": "^1.0.4",
@@ -6093,15 +8607,32 @@
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/asn1js": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz",
+ "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "pvtsutils": "^1.3.6",
+ "pvutils": "^1.1.3",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/ast-types": {
"version": "0.13.4",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
"integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tslib": "^2.0.1"
},
@@ -6120,6 +8651,7 @@
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -6137,12 +8669,24 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/atomically": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.0.tgz",
+ "integrity": "sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "stubborn-fs": "^2.0.0",
+ "when-exit": "^2.1.4"
+ }
},
"node_modules/autoprefixer": {
- "version": "10.4.21",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
- "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
+ "version": "10.4.23",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz",
+ "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==",
"dev": true,
"funding": [
{
@@ -6158,11 +8702,11 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"dependencies": {
- "browserslist": "^4.24.4",
- "caniuse-lite": "^1.0.30001702",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001760",
+ "fraction.js": "^5.3.4",
"picocolors": "^1.1.1",
"postcss-value-parser": "^4.2.0"
},
@@ -6176,6 +8720,71 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/autoprefixer/node_modules/browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/autoprefixer/node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
@@ -6201,10 +8810,11 @@
}
},
"node_modules/axios": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
- "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz",
+ "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.4",
@@ -6225,6 +8835,7 @@
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
"integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/transform": "^29.7.0",
"@types/babel__core": "^7.1.14",
@@ -6242,40 +8853,21 @@
}
},
"node_modules/babel-loader": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz",
- "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz",
+ "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.4",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
+ "find-cache-dir": "^4.0.0",
+ "schema-utils": "^4.0.0"
},
"engines": {
- "node": ">= 8.9"
+ "node": ">= 14.15.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0",
- "webpack": ">=2"
- }
- },
- "node_modules/babel-loader/node_modules/schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 8.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "@babel/core": "^7.12.0",
+ "webpack": ">=5"
}
},
"node_modules/babel-plugin-istanbul": {
@@ -6283,6 +8875,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
"integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@istanbuljs/load-nyc-config": "^1.0.0",
@@ -6299,6 +8892,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
"integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.3.3",
"@babel/types": "^7.3.3",
@@ -6353,6 +8947,7 @@
"resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
"integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-bigint": "^7.8.3",
@@ -6379,6 +8974,7 @@
"resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
"integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"babel-plugin-jest-hoist": "^29.6.3",
"babel-preset-current-node-syntax": "^1.0.0"
@@ -6397,11 +8993,101 @@
"dev": true
},
"node_modules/bare-events": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.6.1.tgz",
- "integrity": "sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==",
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz",
+ "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==",
"dev": true,
- "optional": true
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "bare-abort-controller": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-fs": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.2.tgz",
+ "integrity": "sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-events": "^2.5.4",
+ "bare-path": "^3.0.0",
+ "bare-stream": "^2.6.4",
+ "bare-url": "^2.2.2",
+ "fast-fifo": "^1.3.2"
+ },
+ "engines": {
+ "bare": ">=1.16.0"
+ },
+ "peerDependencies": {
+ "bare-buffer": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-buffer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-os": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz",
+ "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "bare": ">=1.14.0"
+ }
+ },
+ "node_modules/bare-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
+ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-os": "^3.0.1"
+ }
+ },
+ "node_modules/bare-stream": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz",
+ "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "streamx": "^2.21.0"
+ },
+ "peerDependencies": {
+ "bare-buffer": "*",
+ "bare-events": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-buffer": {
+ "optional": true
+ },
+ "bare-events": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-url": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz",
+ "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-path": "^3.0.0"
+ }
},
"node_modules/base64-arraybuffer": {
"version": "1.0.2",
@@ -6430,22 +9116,25 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/baseline-browser-mapping": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.3.tgz",
- "integrity": "sha512-mcE+Wr2CAhHNWxXN/DdTI+n4gsPc5QpXpWnyCQWiQYIYZX+ZMJ8juXZgjRa/0/YPJo/NSsgW15/YgmI4nbysYw==",
+ "version": "2.9.15",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz",
+ "integrity": "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.js"
}
},
"node_modules/basic-ftp": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
- "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.1.0.tgz",
+ "integrity": "sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10.0.0"
}
@@ -6454,7 +9143,8 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
"integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/big.js": {
"version": "5.2.2",
@@ -6477,35 +9167,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dev": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
"node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "version": "1.20.4",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
+ "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
+ "bytes": "~3.1.2",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
+ "destroy": "~1.2.0",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "on-finished": "~2.4.1",
+ "qs": "~6.14.0",
+ "raw-body": "~2.5.3",
"type-is": "~1.6.18",
- "unpipe": "1.0.0"
+ "unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8",
@@ -6517,6 +9197,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -6526,6 +9207,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -6537,13 +9219,15 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/bonjour-service": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz",
"integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"multicast-dns": "^7.2.5"
@@ -6560,6 +9244,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0"
}
@@ -6614,6 +9299,7 @@
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
"integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"node-int64": "^0.4.0"
}
@@ -6637,6 +9323,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
@@ -6647,6 +9334,7 @@
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
"integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
}
@@ -6662,6 +9350,7 @@
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
"integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -6669,15 +9358,66 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/bundle-name": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "run-applescript": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
+ "node_modules/bytestreamjs": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz",
+ "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/cacheable": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.2.tgz",
+ "integrity": "sha512-w+ZuRNmex9c1TR9RcsxbfTKCjSL0rh1WA5SABbrWprIHeNBdmyQLSYonlDy9gpD+63XT8DgZ/wNh1Smvc9WnJA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cacheable/memory": "^2.0.7",
+ "@cacheable/utils": "^2.3.3",
+ "hookified": "^1.15.0",
+ "keyv": "^5.5.5",
+ "qified": "^0.6.0"
+ }
+ },
+ "node_modules/cacheable/node_modules/keyv": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz",
+ "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@keyv/serialize": "^1.1.1"
+ }
+ },
"node_modules/call-bind": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
@@ -6739,6 +9479,7 @@
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
"integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pascal-case": "^3.1.2",
"tslib": "^2.0.3"
@@ -6761,6 +9502,7 @@
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
"integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"camelcase": "^5.3.1",
"map-obj": "^4.0.0",
@@ -6778,6 +9520,7 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -6795,9 +9538,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001741",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz",
- "integrity": "sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==",
+ "version": "1.0.30001765",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001765.tgz",
+ "integrity": "sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==",
"dev": true,
"funding": [
{
@@ -6812,13 +9555,15 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/capital-case": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
"integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
"tslib": "^2.0.3",
@@ -6846,6 +9591,7 @@
"resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz",
"integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"camel-case": "^4.1.2",
"capital-case": "^1.0.4",
@@ -6866,6 +9612,7 @@
"resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
@@ -6918,30 +9665,54 @@
"url": "https://paulmillr.com/funding/"
}
},
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
"node_modules/chrome-launcher": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
- "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.2.1.tgz",
+ "integrity": "sha512-qmFR5PLMzHyuNJHwOloHPAHhbaNglkfeV/xDtt5b7xiFFyU1I+AZZX0PYseMuhenJSSirgxELYIbswcoc+5H4A==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"@types/node": "*",
"escape-string-regexp": "^4.0.0",
"is-wsl": "^2.2.0",
- "lighthouse-logger": "^1.0.0"
+ "lighthouse-logger": "^2.0.1"
},
"bin": {
- "print-chrome-path": "bin/print-chrome-path.js"
+ "print-chrome-path": "bin/print-chrome-path.cjs"
},
"engines": {
"node": ">=12.13.0"
}
},
+ "node_modules/chrome-launcher/node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/chrome-launcher/node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/chrome-trace-event": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
@@ -6951,6 +9722,20 @@
"node": ">=6.0"
}
},
+ "node_modules/chromium-bidi": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz",
+ "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "mitt": "3.0.1",
+ "zod": "3.23.8"
+ },
+ "peerDependencies": {
+ "devtools-protocol": "*"
+ }
+ },
"node_modules/ci-info": {
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
@@ -6962,6 +9747,7 @@
"url": "https://github.com/sponsors/sibiraj-s"
}
],
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -6970,7 +9756,8 @@
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
"integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/clean-css": {
"version": "5.3.3",
@@ -7075,27 +9862,12 @@
"node": ">=0.10.0"
}
},
- "node_modules/clean-webpack-plugin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
- "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
- "dev": true,
- "dependencies": {
- "@types/webpack": "^4.4.31",
- "del": "^4.1.1"
- },
- "engines": {
- "node": ">=8.9.0"
- },
- "peerDependencies": {
- "webpack": "*"
- }
- },
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
@@ -7126,16 +9898,18 @@
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"iojs": ">= 1.0.0",
"node": ">= 0.12.0"
}
},
"node_modules/collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
- "dev": true
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
+ "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/color-convert": {
"version": "2.0.1",
@@ -7167,11 +9941,23 @@
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"dev": true
},
+ "node_modules/colorjs.io": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz",
+ "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/color"
+ }
+ },
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -7184,6 +9970,7 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=18"
}
@@ -7193,21 +9980,24 @@
"resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
"integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 12.0.0"
}
},
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
+ "node_modules/common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/compressible": {
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mime-db": ">= 1.43.0 < 2"
},
@@ -7220,6 +10010,7 @@
"resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
"integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"bytes": "3.1.2",
"compressible": "~2.0.18",
@@ -7238,6 +10029,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -7246,7 +10038,8 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/concat-map": {
"version": "0.0.1",
@@ -7255,32 +10048,22 @@
"dev": true
},
"node_modules/configstore": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
- "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.1.0.tgz",
+ "integrity": "sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "dot-prop": "^5.2.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^3.0.0",
- "unique-string": "^2.0.0",
- "write-file-atomic": "^3.0.0",
- "xdg-basedir": "^4.0.0"
+ "atomically": "^2.0.3",
+ "dot-prop": "^9.0.0",
+ "graceful-fs": "^4.2.11",
+ "xdg-basedir": "^5.1.0"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/configstore/node_modules/write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/connect-history-api-fallback": {
@@ -7288,6 +10071,7 @@
"resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
"integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.8"
}
@@ -7297,6 +10081,7 @@
"resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz",
"integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
"tslib": "^2.0.3",
@@ -7308,6 +10093,7 @@
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "5.2.1"
},
@@ -7320,6 +10106,7 @@
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -7331,19 +10118,21 @@
"dev": true
},
"node_modules/cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/copy-webpack-plugin": {
"version": "10.2.4",
@@ -7414,11 +10203,12 @@
}
},
"node_modules/core-js": {
- "version": "3.45.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz",
- "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==",
+ "version": "3.47.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz",
+ "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -7452,7 +10242,8 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cosmiconfig": {
"version": "8.3.6",
@@ -7487,10 +10278,11 @@
"dev": true
},
"node_modules/cosmiconfig/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -7503,6 +10295,7 @@
"resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
"integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
@@ -7537,11 +10330,12 @@
"yarn": ">=1"
}
},
- "node_modules/cross-env/node_modules/cross-spawn": {
+ "node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -7551,92 +10345,12 @@
"node": ">= 8"
}
},
- "node_modules/cross-env/node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cross-env/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cross-env/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
- "dev": true,
- "dependencies": {
- "node-fetch": "2.6.7"
- }
- },
- "node_modules/cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
- "node_modules/cross-spawn/node_modules/lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
- "dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "node_modules/cross-spawn/node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
- "dev": true
- },
- "node_modules/crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/csp_evaluator": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz",
- "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==",
- "dev": true
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.5.tgz",
+ "integrity": "sha512-EL/iN9etCTzw/fBnp0/uj0f5BOOGvZut2mzsiiBZ/FdT6gFQCKRO/tmcKOxn5drWZ2Ndm/xBb1SI4zwWbGtmIw==",
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/css-declaration-sorter": {
"version": "7.2.0",
@@ -7655,6 +10369,7 @@
"resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz",
"integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12 || >=16"
}
@@ -7868,35 +10583,33 @@
"integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
"dev": true
},
- "node_modules/cssom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
- "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
- "dev": true
- },
"node_modules/cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
+ "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "cssom": "~0.3.6"
+ "@asamuzakjp/css-color": "^3.2.0",
+ "rrweb-cssom": "^0.8.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
}
},
- "node_modules/cssstyle/node_modules/cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/cwd": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
"integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-pkg": "^0.1.2",
"fs-exists-sync": "^0.1.0"
@@ -7916,22 +10629,23 @@
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
"integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 14"
}
},
"node_modules/data-urls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
- "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/data-view-buffer": {
@@ -8013,6 +10727,7 @@
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -8022,6 +10737,7 @@
"resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
"integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"decamelize": "^1.1.0",
"map-obj": "^1.0.0"
@@ -8038,6 +10754,7 @@
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
"integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -8046,13 +10763,15 @@
"version": "10.6.0",
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
"integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/dedent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz",
- "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==",
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz",
+ "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"babel-plugin-macros": "^3.1.0"
},
@@ -8086,16 +10805,34 @@
"node": ">=0.10.0"
}
},
- "node_modules/default-gateway": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
- "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "node_modules/default-browser": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz",
+ "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "execa": "^5.0.0"
+ "bundle-name": "^4.1.0",
+ "default-browser-id": "^5.0.0"
},
"engines": {
- "node": ">= 10"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser-id": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/define-data-property": {
@@ -8116,12 +10853,16 @@
}
},
"node_modules/define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/define-properties": {
@@ -8146,6 +10887,7 @@
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz",
"integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ast-types": "^0.13.4",
"escodegen": "^2.1.0",
@@ -8155,66 +10897,12 @@
"node": ">= 14"
}
},
- "node_modules/del": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
- "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
- "dev": true,
- "dependencies": {
- "@types/glob": "^7.1.1",
- "globby": "^6.1.0",
- "is-path-cwd": "^2.0.0",
- "is-path-in-cwd": "^2.0.0",
- "p-map": "^2.0.0",
- "pify": "^4.0.1",
- "rimraf": "^2.6.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/del/node_modules/array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
- "dev": true,
- "dependencies": {
- "array-uniq": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/del/node_modules/globby": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
- "dev": true,
- "dependencies": {
- "array-union": "^1.0.1",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/del/node_modules/globby/node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
@@ -8224,6 +10912,7 @@
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -8233,6 +10922,7 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
@@ -8256,6 +10946,7 @@
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8264,19 +10955,22 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
"integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/devtools-protocol": {
- "version": "0.0.1155343",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1155343.tgz",
- "integrity": "sha512-oD9vGBV2wTc7fAzAM6KC0chSgs234V8+qDEeK+mcbRj2UvcuA7lgBztGi/opj/iahcXD3BSj8Ymvib628yy9FA==",
- "dev": true
+ "version": "0.0.1367902",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz",
+ "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/diff-sequences": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
"integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
@@ -8298,6 +10992,7 @@
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
"integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@leichtgewicht/ip-codec": "^2.0.1"
},
@@ -8343,19 +11038,6 @@
}
]
},
- "node_modules/domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "deprecated": "Use your platform's native DOMException instead",
- "dev": true,
- "dependencies": {
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
@@ -8396,15 +11078,32 @@
}
},
"node_modules/dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz",
+ "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-obj": "^2.0.0"
+ "type-fest": "^4.18.2"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dot-prop/node_modules/type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/dunder-proto": {
@@ -8431,19 +11130,22 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.5.218",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.218.tgz",
- "integrity": "sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==",
- "dev": true
+ "version": "1.5.267",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
+ "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
+ "dev": true,
+ "license": "ISC"
},
"node_modules/emittery": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
"integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
},
@@ -8471,24 +11173,17 @@
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
- "node_modules/encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "dev": true,
- "dependencies": {
- "iconv-lite": "^0.6.2"
- }
- },
"node_modules/end-of-stream": {
"version": "1.4.5",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
"integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"once": "^1.4.0"
}
@@ -8511,6 +11206,7 @@
"resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
"integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-colors": "^4.1.1",
"strip-ansi": "^6.0.1"
@@ -8531,6 +11227,16 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/envinfo": {
"version": "7.14.0",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz",
@@ -8737,9 +11443,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
@@ -8747,32 +11453,35 @@
"esbuild": "bin/esbuild"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "@esbuild/aix-ppc64": "0.25.12",
+ "@esbuild/android-arm": "0.25.12",
+ "@esbuild/android-arm64": "0.25.12",
+ "@esbuild/android-x64": "0.25.12",
+ "@esbuild/darwin-arm64": "0.25.12",
+ "@esbuild/darwin-x64": "0.25.12",
+ "@esbuild/freebsd-arm64": "0.25.12",
+ "@esbuild/freebsd-x64": "0.25.12",
+ "@esbuild/linux-arm": "0.25.12",
+ "@esbuild/linux-arm64": "0.25.12",
+ "@esbuild/linux-ia32": "0.25.12",
+ "@esbuild/linux-loong64": "0.25.12",
+ "@esbuild/linux-mips64el": "0.25.12",
+ "@esbuild/linux-ppc64": "0.25.12",
+ "@esbuild/linux-riscv64": "0.25.12",
+ "@esbuild/linux-s390x": "0.25.12",
+ "@esbuild/linux-x64": "0.25.12",
+ "@esbuild/netbsd-arm64": "0.25.12",
+ "@esbuild/netbsd-x64": "0.25.12",
+ "@esbuild/openbsd-arm64": "0.25.12",
+ "@esbuild/openbsd-x64": "0.25.12",
+ "@esbuild/openharmony-arm64": "0.25.12",
+ "@esbuild/sunos-x64": "0.25.12",
+ "@esbuild/win32-arm64": "0.25.12",
+ "@esbuild/win32-ia32": "0.25.12",
+ "@esbuild/win32-x64": "0.25.12"
}
},
"node_modules/escalade": {
@@ -8788,7 +11497,8 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/escape-string-regexp": {
"version": "4.0.0",
@@ -8807,6 +11517,7 @@
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
"integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"esprima": "^4.0.1",
"estraverse": "^5.2.0",
@@ -8828,6 +11539,7 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "license": "BSD-3-Clause",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -8890,10 +11602,11 @@
}
},
"node_modules/eslint-config-prettier": {
- "version": "8.10.2",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz",
- "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==",
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz",
+ "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==",
"dev": true,
+ "license": "MIT",
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
@@ -8901,11 +11614,37 @@
"eslint": ">=7.0.0"
}
},
+ "node_modules/eslint-import-context": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz",
+ "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-tsconfig": "^4.10.1",
+ "stable-hash-x": "^0.2.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-import-context"
+ },
+ "peerDependencies": {
+ "unrs-resolver": "^1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "unrs-resolver": {
+ "optional": true
+ }
+ }
+ },
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
"integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^3.2.7",
"is-core-module": "^2.13.0",
@@ -8917,15 +11656,52 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
+ "node_modules/eslint-import-resolver-typescript": {
+ "version": "4.4.4",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.4.tgz",
+ "integrity": "sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "debug": "^4.4.1",
+ "eslint-import-context": "^0.1.8",
+ "get-tsconfig": "^4.10.1",
+ "is-bun-module": "^2.0.0",
+ "stable-hash-x": "^0.2.0",
+ "tinyglobby": "^0.2.14",
+ "unrs-resolver": "^1.7.11"
+ },
+ "engines": {
+ "node": "^16.17.0 || >=18.6.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-import-resolver-typescript"
+ },
+ "peerDependencies": {
+ "eslint": "*",
+ "eslint-plugin-import": "*",
+ "eslint-plugin-import-x": "*"
+ },
+ "peerDependenciesMeta": {
+ "eslint-plugin-import": {
+ "optional": true
+ },
+ "eslint-plugin-import-x": {
+ "optional": true
+ }
+ }
+ },
"node_modules/eslint-module-utils": {
"version": "2.12.1",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",
"integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^3.2.7"
},
@@ -8943,6 +11719,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
@@ -8952,6 +11729,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz",
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@rtsao/scc": "^1.1.0",
"array-includes": "^3.1.9",
@@ -8985,6 +11763,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -8995,6 +11774,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
@@ -9004,6 +11784,7 @@
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -9016,6 +11797,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -9028,6 +11810,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz",
"integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/utils": "^5.10.0"
},
@@ -9053,6 +11836,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
"integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"@typescript-eslint/visitor-keys": "5.62.0"
@@ -9070,6 +11854,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
"integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -9083,6 +11868,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
"integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"@typescript-eslint/visitor-keys": "5.62.0",
@@ -9110,6 +11896,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
"integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@types/json-schema": "^7.0.9",
@@ -9136,6 +11923,7 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
"integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@typescript-eslint/types": "5.62.0",
"eslint-visitor-keys": "^3.3.0"
@@ -9153,6 +11941,7 @@
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -9161,10 +11950,11 @@
}
},
"node_modules/eslint-plugin-jest/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -9177,6 +11967,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.10.1.tgz",
"integrity": "sha512-x8wxIpv00Y50NyweDUpa+58ffgSAI5sqe+zcZh33xphD0AVh+1kqr1ombaTRb7Fhpove1zfUuujlX9DWWBP5ag==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@es-joy/jsdoccomment": "~0.41.0",
"are-docs-informative": "^0.0.2",
@@ -9196,10 +11987,11 @@
}
},
"node_modules/eslint-plugin-jsdoc/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -9263,6 +12055,7 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-playwright/-/eslint-plugin-playwright-0.15.3.tgz",
"integrity": "sha512-LQMW5y0DLK5Fnpya7JR1oAYL2/7Y9wDiYw6VZqlKqcRGSgjbVKNqxraphk7ra1U3Bb5EK444xMgUlQPbMg2M1g==",
"dev": true,
+ "license": "MIT",
"peerDependencies": {
"eslint": ">=7",
"eslint-plugin-jest": ">=25"
@@ -9274,13 +12067,14 @@
}
},
"node_modules/eslint-plugin-prettier": {
- "version": "5.5.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz",
- "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==",
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz",
+ "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.11.7"
+ "prettier-linter-helpers": "^1.0.1",
+ "synckit": "^0.11.12"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -9425,6 +12219,7 @@
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
"integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10"
}
@@ -9445,20 +12240,6 @@
"concat-map": "0.0.1"
}
},
- "node_modules/eslint/node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/eslint/node_modules/eslint-scope": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
@@ -9503,11 +12284,28 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/eslint/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -9557,42 +12355,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/espree": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
@@ -9627,6 +12389,7 @@
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
+ "license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
@@ -9682,6 +12445,7 @@
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -9690,7 +12454,8 @@
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/events": {
"version": "3.3.0",
@@ -9701,11 +12466,22 @@
"node": ">=0.8.x"
}
},
+ "node_modules/events-universal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
+ "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.7.0"
+ }
+ },
"node_modules/execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
"get-stream": "^6.0.0",
@@ -9724,56 +12500,6 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/execa/node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/execa/node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/execa/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/execa/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -9788,6 +12514,7 @@
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz",
"integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"os-homedir": "^1.0.1"
},
@@ -9800,6 +12527,7 @@
"resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
"integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/expect-utils": "^29.7.0",
"jest-get-type": "^29.6.3",
@@ -9818,39 +12546,40 @@
"dev": true
},
"node_modules/express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
+ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
+ "body-parser": "~1.20.3",
+ "content-disposition": "~0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
+ "cookie": "~0.7.1",
+ "cookie-signature": "~1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "finalhandler": "~1.3.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.0",
"merge-descriptors": "1.0.3",
"methods": "~1.1.2",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
+ "path-to-regexp": "~0.1.12",
"proxy-addr": "~2.0.7",
- "qs": "6.13.0",
+ "qs": "~6.14.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
+ "send": "~0.19.0",
+ "serve-static": "~1.16.2",
"setprototypeof": "1.2.0",
- "statuses": "2.0.1",
+ "statuses": "~2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
@@ -9863,20 +12592,12 @@
"url": "https://opencollective.com/express"
}
},
- "node_modules/express/node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -9885,13 +12606,15 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/extract-zip": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"debug": "^4.1.1",
"get-stream": "^5.1.0",
@@ -9912,6 +12635,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pump": "^3.0.0"
},
@@ -9932,13 +12656,15 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
"integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/fast-fifo": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/fast-glob": {
"version": "3.3.3",
@@ -10019,6 +12745,7 @@
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
"integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"websocket-driver": ">=0.5.1"
},
@@ -10031,6 +12758,7 @@
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
"integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"bser": "2.1.1"
}
@@ -10040,6 +12768,7 @@
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
"integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"pend": "~1.2.0"
}
@@ -10095,17 +12824,18 @@
}
},
"node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "statuses": "2.0.1",
+ "statuses": "~2.0.2",
"unpipe": "~1.0.0"
},
"engines": {
@@ -10117,6 +12847,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -10125,23 +12856,128 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
+ "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
+ "common-path-prefix": "^3.0.0",
+ "pkg-dir": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^6.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
+ "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-cache-dir/node_modules/yocto-queue": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
+ "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-file-up": {
@@ -10149,6 +12985,7 @@
"resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz",
"integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fs-exists-sync": "^0.1.0",
"resolve-dir": "^0.1.0"
@@ -10168,6 +13005,7 @@
"resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz",
"integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-file-up": "^0.1.2"
},
@@ -10180,6 +13018,7 @@
"resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.11.tgz",
"integrity": "sha512-mAOh9gGk9WZ4ip5UjV0o6Vb4SrfnAmtsFNzkMRH9HQiFXVQnDyQFrSHTK5UoG6E+KV+s+cIznbtwpfN41l2nFA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "~4.1.2",
"commander": "^12.1.0",
@@ -10207,6 +13046,7 @@
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
"integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
"dev": true,
+ "license": "BSD-3-Clause",
"bin": {
"flat": "cli.js"
}
@@ -10258,6 +13098,7 @@
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
+ "license": "MIT",
"engines": {
"node": ">=4.0"
},
@@ -10304,10 +13145,11 @@
}
},
"node_modules/form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -10324,20 +13166,29 @@
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
+ "node_modules/forwarded-parse": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz",
+ "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
},
"funding": {
- "type": "patreon",
+ "type": "github",
"url": "https://github.com/sponsors/rawify"
}
},
@@ -10346,31 +13197,21 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
- "node_modules/fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "dev": true
- },
"node_modules/fs-exists-sync": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
"integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/fs-monkey": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz",
- "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==",
- "dev": true
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -10443,6 +13284,7 @@
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
@@ -10476,6 +13318,7 @@
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
"integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.0.0"
}
@@ -10485,6 +13328,7 @@
"resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
"integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -10522,6 +13366,7 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -10546,11 +13391,25 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-tsconfig": {
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz",
+ "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
"node_modules/get-uri": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz",
"integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"basic-ftp": "^5.0.2",
"data-uri-to-buffer": "^6.0.2",
@@ -10560,16 +13419,6 @@
"node": ">= 14"
}
},
- "node_modules/gettext-parser": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz",
- "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==",
- "dev": true,
- "dependencies": {
- "encoding": "^0.1.12",
- "safe-buffer": "^5.1.1"
- }
- },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -10603,6 +13452,23 @@
"node": ">=10.13.0"
}
},
+ "node_modules/glob-to-regex.js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz",
+ "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
+ }
+ },
"node_modules/glob-to-regexp": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
@@ -10636,6 +13502,7 @@
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz",
"integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"global-prefix": "^0.1.4",
"is-windows": "^0.2.0"
@@ -10649,6 +13516,7 @@
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz",
"integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"homedir-polyfill": "^1.0.0",
"ini": "^1.3.4",
@@ -10659,16 +13527,26 @@
"node": ">=0.10.0"
}
},
- "node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "node_modules/global-prefix/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "type-fest": "^0.20.2"
+ "isexe": "^2.0.0"
},
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/globals": {
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -10695,6 +13573,7 @@
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
"integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"array-union": "^2.1.0",
"dir-glob": "^3.0.1",
@@ -10714,7 +13593,8 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
"integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/gopd": {
"version": "1.2.0",
@@ -10759,13 +13639,15 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
"integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/hard-rejection": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
"integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -10845,6 +13727,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/hashery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.4.0.tgz",
+ "integrity": "sha512-Wn2i1In6XFxl8Az55kkgnFRiAlIAushzh26PTjL2AKtQcEfXrcLa7Hn5QOWGZEf3LU057P9TwwZjFyxfS1VuvQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hookified": "^1.14.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
@@ -10862,6 +13757,7 @@
"resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz",
"integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"capital-case": "^1.0.4",
"tslib": "^2.0.3"
@@ -10872,6 +13768,7 @@
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
"integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"parse-passwd": "^1.0.0"
},
@@ -10879,11 +13776,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/hookified": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.0.tgz",
+ "integrity": "sha512-51w+ZZGt7Zw5q7rM3nC4t3aLn/xvKDETsXqMczndvwyVQhAHfUmUuFBRFcos8Iyebtk7OAE9dL26wFNzZVVOkw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
"integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -10896,6 +13801,7 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -10907,13 +13813,15 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/hpack.js": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
"integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.1",
"obuf": "^1.0.0",
@@ -10925,13 +13833,15 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/hpack.js/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -10946,27 +13856,30 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/hpack.js/node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "whatwg-encoding": "^2.0.0"
+ "whatwg-encoding": "^3.1.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/html-entities": {
@@ -11005,6 +13918,7 @@
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
"integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -11016,22 +13930,28 @@
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
"integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
},
"engines": {
"node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/http-link-header": {
@@ -11039,6 +13959,7 @@
"resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz",
"integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
@@ -11047,13 +13968,15 @@
"version": "0.5.10",
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz",
"integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/http-proxy": {
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
"integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
@@ -11064,17 +13987,17 @@
}
},
"node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
}
},
"node_modules/http-proxy-middleware": {
@@ -11082,6 +14005,7 @@
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz",
"integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/http-proxy": "^1.17.8",
"http-proxy": "^1.18.1",
@@ -11102,16 +14026,17 @@
}
},
"node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "agent-base": "6",
+ "agent-base": "^7.1.2",
"debug": "4"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
}
},
"node_modules/human-signals": {
@@ -11119,14 +14044,25 @@
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=10.17.0"
}
},
+ "node_modules/hyperdyperid": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz",
+ "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.18"
+ }
+ },
"node_modules/i18next": {
- "version": "25.5.2",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.2.tgz",
- "integrity": "sha512-lW8Zeh37i/o0zVr+NoCHfNnfvVw+M6FQbRp36ZZ/NyHDJ3NJVpp2HhAUyU9WafL5AssymNoOjMRB48mmx2P6Hw==",
+ "version": "25.7.4",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.7.4.tgz",
+ "integrity": "sha512-hRkpEblXXcXSNbw8mBNq9042OEetgyB/ahc/X17uV/khPwzV+uB8RHceHh3qavyrkPJvmXFKXME2Sy1E0KjAfw==",
"funding": [
{
"type": "individual",
@@ -11144,7 +14080,7 @@
"license": "MIT",
"peer": true,
"dependencies": {
- "@babel/runtime": "^7.27.6"
+ "@babel/runtime": "^7.28.4"
},
"peerDependencies": {
"typescript": "^5"
@@ -11197,7 +14133,8 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "license": "BSD-3-Clause"
},
"node_modules/ignore": {
"version": "5.3.2",
@@ -11246,7 +14183,8 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz",
"integrity": "sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/immutable": {
"version": "5.1.3",
@@ -11279,13 +14217,17 @@
"node": ">=4"
}
},
- "node_modules/import-lazy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
- "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "node_modules/import-in-the-middle": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.15.0.tgz",
+ "integrity": "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "acorn": "^8.14.0",
+ "acorn-import-attributes": "^1.9.5",
+ "cjs-module-lexer": "^1.2.2",
+ "module-details-from-path": "^1.0.3"
}
},
"node_modules/import-local": {
@@ -11321,6 +14263,7 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -11346,7 +14289,8 @@
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/internal-slot": {
"version": "1.1.0",
@@ -11372,35 +14316,34 @@
}
},
"node_modules/intl-messageformat": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz",
- "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==",
+ "version": "10.7.18",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz",
+ "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "intl-messageformat-parser": "^1.8.1"
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/icu-messageformat-parser": "2.11.4",
+ "tslib": "^2.8.0"
}
},
- "node_modules/intl-messageformat-parser": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz",
- "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==",
- "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser",
- "dev": true
- },
"node_modules/ip-address": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
- "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
+ "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 12"
}
},
"node_modules/ipaddr.js": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
- "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz",
+ "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 10"
}
@@ -11410,6 +14353,7 @@
"resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.5.0.tgz",
"integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -11510,6 +14454,7 @@
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
"integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"builtin-modules": "^3.3.0"
},
@@ -11520,6 +14465,29 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-bun-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz",
+ "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.7.1"
+ }
+ },
+ "node_modules/is-bun-module/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
@@ -11581,15 +14549,16 @@
}
},
"node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
"dev": true,
+ "license": "MIT",
"bin": {
"is-docker": "cli.js"
},
"engines": {
- "node": ">=8"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -11633,6 +14602,7 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -11642,6 +14612,7 @@
"resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
"integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -11676,6 +14647,25 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-map": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
@@ -11700,6 +14690,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-network-error": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz",
+ "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -11725,48 +14728,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-path-in-cwd": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
- "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
- "dev": true,
- "dependencies": {
- "is-path-inside": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-path-in-cwd/node_modules/is-path-inside": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
- "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
- "dev": true,
- "dependencies": {
- "path-is-inside": "^1.0.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/is-path-inside": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
@@ -11781,6 +14742,7 @@
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
"integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -11804,7 +14766,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/is-regex": {
"version": "1.2.1",
@@ -11856,6 +14819,7 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -11911,17 +14875,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
"node_modules/is-unicode-supported": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -11977,20 +14936,25 @@
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz",
"integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
+ "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-docker": "^2.0.0"
+ "is-inside-container": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/isarray": {
@@ -12003,7 +14967,8 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/isobject": {
"version": "3.0.1",
@@ -12019,6 +14984,7 @@
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
"integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=8"
}
@@ -12028,6 +14994,7 @@
"resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
"integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7",
@@ -12044,6 +15011,7 @@
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
"integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^4.0.0",
@@ -12053,38 +15021,12 @@
"node": ">=10"
}
},
- "node_modules/istanbul-lib-report/node_modules/make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "dev": true,
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/istanbul-lib-source-maps": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
"integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
@@ -12099,6 +15041,7 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -12108,6 +15051,7 @@
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
"integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"html-escaper": "^2.0.0",
"istanbul-lib-report": "^3.0.0"
@@ -12138,6 +15082,7 @@
"resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
"integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/core": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -12164,6 +15109,7 @@
"resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
"integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"execa": "^5.0.0",
"jest-util": "^29.7.0",
@@ -12178,6 +15124,7 @@
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
"integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/expect": "^29.7.0",
@@ -12209,6 +15156,7 @@
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
"integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/core": "^29.7.0",
"@jest/test-result": "^29.7.0",
@@ -12242,6 +15190,7 @@
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
"integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@jest/test-sequencer": "^29.7.0",
@@ -12283,18 +15232,19 @@
}
},
"node_modules/jest-dev-server": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-9.0.2.tgz",
- "integrity": "sha512-Zc/JB0IlNNrpXkhBw+h86cGrde/Mey52KvF+FER2eyrtYJTHObOwW7Iarxm3rPyTKby5+3Y2QZtl8pRz/5GCxg==",
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-10.1.4.tgz",
+ "integrity": "sha512-bGQ6sedNGtT6AFHhCVqGTXMPz7UyJi/ZrhNBgyqsP0XU9N8acCEIfqZEA22rOaZ+NdEVsaltk6tL7UT6aXfI7w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
"cwd": "^0.10.0",
"find-process": "^1.4.7",
"prompts": "^2.4.2",
- "spawnd": "^9.0.2",
+ "spawnd": "^10.1.4",
"tree-kill": "^1.2.2",
- "wait-on": "^7.2.0"
+ "wait-on": "^8.0.1"
},
"engines": {
"node": ">=16"
@@ -12305,6 +15255,7 @@
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
"integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"diff-sequences": "^29.6.3",
@@ -12320,6 +15271,7 @@
"resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
"integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"detect-newline": "^3.0.0"
},
@@ -12332,6 +15284,7 @@
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
"integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"chalk": "^4.0.0",
@@ -12344,25 +15297,23 @@
}
},
"node_modules/jest-environment-jsdom": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz",
- "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.2.0.tgz",
+ "integrity": "sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/jsdom": "^20.0.0",
+ "@jest/environment": "30.2.0",
+ "@jest/environment-jsdom-abstract": "30.2.0",
+ "@types/jsdom": "^21.1.7",
"@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0",
- "jsdom": "^20.0.0"
+ "jsdom": "^26.1.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
},
"peerDependencies": {
- "canvas": "^2.5.0"
+ "canvas": "^3.0.0"
},
"peerDependenciesMeta": {
"canvas": {
@@ -12370,11 +15321,206 @@
}
}
},
+ "node_modules/jest-environment-jsdom/node_modules/@jest/environment": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz",
+ "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-mock": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz",
+ "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@sinonjs/fake-timers": "^13.0.0",
+ "@types/node": "*",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@jest/schemas": {
+ "version": "30.0.5",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+ "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.34.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@jest/types": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+ "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@sinclair/typebox": {
+ "version": "0.34.47",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.47.tgz",
+ "integrity": "sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jest-environment-jsdom/node_modules/@sinonjs/fake-timers": {
+ "version": "13.0.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz",
+ "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/ci-info": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-message-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
+ "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@jest/types": "30.2.0",
+ "@types/stack-utils": "^2.0.3",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.2.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.6"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-mock": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
+ "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-util": "30.2.0"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/jest-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
+ "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/jest-environment-jsdom/node_modules/pretty-format": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+ "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "30.0.5",
+ "ansi-styles": "^5.2.0",
+ "react-is": "^18.3.1"
+ },
+ "engines": {
+ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
+ }
+ },
"node_modules/jest-environment-node": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
"integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
@@ -12392,6 +15538,7 @@
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
"integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
@@ -12401,6 +15548,7 @@
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
"integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/graceful-fs": "^4.1.3",
@@ -12426,6 +15574,7 @@
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
"integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"jest-get-type": "^29.6.3",
"pretty-format": "^29.7.0"
@@ -12439,6 +15588,7 @@
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
"integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"jest-diff": "^29.7.0",
@@ -12454,6 +15604,7 @@
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
"integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^29.6.3",
@@ -12474,6 +15625,7 @@
"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
"integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -12488,6 +15640,7 @@
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
"integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -12505,6 +15658,7 @@
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
"integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
@@ -12514,6 +15668,7 @@
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
"integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
@@ -12534,6 +15689,7 @@
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
"integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"jest-regex-util": "^29.6.3",
"jest-snapshot": "^29.7.0"
@@ -12547,6 +15703,7 @@
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
"integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/console": "^29.7.0",
"@jest/environment": "^29.7.0",
@@ -12579,6 +15736,7 @@
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
"integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/environment": "^29.7.0",
"@jest/fake-timers": "^29.7.0",
@@ -12612,6 +15770,7 @@
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
"integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@babel/core": "^7.11.6",
"@babel/generator": "^7.7.2",
@@ -12639,10 +15798,11 @@
}
},
"node_modules/jest-snapshot/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -12655,6 +15815,7 @@
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
"integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"@types/node": "*",
@@ -12672,6 +15833,7 @@
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
"integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
"camelcase": "^6.2.0",
@@ -12689,6 +15851,7 @@
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
"integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/test-result": "^29.7.0",
"@jest/types": "^29.6.3",
@@ -12708,6 +15871,7 @@
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
"integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"jest-util": "^29.7.0",
@@ -12723,6 +15887,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -12734,29 +15899,37 @@
}
},
"node_modules/joi": {
- "version": "17.13.3",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
- "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
+ "version": "18.0.2",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-18.0.2.tgz",
+ "integrity": "sha512-RuCOQMIt78LWnktPoeBL0GErkNaJPTBGcYuyaBvUOQSpcpcLfWrHPPihYdOGbV5pam9VTWbeoF7TsGiHugcjGA==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
+ "@hapi/address": "^5.1.1",
+ "@hapi/formula": "^3.0.2",
+ "@hapi/hoek": "^11.0.7",
+ "@hapi/pinpoint": "^2.0.1",
+ "@hapi/tlds": "^1.1.1",
+ "@hapi/topo": "^6.0.2",
+ "@standard-schema/spec": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 20"
}
},
"node_modules/jpeg-js": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
"integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/js-library-detector": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.7.0.tgz",
"integrity": "sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12"
}
@@ -12767,10 +15940,11 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -12784,48 +15958,44 @@
"resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
"integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/jsdom": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
- "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
- "dev": true,
- "dependencies": {
- "abab": "^2.0.6",
- "acorn": "^8.8.1",
- "acorn-globals": "^7.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.2",
- "decimal.js": "^10.4.2",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
+ "version": "26.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
+ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssstyle": "^4.2.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.5.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.6",
"is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.2",
- "parse5": "^7.1.1",
+ "nwsapi": "^2.2.16",
+ "parse5": "^7.2.1",
+ "rrweb-cssom": "^0.8.0",
"saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
+ "tough-cookie": "^5.1.1",
+ "w3c-xmlserializer": "^5.0.0",
"webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0",
- "ws": "^8.11.0",
- "xml-name-validator": "^4.0.0"
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.1.1",
+ "ws": "^8.18.0",
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
},
"peerDependencies": {
- "canvas": "^2.5.0"
+ "canvas": "^3.0.0"
},
"peerDependenciesMeta": {
"canvas": {
@@ -12870,10 +16040,11 @@
"dev": true
},
"node_modules/json2php": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz",
- "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==",
- "dev": true
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz",
+ "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==",
+ "dev": true,
+ "license": "BSD"
},
"node_modules/json5": {
"version": "2.2.3",
@@ -12934,6 +16105,7 @@
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -12948,10 +16120,11 @@
}
},
"node_modules/known-css-properties": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
- "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
- "dev": true
+ "version": "0.37.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz",
+ "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/language-subtag-registry": {
"version": "0.3.23",
@@ -12972,10 +16145,11 @@
}
},
"node_modules/launch-editor": {
- "version": "2.11.1",
- "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz",
- "integrity": "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==",
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz",
+ "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"picocolors": "^1.1.1",
"shell-quote": "^1.8.3"
@@ -12990,11 +16164,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/legacy-javascript": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/legacy-javascript/-/legacy-javascript-0.0.1.tgz",
+ "integrity": "sha512-lPyntS4/aS7jpuvOlitZDFifBCb4W8L/3QU0PLbUTUj+zYah8rfVjYic88yG7ZKTxhS5h9iz7duT8oUXKszLhg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
"integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -13013,35 +16195,36 @@
}
},
"node_modules/lighthouse": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-10.4.0.tgz",
- "integrity": "sha512-XQWHEWkJ8YxSPsxttBJORy5+hQrzbvGkYfeP3fJjyYKioWkF2MXfFqNK4ZuV4jL8pBu7Z91qnQP6In0bq1yXww==",
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.8.2.tgz",
+ "integrity": "sha512-+5SKYzVaTFj22MgoYDPNrP9tlD2/Ay7j3SxPSFD9FpPyVxGr4UtOQGKyrdZ7wCmcnBaFk0mCkPfARU3CsE0nvA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@sentry/node": "^6.17.4",
- "axe-core": "4.7.2",
- "chrome-launcher": "^0.15.2",
- "configstore": "^5.0.1",
- "csp_evaluator": "1.1.1",
- "devtools-protocol": "0.0.1155343",
+ "@paulirish/trace_engine": "0.0.59",
+ "@sentry/node": "^9.28.1",
+ "axe-core": "^4.10.3",
+ "chrome-launcher": "^1.2.0",
+ "configstore": "^7.0.0",
+ "csp_evaluator": "1.1.5",
+ "devtools-protocol": "0.0.1507524",
"enquirer": "^2.3.6",
"http-link-header": "^1.1.1",
- "intl-messageformat": "^4.4.0",
+ "intl-messageformat": "^10.5.3",
"jpeg-js": "^0.4.4",
- "js-library-detector": "^6.6.0",
- "lighthouse-logger": "^1.4.1",
- "lighthouse-stack-packs": "1.11.0",
- "lodash": "^4.17.21",
+ "js-library-detector": "^6.7.0",
+ "lighthouse-logger": "^2.0.2",
+ "lighthouse-stack-packs": "1.12.2",
+ "lodash-es": "^4.17.21",
"lookup-closest-locale": "6.2.0",
"metaviewport-parser": "0.3.0",
"open": "^8.4.0",
"parse-cache-control": "1.0.1",
- "ps-list": "^8.0.0",
- "puppeteer-core": "^20.8.0",
- "robots-parser": "^3.0.0",
- "semver": "^5.3.0",
+ "puppeteer-core": "^24.17.1",
+ "robots-parser": "^3.0.1",
"speedline-core": "^1.4.3",
- "third-party-web": "^0.23.3",
+ "third-party-web": "^0.27.0",
+ "tldts-icann": "^7.0.12",
"ws": "^7.0.0",
"yargs": "^17.3.1",
"yargs-parser": "^21.0.0"
@@ -13052,149 +16235,159 @@
"smokehouse": "cli/test/smokehouse/frontends/smokehouse-bin.js"
},
"engines": {
- "node": ">=16.16"
+ "node": ">=18.16"
}
},
"node_modules/lighthouse-logger": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
- "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.2.tgz",
+ "integrity": "sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "debug": "^2.6.9",
+ "debug": "^4.4.1",
"marky": "^1.2.2"
}
},
- "node_modules/lighthouse-logger/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/lighthouse-stack-packs": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.12.2.tgz",
+ "integrity": "sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw==",
"dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/lighthouse/node_modules/@puppeteer/browsers": {
+ "version": "2.11.1",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.1.tgz",
+ "integrity": "sha512-YmhAxs7XPuxN0j7LJloHpfD1ylhDuFmmwMvfy/+6nBSrETT2ycL53LrhgPtR+f+GcPSybQVuQ5inWWu5MrWCpA==",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "ms": "2.0.0"
+ "debug": "^4.4.3",
+ "extract-zip": "^2.0.1",
+ "progress": "^2.0.3",
+ "proxy-agent": "^6.5.0",
+ "semver": "^7.7.3",
+ "tar-fs": "^3.1.1",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "browsers": "lib/cjs/main-cli.js"
+ },
+ "engines": {
+ "node": ">=18"
}
},
- "node_modules/lighthouse-logger/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/lighthouse-stack-packs": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.11.0.tgz",
- "integrity": "sha512-sRr0z1S/I26VffRLq9KJsKtLk856YrJlNGmcJmbLX8dFn3MuzVPUbstuChEhqnSxZb8TZmVfthuXuwhG9vRoSw==",
- "dev": true
+ "node_modules/lighthouse/node_modules/chromium-bidi": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-12.0.1.tgz",
+ "integrity": "sha512-fGg+6jr0xjQhzpy5N4ErZxQ4wF7KLEvhGZXD6EgvZKDhu7iOhZXnZhcDxPJDcwTcrD48NPzOCo84RP2lv3Z+Cg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "mitt": "^3.0.1",
+ "zod": "^3.24.1"
+ },
+ "peerDependencies": {
+ "devtools-protocol": "*"
+ }
},
- "node_modules/lighthouse/node_modules/axe-core": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz",
- "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==",
+ "node_modules/lighthouse/node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/lighthouse/node_modules/cross-fetch": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
- "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
+ "node_modules/lighthouse/node_modules/devtools-protocol": {
+ "version": "0.0.1507524",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz",
+ "integrity": "sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==",
"dev": true,
- "dependencies": {
- "node-fetch": "^2.6.12"
- }
+ "license": "BSD-3-Clause"
},
- "node_modules/lighthouse/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/lighthouse/node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true,
- "dependencies": {
- "ms": "2.1.2"
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
},
"engines": {
- "node": ">=6.0"
+ "node": ">=8"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/lighthouse/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/lighthouse/node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "node_modules/lighthouse/node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "whatwg-url": "^5.0.0"
+ "is-docker": "^2.0.0"
},
"engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
+ "node": ">=8"
}
},
- "node_modules/lighthouse/node_modules/puppeteer-core": {
- "version": "20.9.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz",
- "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==",
+ "node_modules/lighthouse/node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@puppeteer/browsers": "1.4.6",
- "chromium-bidi": "0.4.16",
- "cross-fetch": "4.0.0",
- "debug": "4.3.4",
- "devtools-protocol": "0.0.1147663",
- "ws": "8.13.0"
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
},
"engines": {
- "node": ">=16.3.0"
- },
- "peerDependencies": {
- "typescript": ">= 4.7.4"
+ "node": ">=12"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/lighthouse/node_modules/puppeteer-core/node_modules/chromium-bidi": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz",
- "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==",
+ "node_modules/lighthouse/node_modules/puppeteer-core": {
+ "version": "24.35.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.35.0.tgz",
+ "integrity": "sha512-vt1zc2ME0kHBn7ZDOqLvgvrYD5bqNv5y2ZNXzYnCv8DEtZGw/zKhljlrGuImxptZ4rq+QI9dFGrUIYqG4/IQzA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "mitt": "3.0.0"
+ "@puppeteer/browsers": "2.11.1",
+ "chromium-bidi": "12.0.1",
+ "debug": "^4.4.3",
+ "devtools-protocol": "0.0.1534754",
+ "typed-query-selector": "^2.12.0",
+ "webdriver-bidi-protocol": "0.3.10",
+ "ws": "^8.19.0"
},
- "peerDependencies": {
- "devtools-protocol": "*"
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/lighthouse/node_modules/puppeteer-core/node_modules/devtools-protocol": {
- "version": "0.0.1147663",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz",
- "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==",
- "dev": true
+ "version": "0.0.1534754",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1534754.tgz",
+ "integrity": "sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/lighthouse/node_modules/puppeteer-core/node_modules/ws": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
- "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10.0.0"
},
@@ -13212,34 +16405,16 @@
}
},
"node_modules/lighthouse/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/lighthouse/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "node_modules/lighthouse/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "node_modules/lighthouse/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/lighthouse/node_modules/ws": {
@@ -13247,6 +16422,7 @@
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8.3.0"
},
@@ -13263,6 +16439,26 @@
}
}
},
+ "node_modules/lighthouse/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/lighthouse/node_modules/zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
"node_modules/lilconfig": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
@@ -13329,7 +16525,15 @@
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash-es": {
+ "version": "4.17.22",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz",
+ "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.debounce": {
"version": "4.0.8",
@@ -13353,7 +16557,8 @@
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
"integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/lodash.uniq": {
"version": "4.5.0",
@@ -13366,6 +16571,7 @@
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -13382,6 +16588,7 @@
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz",
"integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6.0"
},
@@ -13394,7 +16601,8 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz",
"integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/loose-envify": {
"version": "1.4.0",
@@ -13416,12 +16624,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/lru_map": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
- "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==",
- "dev": true
- },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -13432,25 +16634,40 @@
}
},
"node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "semver": "^6.0.0"
+ "semver": "^7.5.3"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/makeerror": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
"integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"tmpl": "1.0.5"
}
@@ -13460,6 +16677,7 @@
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
"integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -13575,10 +16793,11 @@
}
},
"node_modules/markdownlint-cli/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -13608,7 +16827,8 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/marky/-/marky-1.3.0.tgz",
"integrity": "sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==",
- "dev": true
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
@@ -13624,6 +16844,7 @@
"resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
"integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
"dev": true,
+ "license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
@@ -13646,33 +16867,43 @@
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/memfs": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
- "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
+ "version": "4.54.0",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.54.0.tgz",
+ "integrity": "sha512-wiJ9YYUj2bVcpdJgIv6y1KrStknSdNhfM4+4+ttt0cHHMxVLZ3aOBoER8krt9lGY5HkR2ustUXiihhNPeNxXaQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "fs-monkey": "^1.0.4"
+ "@jsonjoy.com/json-pack": "^1.11.0",
+ "@jsonjoy.com/util": "^1.9.0",
+ "glob-to-regex.js": "^1.0.1",
+ "thingies": "^2.5.0",
+ "tree-dump": "^1.0.3",
+ "tslib": "^2.0.0"
},
- "engines": {
- "node": ">= 4.0.0"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
}
},
"node_modules/memize": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/memize/-/memize-2.1.1.tgz",
"integrity": "sha512-8Nl+i9S5D6KXnruM03Jgjb+LwSupvR13WBr4hJegaaEyobvowCVupi79y2WSiWvO1mzBWxPwEYE5feCe8vyA5w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/meow": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
"integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/minimist": "^1.2.0",
"camelcase-keys": "^6.2.2",
@@ -13699,6 +16930,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
"integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -13706,15 +16938,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/meow/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/merge-deep": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz",
@@ -13734,6 +16957,7 @@
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
"dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
@@ -13757,13 +16981,15 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.3.0.tgz",
"integrity": "sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -13782,15 +17008,16 @@
}
},
"node_modules/mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true,
+ "license": "MIT",
"bin": {
"mime": "cli.js"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=4"
}
},
"node_modules/mime-db": {
@@ -13819,6 +17046,7 @@
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -13828,6 +17056,7 @@
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
"integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -13856,13 +17085,15 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/minimatch": {
"version": "9.0.3",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
"integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -13887,6 +17118,7 @@
"resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
"integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"arrify": "^1.0.1",
"is-plain-obj": "^1.1.0",
@@ -13901,6 +17133,7 @@
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
"integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -13910,14 +17143,16 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/mitt": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
- "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "license": "MIT"
},
"node_modules/mixin-object": {
"version": "2.0.1",
@@ -13942,20 +17177,21 @@
}
},
"node_modules/mixpanel-browser": {
- "version": "2.72.0",
- "resolved": "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.72.0.tgz",
- "integrity": "sha512-Olc+1ebVBSVBjtR/Pp4t8Pc1wAI9AfA5e668B0MsI/gKJ43QcndzfQ/AT/TiP1Klup8O1C9vwykoWjvPqX+SRA==",
+ "version": "2.73.0",
+ "resolved": "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.73.0.tgz",
+ "integrity": "sha512-Ny+6BVeWJozZoyrzB+5/6LTqBZ0gDY1pwcs7PQLQVGPKMTdL8qAz0yV4H8ykGQEA5KrW2Ky/KZ3uMEHGjE7oSA==",
"license": "Apache-2.0",
"dependencies": {
"@mixpanel/rrweb": "2.0.0-alpha.18.2",
"@mixpanel/rrweb-plugin-console-record": "2.0.0-alpha.18.2"
}
},
- "node_modules/mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "dev": true
+ "node_modules/module-details-from-path": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz",
+ "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/mrmime": {
"version": "2.0.1",
@@ -13977,6 +17213,7 @@
"resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
"integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"dns-packet": "^5.2.2",
"thunky": "^1.0.2"
@@ -14002,6 +17239,22 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/napi-postinstall": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz",
+ "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "napi-postinstall": "lib/cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/napi-postinstall"
+ }
+ },
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -14013,6 +17266,7 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
"integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -14028,6 +17282,7 @@
"resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
"integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4.0"
}
@@ -14049,74 +17304,26 @@
"dev": true,
"optional": true
},
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-fetch/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "node_modules/node-fetch/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "node_modules/node-fetch/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
- "dev": true,
- "engines": {
- "node": ">= 6.13.0"
- }
- },
"node_modules/node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
"integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/node-releases": {
- "version": "2.0.21",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz",
- "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==",
- "dev": true
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/normalize-package-data": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
"integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^4.0.1",
"is-core-module": "^2.5.0",
@@ -14128,10 +17335,11 @@
}
},
"node_modules/normalize-package-data/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -14148,15 +17356,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/npm-bundled": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
@@ -14177,6 +17376,7 @@
"resolved": "https://registry.npmjs.org/npm-package-json-lint/-/npm-package-json-lint-6.4.0.tgz",
"integrity": "sha512-cuXAJJB1Rdqz0UO6w524matlBqDBjcNt7Ru+RDIu4y6RI1gVqiWBnylrK8sPRk81gGBA0X8hJbDXolVOoTc+sA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ajv": "^6.12.6",
"ajv-errors": "^1.0.1",
@@ -14208,13 +17408,15 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz",
"integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/npm-package-json-lint/node_modules/semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -14227,6 +17429,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
"integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=14.16"
},
@@ -14257,6 +17460,7 @@
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"path-key": "^3.0.0"
},
@@ -14277,16 +17481,16 @@
}
},
"node_modules/nwsapi": {
- "version": "2.2.22",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
- "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
- "dev": true
+ "version": "2.2.23",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz",
+ "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -14376,6 +17580,7 @@
"resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
"integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -14407,13 +17612,15 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
"integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ee-first": "1.1.1"
},
@@ -14426,6 +17633,7 @@
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
"integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -14444,6 +17652,7 @@
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"mimic-fn": "^2.1.0"
},
@@ -14455,17 +17664,19 @@
}
},
"node_modules/open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
+ "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
+ "default-browser": "^5.2.1",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "wsl-utils": "^0.1.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -14502,6 +17713,7 @@
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -14565,26 +17777,22 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz",
+ "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/retry": "0.12.0",
+ "@types/retry": "0.12.2",
+ "is-network-error": "^1.0.0",
"retry": "^0.13.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-try": {
@@ -14601,6 +17809,7 @@
"resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz",
"integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@tootallnate/quickjs-emscripten": "^0.23.0",
"agent-base": "^7.1.2",
@@ -14615,46 +17824,12 @@
"node": ">= 14"
}
},
- "node_modules/pac-proxy-agent/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/pac-proxy-agent/node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dev": true,
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/pac-resolver": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz",
"integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"degenerator": "^5.0.0",
"netmask": "^2.0.2"
@@ -14668,6 +17843,7 @@
"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
"integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"dot-case": "^3.0.4",
"tslib": "^2.0.3"
@@ -14714,6 +17890,7 @@
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
"integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -14723,6 +17900,7 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
"integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"entities": "^6.0.0"
},
@@ -14735,6 +17913,7 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
"integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
},
@@ -14747,6 +17926,7 @@
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -14756,6 +17936,7 @@
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
"integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
@@ -14766,6 +17947,7 @@
"resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz",
"integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"dot-case": "^3.0.4",
"tslib": "^2.0.3"
@@ -14789,12 +17971,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
- "dev": true
- },
"node_modules/path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@@ -14814,7 +17990,8 @@
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
"integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/path-type": {
"version": "4.0.0",
@@ -14829,7 +18006,42 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
"integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/pg-protocol": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.11.0.tgz",
+ "integrity": "sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~2.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.4",
+ "postgres-interval": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
"node_modules/picocolors": {
"version": "1.1.1",
@@ -14849,31 +18061,11 @@
}
},
"node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true,
- "dependencies": {
- "pinkie": "^2.0.0"
- },
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -14883,6 +18075,7 @@
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
"integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -14899,14 +18092,33 @@
"node": ">=8"
}
},
+ "node_modules/pkijs": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.3.3.tgz",
+ "integrity": "sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@noble/hashes": "1.4.0",
+ "asn1js": "^3.0.6",
+ "bytestreamjs": "^2.0.1",
+ "pvtsutils": "^1.3.6",
+ "pvutils": "^1.1.3",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
"node_modules/playwright": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.0.tgz",
- "integrity": "sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==",
+ "version": "1.57.0",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz",
+ "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==",
"dev": true,
+ "license": "Apache-2.0",
"peer": true,
"dependencies": {
- "playwright-core": "1.55.0"
+ "playwright-core": "1.57.0"
},
"bin": {
"playwright": "cli.js"
@@ -14919,28 +18131,33 @@
}
},
"node_modules/playwright-core": {
- "version": "1.39.0",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz",
- "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==",
+ "version": "1.57.0",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz",
+ "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==",
"dev": true,
+ "license": "Apache-2.0",
+ "peer": true,
"bin": {
"playwright-core": "cli.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
- "node_modules/playwright/node_modules/playwright-core": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.0.tgz",
- "integrity": "sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==",
+ "node_modules/playwright/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"peer": true,
- "bin": {
- "playwright-core": "cli.js"
- },
"engines": {
- "node": ">=18"
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/plur": {
@@ -14948,6 +18165,7 @@
"resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz",
"integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"irregular-plurals": "^3.2.0"
},
@@ -15092,6 +18310,24 @@
"postcss": "^8.4.31"
}
},
+ "node_modules/postcss-import": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.1.tgz",
+ "integrity": "sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
"node_modules/postcss-loader": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz",
@@ -15142,11 +18378,22 @@
"node": ">=10"
}
},
+ "node_modules/postcss-loader/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/postcss-media-query-parser": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
"integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/postcss-merge-longhand": {
"version": "6.0.5",
@@ -15515,22 +18762,34 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz",
"integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/postcss-safe-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
- "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
+ "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
"engines": {
- "node": ">=12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
+ "node": ">=18.0"
},
"peerDependencies": {
- "postcss": "^8.3.3"
+ "postcss": "^8.4.31"
}
},
"node_modules/postcss-scss": {
@@ -15552,6 +18811,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "license": "MIT",
"engines": {
"node": ">=12.0"
},
@@ -15609,6 +18869,49 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
+ "node_modules/postgres-array": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postgres-bytea": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz",
+ "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-date": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -15619,11 +18922,11 @@
}
},
"node_modules/prettier": {
- "name": "wp-prettier",
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz",
- "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==",
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.0.tgz",
+ "integrity": "sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==",
"dev": true,
+ "license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
@@ -15635,10 +18938,11 @@
}
},
"node_modules/prettier-linter-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz",
+ "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-diff": "^1.1.2"
},
@@ -15651,6 +18955,7 @@
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
"integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
"ansi-styles": "^5.0.0",
@@ -15665,6 +18970,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -15676,13 +18982,15 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/progress": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
@@ -15692,6 +19000,7 @@
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
"integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kleur": "^3.0.3",
"sisteransi": "^1.0.5"
@@ -15704,7 +19013,6 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "dev": true,
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -15714,14 +19022,14 @@
"node_modules/prop-types/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
@@ -15735,59 +19043,26 @@
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.10"
}
},
"node_modules/proxy-agent": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz",
- "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
+ "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "agent-base": "^7.0.2",
+ "agent-base": "^7.1.2",
"debug": "^4.3.4",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.0",
+ "http-proxy-agent": "^7.0.1",
+ "https-proxy-agent": "^7.0.6",
"lru-cache": "^7.14.1",
- "pac-proxy-agent": "^7.0.0",
+ "pac-proxy-agent": "^7.1.0",
"proxy-from-env": "^1.1.0",
- "socks-proxy-agent": "^8.0.1"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/proxy-agent/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/proxy-agent/node_modules/http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dev": true,
- "dependencies": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/proxy-agent/node_modules/https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "dependencies": {
- "agent-base": "^7.1.2",
- "debug": "4"
+ "socks-proxy-agent": "^8.0.5"
},
"engines": {
"node": ">= 14"
@@ -15798,6 +19073,7 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
"integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -15806,43 +19082,15 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "dev": true
- },
- "node_modules/ps-list": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.1.tgz",
- "integrity": "sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
- "dev": true
- },
- "node_modules/psl": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
- "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
"dev": true,
- "dependencies": {
- "punycode": "^2.3.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/lupomontero"
- }
+ "license": "MIT"
},
"node_modules/pump": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz",
"integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -15858,92 +19106,21 @@
}
},
"node_modules/puppeteer-core": {
- "version": "13.7.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
- "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
- "dev": true,
- "dependencies": {
- "cross-fetch": "3.1.5",
- "debug": "4.3.4",
- "devtools-protocol": "0.0.981744",
- "extract-zip": "2.0.1",
- "https-proxy-agent": "5.0.1",
- "pkg-dir": "4.2.0",
- "progress": "2.0.3",
- "proxy-from-env": "1.1.0",
- "rimraf": "3.0.2",
- "tar-fs": "2.1.1",
- "unbzip2-stream": "1.4.3",
- "ws": "8.5.0"
- },
- "engines": {
- "node": ">=10.18.1"
- }
- },
- "node_modules/puppeteer-core/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/puppeteer-core/node_modules/devtools-protocol": {
- "version": "0.0.981744",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
- "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
- "dev": true
- },
- "node_modules/puppeteer-core/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/puppeteer-core/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "version": "23.11.1",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz",
+ "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "@puppeteer/browsers": "2.6.1",
+ "chromium-bidi": "0.11.0",
+ "debug": "^4.4.0",
+ "devtools-protocol": "0.0.1367902",
+ "typed-query-selector": "^2.12.0",
+ "ws": "^8.18.0"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/puppeteer-core/node_modules/ws": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
- "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
- "dev": true,
"engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
+ "node": ">=18"
}
},
"node_modules/pure-rand": {
@@ -15960,15 +19137,50 @@
"type": "opencollective",
"url": "https://opencollective.com/fast-check"
}
- ]
+ ],
+ "license": "MIT"
+ },
+ "node_modules/pvtsutils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz",
+ "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.1"
+ }
+ },
+ "node_modules/pvutils": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz",
+ "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/qified": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/qified/-/qified-0.6.0.tgz",
+ "integrity": "sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hookified": "^1.14.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
},
"node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "version": "6.14.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz",
+ "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "side-channel": "^1.0.6"
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">=0.6"
@@ -15977,12 +19189,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
- "dev": true
- },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -16008,6 +19214,7 @@
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
"integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -16026,20 +19233,22 @@
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
+ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
@@ -16050,6 +19259,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -16072,7 +19282,6 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
@@ -16082,16 +19291,17 @@
}
},
"node_modules/react-i18next": {
- "version": "15.7.3",
- "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.3.tgz",
- "integrity": "sha512-AANws4tOE+QSq/IeMF/ncoHlMNZaVLxpa5uUGW1wjike68elVYr0018L9xYoqBr1OFO7G7boDPrbn0HpMCJxTw==",
+ "version": "16.5.3",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-16.5.3.tgz",
+ "integrity": "sha512-fo+/NNch37zqxOzlBYrWMx0uy/yInPkRfjSuy4lqKdaecR17nvCHnEUt3QyzA8XjQ2B/0iW/5BhaHR3ZmukpGw==",
"license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.27.6",
- "html-parse-stringify": "^3.0.1"
+ "@babel/runtime": "^7.28.4",
+ "html-parse-stringify": "^3.0.1",
+ "use-sync-external-store": "^1.6.0"
},
"peerDependencies": {
- "i18next": ">= 25.4.1",
+ "i18next": ">= 25.6.2",
"react": ">= 16.8.0",
"typescript": "^5"
},
@@ -16111,7 +19321,8 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
"integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/react-refresh": {
"version": "0.14.2",
@@ -16122,11 +19333,22 @@
"node": ">=0.10.0"
}
},
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
"node_modules/read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
"integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/normalize-package-data": "^2.4.0",
"normalize-package-data": "^2.5.0",
@@ -16142,6 +19364,7 @@
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
"integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"find-up": "^4.1.0",
"read-pkg": "^5.2.0",
@@ -16159,6 +19382,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
@@ -16167,13 +19391,15 @@
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/read-pkg/node_modules/normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
"hosted-git-info": "^2.1.4",
"resolve": "^1.10.0",
@@ -16186,6 +19412,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver"
}
@@ -16195,6 +19422,7 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
"integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
"dev": true,
+ "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=8"
}
@@ -16204,6 +19432,7 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -16243,6 +19472,7 @@
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
"integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"indent-string": "^4.0.0",
"strip-indent": "^3.0.0"
@@ -16251,6 +19481,13 @@
"node": ">=8"
}
},
+ "node_modules/reflect-metadata": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
+ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
@@ -16358,17 +19595,12 @@
"node": ">=6"
}
},
- "node_modules/remove-accents": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
- "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==",
- "dev": true
- },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -16382,11 +19614,27 @@
"node": ">=0.10.0"
}
},
+ "node_modules/require-in-the-middle": {
+ "version": "7.5.2",
+ "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz",
+ "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.5",
+ "module-details-from-path": "^1.0.3",
+ "resolve": "^1.22.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
"node_modules/requireindex": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
"integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.5"
}
@@ -16395,7 +19643,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/resolve": {
"version": "1.22.10",
@@ -16443,6 +19692,7 @@
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz",
"integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"expand-tilde": "^1.2.2",
"global-modules": "^0.2.3"
@@ -16460,11 +19710,22 @@
"node": ">=8"
}
},
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
"node_modules/resolve.exports": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
"integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
}
@@ -16474,6 +19735,7 @@
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
"integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 4"
}
@@ -16488,24 +19750,12 @@
"node": ">=0.10.0"
}
},
- "node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
"node_modules/robots-parser": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz",
"integrity": "sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10.0.0"
}
@@ -16551,6 +19801,45 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/rrweb-cssom": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
+ "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/rtlcss": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz",
+ "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.21",
+ "strip-json-comments": "^3.1.1"
+ },
+ "bin": {
+ "rtlcss": "bin/rtlcss.js"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/run-applescript": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/run-con": {
"version": "1.2.12",
"resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz",
@@ -16603,6 +19892,7 @@
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
"integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^2.1.0"
}
@@ -16706,30 +19996,30 @@
}
},
"node_modules/sass-loader": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
- "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "version": "16.0.6",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.6.tgz",
+ "integrity": "sha512-sglGzId5gmlfxNs4gK2U3h7HlVRfx278YK6Ono5lwzuvi1jxig80YiuHkaDBVsYIKFhx8wN7XSCI0M2IDS/3qA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "klona": "^2.0.4",
"neo-async": "^2.6.2"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 18.12.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "fibers": ">= 3.1.0",
- "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
+ "@rspack/core": "0.x || 1.x",
+ "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"sass": "^1.3.0",
"sass-embedded": "*",
"webpack": "^5.0.0"
},
"peerDependenciesMeta": {
- "fibers": {
+ "@rspack/core": {
"optional": true
},
"node-sass": {
@@ -16740,6 +20030,9 @@
},
"sass-embedded": {
"optional": true
+ },
+ "webpack": {
+ "optional": true
}
}
},
@@ -16748,6 +20041,7 @@
"resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
"integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"xmlchars": "^2.2.0"
},
@@ -16759,7 +20053,6 @@
"version": "0.23.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "peer": true,
"dependencies": {
"loose-envify": "^1.1.0"
}
@@ -16821,19 +20114,21 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
"integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/selfsigned": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
- "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz",
+ "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node-forge": "^1.3.0",
- "node-forge": "^1"
+ "@peculiar/x509": "^1.14.2",
+ "pkijs": "^3.3.3"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
}
},
"node_modules/semver": {
@@ -16846,24 +20141,25 @@
}
},
"node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.1",
"mime": "1.6.0",
"ms": "2.1.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"range-parser": "~1.2.1",
- "statuses": "2.0.1"
+ "statuses": "~2.0.2"
},
"engines": {
"node": ">= 0.8.0"
@@ -16874,6 +20170,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -16882,34 +20179,15 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/send/node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
+ "license": "MIT"
},
"node_modules/sentence-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz",
"integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"no-case": "^3.0.4",
"tslib": "^2.0.3",
@@ -16930,6 +20208,7 @@
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
"integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"accepts": "~1.3.4",
"batch": "0.6.1",
@@ -16948,6 +20227,7 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
@@ -16957,6 +20237,7 @@
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
"integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
@@ -16966,6 +20247,7 @@
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
"integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"depd": "~1.1.2",
"inherits": "2.0.3",
@@ -16980,39 +20262,44 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/serve-index/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/serve-index/node_modules/setprototypeof": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/serve-index/node_modules/statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.19.0"
+ "send": "~0.19.1"
},
"engines": {
"node": ">= 0.8.0"
@@ -17068,7 +20355,8 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/shallow-clone": {
"version": "0.1.2",
@@ -17107,24 +20395,26 @@
}
},
"node_modules/shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "shebang-regex": "^1.0.0"
+ "shebang-regex": "^3.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
"node_modules/shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
"node_modules/shell-quote": {
@@ -17132,6 +20422,7 @@
"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
"integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4"
},
@@ -17139,6 +20430,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/shimmer": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
+ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
@@ -17215,7 +20513,8 @@
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/sirv": {
"version": "2.0.4",
@@ -17235,13 +20534,15 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -17251,6 +20552,7 @@
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
"integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -17268,6 +20570,7 @@
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
@@ -17288,6 +20591,7 @@
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
"integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"faye-websocket": "^0.11.3",
"uuid": "^8.3.2",
@@ -17299,6 +20603,7 @@
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz",
"integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ip-address": "^10.0.1",
"smart-buffer": "^4.2.0"
@@ -17313,6 +20618,7 @@
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
"integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"agent-base": "^7.1.2",
"debug": "^4.3.4",
@@ -17322,15 +20628,6 @@
"node": ">= 14"
}
},
- "node_modules/socks-proxy-agent/node_modules/agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true,
- "engines": {
- "node": ">= 14"
- }
- },
"node_modules/source-map": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
@@ -17374,6 +20671,7 @@
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
"integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -17384,15 +20682,17 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/spawnd": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.2.tgz",
- "integrity": "sha512-nl8DVHEDQ57IcKakzpjanspVChkMpGLuVwMR/eOn9cXE55Qr6luD2Kn06sA0ootRMdgrU4tInN6lA6ohTNvysw==",
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-10.1.4.tgz",
+ "integrity": "sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"signal-exit": "^4.1.0",
"tree-kill": "^1.2.2"
@@ -17406,6 +20706,7 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=14"
},
@@ -17418,6 +20719,7 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
"integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
@@ -17428,6 +20730,7 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -17437,13 +20740,15 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dev": true
+ "dev": true,
+ "license": "CC-BY-3.0"
},
"node_modules/spdx-expression-parse": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
"integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -17453,13 +20758,15 @@
"version": "3.0.22",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz",
"integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==",
- "dev": true
+ "dev": true,
+ "license": "CC0-1.0"
},
"node_modules/spdy": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
"integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^4.1.0",
"handle-thing": "^2.0.0",
@@ -17476,6 +20783,7 @@
"resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
"integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"debug": "^4.1.0",
"detect-node": "^2.0.4",
@@ -17490,6 +20798,7 @@
"resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz",
"integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"image-ssim": "^0.2.0",
@@ -17500,16 +20809,28 @@
}
},
"node_modules/sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
- "dev": true
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/stable-hash-x": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz",
+ "integrity": "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ }
},
"node_modules/stack-utils": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
"integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"escape-string-regexp": "^2.0.0"
},
@@ -17522,6 +20843,7 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -17533,10 +20855,11 @@
"dev": true
},
"node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
@@ -17555,16 +20878,15 @@
}
},
"node_modules/streamx": {
- "version": "2.22.1",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz",
- "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==",
+ "version": "2.23.0",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz",
+ "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "events-universal": "^1.0.0",
"fast-fifo": "^1.3.2",
"text-decoder": "^1.1.0"
- },
- "optionalDependencies": {
- "bare-events": "^2.2.0"
}
},
"node_modules/string_decoder": {
@@ -17572,6 +20894,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"safe-buffer": "~5.2.0"
}
@@ -17581,6 +20904,7 @@
"resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
"integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"char-regex": "^1.0.2",
"strip-ansi": "^6.0.0"
@@ -17594,6 +20918,7 @@
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -17607,7 +20932,8 @@
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/string.prototype.includes": {
"version": "2.0.1",
@@ -17733,6 +21059,7 @@
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
"integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -17742,6 +21069,7 @@
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -17751,6 +21079,7 @@
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
"integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"min-indent": "^1.0.0"
},
@@ -17791,11 +21120,29 @@
"node": ">=0.8.0"
}
},
+ "node_modules/stubborn-fs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-2.0.0.tgz",
+ "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "stubborn-utils": "^1.0.1"
+ }
+ },
+ "node_modules/stubborn-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/stubborn-utils/-/stubborn-utils-1.0.2.tgz",
+ "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/style-search": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
"integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
- "dev": true
+ "dev": true,
+ "license": "ISC"
},
"node_modules/stylehacks": {
"version": "6.1.1",
@@ -17814,119 +21161,313 @@
}
},
"node_modules/stylelint": {
- "version": "14.16.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
- "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
+ "version": "16.26.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz",
+ "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/stylelint"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-syntax-patches-for-csstree": "^1.0.19",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/media-query-list-parser": "^4.0.3",
+ "@csstools/selector-specificity": "^5.0.0",
+ "@dual-bundle/import-meta-resolve": "^4.2.1",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.1.0",
- "css-functions-list": "^3.1.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.2.12",
+ "cosmiconfig": "^9.0.0",
+ "css-functions-list": "^3.2.3",
+ "css-tree": "^3.1.0",
+ "debug": "^4.4.3",
+ "fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^11.1.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.1",
- "import-lazy": "^4.0.0",
+ "html-tags": "^3.3.1",
+ "ignore": "^7.0.5",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.26.0",
+ "known-css-properties": "^0.37.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
- "micromatch": "^4.0.5",
+ "meow": "^13.2.0",
+ "micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.19",
- "postcss-media-query-parser": "^0.2.3",
- "postcss-resolve-nested-selector": "^0.1.1",
- "postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.11",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.5.6",
+ "postcss-resolve-nested-selector": "^0.1.6",
+ "postcss-safe-parser": "^7.0.1",
+ "postcss-selector-parser": "^7.1.0",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "style-search": "^0.1.0",
- "supports-hyperlinks": "^2.3.0",
+ "supports-hyperlinks": "^3.2.0",
"svg-tags": "^1.0.0",
- "table": "^6.8.1",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.2"
+ "table": "^6.9.0",
+ "write-file-atomic": "^5.0.1"
},
"bin": {
- "stylelint": "bin/stylelint.js"
+ "stylelint": "bin/stylelint.mjs"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/stylelint"
+ "node": ">=18.12.0"
}
},
"node_modules/stylelint-config-recommended": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz",
- "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==",
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
+ "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/stylelint"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12.0"
+ },
"peerDependencies": {
- "stylelint": "^14.0.0"
+ "stylelint": "^16.1.0"
}
},
"node_modules/stylelint-config-recommended-scss": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz",
- "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.1.0.tgz",
+ "integrity": "sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "postcss-scss": "^4.0.2",
- "stylelint-config-recommended": "^6.0.0",
- "stylelint-scss": "^4.0.0"
+ "postcss-scss": "^4.0.9",
+ "stylelint-config-recommended": "^14.0.1",
+ "stylelint-scss": "^6.4.0"
+ },
+ "engines": {
+ "node": ">=18.12.0"
},
"peerDependencies": {
- "stylelint": "^14.0.0"
+ "postcss": "^8.3.3",
+ "stylelint": "^16.6.1"
+ },
+ "peerDependenciesMeta": {
+ "postcss": {
+ "optional": true
+ }
}
},
"node_modules/stylelint-scss": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz",
- "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.14.0.tgz",
+ "integrity": "sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
+ "css-tree": "^3.0.1",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.37.0",
+ "mdn-data": "^2.25.0",
"postcss-media-query-parser": "^0.2.3",
- "postcss-resolve-nested-selector": "^0.1.1",
- "postcss-selector-parser": "^6.0.11",
+ "postcss-resolve-nested-selector": "^0.1.6",
+ "postcss-selector-parser": "^7.1.1",
"postcss-value-parser": "^4.2.0"
},
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^16.8.2"
+ }
+ },
+ "node_modules/stylelint-scss/node_modules/css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/stylelint-scss/node_modules/css-tree/node_modules/mdn-data": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/stylelint-scss/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stylelint-scss/node_modules/mdn-data": {
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.26.0.tgz",
+ "integrity": "sha512-ZqI0qjKWHMPcGUfLmlr80NPNVHIOjPMHtIOe1qXYFGS0YBZ1YKAzo9yk8W+gGrLCN0Xdv/RKxqdIsqPakEfmow==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/stylelint-scss/node_modules/postcss-selector-parser": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/stylelint/node_modules/@csstools/media-query-list-parser": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz",
+ "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
"peerDependencies": {
- "stylelint": "^14.5.1 || ^15.0.0"
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-tokenizer": "^3.0.4"
}
},
+ "node_modules/stylelint/node_modules/@csstools/selector-specificity": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ }
+ },
+ "node_modules/stylelint/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
"node_modules/stylelint/node_modules/balanced-match": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/stylelint/node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/stylelint/node_modules/css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/stylelint/node_modules/file-entry-cache": {
+ "version": "11.1.2",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz",
+ "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^6.1.20"
+ }
+ },
+ "node_modules/stylelint/node_modules/flat-cache": {
+ "version": "6.1.20",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.20.tgz",
+ "integrity": "sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cacheable": "^2.3.2",
+ "flatted": "^3.3.3",
+ "hookified": "^1.15.0"
}
},
"node_modules/stylelint/node_modules/global-modules": {
@@ -17934,6 +21475,7 @@
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
"integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"global-prefix": "^3.0.0"
},
@@ -17946,6 +21488,7 @@
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
"integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ini": "^1.3.5",
"kind-of": "^6.0.2",
@@ -17955,24 +21498,123 @@
"node": ">=6"
}
},
+ "node_modules/stylelint/node_modules/ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
"node_modules/stylelint/node_modules/is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/stylelint/node_modules/js-yaml": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/stylelint/node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/stylelint/node_modules/mdn-data": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/stylelint/node_modules/meow": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
+ "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylelint/node_modules/postcss-selector-parser": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/stylelint/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/stylelint/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/stylelint/node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -17986,16 +21628,20 @@
}
},
"node_modules/supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz",
+ "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1"
}
},
"node_modules/supports-preserve-symlinks-flag": {
@@ -18060,13 +21706,15 @@
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/synckit": {
- "version": "0.11.11",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz",
- "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==",
+ "version": "0.11.12",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz",
+ "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@pkgr/core": "^0.2.9"
},
@@ -18082,6 +21730,7 @@
"resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
"integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
"ajv": "^8.0.1",
"lodash.truncate": "^4.4.2",
@@ -18098,6 +21747,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -18113,16 +21763,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/tannin": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz",
- "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==",
"dev": true,
- "dependencies": {
- "@tannin/plural-forms": "^1.1.0"
- }
+ "license": "MIT"
},
"node_modules/tapable": {
"version": "2.2.3",
@@ -18138,31 +21780,45 @@
}
},
"node_modules/tar-fs": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz",
+ "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
"pump": "^3.0.0",
- "tar-stream": "^2.1.4"
+ "tar-stream": "^3.1.5"
+ },
+ "optionalDependencies": {
+ "bare-fs": "^4.0.1",
+ "bare-path": "^3.0.0"
}
},
"node_modules/tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ }
+ },
+ "node_modules/tar-stream/node_modules/b4a": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
+ "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react-native-b4a": "*"
},
- "engines": {
- "node": ">=6"
+ "peerDependenciesMeta": {
+ "react-native-b4a": {
+ "optional": true
+ }
}
},
"node_modules/terser": {
@@ -18276,6 +21932,7 @@
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
"integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"@istanbuljs/schema": "^0.1.2",
"glob": "^7.1.4",
@@ -18290,6 +21947,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -18300,6 +21958,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -18312,15 +21971,17 @@
"resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz",
"integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"b4a": "^1.6.4"
}
},
"node_modules/text-decoder/node_modules/b4a": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.1.tgz",
- "integrity": "sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
+ "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
"dev": true,
+ "license": "Apache-2.0",
"peerDependencies": {
"react-native-b4a": "*"
},
@@ -18336,29 +21997,135 @@
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
+ "node_modules/thingies": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz",
+ "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "^2"
+ }
+ },
"node_modules/third-party-web": {
- "version": "0.23.4",
- "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.4.tgz",
- "integrity": "sha512-kwYnSZRhEvv0SBW2fp8SBBKRglMoBjV8xz6C31m0ewqOtknB5UL+Ihg+M81hyFY5ldkZuGWPb+e4GVDkzf/gYg==",
- "dev": true
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.27.0.tgz",
+ "integrity": "sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/tldts": {
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
+ "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tldts-core": "^6.1.86"
+ },
+ "bin": {
+ "tldts": "bin/cli.js"
+ }
+ },
+ "node_modules/tldts-core": {
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
+ "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tldts-icann": {
+ "version": "7.0.19",
+ "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.19.tgz",
+ "integrity": "sha512-PZgda8E2cXMNa7QlBbiZh3vcS8UaPTDRIBmcGPDlujSMtQLrzjvikeJxzQSqWxn3muaMJ7BsC+aL464Yl2I6cA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tldts-core": "^7.0.19"
+ }
+ },
+ "node_modules/tldts-icann/node_modules/tldts-core": {
+ "version": "7.0.19",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz",
+ "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
+ "dev": true,
+ "license": "BSD-3-Clause"
},
"node_modules/to-regex-range": {
"version": "5.0.1",
@@ -18377,6 +22144,7 @@
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.6"
}
@@ -18391,30 +22159,46 @@
}
},
"node_modules/tough-cookie": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
- "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
+ "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
+ "tldts": "^6.1.32"
},
"engines": {
- "node": ">=6"
+ "node": ">=16"
}
},
"node_modules/tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "punycode": "^2.1.1"
+ "punycode": "^2.3.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
+ }
+ },
+ "node_modules/tree-dump": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz",
+ "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/streamich"
+ },
+ "peerDependencies": {
+ "tslib": "2"
}
},
"node_modules/tree-kill": {
@@ -18422,6 +22206,7 @@
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
"integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
"dev": true,
+ "license": "MIT",
"bin": {
"tree-kill": "cli.js"
}
@@ -18431,6 +22216,7 @@
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
"integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -18461,6 +22247,7 @@
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
"integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=16"
},
@@ -18473,6 +22260,7 @@
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
"integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/json5": "^0.0.29",
"json5": "^1.0.2",
@@ -18485,6 +22273,7 @@
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -18497,6 +22286,7 @@
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -18512,6 +22302,7 @@
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tslib": "^1.8.1"
},
@@ -18526,7 +22317,28 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/tsyringe": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz",
+ "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^1.9.3"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/tsyringe/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "license": "0BSD"
},
"node_modules/type-check": {
"version": "0.4.0",
@@ -18545,6 +22357,7 @@
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -18566,6 +22379,7 @@
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
@@ -18648,14 +22462,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "node_modules/typed-query-selector": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz",
+ "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==",
"dev": true,
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
+ "license": "MIT"
},
"node_modules/typescript": {
"version": "5.9.2",
@@ -18700,6 +22512,7 @@
"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"buffer": "^5.2.1",
"through": "^2.3.8"
@@ -18751,36 +22564,51 @@
"node": ">=4"
}
},
- "node_modules/unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
- "dev": true,
- "dependencies": {
- "crypto-random-string": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "dev": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
+ "node_modules/unrs-resolver": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
+ "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "napi-postinstall": "^0.3.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unrs-resolver"
+ },
+ "optionalDependencies": {
+ "@unrs/resolver-binding-android-arm-eabi": "1.11.1",
+ "@unrs/resolver-binding-android-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-x64": "1.11.1",
+ "@unrs/resolver-binding-freebsd-x64": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-musl": "1.11.1",
+ "@unrs/resolver-binding-wasm32-wasi": "1.11.1",
+ "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-x64-msvc": "1.11.1"
+ }
+ },
"node_modules/update-browserslist-db": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
@@ -18816,6 +22644,7 @@
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz",
"integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tslib": "^2.0.3"
}
@@ -18825,6 +22654,7 @@
"resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
"integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"tslib": "^2.0.3"
}
@@ -18883,14 +22713,13 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dev": true,
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
+ "node_modules/use-sync-external-store": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
}
},
"node_modules/util-deprecate": {
@@ -18904,6 +22733,7 @@
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.4.0"
}
@@ -18913,21 +22743,17 @@
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
+ "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
},
- "node_modules/v8-compile-cache": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
- "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
- "dev": true
- },
"node_modules/v8-to-istanbul": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
"integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.12",
"@types/istanbul-lib-coverage": "^2.0.1",
@@ -18942,6 +22768,7 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
@@ -18952,6 +22779,7 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
"integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -18962,6 +22790,7 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
"integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
@@ -18971,26 +22800,30 @@
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/vite": {
- "version": "5.4.20",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz",
- "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
+ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
"dev": true,
"license": "MIT",
"dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.13"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
@@ -18999,19 +22832,25 @@
"fsevents": "~2.3.3"
},
"peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
"less": "*",
"lightningcss": "^1.21.0",
"sass": "*",
"sass-embedded": "*",
"stylus": "*",
"sugarss": "*",
- "terser": "^5.4.0"
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
+ "jiti": {
+ "optional": true
+ },
"less": {
"optional": true
},
@@ -19032,9 +22871,46 @@
},
"terser": {
"optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
}
}
},
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/void-elements": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
@@ -19045,28 +22921,30 @@
}
},
"node_modules/w3c-xmlserializer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
- "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "xml-name-validator": "^4.0.0"
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/wait-on": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
- "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.5.tgz",
+ "integrity": "sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "axios": "^1.6.1",
- "joi": "^17.11.0",
+ "axios": "^1.12.1",
+ "joi": "^18.0.1",
"lodash": "^4.17.21",
"minimist": "^1.2.8",
- "rxjs": "^7.8.1"
+ "rxjs": "^7.8.2"
},
"bin": {
"wait-on": "bin/wait-on"
@@ -19080,6 +22958,7 @@
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
"integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"makeerror": "1.0.12"
}
@@ -19102,21 +22981,31 @@
"resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
"integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"minimalistic-assert": "^1.0.0"
}
},
"node_modules/web-vitals": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz",
- "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==",
- "dev": true
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz",
+ "integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/webdriver-bidi-protocol": {
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.10.tgz",
+ "integrity": "sha512-5LAE43jAVLOhB/QqX4bwSiv0Hg1HBfMmOuwBSXHdvg4GMGu9Y0lIq7p4R/yySu6w74WmaR4GM4H9t2IwLW7hgw==",
+ "dev": true,
+ "license": "Apache-2.0"
},
"node_modules/webidl-conversions": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"dev": true,
+ "license": "BSD-2-Clause",
"engines": {
"node": ">=12"
}
@@ -19226,42 +23115,40 @@
}
},
"node_modules/webpack-cli": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
- "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz",
+ "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^2.1.1",
- "@webpack-cli/info": "^2.0.2",
- "@webpack-cli/serve": "^2.0.5",
+ "@discoveryjs/json-ext": "^0.6.1",
+ "@webpack-cli/configtest": "^3.0.1",
+ "@webpack-cli/info": "^3.0.1",
+ "@webpack-cli/serve": "^3.0.1",
"colorette": "^2.0.14",
- "commander": "^10.0.1",
+ "commander": "^12.1.0",
"cross-spawn": "^7.0.3",
- "envinfo": "^7.7.3",
+ "envinfo": "^7.14.0",
"fastest-levenshtein": "^1.0.12",
"import-local": "^3.0.2",
"interpret": "^3.1.1",
"rechoir": "^0.8.0",
- "webpack-merge": "^5.7.3"
+ "webpack-merge": "^6.0.1"
},
"bin": {
"webpack-cli": "bin/cli.js"
},
"engines": {
- "node": ">=14.15.0"
+ "node": ">=18.12.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "webpack": "5.x.x"
+ "webpack": "^5.82.0"
},
"peerDependenciesMeta": {
- "@webpack-cli/generators": {
- "optional": true
- },
"webpack-bundle-analyzer": {
"optional": true
},
@@ -19270,137 +23157,121 @@
}
}
},
- "node_modules/webpack-cli/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "node_modules/webpack-cli/node_modules/@discoveryjs/json-ext": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz",
+ "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=14"
+ "node": ">=14.17.0"
}
},
- "node_modules/webpack-cli/node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "node_modules/webpack-dev-middleware": {
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz",
+ "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "colorette": "^2.0.10",
+ "memfs": "^4.43.1",
+ "mime-types": "^3.0.1",
+ "on-finished": "^2.4.1",
+ "range-parser": "^1.2.1",
+ "schema-utils": "^4.0.0"
},
"engines": {
- "node": ">= 8"
- }
- },
- "node_modules/webpack-cli/node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
+ "node": ">= 18.12.0"
},
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/webpack-cli/node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack": {
+ "optional": true
+ }
}
},
- "node_modules/webpack-cli/node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "node_modules/webpack-dev-middleware/node_modules/mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
"dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 8"
+ "node": ">= 0.6"
}
},
- "node_modules/webpack-dev-middleware": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
- "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
+ "node_modules/webpack-dev-middleware/node_modules/mime-types": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "colorette": "^2.0.10",
- "memfs": "^3.4.3",
- "mime-types": "^2.1.31",
- "range-parser": "^1.2.1",
- "schema-utils": "^4.0.0"
+ "mime-db": "^1.54.0"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">=18"
},
"funding": {
"type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
+ "url": "https://opencollective.com/express"
}
},
"node_modules/webpack-dev-server": {
- "version": "4.15.2",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz",
- "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==",
- "dev": true,
- "dependencies": {
- "@types/bonjour": "^3.5.9",
- "@types/connect-history-api-fallback": "^1.3.5",
- "@types/express": "^4.17.13",
- "@types/serve-index": "^1.9.1",
- "@types/serve-static": "^1.13.10",
- "@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.5",
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz",
+ "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/bonjour": "^3.5.13",
+ "@types/connect-history-api-fallback": "^1.5.4",
+ "@types/express": "^4.17.25",
+ "@types/express-serve-static-core": "^4.17.21",
+ "@types/serve-index": "^1.9.4",
+ "@types/serve-static": "^1.15.5",
+ "@types/sockjs": "^0.3.36",
+ "@types/ws": "^8.5.10",
"ansi-html-community": "^0.0.8",
- "bonjour-service": "^1.0.11",
- "chokidar": "^3.5.3",
+ "bonjour-service": "^1.2.1",
+ "chokidar": "^3.6.0",
"colorette": "^2.0.10",
- "compression": "^1.7.4",
+ "compression": "^1.8.1",
"connect-history-api-fallback": "^2.0.0",
- "default-gateway": "^6.0.3",
- "express": "^4.17.3",
+ "express": "^4.22.1",
"graceful-fs": "^4.2.6",
- "html-entities": "^2.3.2",
- "http-proxy-middleware": "^2.0.3",
- "ipaddr.js": "^2.0.1",
- "launch-editor": "^2.6.0",
- "open": "^8.0.9",
- "p-retry": "^4.5.0",
- "rimraf": "^3.0.2",
- "schema-utils": "^4.0.0",
- "selfsigned": "^2.1.1",
+ "http-proxy-middleware": "^2.0.9",
+ "ipaddr.js": "^2.1.0",
+ "launch-editor": "^2.6.1",
+ "open": "^10.0.3",
+ "p-retry": "^6.2.0",
+ "schema-utils": "^4.2.0",
+ "selfsigned": "^5.5.0",
"serve-index": "^1.9.1",
"sockjs": "^0.3.24",
"spdy": "^4.0.2",
- "webpack-dev-middleware": "^5.3.4",
- "ws": "^8.13.0"
+ "webpack-dev-middleware": "^7.4.2",
+ "ws": "^8.18.0"
},
"bin": {
"webpack-dev-server": "bin/webpack-dev-server.js"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 18.12.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "webpack": "^4.37.0 || ^5.0.0"
+ "webpack": "^5.0.0"
},
"peerDependenciesMeta": {
"webpack": {
@@ -19416,6 +23287,7 @@
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -19440,6 +23312,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -19452,6 +23325,7 @@
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -19459,34 +23333,19 @@
"node": ">=8.10.0"
}
},
- "node_modules/webpack-dev-server/node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
"node_modules/webpack-merge": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
- "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz",
+ "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
- "wildcard": "^2.0.0"
+ "wildcard": "^2.0.1"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=18.0.0"
}
},
"node_modules/webpack-merge/node_modules/clone-deep": {
@@ -19494,6 +23353,7 @@
"resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
"integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-plain-object": "^2.0.4",
"kind-of": "^6.0.2",
@@ -19508,6 +23368,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -19517,6 +23378,7 @@
"resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
"integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"kind-of": "^6.0.2"
},
@@ -19538,6 +23400,7 @@
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
"integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
"dev": true,
+ "license": "Apache-2.0",
"dependencies": {
"http-parser-js": ">=0.5.1",
"safe-buffer": ">=5.1.0",
@@ -19552,54 +23415,70 @@
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation",
"dev": true,
+ "license": "MIT",
"dependencies": {
"iconv-lite": "0.6.3"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "tr46": "^3.0.0",
+ "tr46": "^5.1.0",
"webidl-conversions": "^7.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
+ "node_modules/when-exit": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.5.tgz",
+ "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
- "which": "bin/which"
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
"node_modules/which-boxed-primitive": {
@@ -19691,7 +23570,8 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
"integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/word-wrap": {
"version": "1.2.5",
@@ -19707,6 +23587,7 @@
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -19730,6 +23611,7 @@
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
"integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
"dev": true,
+ "license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4",
"signal-exit": "^3.0.7"
@@ -19739,10 +23621,11 @@
}
},
"node_modules/ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10.0.0"
},
@@ -19759,35 +23642,68 @@
}
}
},
+ "node_modules/wsl-utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
+ "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-wsl": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/xdg-basedir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
- "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
+ "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true,
+ "license": "Apache-2.0",
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/xmlchars": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
},
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10"
}
@@ -19799,12 +23715,21 @@
"dev": true
},
"node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
+ "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
"dev": true,
+ "license": "ISC",
+ "optional": true,
+ "peer": true,
+ "bin": {
+ "yaml": "bin.mjs"
+ },
"engines": {
- "node": ">= 6"
+ "node": ">= 14.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/eemeli"
}
},
"node_modules/yargs": {
@@ -19812,6 +23737,7 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
@@ -19826,10 +23752,21 @@
}
},
"node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs/node_modules/yargs-parser": {
"version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=12"
}
@@ -19839,6 +23776,7 @@
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
"integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"buffer-crc32": "~0.2.3",
"fd-slicer": "~1.1.0"
@@ -19855,9 +23793,50 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/zod": {
+ "version": "3.23.8",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
+ "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
}
},
"dependencies": {
+ "@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "@asamuzakjp/css-color": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
+ "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
+ "dev": true,
+ "requires": {
+ "@csstools/css-calc": "^2.1.3",
+ "@csstools/css-color-parser": "^3.0.9",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "lru-cache": "^10.4.3"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true
+ }
+ }
+ },
"@babel/code-frame": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
@@ -19899,9 +23878,9 @@
}
},
"@babel/eslint-parser": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.4.tgz",
- "integrity": "sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
"requires": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
@@ -20207,6 +24186,24 @@
"@babel/helper-plugin-utils": "^7.14.5"
}
},
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
"@babel/plugin-syntax-import-assertions": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz",
@@ -20826,17 +24823,29 @@
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.28.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz",
- "integrity": "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz",
+ "integrity": "sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.27.1",
- "@babel/helper-plugin-utils": "^7.27.1",
- "babel-plugin-polyfill-corejs2": "^0.4.14",
- "babel-plugin-polyfill-corejs3": "^0.13.0",
- "babel-plugin-polyfill-regenerator": "^0.6.5",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
"semver": "^6.3.1"
+ },
+ "dependencies": {
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.10.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
+ "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "core-js-compat": "^3.38.0"
+ }
+ }
}
},
"@babel/plugin-transform-shorthand-properties": {
@@ -21054,9 +25063,9 @@
}
},
"@babel/runtime": {
- "version": "7.28.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
- "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz",
+ "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="
},
"@babel/template": {
"version": "7.27.2",
@@ -21100,10 +25109,106 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "@csstools/selector-specificity": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
- "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
+ "@cacheable/memory": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.7.tgz",
+ "integrity": "sha512-RbxnxAMf89Tp1dLhXMS7ceft/PGsDl1Ip7T20z5nZ+pwIAsQ1p2izPjVG69oCLv/jfQ7HDPHTWK0c9rcAWXN3A==",
+ "dev": true,
+ "requires": {
+ "@cacheable/utils": "^2.3.3",
+ "@keyv/bigmap": "^1.3.0",
+ "hookified": "^1.14.0",
+ "keyv": "^5.5.5"
+ },
+ "dependencies": {
+ "@keyv/bigmap": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.0.tgz",
+ "integrity": "sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg==",
+ "dev": true,
+ "requires": {
+ "hashery": "^1.2.0",
+ "hookified": "^1.13.0"
+ }
+ },
+ "keyv": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz",
+ "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==",
+ "dev": true,
+ "requires": {
+ "@keyv/serialize": "^1.1.1"
+ }
+ }
+ }
+ },
+ "@cacheable/utils": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.3.3.tgz",
+ "integrity": "sha512-JsXDL70gQ+1Vc2W/KUFfkAJzgb4puKwwKehNLuB+HrNKWf91O736kGfxn4KujXCCSuh6mRRL4XEB0PkAFjWS0A==",
+ "dev": true,
+ "requires": {
+ "hashery": "^1.3.0",
+ "keyv": "^5.5.5"
+ },
+ "dependencies": {
+ "keyv": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz",
+ "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==",
+ "dev": true,
+ "requires": {
+ "@keyv/serialize": "^1.1.1"
+ }
+ }
+ }
+ },
+ "@csstools/color-helpers": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
+ "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
+ "dev": true
+ },
+ "@csstools/css-calc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
+ "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "@csstools/css-color-parser": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
+ "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==",
+ "dev": true,
+ "requires": {
+ "@csstools/color-helpers": "^5.1.0",
+ "@csstools/css-calc": "^2.1.4"
+ }
+ },
+ "@csstools/css-parser-algorithms": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
+ "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "@csstools/css-syntax-patches-for-csstree": {
+ "version": "1.0.25",
+ "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.25.tgz",
+ "integrity": "sha512-g0Kw9W3vjx5BEBAF8c5Fm2NcB/Fs8jJXh85aXqwEXiL+tqtOut07TWgyaGzAAfTM+gKckrrncyeGEZPcaRgm2Q==",
+ "dev": true
+ },
+ "@csstools/css-tokenizer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
+ "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
+ "dev": true
+ },
+ "@csstools/media-query-list-parser": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-3.0.1.tgz",
+ "integrity": "sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==",
"dev": true,
"requires": {}
},
@@ -21113,6 +25218,48 @@
"integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
"dev": true
},
+ "@dogado/gravity": {
+ "version": "5.25.3",
+ "resolved": "https://registry.npmjs.org/@dogado/gravity/-/gravity-5.25.3.tgz",
+ "integrity": "sha512-M/iwMLf2F8q7TbUPnBuZ5MFNxYpoEB9vPu7DjHQ50PxfBD/FpmWz9fV+r8iIGVSeqrCABt17Nj2kvRYIGXhP1g=="
+ },
+ "@dual-bundle/import-meta-resolve": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz",
+ "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==",
+ "dev": true
+ },
+ "@emnapi/core": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz",
+ "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@emnapi/wasi-threads": "1.1.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@emnapi/runtime": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz",
+ "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "@emnapi/wasi-threads": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
+ "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
"@es-joy/jsdoccomment": {
"version": "0.41.0",
"resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz",
@@ -21125,163 +25272,184 @@
}
},
"@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
"dev": true,
"optional": true
},
"@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
"dev": true,
"optional": true
},
"@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
"dev": true,
"optional": true
},
"@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
"dev": true,
"optional": true
},
"@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
"dev": true,
"optional": true
},
"@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
"dev": true,
"optional": true
},
"@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
"dev": true,
"optional": true
},
"@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
"dev": true,
"optional": true
},
"@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
"dev": true,
"optional": true
},
"@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
"dev": true,
"optional": true
},
"@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
"dev": true,
"optional": true
},
"@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
"dev": true,
"optional": true
},
"@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
"dev": true,
"optional": true
},
"@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
"dev": true,
"optional": true
},
"@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/netbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
"dev": true,
"optional": true
},
"@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
"dev": true,
"optional": true
},
"@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openharmony-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
"dev": true,
"optional": true
},
"@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
"dev": true,
"optional": true
},
"@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
"dev": true,
"optional": true
},
"@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
"dev": true,
"optional": true
},
"@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
"dev": true,
"optional": true
},
@@ -21341,10 +25509,19 @@
"concat-map": "0.0.1"
}
},
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
"js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"requires": {
"argparse": "^2.0.1"
@@ -21364,27 +25541,99 @@
"@eslint/js": {
"version": "8.57.1",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
- "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
- "dev": true
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q=="
+ },
+ "@formatjs/ecma402-abstract": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz",
+ "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==",
+ "dev": true,
+ "requires": {
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/intl-localematcher": "0.6.2",
+ "decimal.js": "^10.4.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@formatjs/fast-memoize": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz",
+ "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "@formatjs/icu-messageformat-parser": {
+ "version": "2.11.4",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz",
+ "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==",
+ "dev": true,
+ "requires": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "@formatjs/icu-skeleton-parser": "1.8.16",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@formatjs/icu-skeleton-parser": {
+ "version": "1.8.16",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz",
+ "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==",
+ "dev": true,
+ "requires": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "tslib": "^2.8.0"
+ }
+ },
+ "@formatjs/intl-localematcher": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz",
+ "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.8.0"
+ }
},
- "@group.one/gravity": {
- "version": "5.22.1",
- "resolved": "https://gitlab.group.one/api/v4/projects/5722/packages/npm/@group.one/gravity/-/@group.one/gravity-5.22.1.tgz",
- "integrity": "sha1-3EdTKvE0jRR/MEZEDKoUT3EcsiM="
+ "@hapi/address": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/address/-/address-5.1.1.tgz",
+ "integrity": "sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==",
+ "dev": true,
+ "requires": {
+ "@hapi/hoek": "^11.0.2"
+ }
+ },
+ "@hapi/formula": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-3.0.2.tgz",
+ "integrity": "sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw==",
+ "dev": true
},
"@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
+ "version": "11.0.7",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz",
+ "integrity": "sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ==",
+ "dev": true
+ },
+ "@hapi/pinpoint": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.1.tgz",
+ "integrity": "sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q==",
+ "dev": true
+ },
+ "@hapi/tlds": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.4.tgz",
+ "integrity": "sha512-Fq+20dxsxLaUn5jSSWrdtSRcIUba2JquuorF9UW1wIJS5cSUwxIsO2GIhaWynPRflvxSzFN+gxKte2HEW1OuoA==",
"dev": true
},
"@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-6.0.2.tgz",
+ "integrity": "sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg==",
"dev": true,
"requires": {
- "@hapi/hoek": "^9.0.0"
+ "@hapi/hoek": "^11.0.2"
}
},
"@humanwhocodes/config-array": {
@@ -21520,6 +25769,159 @@
"jest-mock": "^29.7.0"
}
},
+ "@jest/environment-jsdom-abstract": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment-jsdom-abstract/-/environment-jsdom-abstract-30.2.0.tgz",
+ "integrity": "sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "30.2.0",
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/jsdom": "^21.1.7",
+ "@types/node": "*",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ },
+ "dependencies": {
+ "@jest/environment": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz",
+ "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==",
+ "dev": true,
+ "requires": {
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-mock": "30.2.0"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz",
+ "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "30.2.0",
+ "@sinonjs/fake-timers": "^13.0.0",
+ "@types/node": "*",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ }
+ },
+ "@jest/schemas": {
+ "version": "30.0.5",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+ "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
+ "dev": true,
+ "requires": {
+ "@sinclair/typebox": "^0.34.0"
+ }
+ },
+ "@jest/types": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+ "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
+ "dev": true,
+ "requires": {
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
+ }
+ },
+ "@sinclair/typebox": {
+ "version": "0.34.47",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.47.tgz",
+ "integrity": "sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw==",
+ "dev": true
+ },
+ "@sinonjs/fake-timers": {
+ "version": "13.0.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz",
+ "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
+ "ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true
+ },
+ "ci-info": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
+ "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.27.1",
+ "@jest/types": "30.2.0",
+ "@types/stack-utils": "^2.0.3",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.2.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.6"
+ }
+ },
+ "jest-mock": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
+ "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-util": "30.2.0"
+ }
+ },
+ "jest-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
+ "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.2"
+ }
+ },
+ "picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+ "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "30.0.5",
+ "ansi-styles": "^5.2.0",
+ "react-is": "^18.3.1"
+ }
+ }
+ }
+ },
"@jest/expect": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
@@ -21565,6 +25967,24 @@
"jest-mock": "^29.7.0"
}
},
+ "@jest/pattern": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz",
+ "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "jest-regex-util": "30.0.1"
+ },
+ "dependencies": {
+ "jest-regex-util": {
+ "version": "30.0.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz",
+ "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==",
+ "dev": true
+ }
+ }
+ },
"@jest/reporters": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
@@ -21611,9 +26031,9 @@
}
},
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
}
}
@@ -21751,6 +26171,69 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "@jsonjoy.com/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==",
+ "dev": true,
+ "requires": {}
+ },
+ "@jsonjoy.com/buffers": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz",
+ "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==",
+ "dev": true,
+ "requires": {}
+ },
+ "@jsonjoy.com/codegen": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz",
+ "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==",
+ "dev": true,
+ "requires": {}
+ },
+ "@jsonjoy.com/json-pack": {
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz",
+ "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==",
+ "dev": true,
+ "requires": {
+ "@jsonjoy.com/base64": "^1.1.2",
+ "@jsonjoy.com/buffers": "^1.2.0",
+ "@jsonjoy.com/codegen": "^1.0.0",
+ "@jsonjoy.com/json-pointer": "^1.0.2",
+ "@jsonjoy.com/util": "^1.9.0",
+ "hyperdyperid": "^1.2.0",
+ "thingies": "^2.5.0",
+ "tree-dump": "^1.1.0"
+ }
+ },
+ "@jsonjoy.com/json-pointer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz",
+ "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==",
+ "dev": true,
+ "requires": {
+ "@jsonjoy.com/codegen": "^1.0.0",
+ "@jsonjoy.com/util": "^1.9.0"
+ }
+ },
+ "@jsonjoy.com/util": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz",
+ "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==",
+ "dev": true,
+ "requires": {
+ "@jsonjoy.com/buffers": "^1.0.0",
+ "@jsonjoy.com/codegen": "^1.0.0"
+ }
+ },
+ "@keyv/serialize": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz",
+ "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==",
+ "dev": true
+ },
"@leichtgewicht/ip-codec": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
@@ -21804,6 +26287,18 @@
"resolved": "https://registry.npmjs.org/@mixpanel/rrweb-utils/-/rrweb-utils-2.0.0-alpha.18.2.tgz",
"integrity": "sha512-OomKIB6GTx5xvCLJ7iic2khT/t/tnCJUex13aEqsbSqIT/UzUUsqf+LTrgUK5ex+f6odmkCNjre2y5jvpNqn+g=="
},
+ "@napi-rs/wasm-runtime": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz",
+ "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@emnapi/core": "^1.4.3",
+ "@emnapi/runtime": "^1.4.3",
+ "@tybys/wasm-util": "^0.10.0"
+ }
+ },
"@nicolo-ribaudo/eslint-scope-5-internals": {
"version": "5.1.1-v1",
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
@@ -21813,6 +26308,12 @@
"eslint-scope": "5.1.1"
}
},
+ "@noble/hashes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
+ "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
+ "dev": true
+ },
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -21839,6 +26340,374 @@
"fastq": "^1.6.0"
}
},
+ "@opentelemetry/api": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz",
+ "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==",
+ "dev": true
+ },
+ "@opentelemetry/api-logs": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.57.2.tgz",
+ "integrity": "sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/api": "^1.3.0"
+ }
+ },
+ "@opentelemetry/context-async-hooks": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.30.1.tgz",
+ "integrity": "sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==",
+ "dev": true,
+ "requires": {}
+ },
+ "@opentelemetry/core": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz",
+ "integrity": "sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true
+ }
+ }
+ },
+ "@opentelemetry/instrumentation": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.57.2.tgz",
+ "integrity": "sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/api-logs": "0.57.2",
+ "@types/shimmer": "^1.2.0",
+ "import-in-the-middle": "^1.8.1",
+ "require-in-the-middle": "^7.1.1",
+ "semver": "^7.5.2",
+ "shimmer": "^1.2.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true
+ }
+ }
+ },
+ "@opentelemetry/instrumentation-amqplib": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.46.1.tgz",
+ "integrity": "sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-connect": {
+ "version": "0.43.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.43.1.tgz",
+ "integrity": "sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/connect": "3.4.38"
+ }
+ },
+ "@opentelemetry/instrumentation-dataloader": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.16.1.tgz",
+ "integrity": "sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ }
+ },
+ "@opentelemetry/instrumentation-express": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-express/-/instrumentation-express-0.47.1.tgz",
+ "integrity": "sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-fs": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.19.1.tgz",
+ "integrity": "sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1"
+ }
+ },
+ "@opentelemetry/instrumentation-generic-pool": {
+ "version": "0.43.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.43.1.tgz",
+ "integrity": "sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ }
+ },
+ "@opentelemetry/instrumentation-graphql": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.47.1.tgz",
+ "integrity": "sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ }
+ },
+ "@opentelemetry/instrumentation-hapi": {
+ "version": "0.45.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.45.2.tgz",
+ "integrity": "sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-http": {
+ "version": "0.57.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-http/-/instrumentation-http-0.57.2.tgz",
+ "integrity": "sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/instrumentation": "0.57.2",
+ "@opentelemetry/semantic-conventions": "1.28.0",
+ "forwarded-parse": "2.1.2",
+ "semver": "^7.5.2"
+ },
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true
+ }
+ }
+ },
+ "@opentelemetry/instrumentation-ioredis": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.47.1.tgz",
+ "integrity": "sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/redis-common": "^0.36.2",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-kafkajs": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-kafkajs/-/instrumentation-kafkajs-0.7.1.tgz",
+ "integrity": "sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-knex": {
+ "version": "0.44.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.44.1.tgz",
+ "integrity": "sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-koa": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.47.1.tgz",
+ "integrity": "sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-lru-memoizer": {
+ "version": "0.44.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.44.1.tgz",
+ "integrity": "sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1"
+ }
+ },
+ "@opentelemetry/instrumentation-mongodb": {
+ "version": "0.52.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.52.0.tgz",
+ "integrity": "sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-mongoose": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.46.1.tgz",
+ "integrity": "sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-mysql": {
+ "version": "0.45.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.45.1.tgz",
+ "integrity": "sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/mysql": "2.15.26"
+ }
+ },
+ "@opentelemetry/instrumentation-mysql2": {
+ "version": "0.45.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.45.2.tgz",
+ "integrity": "sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@opentelemetry/sql-common": "^0.40.1"
+ }
+ },
+ "@opentelemetry/instrumentation-pg": {
+ "version": "0.51.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.51.1.tgz",
+ "integrity": "sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.26.0",
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@opentelemetry/sql-common": "^0.40.1",
+ "@types/pg": "8.6.1",
+ "@types/pg-pool": "2.0.6"
+ }
+ },
+ "@opentelemetry/instrumentation-redis-4": {
+ "version": "0.46.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.46.1.tgz",
+ "integrity": "sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/redis-common": "^0.36.2",
+ "@opentelemetry/semantic-conventions": "^1.27.0"
+ }
+ },
+ "@opentelemetry/instrumentation-tedious": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.18.1.tgz",
+ "integrity": "sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.57.1",
+ "@opentelemetry/semantic-conventions": "^1.27.0",
+ "@types/tedious": "^4.0.14"
+ }
+ },
+ "@opentelemetry/instrumentation-undici": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-undici/-/instrumentation-undici-0.10.1.tgz",
+ "integrity": "sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.8.0",
+ "@opentelemetry/instrumentation": "^0.57.1"
+ }
+ },
+ "@opentelemetry/redis-common": {
+ "version": "0.36.2",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.36.2.tgz",
+ "integrity": "sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==",
+ "dev": true
+ },
+ "@opentelemetry/resources": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz",
+ "integrity": "sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true
+ }
+ }
+ },
+ "@opentelemetry/sdk-trace-base": {
+ "version": "1.30.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz",
+ "integrity": "sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "1.30.1",
+ "@opentelemetry/resources": "1.30.1",
+ "@opentelemetry/semantic-conventions": "1.28.0"
+ },
+ "dependencies": {
+ "@opentelemetry/semantic-conventions": {
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz",
+ "integrity": "sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==",
+ "dev": true
+ }
+ }
+ },
+ "@opentelemetry/semantic-conventions": {
+ "version": "1.39.0",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.39.0.tgz",
+ "integrity": "sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==",
+ "dev": true
+ },
+ "@opentelemetry/sql-common": {
+ "version": "0.40.1",
+ "resolved": "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.1.tgz",
+ "integrity": "sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/core": "^1.1.0"
+ }
+ },
"@parcel/watcher": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
@@ -21956,6 +26825,161 @@
"dev": true,
"optional": true
},
+ "@paulirish/trace_engine": {
+ "version": "0.0.59",
+ "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.59.tgz",
+ "integrity": "sha512-439NUzQGmH+9Y017/xCchBP9571J4bzhpcNhrxorf7r37wcyJZkgUfrUsRL3xl+JDcZ6ORhoFCzCw98c6S3YHw==",
+ "dev": true,
+ "requires": {
+ "legacy-javascript": "latest",
+ "third-party-web": "latest"
+ }
+ },
+ "@peculiar/asn1-cms": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.0.tgz",
+ "integrity": "sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "@peculiar/asn1-x509-attr": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-csr": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.0.tgz",
+ "integrity": "sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-ecc": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.0.tgz",
+ "integrity": "sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-pfx": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.0.tgz",
+ "integrity": "sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-cms": "^2.6.0",
+ "@peculiar/asn1-pkcs8": "^2.6.0",
+ "@peculiar/asn1-rsa": "^2.6.0",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-pkcs8": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.0.tgz",
+ "integrity": "sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-pkcs9": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.0.tgz",
+ "integrity": "sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-cms": "^2.6.0",
+ "@peculiar/asn1-pfx": "^2.6.0",
+ "@peculiar/asn1-pkcs8": "^2.6.0",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "@peculiar/asn1-x509-attr": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-rsa": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.0.tgz",
+ "integrity": "sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-schema": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz",
+ "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==",
+ "dev": true,
+ "requires": {
+ "asn1js": "^3.0.6",
+ "pvtsutils": "^1.3.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-x509": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.0.tgz",
+ "integrity": "sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "pvtsutils": "^1.3.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/asn1-x509-attr": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.0.tgz",
+ "integrity": "sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "asn1js": "^3.0.6",
+ "tslib": "^2.8.1"
+ }
+ },
+ "@peculiar/x509": {
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz",
+ "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==",
+ "dev": true,
+ "requires": {
+ "@peculiar/asn1-cms": "^2.6.0",
+ "@peculiar/asn1-csr": "^2.6.0",
+ "@peculiar/asn1-ecc": "^2.6.0",
+ "@peculiar/asn1-pkcs9": "^2.6.0",
+ "@peculiar/asn1-rsa": "^2.6.0",
+ "@peculiar/asn1-schema": "^2.6.0",
+ "@peculiar/asn1-x509": "^2.6.0",
+ "pvtsutils": "^1.3.6",
+ "reflect-metadata": "^0.2.2",
+ "tslib": "^2.8.1",
+ "tsyringe": "^4.10.0"
+ }
+ },
"@pkgr/core": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz",
@@ -21963,13 +26987,13 @@
"dev": true
},
"@playwright/test": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.0.tgz",
- "integrity": "sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==",
+ "version": "1.57.0",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0.tgz",
+ "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==",
"dev": true,
"peer": true,
"requires": {
- "playwright": "1.55.0"
+ "playwright": "1.57.0"
}
},
"@pmmmwh/react-refresh-webpack-plugin": {
@@ -21993,79 +27017,36 @@
"integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
"dev": true
},
+ "@prisma/instrumentation": {
+ "version": "6.11.1",
+ "resolved": "https://registry.npmjs.org/@prisma/instrumentation/-/instrumentation-6.11.1.tgz",
+ "integrity": "sha512-mrZOev24EDhnefmnZX7WVVT7v+r9LttPRqf54ONvj6re4XMF7wFTpK2tLJi4XHB7fFp/6xhYbgRel8YV7gQiyA==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/instrumentation": "^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0"
+ }
+ },
"@puppeteer/browsers": {
- "version": "1.4.6",
- "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz",
- "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz",
+ "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==",
"dev": true,
"requires": {
- "debug": "4.3.4",
- "extract-zip": "2.0.1",
- "progress": "2.0.3",
- "proxy-agent": "6.3.0",
- "tar-fs": "3.0.4",
- "unbzip2-stream": "1.4.3",
- "yargs": "17.7.1"
+ "debug": "^4.4.0",
+ "extract-zip": "^2.0.1",
+ "progress": "^2.0.3",
+ "proxy-agent": "^6.5.0",
+ "semver": "^7.6.3",
+ "tar-fs": "^3.0.6",
+ "unbzip2-stream": "^1.4.3",
+ "yargs": "^17.7.2"
},
"dependencies": {
- "b4a": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.1.tgz",
- "integrity": "sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==",
- "dev": true,
- "requires": {}
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
- },
- "tar-fs": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
- "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
- "dev": true,
- "requires": {
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^3.1.5"
- }
- },
- "tar-stream": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
- "dev": true,
- "requires": {
- "b4a": "^1.6.4",
- "fast-fifo": "^1.2.0",
- "streamx": "^2.15.0"
- }
- },
- "yargs": {
- "version": "17.7.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
- "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
- "dev": true,
- "requires": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
- }
}
}
},
@@ -22229,133 +27210,74 @@
"dev": true
},
"@sentry/core": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz",
- "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==",
- "dev": true,
- "requires": {
- "@sentry/hub": "6.19.7",
- "@sentry/minimal": "6.19.7",
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "tslib": "^1.9.3"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@sentry/hub": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz",
- "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==",
- "dev": true,
- "requires": {
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "tslib": "^1.9.3"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@sentry/minimal": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz",
- "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==",
- "dev": true,
- "requires": {
- "@sentry/hub": "6.19.7",
- "@sentry/types": "6.19.7",
- "tslib": "^1.9.3"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@sentry/node": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz",
- "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==",
- "dev": true,
- "requires": {
- "@sentry/core": "6.19.7",
- "@sentry/hub": "6.19.7",
- "@sentry/types": "6.19.7",
- "@sentry/utils": "6.19.7",
- "cookie": "^0.4.1",
- "https-proxy-agent": "^5.0.0",
- "lru_map": "^0.3.3",
- "tslib": "^1.9.3"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@sentry/types": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz",
- "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==",
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.47.1.tgz",
+ "integrity": "sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==",
"dev": true
},
- "@sentry/utils": {
- "version": "6.19.7",
- "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz",
- "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==",
- "dev": true,
- "requires": {
- "@sentry/types": "6.19.7",
- "tslib": "^1.9.3"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- }
- }
- },
- "@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "dev": true,
- "requires": {
- "@hapi/hoek": "^9.0.0"
+ "@sentry/node": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-9.47.1.tgz",
+ "integrity": "sha512-CDbkasBz3fnWRKSFs6mmaRepM2pa+tbZkrqhPWifFfIkJDidtVW40p6OnquTvPXyPAszCnDZRnZT14xyvNmKPQ==",
+ "dev": true,
+ "requires": {
+ "@opentelemetry/api": "^1.9.0",
+ "@opentelemetry/context-async-hooks": "^1.30.1",
+ "@opentelemetry/core": "^1.30.1",
+ "@opentelemetry/instrumentation": "^0.57.2",
+ "@opentelemetry/instrumentation-amqplib": "^0.46.1",
+ "@opentelemetry/instrumentation-connect": "0.43.1",
+ "@opentelemetry/instrumentation-dataloader": "0.16.1",
+ "@opentelemetry/instrumentation-express": "0.47.1",
+ "@opentelemetry/instrumentation-fs": "0.19.1",
+ "@opentelemetry/instrumentation-generic-pool": "0.43.1",
+ "@opentelemetry/instrumentation-graphql": "0.47.1",
+ "@opentelemetry/instrumentation-hapi": "0.45.2",
+ "@opentelemetry/instrumentation-http": "0.57.2",
+ "@opentelemetry/instrumentation-ioredis": "0.47.1",
+ "@opentelemetry/instrumentation-kafkajs": "0.7.1",
+ "@opentelemetry/instrumentation-knex": "0.44.1",
+ "@opentelemetry/instrumentation-koa": "0.47.1",
+ "@opentelemetry/instrumentation-lru-memoizer": "0.44.1",
+ "@opentelemetry/instrumentation-mongodb": "0.52.0",
+ "@opentelemetry/instrumentation-mongoose": "0.46.1",
+ "@opentelemetry/instrumentation-mysql": "0.45.1",
+ "@opentelemetry/instrumentation-mysql2": "0.45.2",
+ "@opentelemetry/instrumentation-pg": "0.51.1",
+ "@opentelemetry/instrumentation-redis-4": "0.46.1",
+ "@opentelemetry/instrumentation-tedious": "0.18.1",
+ "@opentelemetry/instrumentation-undici": "0.10.1",
+ "@opentelemetry/resources": "^1.30.1",
+ "@opentelemetry/sdk-trace-base": "^1.30.1",
+ "@opentelemetry/semantic-conventions": "^1.34.0",
+ "@prisma/instrumentation": "6.11.1",
+ "@sentry/core": "9.47.1",
+ "@sentry/node-core": "9.47.1",
+ "@sentry/opentelemetry": "9.47.1",
+ "import-in-the-middle": "^1.14.2",
+ "minimatch": "^9.0.0"
+ }
+ },
+ "@sentry/node-core": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/node-core/-/node-core-9.47.1.tgz",
+ "integrity": "sha512-7TEOiCGkyShJ8CKtsri9lbgMCbB+qNts2Xq37itiMPN2m+lIukK3OX//L8DC5nfKYZlgikrefS63/vJtm669hQ==",
+ "dev": true,
+ "requires": {
+ "@sentry/core": "9.47.1",
+ "@sentry/opentelemetry": "9.47.1",
+ "import-in-the-middle": "^1.14.2"
+ }
+ },
+ "@sentry/opentelemetry": {
+ "version": "9.47.1",
+ "resolved": "https://registry.npmjs.org/@sentry/opentelemetry/-/opentelemetry-9.47.1.tgz",
+ "integrity": "sha512-STtFpjF7lwzeoedDJV+5XA6P89BfmFwFftmHSGSe3UTI8z8IoiR5yB6X2vCjSPvXlfeOs13qCNNCEZyznxM8Xw==",
+ "dev": true,
+ "requires": {
+ "@sentry/core": "9.47.1"
}
},
- "@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
- "dev": true
- },
- "@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "dev": true
- },
"@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -22380,6 +27302,36 @@
"@sinonjs/commons": "^3.0.0"
}
},
+ "@standard-schema/spec": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
+ "dev": true
+ },
+ "@stylistic/stylelint-plugin": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.3.tgz",
+ "integrity": "sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==",
+ "dev": true,
+ "requires": {
+ "@csstools/css-parser-algorithms": "^3.0.1",
+ "@csstools/css-tokenizer": "^3.0.1",
+ "@csstools/media-query-list-parser": "^3.0.1",
+ "is-plain-object": "^5.0.0",
+ "postcss": "^8.4.41",
+ "postcss-selector-parser": "^6.1.2",
+ "postcss-value-parser": "^4.2.0",
+ "style-search": "^0.1.0"
+ },
+ "dependencies": {
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true
+ }
+ }
+ },
"@svgr/babel-plugin-add-jsx-attribute": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
@@ -22514,43 +27466,6 @@
"@svgr/plugin-svgo": "8.1.0"
}
},
- "@tannin/compile": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/compile/-/compile-1.1.0.tgz",
- "integrity": "sha512-n8m9eNDfoNZoxdvWiTfW/hSPhehzLJ3zW7f8E7oT6mCROoMNWCB4TYtv041+2FMAxweiE0j7i1jubQU4MEC/Gg==",
- "dev": true,
- "requires": {
- "@tannin/evaluate": "^1.2.0",
- "@tannin/postfix": "^1.1.0"
- }
- },
- "@tannin/evaluate": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@tannin/evaluate/-/evaluate-1.2.0.tgz",
- "integrity": "sha512-3ioXvNowbO/wSrxsDG5DKIMxC81P0QrQTYai8zFNY+umuoHWRPbQ/TuuDEOju9E+jQDXmj6yI5GyejNuh8I+eg==",
- "dev": true
- },
- "@tannin/plural-forms": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/plural-forms/-/plural-forms-1.1.0.tgz",
- "integrity": "sha512-xl9R2mDZO/qiHam1AgMnAES6IKIg7OBhcXqy6eDsRCdXuxAFPcjrej9HMjyCLE0DJ/8cHf0i5OQTstuBRhpbHw==",
- "dev": true,
- "requires": {
- "@tannin/compile": "^1.1.0"
- }
- },
- "@tannin/postfix": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@tannin/postfix/-/postfix-1.1.0.tgz",
- "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==",
- "dev": true
- },
- "@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
- "dev": true
- },
"@tootallnate/quickjs-emscripten": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
@@ -22563,6 +27478,16 @@
"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
"dev": true
},
+ "@tybys/wasm-util": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
+ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
"@types/babel__core": {
"version": "7.20.5",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
@@ -22674,35 +27599,21 @@
"dev": true
},
"@types/express": {
- "version": "4.17.23",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.23.tgz",
- "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==",
+ "version": "4.17.25",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz",
+ "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
"dev": true,
"requires": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.33",
"@types/qs": "*",
- "@types/serve-static": "*"
- },
- "dependencies": {
- "@types/express-serve-static-core": {
- "version": "4.19.6",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
- "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- }
+ "@types/serve-static": "^1"
}
},
"@types/express-serve-static-core": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz",
- "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==",
+ "version": "4.19.8",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
+ "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -22711,16 +27622,6 @@
"@types/send": "*"
}
},
- "@types/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
- "dev": true,
- "requires": {
- "@types/minimatch": "*",
- "@types/node": "*"
- }
- },
"@types/graceful-fs": {
"version": "4.1.9",
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
@@ -22737,9 +27638,9 @@
"dev": true
},
"@types/http-proxy": {
- "version": "1.17.16",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz",
- "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==",
+ "version": "1.17.17",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz",
+ "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -22770,9 +27671,9 @@
}
},
"@types/jsdom": {
- "version": "20.0.1",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz",
- "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==",
+ "version": "21.1.7",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
+ "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -22798,21 +27699,21 @@
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
"dev": true
},
- "@types/minimatch": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-6.0.0.tgz",
- "integrity": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==",
- "dev": true,
- "requires": {
- "minimatch": "*"
- }
- },
"@types/minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
"dev": true
},
+ "@types/mysql": {
+ "version": "2.15.26",
+ "resolved": "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.26.tgz",
+ "integrity": "sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/node": {
"version": "24.4.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.4.0.tgz",
@@ -22822,15 +27723,6 @@
"undici-types": "~7.11.0"
}
},
- "@types/node-forge": {
- "version": "1.3.14",
- "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz",
- "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
"@types/normalize-package-data": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
@@ -22843,6 +27735,32 @@
"integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
"dev": true
},
+ "@types/pg": {
+ "version": "8.6.1",
+ "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.1.tgz",
+ "integrity": "sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "pg-protocol": "*",
+ "pg-types": "^2.2.0"
+ }
+ },
+ "@types/pg-pool": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/pg-pool/-/pg-pool-2.0.6.tgz",
+ "integrity": "sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==",
+ "dev": true,
+ "requires": {
+ "@types/pg": "*"
+ }
+ },
+ "@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "dev": true
+ },
"@types/qs": {
"version": "6.14.0",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz",
@@ -22855,10 +27773,27 @@
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
"dev": true
},
+ "@types/react": {
+ "version": "18.3.27",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz",
+ "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==",
+ "dev": true,
+ "requires": {
+ "@types/prop-types": "*",
+ "csstype": "^3.2.2"
+ }
+ },
+ "@types/react-dom": {
+ "version": "18.3.7",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz",
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
+ "dev": true,
+ "requires": {}
+ },
"@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz",
+ "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==",
"dev": true
},
"@types/semver": {
@@ -22868,12 +27803,11 @@
"dev": true
},
"@types/send": {
- "version": "0.17.5",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz",
- "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
"dev": true,
"requires": {
- "@types/mime": "^1",
"@types/node": "*"
}
},
@@ -22887,16 +27821,34 @@
}
},
"@types/serve-static": {
- "version": "1.15.8",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz",
- "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==",
+ "version": "1.15.10",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz",
+ "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==",
"dev": true,
"requires": {
"@types/http-errors": "*",
"@types/node": "*",
- "@types/send": "*"
+ "@types/send": "<1"
+ },
+ "dependencies": {
+ "@types/send": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
+ "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
+ "dev": true,
+ "requires": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ }
}
},
+ "@types/shimmer": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz",
+ "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==",
+ "dev": true
+ },
"@types/sockjs": {
"version": "0.3.36",
"resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
@@ -22910,7 +27862,9 @@
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz",
"integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==",
- "dev": true
+ "dev": true,
+ "optional": true,
+ "peer": true
},
"@types/stack-utils": {
"version": "2.0.3",
@@ -22922,7 +27876,18 @@
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz",
"integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==",
- "dev": true
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "@types/tedious": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz",
+ "integrity": "sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
},
"@types/tough-cookie": {
"version": "4.0.5",
@@ -22935,6 +27900,8 @@
"resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz",
"integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==",
"dev": true,
+ "optional": true,
+ "peer": true,
"requires": {
"source-map": "^0.6.1"
},
@@ -22943,7 +27910,9 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
+ "dev": true,
+ "optional": true,
+ "peer": true
}
}
},
@@ -22952,6 +27921,8 @@
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz",
"integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==",
"dev": true,
+ "optional": true,
+ "peer": true,
"requires": {
"@types/node": "*",
"@types/tapable": "^1",
@@ -22965,7 +27936,9 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
+ "dev": true,
+ "optional": true,
+ "peer": true
}
}
},
@@ -22974,6 +27947,8 @@
"resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz",
"integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==",
"dev": true,
+ "optional": true,
+ "peer": true,
"requires": {
"@types/node": "*",
"@types/source-list-map": "*",
@@ -22990,9 +27965,9 @@
}
},
"@types/yargs": {
- "version": "17.0.33",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
- "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "version": "17.0.35",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
+ "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
@@ -23034,9 +28009,9 @@
},
"dependencies": {
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
}
}
@@ -23099,9 +28074,9 @@
},
"dependencies": {
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
}
}
@@ -23122,9 +28097,9 @@
},
"dependencies": {
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
}
}
@@ -23153,6 +28128,142 @@
"integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
"dev": true
},
+ "@unrs/resolver-binding-android-arm-eabi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz",
+ "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-android-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz",
+ "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-darwin-arm64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz",
+ "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-darwin-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz",
+ "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-freebsd-x64": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz",
+ "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-arm-gnueabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz",
+ "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-arm-musleabihf": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz",
+ "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-arm64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz",
+ "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-arm64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz",
+ "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-ppc64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz",
+ "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-riscv64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz",
+ "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-riscv64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz",
+ "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-s390x-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz",
+ "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-x64-gnu": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz",
+ "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-linux-x64-musl": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz",
+ "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-wasm32-wasi": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz",
+ "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@napi-rs/wasm-runtime": "^0.2.11"
+ }
+ },
+ "@unrs/resolver-binding-win32-arm64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz",
+ "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-win32-ia32-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz",
+ "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@unrs/resolver-binding-win32-x64-msvc": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz",
+ "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==",
+ "dev": true,
+ "optional": true
+ },
"@vitejs/plugin-react": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz",
@@ -23322,118 +28433,281 @@
}
},
"@webpack-cli/configtest": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
- "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz",
+ "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==",
"dev": true,
"requires": {}
},
"@webpack-cli/info": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
- "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz",
+ "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==",
"dev": true,
"requires": {}
},
"@webpack-cli/serve": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
- "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
- "dev": true,
- "requires": {}
- },
- "@wordpress/api-fetch": {
- "version": "6.55.0",
- "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz",
- "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0",
- "@wordpress/url": "^3.59.0"
- }
- },
- "@wordpress/babel-plugin-import-jsx-pragma": {
- "version": "4.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.41.0.tgz",
- "integrity": "sha512-hYxj2Uobxk86ctlfaJou9v13XqXZ30yx4ZwRNu5cH5/LWXe2MIXBTPv7dUk6wqN/qFOjsFvP9jCB0NsW6MnkrA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz",
+ "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==",
"dev": true,
"requires": {}
},
"@wordpress/babel-preset-default": {
- "version": "7.42.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.42.0.tgz",
- "integrity": "sha512-AWSxWuEuzazt/nWomKiaVhYQeXuqxTniPCKhvks58wB3P4UXvSe3hRnO+nujz20IuxIk2xHT6x47HgpDZy30jw==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.16.0",
- "@babel/plugin-transform-react-jsx": "^7.16.0",
- "@babel/plugin-transform-runtime": "^7.16.0",
- "@babel/preset-env": "^7.16.0",
- "@babel/preset-typescript": "^7.16.0",
- "@babel/runtime": "^7.16.0",
- "@wordpress/babel-plugin-import-jsx-pragma": "^4.41.0",
- "@wordpress/browserslist-config": "^5.41.0",
- "@wordpress/warning": "^2.58.0",
+ "version": "8.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.38.0.tgz",
+ "integrity": "sha512-5DxPlGcB2EDpZjYI9FD1rOcYRaYuPr9EXNhDsiX+Mbxgj6ZZvWeJAT+E/8YlAOO969skUjxk/BIScQRSE99HbA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "7.25.7",
+ "@babel/plugin-syntax-import-attributes": "7.26.0",
+ "@babel/plugin-transform-react-jsx": "7.25.7",
+ "@babel/plugin-transform-runtime": "7.25.7",
+ "@babel/preset-env": "7.25.7",
+ "@babel/preset-typescript": "7.25.7",
+ "@wordpress/browserslist-config": "^6.38.0",
+ "@wordpress/warning": "^3.38.0",
"browserslist": "^4.21.10",
"core-js": "^3.31.0",
"react": "^18.3.0"
+ },
+ "dependencies": {
+ "@babel/core": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
+ "dev": true,
+ "requires": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/plugin-syntax-import-attributes": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
+ "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz",
+ "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/plugin-syntax-jsx": "^7.25.7",
+ "@babel/types": "^7.25.7"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.7.tgz",
+ "integrity": "sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.25.7",
+ "@babel/plugin-syntax-import-attributes": "^7.25.7",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.25.7",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.7",
+ "@babel/plugin-transform-async-to-generator": "^7.25.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.7",
+ "@babel/plugin-transform-block-scoping": "^7.25.7",
+ "@babel/plugin-transform-class-properties": "^7.25.7",
+ "@babel/plugin-transform-class-static-block": "^7.25.7",
+ "@babel/plugin-transform-classes": "^7.25.7",
+ "@babel/plugin-transform-computed-properties": "^7.25.7",
+ "@babel/plugin-transform-destructuring": "^7.25.7",
+ "@babel/plugin-transform-dotall-regex": "^7.25.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.7",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-dynamic-import": "^7.25.7",
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.7",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.7",
+ "@babel/plugin-transform-for-of": "^7.25.7",
+ "@babel/plugin-transform-function-name": "^7.25.7",
+ "@babel/plugin-transform-json-strings": "^7.25.7",
+ "@babel/plugin-transform-literals": "^7.25.7",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.7",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.7",
+ "@babel/plugin-transform-modules-amd": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.7",
+ "@babel/plugin-transform-modules-umd": "^7.25.7",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-new-target": "^7.25.7",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.7",
+ "@babel/plugin-transform-numeric-separator": "^7.25.7",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.7",
+ "@babel/plugin-transform-object-super": "^7.25.7",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.7",
+ "@babel/plugin-transform-optional-chaining": "^7.25.7",
+ "@babel/plugin-transform-parameters": "^7.25.7",
+ "@babel/plugin-transform-private-methods": "^7.25.7",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.7",
+ "@babel/plugin-transform-property-literals": "^7.25.7",
+ "@babel/plugin-transform-regenerator": "^7.25.7",
+ "@babel/plugin-transform-reserved-words": "^7.25.7",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.7",
+ "@babel/plugin-transform-spread": "^7.25.7",
+ "@babel/plugin-transform-sticky-regex": "^7.25.7",
+ "@babel/plugin-transform-template-literals": "^7.25.7",
+ "@babel/plugin-transform-typeof-symbol": "^7.25.7",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.7",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.7",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "core-js-compat": "^3.38.1",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/preset-typescript": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz",
+ "integrity": "sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-syntax-jsx": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-typescript": "^7.25.7"
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.10.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
+ "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "core-js-compat": "^3.38.0"
+ }
+ }
}
},
"@wordpress/base-styles": {
- "version": "4.49.0",
- "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.49.0.tgz",
- "integrity": "sha512-yFRYqNtd26ULZ0oAHhCu/IcaA0XHI3E7kRCKajZqUvyRQj7YprXnpD3o0/pnwvF6ZFTXzCX8pXHjUc2TIv97ig==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-6.14.0.tgz",
+ "integrity": "sha512-0NoWb5+gVGUMZ8RiAE4g4dJ08ZdSMrWdnt/fp//BclezTdOLepZPzZ9O6nDWLVdlNgnYLhPwK/t5jxOow5WRoA==",
"dev": true
},
"@wordpress/browserslist-config": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.41.0.tgz",
- "integrity": "sha512-J7ejzzDpPZddVIiq2YiK8J/pNTJDy3X1s+5ZtwkwklCxBMZJurxf9pEhtbaf7us0Q6c1j8Ubv7Fpx3lqk2ypxA==",
+ "version": "6.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.38.0.tgz",
+ "integrity": "sha512-cLm8mg7jHdajpkuC0ohjy1/DWB7X/mrW8N5spA0ukKfj+CbJi7+PVFeeEPCjDLEybnlqrVCJ8VaLaxde+xU3UA==",
"dev": true
},
"@wordpress/dependency-extraction-webpack-plugin": {
- "version": "4.31.0",
- "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.31.0.tgz",
- "integrity": "sha512-Xpm8EEhi6e8GL1juYh/70AFbcE/ZVXJ3p47KMkkEsn5t+hG9QHjKe2lTj98v2r3rB+ampoK+whdV1w6gItXYpw==",
+ "version": "6.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.38.0.tgz",
+ "integrity": "sha512-N/wjZ7Ne5D3ASXgEqKhLeAsbYPUtmSAXmyd31dMChIP6HnN9kuN+iyrxNR3COg2VoW7K9VAhwTzEEGQrOQv/rw==",
"dev": true,
"requires": {
- "json2php": "^0.0.7",
- "webpack-sources": "^3.2.2"
+ "json2php": "^0.0.7"
+ },
+ "dependencies": {
+ "json2php": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz",
+ "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==",
+ "dev": true
+ }
}
},
- "@wordpress/e2e-test-utils-playwright": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.16.0.tgz",
- "integrity": "sha512-CktRj5/Cc/pAvTHXIAPIMrmmnb0VjtXbTGSjYG6pW/JI2YAmpwY2yBA+DlHJjqOIpcjDDj+sSsJomRSxT2chwQ==",
+ "@wordpress/element": {
+ "version": "6.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.38.0.tgz",
+ "integrity": "sha512-4N9xtuE2TIvaZ037fQREKrBw4TTt90PWswAfNFvxUVu5vdp91PLuR6rmeO0ohKg2CJLzozQLEKZF+6VuSaYowQ==",
"dev": true,
"requires": {
- "@wordpress/api-fetch": "^6.45.0",
- "@wordpress/keycodes": "^3.48.0",
- "@wordpress/url": "^3.49.0",
+ "@types/react": "^18.3.27",
+ "@types/react-dom": "^18.3.1",
+ "@wordpress/escape-html": "^3.38.0",
"change-case": "^4.1.2",
- "form-data": "^4.0.0",
- "get-port": "^5.1.1",
- "lighthouse": "^10.4.0",
- "mime": "^3.0.0",
- "web-vitals": "^3.5.0"
+ "is-plain-object": "^5.0.0",
+ "react": "^18.3.0",
+ "react-dom": "^18.3.0"
+ },
+ "dependencies": {
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true
+ }
}
},
+ "@wordpress/escape-html": {
+ "version": "3.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.38.0.tgz",
+ "integrity": "sha512-LItqIdFnn/JAVEzTtvDZGJfsdmzeIE4ryMjovHkJhRElzcQWKHuq806DMprL40NcvJbdn0YfJZSv+aeP+9Ah3g==",
+ "dev": true
+ },
"@wordpress/eslint-plugin": {
- "version": "17.13.0",
- "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-17.13.0.tgz",
- "integrity": "sha512-QnG5HmOd+XsweKOvrqbOugm9rINUjcsh1jo2SN4cbbTWZJ6nPmcfLS0YJdrKkgOQUnKDPQgBPVEyI8tp19OtBw==",
+ "version": "24.0.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-24.0.0.tgz",
+ "integrity": "sha512-FXf427hQNXymMxk+qvzejXLEnnn64aGNHBEDMUYpt4MJx98+Upo2uYG0JGWm5y/Aqm+rBlGgdyNsQjjSB+Q6pQ==",
"dev": true,
"requires": {
- "@babel/eslint-parser": "^7.16.0",
+ "@babel/eslint-parser": "7.25.7",
"@typescript-eslint/eslint-plugin": "^6.4.1",
"@typescript-eslint/parser": "^6.4.1",
- "@wordpress/babel-preset-default": "^7.40.0",
- "@wordpress/prettier-config": "^3.13.0",
+ "@wordpress/babel-preset-default": "^8.38.0",
+ "@wordpress/prettier-config": "^4.38.0",
+ "@wordpress/theme": "^0.5.0",
"cosmiconfig": "^7.0.0",
"eslint-config-prettier": "^8.3.0",
+ "eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-import": "^2.25.2",
- "eslint-plugin-jest": "^27.2.3",
+ "eslint-plugin-jest": "^27.4.3",
"eslint-plugin-jsdoc": "^46.4.6",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-playwright": "^0.15.3",
@@ -23456,176 +28730,329 @@
"path-type": "^4.0.0",
"yaml": "^1.10.0"
}
+ },
+ "eslint-config-prettier": {
+ "version": "8.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz",
+ "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==",
+ "dev": true,
+ "requires": {}
+ },
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true
}
}
},
- "@wordpress/hooks": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz",
- "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.16.0"
- }
- },
- "@wordpress/i18n": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz",
- "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.58.0",
- "gettext-parser": "^1.3.1",
- "memize": "^2.1.0",
- "sprintf-js": "^1.1.1",
- "tannin": "^1.2.0"
- }
- },
"@wordpress/jest-console": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.29.0.tgz",
- "integrity": "sha512-/9PZJhyszdRX4mka7t1WzoooM+Q/DwC4jkNVtJxqci5lbL3Lrhy1cCJGCgMr1n/9w+zs7eLmExFBvV4v44iyNw==",
+ "version": "8.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.38.0.tgz",
+ "integrity": "sha512-pRvWbxr/PHs2IsjsVvb9kBgqcxOcPnTN/baOmmEJFHVtOa5hp/ze6zbz/c18RCmrxWt5doRwHpfH84M/yivo2A==",
"dev": true,
"requires": {
- "@babel/runtime": "^7.16.0",
- "jest-matcher-utils": "^29.6.2"
+ "jest-matcher-utils": "^29.6.2",
+ "jest-mock": "^29.6.2"
}
},
"@wordpress/jest-preset-default": {
- "version": "11.29.0",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.29.0.tgz",
- "integrity": "sha512-7LA0ZS5t0Thn7xrdwPL3hLgjB9LKloneGhMwnnDUTgJP330lyfdDfJ+O6Lnz3iL+bg68mkA3AzrT9Fs9f3WKww==",
- "dev": true,
- "requires": {
- "@wordpress/jest-console": "^7.29.0",
- "babel-jest": "^29.6.2"
- }
- },
- "@wordpress/keycodes": {
- "version": "3.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.58.0.tgz",
- "integrity": "sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA==",
+ "version": "12.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.38.0.tgz",
+ "integrity": "sha512-rAEYTMbpmfhYA5p3HmkhsTXM3rHq+4mdmt8xS5izXn5SzZdsHs+oa1Ej9COMi6xThpMN5i0+N+vz3HDzAMLCsg==",
"dev": true,
"requires": {
- "@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.58.0"
+ "@wordpress/jest-console": "^8.38.0",
+ "babel-jest": "29.7.0"
}
},
"@wordpress/npm-package-json-lint-config": {
- "version": "4.43.0",
- "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.43.0.tgz",
- "integrity": "sha512-XSb7AdDC7yGTBVYeRM4oqmOygEB+/+tk7lobLIGDmlZJs+M3F/NUvQq0Vcas1pojq2fyPYTUwOlu81ga33fNwQ==",
+ "version": "5.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.38.0.tgz",
+ "integrity": "sha512-/8oarSArKiN2ZUTCexn27YQLPXpxmNAYQEzgubmALtR5wGWnMwpCw9bt/+/cG6t6o1YaAN8ZOO3gattQYssYrA==",
"dev": true,
"requires": {}
},
"@wordpress/postcss-plugins-preset": {
- "version": "4.42.0",
- "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.42.0.tgz",
- "integrity": "sha512-5xmKF7IUsqS5JcmJlHKHq7RaR6ZpaLj3n9c+X0X0/Oo7ZCIGp6WeDQngx13sH4NJoKXrZ9g4n1rbzhEKeo/Wtg==",
+ "version": "5.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.38.0.tgz",
+ "integrity": "sha512-I8QFM8pPv04VTvakhIqRL5CU8s6Irf7onixBjXD95+ae3kmVJY548mp7cBU5MV9n92IZbGbwLjhaOIegS3QxfQ==",
"dev": true,
"requires": {
- "@wordpress/base-styles": "^4.49.0",
- "autoprefixer": "^10.2.5"
+ "@wordpress/base-styles": "^6.14.0",
+ "autoprefixer": "^10.4.20",
+ "postcss-import": "^16.1.1"
}
},
"@wordpress/prettier-config": {
- "version": "3.15.0",
- "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.15.0.tgz",
- "integrity": "sha512-exC2rkEioTt//AnzPRyaaFv8FNYIvamPDytNol5bKQ6Qh65QSdZZE9V+GtRCrIPL7/Bq6xba03XuRVxl9TjtJg==",
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.38.0.tgz",
+ "integrity": "sha512-kWGpmmkIvvObtteeOBkZM3GiTOL8tBkccBJwIWV7kBIC71HrBERnvQZKga84QW5thdt+S0ccjBZk41saEGXavw==",
"dev": true,
"requires": {}
},
+ "@wordpress/private-apis": {
+ "version": "1.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/private-apis/-/private-apis-1.38.0.tgz",
+ "integrity": "sha512-6Hj9x3xJb64Xu/p2M4XA9fGeY2omTly2bb+Kayaa55eEZi6iXlcIhvv7UAdKhJ2PF9hfuENccgqhG7OrvaEEJg==",
+ "dev": true
+ },
"@wordpress/scripts": {
- "version": "26.19.0",
- "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-26.19.0.tgz",
- "integrity": "sha512-m3QYlgpWRfIqCfU4jWKwGeA12Qkt6d9CMewEIxIBGVlEGd/sL5rU1fM7LKNBEbSPQpaOTWJApNGWPcW75Fwp+w==",
+ "version": "31.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-31.3.0.tgz",
+ "integrity": "sha512-gZiw7y3/tNbzxcW4IXBszyTzP7KkZivDGAvL01sJ1bcVTTuD4LyQ4MXhesCUYEYXPkSRNQh1Q4oAXk1FH3DlSQ==",
"dev": true,
"requires": {
- "@babel/core": "^7.16.0",
+ "@babel/core": "7.25.7",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
"@svgr/webpack": "^8.0.1",
- "@wordpress/babel-preset-default": "^7.32.0",
- "@wordpress/browserslist-config": "^5.31.0",
- "@wordpress/dependency-extraction-webpack-plugin": "^4.31.0",
- "@wordpress/e2e-test-utils-playwright": "^0.16.0",
- "@wordpress/eslint-plugin": "^17.5.0",
- "@wordpress/jest-preset-default": "^11.19.0",
- "@wordpress/npm-package-json-lint-config": "^4.33.0",
- "@wordpress/postcss-plugins-preset": "^4.32.0",
- "@wordpress/prettier-config": "^3.5.0",
- "@wordpress/stylelint-config": "^21.31.0",
+ "@wordpress/babel-preset-default": "^8.38.0",
+ "@wordpress/browserslist-config": "^6.38.0",
+ "@wordpress/dependency-extraction-webpack-plugin": "^6.38.0",
+ "@wordpress/e2e-test-utils-playwright": "^1.38.0",
+ "@wordpress/eslint-plugin": "^24.0.0",
+ "@wordpress/jest-preset-default": "^12.38.0",
+ "@wordpress/npm-package-json-lint-config": "^5.38.0",
+ "@wordpress/postcss-plugins-preset": "^5.38.0",
+ "@wordpress/prettier-config": "^4.38.0",
+ "@wordpress/stylelint-config": "^23.30.0",
"adm-zip": "^0.5.9",
- "babel-jest": "^29.6.2",
- "babel-loader": "^8.2.3",
+ "babel-jest": "29.7.0",
+ "babel-loader": "9.2.1",
"browserslist": "^4.21.10",
"chalk": "^4.0.0",
"check-node-version": "^4.1.0",
- "clean-webpack-plugin": "^3.0.0",
"copy-webpack-plugin": "^10.2.0",
- "cross-spawn": "^5.1.0",
+ "cross-spawn": "^7.0.6",
"css-loader": "^6.2.0",
"cssnano": "^6.0.1",
"cwd": "^0.10.0",
"dir-glob": "^3.0.1",
- "eslint": "^8.3.0",
+ "eslint": "^8.57.1",
"expect-puppeteer": "^4.4.0",
"fast-glob": "^3.2.7",
"filenamify": "^4.2.0",
"jest": "^29.6.2",
- "jest-dev-server": "^9.0.1",
- "jest-environment-jsdom": "^29.6.2",
+ "jest-dev-server": "^10.1.4",
+ "jest-environment-jsdom": "^30.2.0",
"jest-environment-node": "^29.6.2",
+ "json2php": "^0.0.9",
"markdownlint-cli": "^0.31.1",
"merge-deep": "^3.0.3",
- "mini-css-extract-plugin": "^2.5.1",
+ "mini-css-extract-plugin": "^2.9.2",
"minimist": "^1.2.0",
"npm-package-json-lint": "^6.4.0",
"npm-packlist": "^3.0.0",
- "playwright-core": "1.39.0",
"postcss": "^8.4.5",
"postcss-loader": "^6.2.1",
"prettier": "npm:wp-prettier@3.0.3",
- "puppeteer-core": "^13.2.0",
+ "puppeteer-core": "^23.10.1",
"react-refresh": "^0.14.0",
"read-pkg-up": "^7.0.1",
"resolve-bin": "^0.4.0",
- "sass": "^1.35.2",
- "sass-loader": "^12.1.0",
+ "rtlcss": "^4.3.0",
+ "sass": "^1.54.0",
+ "sass-loader": "^16.0.3",
+ "schema-utils": "^4.2.0",
"source-map-loader": "^3.0.0",
- "stylelint": "^14.2.0",
- "terser-webpack-plugin": "^5.3.9",
+ "stylelint": "^16.8.2",
+ "terser-webpack-plugin": "^5.3.10",
"url-loader": "^4.1.1",
- "webpack": "^5.88.2",
+ "webpack": "^5.97.0",
"webpack-bundle-analyzer": "^4.9.1",
"webpack-cli": "^5.1.4",
- "webpack-dev-server": "^4.15.1"
+ "webpack-dev-server": "^5.2.1"
+ },
+ "dependencies": {
+ "@babel/core": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
+ "dev": true,
+ "requires": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ }
+ },
+ "@types/node": {
+ "version": "20.19.30",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.30.tgz",
+ "integrity": "sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "@webpack-cli/configtest": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz",
+ "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==",
+ "dev": true,
+ "requires": {}
+ },
+ "@webpack-cli/info": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz",
+ "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==",
+ "dev": true,
+ "requires": {}
+ },
+ "@webpack-cli/serve": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz",
+ "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "@wordpress/e2e-test-utils-playwright": {
+ "version": "1.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.38.0.tgz",
+ "integrity": "sha512-/3Qo6/N5BtCbQJJShy3pY5xr68OkMctouYcz1mvL8Q8tMO1fdiZTlJvU9bSMwdM1G1NEbE8pa/9q2F1Va/2S2A==",
+ "dev": true,
+ "requires": {
+ "change-case": "^4.1.2",
+ "get-port": "^5.1.1",
+ "lighthouse": "^12.2.2",
+ "mime": "^3.0.0",
+ "web-vitals": "^4.2.1"
+ }
+ },
+ "clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ }
+ },
+ "commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ },
+ "mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "npm:wp-prettier@3.0.3",
+ "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz",
+ "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==",
+ "dev": true
+ },
+ "shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dev": true,
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true,
+ "peer": true
+ },
+ "webpack-cli": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
+ "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
+ "dev": true,
+ "requires": {
+ "@discoveryjs/json-ext": "^0.5.0",
+ "@webpack-cli/configtest": "^2.1.1",
+ "@webpack-cli/info": "^2.0.2",
+ "@webpack-cli/serve": "^2.0.5",
+ "colorette": "^2.0.14",
+ "commander": "^10.0.1",
+ "cross-spawn": "^7.0.3",
+ "envinfo": "^7.7.3",
+ "fastest-levenshtein": "^1.0.12",
+ "import-local": "^3.0.2",
+ "interpret": "^3.1.1",
+ "rechoir": "^0.8.0",
+ "webpack-merge": "^5.7.3"
+ }
+ },
+ "webpack-merge": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
+ "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
+ "dev": true,
+ "requires": {
+ "clone-deep": "^4.0.1",
+ "flat": "^5.0.2",
+ "wildcard": "^2.0.0"
+ }
+ }
}
},
"@wordpress/stylelint-config": {
- "version": "21.41.0",
- "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.41.0.tgz",
- "integrity": "sha512-2wxFu8ICeRGF3Lxz7H7o2SU1u6pTI4mjuog39DgtCNb+v+f6yhgREDuNQEeti3Svb0rjj63AJ7r2CqLZk+EQIQ==",
+ "version": "23.30.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-23.30.0.tgz",
+ "integrity": "sha512-35s8w52ZxTVkvllBSCMbV2cFLQjHd+8FzROUIBW0OaUlZum3bQXnz2I3Q71e6fG2/jXvXVrHRh45P2oIhWnKPQ==",
"dev": true,
"requires": {
- "stylelint-config-recommended": "^6.0.0",
- "stylelint-config-recommended-scss": "^5.0.2"
+ "@stylistic/stylelint-plugin": "^3.0.1",
+ "@wordpress/theme": "^0.5.0",
+ "stylelint-config-recommended": "^14.0.1",
+ "stylelint-config-recommended-scss": "^14.1.0"
}
},
- "@wordpress/url": {
- "version": "3.59.0",
- "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.59.0.tgz",
- "integrity": "sha512-GxvoMjYCav0w4CiX0i0h3qflrE/9rhLIZg5aPCQjbrBdwTxYR3Exfw0IJYcmVaTKXQOUU8fOxlDxULsbLmKe9w==",
+ "@wordpress/theme": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/theme/-/theme-0.5.0.tgz",
+ "integrity": "sha512-6V14snLXUqVs3fBPmGJhWkgtWcrwEe7vUS04nTl7hyI5uyL+N7LXRldWTjnzwaQL0ywBIx4u13gJU/GZqOc8dQ==",
"dev": true,
"requires": {
- "@babel/runtime": "^7.16.0",
- "remove-accents": "^0.5.0"
+ "@wordpress/element": "^6.38.0",
+ "@wordpress/private-apis": "^1.38.0",
+ "colorjs.io": "^0.6.0",
+ "memize": "^2.1.0"
}
},
"@wordpress/warning": {
- "version": "2.58.0",
- "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.58.0.tgz",
- "integrity": "sha512-9bZlORhyMY2nbWozeyC5kqJsFzEPP4DCLhGmjtbv+YWGHttUrxUZEfrKdqO+rUODA8rP5zeIly1nCQOUnkw4Lg==",
+ "version": "3.38.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-3.38.0.tgz",
+ "integrity": "sha512-4eHJoNC/Ofrp+hOIf/2KqSoyIZLFIoyAhfTBrFxq3bGKNFJlOEHAJ3+tGiy77Ja93uQzrSWctZsH1CpSRYKkng==",
"dev": true
},
"@xstate/fsm": {
@@ -23675,15 +29102,12 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true
},
- "acorn-globals": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz",
- "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==",
+ "acorn-import-attributes": {
+ "version": "1.9.5",
+ "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
+ "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
"dev": true,
- "requires": {
- "acorn": "^8.1.0",
- "acorn-walk": "^8.0.2"
- }
+ "requires": {}
},
"acorn-import-phases": {
"version": "1.0.4",
@@ -23715,13 +29139,10 @@
"dev": true
},
"agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dev": true,
- "requires": {
- "debug": "4"
- }
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "dev": true
},
"ajv": {
"version": "6.12.6",
@@ -23851,14 +29272,6 @@
"dev": true,
"requires": {
"sprintf-js": "~1.0.2"
- },
- "dependencies": {
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- }
}
},
"aria-query": {
@@ -23911,12 +29324,6 @@
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"dev": true
},
- "array-uniq": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
- "dev": true
- },
"array.prototype.findlast": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
@@ -24004,6 +29411,17 @@
"integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
"dev": true
},
+ "asn1js": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz",
+ "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==",
+ "dev": true,
+ "requires": {
+ "pvtsutils": "^1.3.6",
+ "pvutils": "^1.1.3",
+ "tslib": "^2.8.1"
+ }
+ },
"ast-types": {
"version": "0.13.4",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
@@ -24037,18 +29455,52 @@
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"dev": true
},
+ "atomically": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.0.tgz",
+ "integrity": "sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==",
+ "dev": true,
+ "requires": {
+ "stubborn-fs": "^2.0.0",
+ "when-exit": "^2.1.4"
+ }
+ },
"autoprefixer": {
- "version": "10.4.21",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
- "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
+ "version": "10.4.23",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz",
+ "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==",
"dev": true,
"requires": {
- "browserslist": "^4.24.4",
- "caniuse-lite": "^1.0.30001702",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001760",
+ "fraction.js": "^5.3.4",
"picocolors": "^1.1.1",
"postcss-value-parser": "^4.2.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "dev": true,
+ "requires": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ }
+ },
+ "update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "requires": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ }
+ }
}
},
"available-typed-arrays": {
@@ -24067,9 +29519,9 @@
"dev": true
},
"axios": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
- "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz",
+ "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==",
"dev": true,
"requires": {
"follow-redirects": "^1.15.6",
@@ -24099,28 +29551,13 @@
}
},
"babel-loader": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz",
- "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==",
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz",
+ "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==",
"dev": true,
"requires": {
- "find-cache-dir": "^3.3.1",
- "loader-utils": "^2.0.4",
- "make-dir": "^3.1.0",
- "schema-utils": "^2.6.5"
- },
- "dependencies": {
- "schema-utils": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
- "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
- "dev": true,
- "requires": {
- "@types/json-schema": "^7.0.5",
- "ajv": "^6.12.4",
- "ajv-keywords": "^3.5.2"
- }
- }
+ "find-cache-dir": "^4.0.0",
+ "schema-utils": "^4.0.0"
}
},
"babel-plugin-istanbul": {
@@ -24218,12 +29655,63 @@
"dev": true
},
"bare-events": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.6.1.tgz",
- "integrity": "sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==",
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz",
+ "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "bare-fs": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.2.tgz",
+ "integrity": "sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bare-events": "^2.5.4",
+ "bare-path": "^3.0.0",
+ "bare-stream": "^2.6.4",
+ "bare-url": "^2.2.2",
+ "fast-fifo": "^1.3.2"
+ }
+ },
+ "bare-os": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz",
+ "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==",
"dev": true,
"optional": true
},
+ "bare-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
+ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bare-os": "^3.0.1"
+ }
+ },
+ "bare-stream": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz",
+ "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "streamx": "^2.21.0"
+ }
+ },
+ "bare-url": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz",
+ "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "bare-path": "^3.0.0"
+ }
+ },
"base64-arraybuffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
@@ -24236,15 +29724,15 @@
"dev": true
},
"baseline-browser-mapping": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.3.tgz",
- "integrity": "sha512-mcE+Wr2CAhHNWxXN/DdTI+n4gsPc5QpXpWnyCQWiQYIYZX+ZMJ8juXZgjRa/0/YPJo/NSsgW15/YgmI4nbysYw==",
+ "version": "2.9.15",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.15.tgz",
+ "integrity": "sha512-kX8h7K2srmDyYnXRIppo4AH/wYgzWVCs+eKr3RusRSQ5PvRYoEFmR/I0PbdTjKFAoKqp5+kbxnNTFO9jOfSVJg==",
"dev": true
},
"basic-ftp": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
- "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.1.0.tgz",
+ "integrity": "sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==",
"dev": true
},
"batch": {
@@ -24265,35 +29753,24 @@
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true
},
- "bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dev": true,
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
"body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "version": "1.20.4",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
+ "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
"dev": true,
"requires": {
- "bytes": "3.1.2",
+ "bytes": "~3.1.2",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
+ "destroy": "~1.2.0",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "on-finished": "~2.4.1",
+ "qs": "~6.14.0",
+ "raw-body": "~2.5.3",
"type-is": "~1.6.18",
- "unpipe": "1.0.0"
+ "unpipe": "~1.0.0"
},
"dependencies": {
"debug": {
@@ -24406,12 +29883,51 @@
"integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true
},
+ "bundle-name": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "dev": true,
+ "requires": {
+ "run-applescript": "^7.0.0"
+ }
+ },
"bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"dev": true
},
+ "bytestreamjs": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz",
+ "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==",
+ "dev": true
+ },
+ "cacheable": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.2.tgz",
+ "integrity": "sha512-w+ZuRNmex9c1TR9RcsxbfTKCjSL0rh1WA5SABbrWprIHeNBdmyQLSYonlDy9gpD+63XT8DgZ/wNh1Smvc9WnJA==",
+ "dev": true,
+ "requires": {
+ "@cacheable/memory": "^2.0.7",
+ "@cacheable/utils": "^2.3.3",
+ "hookified": "^1.15.0",
+ "keyv": "^5.5.5",
+ "qified": "^0.6.0"
+ },
+ "dependencies": {
+ "keyv": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz",
+ "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==",
+ "dev": true,
+ "requires": {
+ "@keyv/serialize": "^1.1.1"
+ }
+ }
+ }
+ },
"call-bind": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
@@ -24498,9 +30014,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001741",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz",
- "integrity": "sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==",
+ "version": "1.0.30001765",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001765.tgz",
+ "integrity": "sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==",
"dev": true
},
"capital-case": {
@@ -24585,22 +30101,33 @@
"readdirp": "^4.0.1"
}
},
- "chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
"chrome-launcher": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz",
- "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-1.2.1.tgz",
+ "integrity": "sha512-qmFR5PLMzHyuNJHwOloHPAHhbaNglkfeV/xDtt5b7xiFFyU1I+AZZX0PYseMuhenJSSirgxELYIbswcoc+5H4A==",
"dev": true,
"requires": {
"@types/node": "*",
"escape-string-regexp": "^4.0.0",
"is-wsl": "^2.2.0",
- "lighthouse-logger": "^1.0.0"
+ "lighthouse-logger": "^2.0.1"
+ },
+ "dependencies": {
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
+ }
}
},
"chrome-trace-event": {
@@ -24609,6 +30136,16 @@
"integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
"dev": true
},
+ "chromium-bidi": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz",
+ "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==",
+ "dev": true,
+ "requires": {
+ "mitt": "3.0.1",
+ "zod": "3.23.8"
+ }
+ },
"ci-info": {
"version": "3.9.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
@@ -24692,16 +30229,6 @@
}
}
},
- "clean-webpack-plugin": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz",
- "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==",
- "dev": true,
- "requires": {
- "@types/webpack": "^4.4.31",
- "del": "^4.1.1"
- }
- },
"cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -24733,9 +30260,9 @@
"dev": true
},
"collect-v8-coverage": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
- "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz",
+ "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==",
"dev": true
},
"color-convert": {
@@ -24765,6 +30292,12 @@
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
"dev": true
},
+ "colorjs.io": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.6.1.tgz",
+ "integrity": "sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==",
+ "dev": true
+ },
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -24786,10 +30319,10 @@
"integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
"dev": true
},
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
"dev": true
},
"compressible": {
@@ -24840,31 +30373,15 @@
"dev": true
},
"configstore": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
- "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-7.1.0.tgz",
+ "integrity": "sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==",
"dev": true,
"requires": {
- "dot-prop": "^5.2.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^3.0.0",
- "unique-string": "^2.0.0",
- "write-file-atomic": "^3.0.0",
- "xdg-basedir": "^4.0.0"
- },
- "dependencies": {
- "write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- }
+ "atomically": "^2.0.3",
+ "dot-prop": "^9.0.0",
+ "graceful-fs": "^4.2.11",
+ "xdg-basedir": "^5.1.0"
}
},
"connect-history-api-fallback": {
@@ -24906,15 +30423,15 @@
"dev": true
},
"cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"dev": true
},
"cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
"dev": true
},
"copy-webpack-plugin": {
@@ -24960,9 +30477,9 @@
}
},
"core-js": {
- "version": "3.45.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz",
- "integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==",
+ "version": "3.47.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz",
+ "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==",
"dev": true
},
"core-js-compat": {
@@ -25005,9 +30522,9 @@
"dev": true
},
"js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"requires": {
"argparse": "^2.0.1"
@@ -25037,93 +30554,23 @@
"dev": true,
"requires": {
"cross-spawn": "^7.0.1"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
- "dev": true,
- "requires": {
- "node-fetch": "2.6.7"
}
},
"cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true,
"requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- },
- "dependencies": {
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
- "dev": true
- }
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
}
},
- "crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
- "dev": true
- },
"csp_evaluator": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.1.tgz",
- "integrity": "sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.1.5.tgz",
+ "integrity": "sha512-EL/iN9etCTzw/fBnp0/uj0f5BOOGvZut2mzsiiBZ/FdT6gFQCKRO/tmcKOxn5drWZ2Ndm/xBb1SI4zwWbGtmIw==",
"dev": true
},
"css-declaration-sorter": {
@@ -25280,29 +30727,22 @@
}
}
},
- "cssom": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
- "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==",
- "dev": true
- },
"cssstyle": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
- "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
+ "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
"dev": true,
"requires": {
- "cssom": "~0.3.6"
- },
- "dependencies": {
- "cssom": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
- "dev": true
- }
+ "@asamuzakjp/css-color": "^3.2.0",
+ "rrweb-cssom": "^0.8.0"
}
},
+ "csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "dev": true
+ },
"cwd": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz",
@@ -25326,14 +30766,13 @@
"dev": true
},
"data-urls": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
- "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
"requires": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0"
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
}
},
"data-view-buffer": {
@@ -25415,9 +30854,9 @@
"dev": true
},
"dedent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz",
- "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==",
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz",
+ "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==",
"dev": true,
"requires": {}
},
@@ -25439,15 +30878,22 @@
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"dev": true
},
- "default-gateway": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
- "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "default-browser": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz",
+ "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==",
"dev": true,
"requires": {
- "execa": "^5.0.0"
+ "bundle-name": "^4.1.0",
+ "default-browser-id": "^5.0.0"
}
},
+ "default-browser-id": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+ "dev": true
+ },
"define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -25460,9 +30906,9 @@
}
},
"define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
"dev": true
},
"define-properties": {
@@ -25487,53 +30933,6 @@
"esprima": "^4.0.1"
}
},
- "del": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
- "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
- "dev": true,
- "requires": {
- "@types/glob": "^7.1.1",
- "globby": "^6.1.0",
- "is-path-cwd": "^2.0.0",
- "is-path-in-cwd": "^2.0.0",
- "p-map": "^2.0.0",
- "pify": "^4.0.1",
- "rimraf": "^2.6.3"
- },
- "dependencies": {
- "array-union": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
- "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
- "dev": true,
- "requires": {
- "array-uniq": "^1.0.1"
- }
- },
- "globby": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
- "dev": true,
- "requires": {
- "array-union": "^1.0.1",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
- "dev": true
- }
- }
- }
- }
- },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -25572,9 +30971,9 @@
"dev": true
},
"devtools-protocol": {
- "version": "0.0.1155343",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1155343.tgz",
- "integrity": "sha512-oD9vGBV2wTc7fAzAM6KC0chSgs234V8+qDEeK+mcbRj2UvcuA7lgBztGi/opj/iahcXD3BSj8Ymvib628yy9FA==",
+ "version": "0.0.1367902",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz",
+ "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==",
"dev": true
},
"diff-sequences": {
@@ -25627,15 +31026,6 @@
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"dev": true
},
- "domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "dev": true,
- "requires": {
- "webidl-conversions": "^7.0.0"
- }
- },
"domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
@@ -25667,12 +31057,20 @@
}
},
"dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-9.0.0.tgz",
+ "integrity": "sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==",
"dev": true,
"requires": {
- "is-obj": "^2.0.0"
+ "type-fest": "^4.18.2"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "dev": true
+ }
}
},
"dunder-proto": {
@@ -25699,9 +31097,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.5.218",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.218.tgz",
- "integrity": "sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==",
+ "version": "1.5.267",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
+ "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
"dev": true
},
"emittery": {
@@ -25728,15 +31126,6 @@
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"dev": true
},
- "encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "dev": true,
- "requires": {
- "iconv-lite": "^0.6.2"
- }
- },
"end-of-stream": {
"version": "1.4.5",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
@@ -25772,6 +31161,12 @@
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true
},
+ "env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "dev": true
+ },
"envinfo": {
"version": "7.14.0",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz",
@@ -25942,34 +31337,37 @@
}
},
"esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
- "requires": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
+ "dev": true,
+ "requires": {
+ "@esbuild/aix-ppc64": "0.25.12",
+ "@esbuild/android-arm": "0.25.12",
+ "@esbuild/android-arm64": "0.25.12",
+ "@esbuild/android-x64": "0.25.12",
+ "@esbuild/darwin-arm64": "0.25.12",
+ "@esbuild/darwin-x64": "0.25.12",
+ "@esbuild/freebsd-arm64": "0.25.12",
+ "@esbuild/freebsd-x64": "0.25.12",
+ "@esbuild/linux-arm": "0.25.12",
+ "@esbuild/linux-arm64": "0.25.12",
+ "@esbuild/linux-ia32": "0.25.12",
+ "@esbuild/linux-loong64": "0.25.12",
+ "@esbuild/linux-mips64el": "0.25.12",
+ "@esbuild/linux-ppc64": "0.25.12",
+ "@esbuild/linux-riscv64": "0.25.12",
+ "@esbuild/linux-s390x": "0.25.12",
+ "@esbuild/linux-x64": "0.25.12",
+ "@esbuild/netbsd-arm64": "0.25.12",
+ "@esbuild/netbsd-x64": "0.25.12",
+ "@esbuild/openbsd-arm64": "0.25.12",
+ "@esbuild/openbsd-x64": "0.25.12",
+ "@esbuild/openharmony-arm64": "0.25.12",
+ "@esbuild/sunos-x64": "0.25.12",
+ "@esbuild/win32-arm64": "0.25.12",
+ "@esbuild/win32-ia32": "0.25.12",
+ "@esbuild/win32-x64": "0.25.12"
}
},
"escalade": {
@@ -26073,17 +31471,6 @@
"concat-map": "0.0.1"
}
},
- "cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
"eslint-scope": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
@@ -26110,10 +31497,19 @@
"path-exists": "^4.0.0"
}
},
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
"js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"requires": {
"argparse": "^2.0.1"
@@ -26145,40 +31541,26 @@
"requires": {
"p-limit": "^3.0.2"
}
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
}
}
},
"eslint-config-prettier": {
- "version": "8.10.2",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz",
- "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==",
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz",
+ "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==",
"dev": true,
"requires": {}
},
+ "eslint-import-context": {
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz",
+ "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==",
+ "dev": true,
+ "requires": {
+ "get-tsconfig": "^4.10.1",
+ "stable-hash-x": "^0.2.0"
+ }
+ },
"eslint-import-resolver-node": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
@@ -26201,6 +31583,21 @@
}
}
},
+ "eslint-import-resolver-typescript": {
+ "version": "4.4.4",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.4.4.tgz",
+ "integrity": "sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.4.1",
+ "eslint-import-context": "^0.1.8",
+ "get-tsconfig": "^4.10.1",
+ "is-bun-module": "^2.0.0",
+ "stable-hash-x": "^0.2.0",
+ "tinyglobby": "^0.2.14",
+ "unrs-resolver": "^1.7.11"
+ }
+ },
"eslint-module-utils": {
"version": "2.12.1",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz",
@@ -26360,9 +31757,9 @@
"dev": true
},
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
}
}
@@ -26385,9 +31782,9 @@
},
"dependencies": {
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
}
}
@@ -26444,13 +31841,13 @@
"requires": {}
},
"eslint-plugin-prettier": {
- "version": "5.5.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz",
- "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==",
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz",
+ "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==",
"dev": true,
"requires": {
- "prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.11.7"
+ "prettier-linter-helpers": "^1.0.1",
+ "synckit": "^0.11.12"
}
},
"eslint-plugin-react": {
@@ -26624,6 +32021,15 @@
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"dev": true
},
+ "events-universal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
+ "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==",
+ "dev": true,
+ "requires": {
+ "bare-events": "^2.7.0"
+ }
+ },
"execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
@@ -26639,43 +32045,6 @@
"onetime": "^5.1.2",
"signal-exit": "^3.0.3",
"strip-final-newline": "^2.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
}
},
"exit": {
@@ -26713,50 +32082,44 @@
"dev": true
},
"express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
+ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
"dev": true,
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
+ "body-parser": "~1.20.3",
+ "content-disposition": "~0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
+ "cookie": "~0.7.1",
+ "cookie-signature": "~1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "finalhandler": "~1.3.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.0",
"merge-descriptors": "1.0.3",
"methods": "~1.1.2",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
+ "path-to-regexp": "~0.1.12",
"proxy-addr": "~2.0.7",
- "qs": "6.13.0",
+ "qs": "~6.14.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
+ "send": "~0.19.0",
+ "serve-static": "~1.16.2",
"setprototypeof": "1.2.0",
- "statuses": "2.0.1",
+ "statuses": "~2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"dependencies": {
- "cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "dev": true
- },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -26935,17 +32298,17 @@
}
},
"finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
"dev": true,
"requires": {
"debug": "2.6.9",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"parseurl": "~1.3.3",
- "statuses": "2.0.1",
+ "statuses": "~2.0.2",
"unpipe": "~1.0.0"
},
"dependencies": {
@@ -26967,14 +32330,73 @@
}
},
"find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
+ "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
"dev": true,
"requires": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
+ "common-path-prefix": "^3.0.0",
+ "pkg-dir": "^7.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^6.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^4.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
+ "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "dev": true,
+ "requires": {
+ "find-up": "^6.3.0"
+ }
+ },
+ "yocto-queue": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz",
+ "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==",
+ "dev": true
+ }
}
},
"find-file-up": {
@@ -27088,9 +32510,9 @@
}
},
"form-data": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz",
- "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
"dev": true,
"requires": {
"asynckit": "^0.4.0",
@@ -27106,10 +32528,16 @@
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"dev": true
},
+ "forwarded-parse": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.2.tgz",
+ "integrity": "sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==",
+ "dev": true
+ },
"fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
"dev": true
},
"fresh": {
@@ -27118,24 +32546,12 @@
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"dev": true
},
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "dev": true
- },
"fs-exists-sync": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
"integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==",
"dev": true
},
- "fs-monkey": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz",
- "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==",
- "dev": true
- },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -27250,6 +32666,15 @@
"get-intrinsic": "^1.2.6"
}
},
+ "get-tsconfig": {
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz",
+ "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==",
+ "dev": true,
+ "requires": {
+ "resolve-pkg-maps": "^1.0.0"
+ }
+ },
"get-uri": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz",
@@ -27261,16 +32686,6 @@
"debug": "^4.3.4"
}
},
- "gettext-parser": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.4.0.tgz",
- "integrity": "sha512-sedZYLHlHeBop/gZ1jdg59hlUEcpcZJofLq2JFwJT1zTqAU3l2wFv6IsuwFHGqbiT9DWzMUW4/em2+hspnmMMA==",
- "dev": true,
- "requires": {
- "encoding": "^0.1.12",
- "safe-buffer": "^5.1.1"
- }
- },
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -27315,6 +32730,13 @@
"is-glob": "^4.0.3"
}
},
+ "glob-to-regex.js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz",
+ "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==",
+ "dev": true,
+ "requires": {}
+ },
"glob-to-regexp": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
@@ -27341,16 +32763,23 @@
"ini": "^1.3.4",
"is-windows": "^0.2.0",
"which": "^1.2.12"
+ },
+ "dependencies": {
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
}
},
"globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="
},
"globalthis": {
"version": "1.0.4",
@@ -27466,6 +32895,15 @@
"has-symbols": "^1.0.3"
}
},
+ "hashery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.4.0.tgz",
+ "integrity": "sha512-Wn2i1In6XFxl8Az55kkgnFRiAlIAushzh26PTjL2AKtQcEfXrcLa7Hn5QOWGZEf3LU057P9TwwZjFyxfS1VuvQ==",
+ "dev": true,
+ "requires": {
+ "hookified": "^1.14.0"
+ }
+ },
"hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
@@ -27494,6 +32932,12 @@
"parse-passwd": "^1.0.0"
}
},
+ "hookified": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.0.tgz",
+ "integrity": "sha512-51w+ZZGt7Zw5q7rM3nC4t3aLn/xvKDETsXqMczndvwyVQhAHfUmUuFBRFcos8Iyebtk7OAE9dL26wFNzZVVOkw==",
+ "dev": true
+ },
"hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
@@ -27571,12 +33015,12 @@
}
},
"html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
"requires": {
- "whatwg-encoding": "^2.0.0"
+ "whatwg-encoding": "^3.1.1"
}
},
"html-entities": {
@@ -27612,16 +33056,16 @@
"dev": true
},
"http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
"dev": true,
"requires": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
}
},
"http-link-header": {
@@ -27648,14 +33092,13 @@
}
},
"http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
"requires": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
}
},
"http-proxy-middleware": {
@@ -27672,12 +33115,12 @@
}
},
"https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
"dev": true,
"requires": {
- "agent-base": "6",
+ "agent-base": "^7.1.2",
"debug": "4"
}
},
@@ -27687,13 +33130,19 @@
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"dev": true
},
+ "hyperdyperid": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz",
+ "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==",
+ "dev": true
+ },
"i18next": {
- "version": "25.5.2",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.2.tgz",
- "integrity": "sha512-lW8Zeh37i/o0zVr+NoCHfNnfvVw+M6FQbRp36ZZ/NyHDJ3NJVpp2HhAUyU9WafL5AssymNoOjMRB48mmx2P6Hw==",
+ "version": "25.7.4",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.7.4.tgz",
+ "integrity": "sha512-hRkpEblXXcXSNbw8mBNq9042OEetgyB/ahc/X17uV/khPwzV+uB8RHceHh3qavyrkPJvmXFKXME2Sy1E0KjAfw==",
"peer": true,
"requires": {
- "@babel/runtime": "^7.27.6"
+ "@babel/runtime": "^7.28.4"
}
},
"iconv-lite": {
@@ -27784,11 +33233,17 @@
}
}
},
- "import-lazy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
- "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
- "dev": true
+ "import-in-the-middle": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.15.0.tgz",
+ "integrity": "sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.14.0",
+ "acorn-import-attributes": "^1.9.5",
+ "cjs-module-lexer": "^1.2.2",
+ "module-details-from-path": "^1.0.3"
+ }
},
"import-local": {
"version": "3.2.0",
@@ -27852,30 +33307,27 @@
"dev": true
},
"intl-messageformat": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz",
- "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==",
+ "version": "10.7.18",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz",
+ "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==",
"dev": true,
"requires": {
- "intl-messageformat-parser": "^1.8.1"
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/icu-messageformat-parser": "2.11.4",
+ "tslib": "^2.8.0"
}
},
- "intl-messageformat-parser": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz",
- "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==",
- "dev": true
- },
"ip-address": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz",
- "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz",
+ "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
"dev": true
},
"ipaddr.js": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
- "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz",
+ "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==",
"dev": true
},
"irregular-plurals": {
@@ -27957,6 +33409,23 @@
"builtin-modules": "^3.3.0"
}
},
+ "is-bun-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz",
+ "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.7.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true
+ }
+ }
+ },
"is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
@@ -27994,9 +33463,9 @@
}
},
"is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
"dev": true
},
"is-extendable": {
@@ -28053,6 +33522,15 @@
"is-extglob": "^2.1.1"
}
},
+ "is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^3.0.0"
+ }
+ },
"is-map": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
@@ -28065,6 +33543,12 @@
"integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true
},
+ "is-network-error": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz",
+ "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==",
+ "dev": true
+ },
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -28081,38 +33565,6 @@
"has-tostringtag": "^1.0.2"
}
},
- "is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true
- },
- "is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
- "dev": true
- },
- "is-path-in-cwd": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
- "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
- "dev": true,
- "requires": {
- "is-path-inside": "^2.1.0"
- },
- "dependencies": {
- "is-path-inside": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
- "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
- "dev": true,
- "requires": {
- "path-is-inside": "^1.0.2"
- }
- }
- }
- },
"is-path-inside": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
@@ -28203,12 +33655,6 @@
"which-typed-array": "^1.1.16"
}
},
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "dev": true
- },
"is-unicode-supported": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
@@ -28247,12 +33693,12 @@
"dev": true
},
"is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
+ "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
"dev": true,
"requires": {
- "is-docker": "^2.0.0"
+ "is-inside-container": "^1.0.0"
}
},
"isarray": {
@@ -28301,23 +33747,6 @@
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^4.0.0",
"supports-color": "^7.1.0"
- },
- "dependencies": {
- "make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "dev": true,
- "requires": {
- "semver": "^7.5.3"
- }
- },
- "semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
- "dev": true
- }
}
},
"istanbul-lib-source-maps": {
@@ -28464,18 +33893,18 @@
}
},
"jest-dev-server": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-9.0.2.tgz",
- "integrity": "sha512-Zc/JB0IlNNrpXkhBw+h86cGrde/Mey52KvF+FER2eyrtYJTHObOwW7Iarxm3rPyTKby5+3Y2QZtl8pRz/5GCxg==",
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-10.1.4.tgz",
+ "integrity": "sha512-bGQ6sedNGtT6AFHhCVqGTXMPz7UyJi/ZrhNBgyqsP0XU9N8acCEIfqZEA22rOaZ+NdEVsaltk6tL7UT6aXfI7w==",
"dev": true,
"requires": {
"chalk": "^4.1.2",
"cwd": "^0.10.0",
"find-process": "^1.4.7",
"prompts": "^2.4.2",
- "spawnd": "^9.0.2",
+ "spawnd": "^10.1.4",
"tree-kill": "^1.2.2",
- "wait-on": "^7.2.0"
+ "wait-on": "^8.0.1"
}
},
"jest-diff": {
@@ -28513,19 +33942,154 @@
}
},
"jest-environment-jsdom": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz",
- "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==",
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-30.2.0.tgz",
+ "integrity": "sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==",
"dev": true,
"requires": {
- "@jest/environment": "^29.7.0",
- "@jest/fake-timers": "^29.7.0",
- "@jest/types": "^29.6.3",
- "@types/jsdom": "^20.0.0",
+ "@jest/environment": "30.2.0",
+ "@jest/environment-jsdom-abstract": "30.2.0",
+ "@types/jsdom": "^21.1.7",
"@types/node": "*",
- "jest-mock": "^29.7.0",
- "jest-util": "^29.7.0",
- "jsdom": "^20.0.0"
+ "jsdom": "^26.1.0"
+ },
+ "dependencies": {
+ "@jest/environment": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz",
+ "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==",
+ "dev": true,
+ "requires": {
+ "@jest/fake-timers": "30.2.0",
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-mock": "30.2.0"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz",
+ "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "30.2.0",
+ "@sinonjs/fake-timers": "^13.0.0",
+ "@types/node": "*",
+ "jest-message-util": "30.2.0",
+ "jest-mock": "30.2.0",
+ "jest-util": "30.2.0"
+ }
+ },
+ "@jest/schemas": {
+ "version": "30.0.5",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz",
+ "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==",
+ "dev": true,
+ "requires": {
+ "@sinclair/typebox": "^0.34.0"
+ }
+ },
+ "@jest/types": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz",
+ "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==",
+ "dev": true,
+ "requires": {
+ "@jest/pattern": "30.0.1",
+ "@jest/schemas": "30.0.5",
+ "@types/istanbul-lib-coverage": "^2.0.6",
+ "@types/istanbul-reports": "^3.0.4",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.33",
+ "chalk": "^4.1.2"
+ }
+ },
+ "@sinclair/typebox": {
+ "version": "0.34.47",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.47.tgz",
+ "integrity": "sha512-ZGIBQ+XDvO5JQku9wmwtabcVTHJsgSWAHYtVuM9pBNNR5E88v6Jcj/llpmsjivig5X8A8HHOb4/mbEKPS5EvAw==",
+ "dev": true
+ },
+ "@sinonjs/fake-timers": {
+ "version": "13.0.5",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz",
+ "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
+ "ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true
+ },
+ "ci-info": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
+ "dev": true
+ },
+ "jest-message-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz",
+ "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.27.1",
+ "@jest/types": "30.2.0",
+ "@types/stack-utils": "^2.0.3",
+ "chalk": "^4.1.2",
+ "graceful-fs": "^4.2.11",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.2.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.6"
+ }
+ },
+ "jest-mock": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz",
+ "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "jest-util": "30.2.0"
+ }
+ },
+ "jest-util": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz",
+ "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "30.2.0",
+ "@types/node": "*",
+ "chalk": "^4.1.2",
+ "ci-info": "^4.2.0",
+ "graceful-fs": "^4.2.11",
+ "picomatch": "^4.0.2"
+ }
+ },
+ "picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true
+ },
+ "pretty-format": {
+ "version": "30.2.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz",
+ "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "30.0.5",
+ "ansi-styles": "^5.2.0",
+ "react-is": "^18.3.1"
+ }
+ }
}
},
"jest-environment-node": {
@@ -28746,9 +34310,9 @@
},
"dependencies": {
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
}
}
@@ -28821,16 +34385,18 @@
}
},
"joi": {
- "version": "17.13.3",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
- "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
+ "version": "18.0.2",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-18.0.2.tgz",
+ "integrity": "sha512-RuCOQMIt78LWnktPoeBL0GErkNaJPTBGcYuyaBvUOQSpcpcLfWrHPPihYdOGbV5pam9VTWbeoF7TsGiHugcjGA==",
"dev": true,
"requires": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
+ "@hapi/address": "^5.1.1",
+ "@hapi/formula": "^3.0.2",
+ "@hapi/hoek": "^11.0.7",
+ "@hapi/pinpoint": "^2.0.1",
+ "@hapi/tlds": "^1.1.1",
+ "@hapi/topo": "^6.0.2",
+ "@standard-schema/spec": "^1.0.0"
}
},
"jpeg-js": {
@@ -28851,9 +34417,9 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
@@ -28867,37 +34433,31 @@
"dev": true
},
"jsdom": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
- "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
- "dev": true,
- "requires": {
- "abab": "^2.0.6",
- "acorn": "^8.8.1",
- "acorn-globals": "^7.0.0",
- "cssom": "^0.5.0",
- "cssstyle": "^2.3.0",
- "data-urls": "^3.0.2",
- "decimal.js": "^10.4.2",
- "domexception": "^4.0.0",
- "escodegen": "^2.0.0",
- "form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
+ "version": "26.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
+ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==",
+ "dev": true,
+ "requires": {
+ "cssstyle": "^4.2.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.5.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.6",
"is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.2",
- "parse5": "^7.1.1",
+ "nwsapi": "^2.2.16",
+ "parse5": "^7.2.1",
+ "rrweb-cssom": "^0.8.0",
"saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
+ "tough-cookie": "^5.1.1",
+ "w3c-xmlserializer": "^5.0.0",
"webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^11.0.0",
- "ws": "^8.11.0",
- "xml-name-validator": "^4.0.0"
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.1.1",
+ "ws": "^8.18.0",
+ "xml-name-validator": "^5.0.0"
}
},
"jsesc": {
@@ -28931,9 +34491,9 @@
"dev": true
},
"json2php": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.7.tgz",
- "integrity": "sha512-dnSoUiLAoVaMXxFsVi4CrPVYMKOuDBXTghXSmMINX44RZ8WM9cXlY7UqrQnlAcODCVO7FV3+8t/5nDKAjimLfg==",
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.9.tgz",
+ "integrity": "sha512-fQMYwvPsQt8hxRnCGyg1r2JVi6yL8Um0DIIawiKiMK9yhAAkcRNj5UsBWoaFvFzPpcWbgw9L6wzj+UMYA702Mw==",
"dev": true
},
"json5": {
@@ -28991,9 +34551,9 @@
"dev": true
},
"known-css-properties": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
- "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
+ "version": "0.37.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz",
+ "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==",
"dev": true
},
"language-subtag-registry": {
@@ -29012,9 +34572,9 @@
}
},
"launch-editor": {
- "version": "2.11.1",
- "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.11.1.tgz",
- "integrity": "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==",
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz",
+ "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==",
"dev": true,
"requires": {
"picocolors": "^1.1.1",
@@ -29027,6 +34587,12 @@
"integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==",
"dev": true
},
+ "legacy-javascript": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/legacy-javascript/-/legacy-javascript-0.0.1.tgz",
+ "integrity": "sha512-lPyntS4/aS7jpuvOlitZDFifBCb4W8L/3QU0PLbUTUj+zYah8rfVjYic88yG7ZKTxhS5h9iz7duT8oUXKszLhg==",
+ "dev": true
+ },
"leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -29044,185 +34610,174 @@
}
},
"lighthouse": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-10.4.0.tgz",
- "integrity": "sha512-XQWHEWkJ8YxSPsxttBJORy5+hQrzbvGkYfeP3fJjyYKioWkF2MXfFqNK4ZuV4jL8pBu7Z91qnQP6In0bq1yXww==",
- "dev": true,
- "requires": {
- "@sentry/node": "^6.17.4",
- "axe-core": "4.7.2",
- "chrome-launcher": "^0.15.2",
- "configstore": "^5.0.1",
- "csp_evaluator": "1.1.1",
- "devtools-protocol": "0.0.1155343",
+ "version": "12.8.2",
+ "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-12.8.2.tgz",
+ "integrity": "sha512-+5SKYzVaTFj22MgoYDPNrP9tlD2/Ay7j3SxPSFD9FpPyVxGr4UtOQGKyrdZ7wCmcnBaFk0mCkPfARU3CsE0nvA==",
+ "dev": true,
+ "requires": {
+ "@paulirish/trace_engine": "0.0.59",
+ "@sentry/node": "^9.28.1",
+ "axe-core": "^4.10.3",
+ "chrome-launcher": "^1.2.0",
+ "configstore": "^7.0.0",
+ "csp_evaluator": "1.1.5",
+ "devtools-protocol": "0.0.1507524",
"enquirer": "^2.3.6",
"http-link-header": "^1.1.1",
- "intl-messageformat": "^4.4.0",
+ "intl-messageformat": "^10.5.3",
"jpeg-js": "^0.4.4",
- "js-library-detector": "^6.6.0",
- "lighthouse-logger": "^1.4.1",
- "lighthouse-stack-packs": "1.11.0",
- "lodash": "^4.17.21",
+ "js-library-detector": "^6.7.0",
+ "lighthouse-logger": "^2.0.2",
+ "lighthouse-stack-packs": "1.12.2",
+ "lodash-es": "^4.17.21",
"lookup-closest-locale": "6.2.0",
"metaviewport-parser": "0.3.0",
"open": "^8.4.0",
"parse-cache-control": "1.0.1",
- "ps-list": "^8.0.0",
- "puppeteer-core": "^20.8.0",
- "robots-parser": "^3.0.0",
- "semver": "^5.3.0",
+ "puppeteer-core": "^24.17.1",
+ "robots-parser": "^3.0.1",
"speedline-core": "^1.4.3",
- "third-party-web": "^0.23.3",
+ "third-party-web": "^0.27.0",
+ "tldts-icann": "^7.0.12",
"ws": "^7.0.0",
"yargs": "^17.3.1",
"yargs-parser": "^21.0.0"
},
"dependencies": {
- "axe-core": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz",
- "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==",
- "dev": true
- },
- "cross-fetch": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
- "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
+ "@puppeteer/browsers": {
+ "version": "2.11.1",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.1.tgz",
+ "integrity": "sha512-YmhAxs7XPuxN0j7LJloHpfD1ylhDuFmmwMvfy/+6nBSrETT2ycL53LrhgPtR+f+GcPSybQVuQ5inWWu5MrWCpA==",
"dev": true,
"requires": {
- "node-fetch": "^2.6.12"
+ "debug": "^4.4.3",
+ "extract-zip": "^2.0.1",
+ "progress": "^2.0.3",
+ "proxy-agent": "^6.5.0",
+ "semver": "^7.7.3",
+ "tar-fs": "^3.1.1",
+ "yargs": "^17.7.2"
}
},
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "chromium-bidi": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-12.0.1.tgz",
+ "integrity": "sha512-fGg+6jr0xjQhzpy5N4ErZxQ4wF7KLEvhGZXD6EgvZKDhu7iOhZXnZhcDxPJDcwTcrD48NPzOCo84RP2lv3Z+Cg==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "mitt": "^3.0.1",
+ "zod": "^3.24.1"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
"dev": true
},
- "node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "devtools-protocol": {
+ "version": "0.0.1507524",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1507524.tgz",
+ "integrity": "sha512-OjaNE7qpk6GRTXtqQjAE5bGx6+c4F1zZH0YXtpZQLM92HNXx4zMAaqlKhP4T52DosG6hDW8gPMNhGOF8xbwk/w==",
+ "dev": true
+ },
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
"requires": {
- "whatwg-url": "^5.0.0"
+ "is-docker": "^2.0.0"
+ }
+ },
+ "open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "dev": true,
+ "requires": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
}
},
"puppeteer-core": {
- "version": "20.9.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz",
- "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==",
+ "version": "24.35.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.35.0.tgz",
+ "integrity": "sha512-vt1zc2ME0kHBn7ZDOqLvgvrYD5bqNv5y2ZNXzYnCv8DEtZGw/zKhljlrGuImxptZ4rq+QI9dFGrUIYqG4/IQzA==",
"dev": true,
"requires": {
- "@puppeteer/browsers": "1.4.6",
- "chromium-bidi": "0.4.16",
- "cross-fetch": "4.0.0",
- "debug": "4.3.4",
- "devtools-protocol": "0.0.1147663",
- "ws": "8.13.0"
+ "@puppeteer/browsers": "2.11.1",
+ "chromium-bidi": "12.0.1",
+ "debug": "^4.4.3",
+ "devtools-protocol": "0.0.1534754",
+ "typed-query-selector": "^2.12.0",
+ "webdriver-bidi-protocol": "0.3.10",
+ "ws": "^8.19.0"
},
"dependencies": {
- "chromium-bidi": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz",
- "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==",
- "dev": true,
- "requires": {
- "mitt": "3.0.0"
- }
- },
"devtools-protocol": {
- "version": "0.0.1147663",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz",
- "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==",
+ "version": "0.0.1534754",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1534754.tgz",
+ "integrity": "sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==",
"dev": true
},
"ws": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
- "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"dev": true,
"requires": {}
}
}
},
"semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
},
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
"ws": {
"version": "7.5.10",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
"integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
"dev": true,
"requires": {}
+ },
+ "yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true
+ },
+ "zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "dev": true
}
}
},
"lighthouse-logger": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz",
- "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-2.0.2.tgz",
+ "integrity": "sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==",
"dev": true,
"requires": {
- "debug": "^2.6.9",
+ "debug": "^4.4.1",
"marky": "^1.2.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- }
}
},
"lighthouse-stack-packs": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.11.0.tgz",
- "integrity": "sha512-sRr0z1S/I26VffRLq9KJsKtLk856YrJlNGmcJmbLX8dFn3MuzVPUbstuChEhqnSxZb8TZmVfthuXuwhG9vRoSw==",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.12.2.tgz",
+ "integrity": "sha512-Ug8feS/A+92TMTCK6yHYLwaFMuelK/hAKRMdldYkMNwv+d9PtWxjXEg6rwKtsUXTADajhdrhXyuNCJ5/sfmPFw==",
"dev": true
},
"lilconfig": {
@@ -29278,6 +34833,12 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
+ "lodash-es": {
+ "version": "4.17.22",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz",
+ "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==",
+ "dev": true
+ },
"lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
@@ -29347,12 +34908,6 @@
"tslib": "^2.0.3"
}
},
- "lru_map": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz",
- "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==",
- "dev": true
- },
"lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -29363,12 +34918,20 @@
}
},
"make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
"dev": true,
"requires": {
- "semver": "^6.0.0"
+ "semver": "^7.5.3"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "dev": true
+ }
}
},
"makeerror": {
@@ -29475,9 +35038,9 @@
"dev": true
},
"js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"requires": {
"argparse": "^2.0.1"
@@ -29537,12 +35100,17 @@
"dev": true
},
"memfs": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
- "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
+ "version": "4.54.0",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.54.0.tgz",
+ "integrity": "sha512-wiJ9YYUj2bVcpdJgIv6y1KrStknSdNhfM4+4+ttt0cHHMxVLZ3aOBoER8krt9lGY5HkR2ustUXiihhNPeNxXaQ==",
"dev": true,
"requires": {
- "fs-monkey": "^1.0.4"
+ "@jsonjoy.com/json-pack": "^1.11.0",
+ "@jsonjoy.com/util": "^1.9.0",
+ "glob-to-regex.js": "^1.0.1",
+ "thingies": "^2.5.0",
+ "tree-dump": "^1.0.3",
+ "tslib": "^2.0.0"
}
},
"memize": {
@@ -29576,12 +35144,6 @@
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
"integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
"dev": true
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true
}
}
},
@@ -29637,9 +35199,9 @@
}
},
"mime": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
- "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"dev": true
},
"mime-db": {
@@ -29726,9 +35288,9 @@
}
},
"mitt": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
- "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="
},
"mixin-object": {
"version": "2.0.1",
@@ -29749,18 +35311,18 @@
}
},
"mixpanel-browser": {
- "version": "2.72.0",
- "resolved": "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.72.0.tgz",
- "integrity": "sha512-Olc+1ebVBSVBjtR/Pp4t8Pc1wAI9AfA5e668B0MsI/gKJ43QcndzfQ/AT/TiP1Klup8O1C9vwykoWjvPqX+SRA==",
+ "version": "2.73.0",
+ "resolved": "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.73.0.tgz",
+ "integrity": "sha512-Ny+6BVeWJozZoyrzB+5/6LTqBZ0gDY1pwcs7PQLQVGPKMTdL8qAz0yV4H8ykGQEA5KrW2Ky/KZ3uMEHGjE7oSA==",
"requires": {
"@mixpanel/rrweb": "2.0.0-alpha.18.2",
"@mixpanel/rrweb-plugin-console-record": "2.0.0-alpha.18.2"
}
},
- "mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "module-details-from-path": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz",
+ "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==",
"dev": true
},
"mrmime": {
@@ -29790,6 +35352,12 @@
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="
},
+ "napi-postinstall": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz",
+ "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==",
+ "dev": true
+ },
"natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -29831,45 +35399,6 @@
"dev": true,
"optional": true
},
- "node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dev": true,
- "requires": {
- "whatwg-url": "^5.0.0"
- },
- "dependencies": {
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- }
- }
- },
- "node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
- "dev": true
- },
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -29877,9 +35406,9 @@
"dev": true
},
"node-releases": {
- "version": "2.0.21",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz",
- "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==",
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
"dev": true
},
"normalize-package-data": {
@@ -29895,9 +35424,9 @@
},
"dependencies": {
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
}
}
@@ -29908,12 +35437,6 @@
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
},
- "normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "dev": true
- },
"npm-bundled": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
@@ -29961,9 +35484,9 @@
"dev": true
},
"semver": {
- "version": "7.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
- "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"dev": true
},
"type-fest": {
@@ -30005,16 +35528,15 @@
}
},
"nwsapi": {
- "version": "2.2.22",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.22.tgz",
- "integrity": "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==",
+ "version": "2.2.23",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz",
+ "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==",
"dev": true
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
},
"object-filter": {
"version": "1.0.2",
@@ -30135,14 +35657,15 @@
}
},
"open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
+ "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
"dev": true,
"requires": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
+ "default-browser": "^5.2.1",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "wsl-utils": "^0.1.0"
}
},
"opener": {
@@ -30211,19 +35734,14 @@
}
}
},
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
- "dev": true
- },
"p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz",
+ "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==",
"dev": true,
"requires": {
- "@types/retry": "0.12.0",
+ "@types/retry": "0.12.2",
+ "is-network-error": "^1.0.0",
"retry": "^0.13.1"
}
},
@@ -30247,34 +35765,6 @@
"https-proxy-agent": "^7.0.6",
"pac-resolver": "^7.0.1",
"socks-proxy-agent": "^8.0.5"
- },
- "dependencies": {
- "agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true
- },
- "http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dev": true,
- "requires": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- }
- },
- "https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "requires": {
- "agent-base": "^7.1.2",
- "debug": "4"
- }
- }
}
},
"pac-resolver": {
@@ -30385,12 +35875,6 @@
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true
},
- "path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
- "dev": true
- },
"path-key": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
@@ -30421,6 +35905,31 @@
"integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
"dev": true
},
+ "pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
+ "dev": true
+ },
+ "pg-protocol": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.11.0.tgz",
+ "integrity": "sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==",
+ "dev": true
+ },
+ "pg-types": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
+ "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
+ "dev": true,
+ "requires": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~2.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.4",
+ "postgres-interval": "^1.1.0"
+ }
+ },
"picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -30433,26 +35942,11 @@
"dev": true
},
"pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true
},
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
- "dev": true,
- "requires": {
- "pinkie": "^2.0.0"
- }
- },
"pirates": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
@@ -30468,31 +35962,47 @@
"find-up": "^4.0.0"
}
},
+ "pkijs": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.3.3.tgz",
+ "integrity": "sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==",
+ "dev": true,
+ "requires": {
+ "@noble/hashes": "1.4.0",
+ "asn1js": "^3.0.6",
+ "bytestreamjs": "^2.0.1",
+ "pvtsutils": "^1.3.6",
+ "pvutils": "^1.1.3",
+ "tslib": "^2.8.1"
+ }
+ },
"playwright": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.0.tgz",
- "integrity": "sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==",
+ "version": "1.57.0",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz",
+ "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==",
"dev": true,
"peer": true,
"requires": {
"fsevents": "2.3.2",
- "playwright-core": "1.55.0"
+ "playwright-core": "1.57.0"
},
"dependencies": {
- "playwright-core": {
- "version": "1.55.0",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.0.tgz",
- "integrity": "sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==",
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
+ "optional": true,
"peer": true
}
}
},
"playwright-core": {
- "version": "1.39.0",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz",
- "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==",
- "dev": true
+ "version": "1.57.0",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz",
+ "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==",
+ "dev": true,
+ "peer": true
},
"plur": {
"version": "4.0.0",
@@ -30579,6 +36089,17 @@
"dev": true,
"requires": {}
},
+ "postcss-import": {
+ "version": "16.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-16.1.1.tgz",
+ "integrity": "sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==",
+ "dev": true,
+ "requires": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ }
+ },
"postcss-loader": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz",
@@ -30608,6 +36129,12 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"dev": true
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true
}
}
},
@@ -30855,9 +36382,9 @@
"dev": true
},
"postcss-safe-parser": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
- "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz",
+ "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==",
"dev": true,
"requires": {}
},
@@ -30903,6 +36430,33 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
+ "postgres-array": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
+ "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
+ "dev": true
+ },
+ "postgres-bytea": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz",
+ "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==",
+ "dev": true
+ },
+ "postgres-date": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
+ "dev": true
+ },
+ "postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "dev": true,
+ "requires": {
+ "xtend": "^4.0.0"
+ }
+ },
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -30910,15 +36464,15 @@
"dev": true
},
"prettier": {
- "version": "npm:wp-prettier@3.0.3",
- "resolved": "https://registry.npmjs.org/wp-prettier/-/wp-prettier-3.0.3.tgz",
- "integrity": "sha512-X4UlrxDTH8oom9qXlcjnydsjAOD2BmB6yFmvS4Z2zdTzqqpRWb+fbqrH412+l+OUXmbzJlSXjlMFYPgYG12IAA==",
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.0.tgz",
+ "integrity": "sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==",
"dev": true
},
"prettier-linter-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
- "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz",
+ "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==",
"dev": true,
"requires": {
"fast-diff": "^1.1.2"
@@ -30969,7 +36523,6 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "dev": true,
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -30979,8 +36532,7 @@
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
}
}
},
@@ -31003,47 +36555,21 @@
}
},
"proxy-agent": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz",
- "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz",
+ "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==",
"dev": true,
"requires": {
- "agent-base": "^7.0.2",
+ "agent-base": "^7.1.2",
"debug": "^4.3.4",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.0",
+ "http-proxy-agent": "^7.0.1",
+ "https-proxy-agent": "^7.0.6",
"lru-cache": "^7.14.1",
- "pac-proxy-agent": "^7.0.0",
+ "pac-proxy-agent": "^7.1.0",
"proxy-from-env": "^1.1.0",
- "socks-proxy-agent": "^8.0.1"
+ "socks-proxy-agent": "^8.0.5"
},
"dependencies": {
- "agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true
- },
- "http-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
- "dev": true,
- "requires": {
- "agent-base": "^7.1.0",
- "debug": "^4.3.4"
- }
- },
- "https-proxy-agent": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
- "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
- "dev": true,
- "requires": {
- "agent-base": "^7.1.2",
- "debug": "4"
- }
- },
"lru-cache": {
"version": "7.18.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
@@ -31058,27 +36584,6 @@
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true
},
- "ps-list": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-8.1.1.tgz",
- "integrity": "sha512-OPS9kEJYVmiO48u/B9qneqhkMvgCxT+Tm28VCEJpheTpl8cJ0ffZRRNgS5mrQRTrX5yRTpaJ+hRDeefXYmmorQ==",
- "dev": true
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
- "dev": true
- },
- "psl": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
- "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
- "dev": true,
- "requires": {
- "punycode": "^2.3.1"
- }
- },
"pump": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz",
@@ -31096,62 +36601,17 @@
"dev": true
},
"puppeteer-core": {
- "version": "13.7.0",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-13.7.0.tgz",
- "integrity": "sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==",
+ "version": "23.11.1",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz",
+ "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==",
"dev": true,
"requires": {
- "cross-fetch": "3.1.5",
- "debug": "4.3.4",
- "devtools-protocol": "0.0.981744",
- "extract-zip": "2.0.1",
- "https-proxy-agent": "5.0.1",
- "pkg-dir": "4.2.0",
- "progress": "2.0.3",
- "proxy-from-env": "1.1.0",
- "rimraf": "3.0.2",
- "tar-fs": "2.1.1",
- "unbzip2-stream": "1.4.3",
- "ws": "8.5.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "devtools-protocol": {
- "version": "0.0.981744",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz",
- "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==",
- "dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "ws": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
- "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
- "dev": true,
- "requires": {}
- }
+ "@puppeteer/browsers": "2.6.1",
+ "chromium-bidi": "0.11.0",
+ "debug": "^4.4.0",
+ "devtools-protocol": "0.0.1367902",
+ "typed-query-selector": "^2.12.0",
+ "ws": "^8.18.0"
}
},
"pure-rand": {
@@ -31160,21 +36620,39 @@
"integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
"dev": true
},
- "qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "pvtsutils": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz",
+ "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==",
"dev": true,
"requires": {
- "side-channel": "^1.0.6"
+ "tslib": "^2.8.1"
}
},
- "querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "pvutils": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz",
+ "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==",
"dev": true
},
+ "qified": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/qified/-/qified-0.6.0.tgz",
+ "integrity": "sha512-tsSGN1x3h569ZSU1u6diwhltLyfUWDp3YbFHedapTmpBl0B3P6U3+Qptg7xu+v+1io1EwhdPyyRHYbEw0KN2FA==",
+ "dev": true,
+ "requires": {
+ "hookified": "^1.14.0"
+ }
+ },
+ "qs": {
+ "version": "6.14.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz",
+ "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.1.0"
+ }
+ },
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -31203,15 +36681,15 @@
"dev": true
},
"raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
+ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
"dev": true,
"requires": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "unpipe": "~1.0.0"
},
"dependencies": {
"iconv-lite": {
@@ -31237,19 +36715,19 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "peer": true,
"requires": {
"loose-envify": "^1.1.0",
"scheduler": "^0.23.2"
}
},
"react-i18next": {
- "version": "15.7.3",
- "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.3.tgz",
- "integrity": "sha512-AANws4tOE+QSq/IeMF/ncoHlMNZaVLxpa5uUGW1wjike68elVYr0018L9xYoqBr1OFO7G7boDPrbn0HpMCJxTw==",
+ "version": "16.5.3",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-16.5.3.tgz",
+ "integrity": "sha512-fo+/NNch37zqxOzlBYrWMx0uy/yInPkRfjSuy4lqKdaecR17nvCHnEUt3QyzA8XjQ2B/0iW/5BhaHR3ZmukpGw==",
"requires": {
- "@babel/runtime": "^7.27.6",
- "html-parse-stringify": "^3.0.1"
+ "@babel/runtime": "^7.28.4",
+ "html-parse-stringify": "^3.0.1",
+ "use-sync-external-store": "^1.6.0"
}
},
"react-is": {
@@ -31264,6 +36742,15 @@
"integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
"dev": true
},
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "requires": {
+ "pify": "^2.3.0"
+ }
+ },
"read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -31363,6 +36850,12 @@
"strip-indent": "^3.0.0"
}
},
+ "reflect-metadata": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
+ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
+ "dev": true
+ },
"reflect.getprototypeof": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
@@ -31445,12 +36938,6 @@
}
}
},
- "remove-accents": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz",
- "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==",
- "dev": true
- },
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -31463,6 +36950,17 @@
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true
},
+ "require-in-the-middle": {
+ "version": "7.5.2",
+ "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.5.2.tgz",
+ "integrity": "sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.5",
+ "module-details-from-path": "^1.0.3",
+ "resolve": "^1.22.8"
+ }
+ },
"requireindex": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
@@ -31520,6 +37018,12 @@
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true
},
+ "resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true
+ },
"resolve.exports": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
@@ -31538,15 +37042,6 @@
"integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"dev": true
},
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
"robots-parser": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-3.0.1.tgz",
@@ -31584,6 +37079,30 @@
"fsevents": "~2.3.2"
}
},
+ "rrweb-cssom": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
+ "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
+ "dev": true
+ },
+ "rtlcss": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz",
+ "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==",
+ "dev": true,
+ "requires": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.21",
+ "strip-json-comments": "^3.1.1"
+ }
+ },
+ "run-applescript": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+ "dev": true
+ },
"run-con": {
"version": "1.2.12",
"resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz",
@@ -31681,12 +37200,11 @@
}
},
"sass-loader": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
- "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "version": "16.0.6",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.6.tgz",
+ "integrity": "sha512-sglGzId5gmlfxNs4gK2U3h7HlVRfx278YK6Ono5lwzuvi1jxig80YiuHkaDBVsYIKFhx8wN7XSCI0M2IDS/3qA==",
"dev": true,
"requires": {
- "klona": "^2.0.4",
"neo-async": "^2.6.2"
}
},
@@ -31703,7 +37221,6 @@
"version": "0.23.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "peer": true,
"requires": {
"loose-envify": "^1.1.0"
}
@@ -31756,13 +37273,13 @@
"dev": true
},
"selfsigned": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
- "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz",
+ "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==",
"dev": true,
"requires": {
- "@types/node-forge": "^1.3.0",
- "node-forge": "^1"
+ "@peculiar/x509": "^1.14.2",
+ "pkijs": "^3.3.3"
}
},
"semver": {
@@ -31772,24 +37289,24 @@
"dev": true
},
"send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
"dev": true,
"requires": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.1",
"mime": "1.6.0",
"ms": "2.1.3",
- "on-finished": "2.4.1",
+ "on-finished": "~2.4.1",
"range-parser": "~1.2.1",
- "statuses": "2.0.1"
+ "statuses": "~2.0.2"
},
"dependencies": {
"debug": {
@@ -31808,18 +37325,6 @@
"dev": true
}
}
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true
}
}
},
@@ -31912,15 +37417,15 @@
}
},
"serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
"dev": true,
"requires": {
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.19.0"
+ "send": "~0.19.1"
}
},
"set-function-length": {
@@ -31996,18 +37501,18 @@
}
},
"shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"requires": {
- "shebang-regex": "^1.0.0"
+ "shebang-regex": "^3.0.0"
}
},
"shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
"shell-quote": {
@@ -32016,6 +37521,12 @@
"integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
"dev": true
},
+ "shimmer": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
+ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==",
+ "dev": true
+ },
"side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
@@ -32150,14 +37661,6 @@
"agent-base": "^7.1.2",
"debug": "^4.3.4",
"socks": "^2.8.3"
- },
- "dependencies": {
- "agent-base": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
- "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
- "dev": true
- }
}
},
"source-map": {
@@ -32201,9 +37704,9 @@
}
},
"spawnd": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.2.tgz",
- "integrity": "sha512-nl8DVHEDQ57IcKakzpjanspVChkMpGLuVwMR/eOn9cXE55Qr6luD2Kn06sA0ootRMdgrU4tInN6lA6ohTNvysw==",
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-10.1.4.tgz",
+ "integrity": "sha512-drqHc0mKJmtMsiGMOCwzlc5eZ0RPtRvT7tQAluW2A0qUc0G7TQ8KLcn3E6K5qzkLkH2UkS3nYQiVGULvvsD9dw==",
"dev": true,
"requires": {
"signal-exit": "^4.1.0",
@@ -32301,9 +37804,15 @@
}
},
"sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "stable-hash-x": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz",
+ "integrity": "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==",
"dev": true
},
"stack-utils": {
@@ -32330,9 +37839,9 @@
"dev": true
},
"statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
"dev": true
},
"stop-iteration-iterator": {
@@ -32346,12 +37855,12 @@
}
},
"streamx": {
- "version": "2.22.1",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz",
- "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==",
+ "version": "2.23.0",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz",
+ "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==",
"dev": true,
"requires": {
- "bare-events": "^2.2.0",
+ "events-universal": "^1.0.0",
"fast-fifo": "^1.3.2",
"text-decoder": "^1.1.0"
}
@@ -32527,6 +38036,21 @@
}
}
},
+ "stubborn-fs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-2.0.0.tgz",
+ "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==",
+ "dev": true,
+ "requires": {
+ "stubborn-utils": "^1.0.1"
+ }
+ },
+ "stubborn-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/stubborn-utils/-/stubborn-utils-1.0.2.tgz",
+ "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==",
+ "dev": true
+ },
"style-search": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
@@ -32544,51 +38068,72 @@
}
},
"stylelint": {
- "version": "14.16.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
- "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
+ "version": "16.26.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz",
+ "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==",
"dev": true,
"requires": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^3.0.5",
+ "@csstools/css-syntax-patches-for-csstree": "^1.0.19",
+ "@csstools/css-tokenizer": "^3.0.4",
+ "@csstools/media-query-list-parser": "^4.0.3",
+ "@csstools/selector-specificity": "^5.0.0",
+ "@dual-bundle/import-meta-resolve": "^4.2.1",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.1.0",
- "css-functions-list": "^3.1.0",
- "debug": "^4.3.4",
- "fast-glob": "^3.2.12",
+ "cosmiconfig": "^9.0.0",
+ "css-functions-list": "^3.2.3",
+ "css-tree": "^3.1.0",
+ "debug": "^4.4.3",
+ "fast-glob": "^3.3.3",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^11.1.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.1",
- "import-lazy": "^4.0.0",
+ "html-tags": "^3.3.1",
+ "ignore": "^7.0.5",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.26.0",
+ "known-css-properties": "^0.37.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
- "micromatch": "^4.0.5",
+ "meow": "^13.2.0",
+ "micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.19",
- "postcss-media-query-parser": "^0.2.3",
- "postcss-resolve-nested-selector": "^0.1.1",
- "postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.11",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.5.6",
+ "postcss-resolve-nested-selector": "^0.1.6",
+ "postcss-safe-parser": "^7.0.1",
+ "postcss-selector-parser": "^7.1.0",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "style-search": "^0.1.0",
- "supports-hyperlinks": "^2.3.0",
+ "supports-hyperlinks": "^3.2.0",
"svg-tags": "^1.0.0",
- "table": "^6.8.1",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.2"
+ "table": "^6.9.0",
+ "write-file-atomic": "^5.0.1"
},
"dependencies": {
+ "@csstools/media-query-list-parser": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz",
+ "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "@csstools/selector-specificity": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+ "dev": true,
+ "requires": {}
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
"balanced-match": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
@@ -32596,16 +38141,45 @@
"dev": true
},
"cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
"dev": true,
"requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
+ }
+ },
+ "css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
+ }
+ },
+ "file-entry-cache": {
+ "version": "11.1.2",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.2.tgz",
+ "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^6.1.20"
+ }
+ },
+ "flat-cache": {
+ "version": "6.1.20",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.20.tgz",
+ "integrity": "sha512-AhHYqwvN62NVLp4lObVXGVluiABTHapoB57EyegZVmazN+hhGhLTn3uZbOofoTw4DSDvVCadzzyChXhOAvy8uQ==",
+ "dev": true,
+ "requires": {
+ "cacheable": "^2.3.2",
+ "flatted": "^3.3.3",
+ "hookified": "^1.15.0"
}
},
"global-modules": {
@@ -32628,48 +38202,156 @@
"which": "^1.3.1"
}
},
+ "ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true
+ },
"is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true
},
+ "js-yaml": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
+ },
+ "mdn-data": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "dev": true
+ },
+ "meow": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz",
+ "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==",
+ "dev": true
+ },
+ "postcss-selector-parser": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "write-file-atomic": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ }
}
}
},
"stylelint-config-recommended": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz",
- "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==",
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz",
+ "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==",
"dev": true,
"requires": {}
},
"stylelint-config-recommended-scss": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-5.0.2.tgz",
- "integrity": "sha512-b14BSZjcwW0hqbzm9b0S/ScN2+3CO3O4vcMNOw2KGf8lfVSwJ4p5TbNEXKwKl1+0FMtgRXZj6DqVUe/7nGnuBg==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.1.0.tgz",
+ "integrity": "sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==",
"dev": true,
"requires": {
- "postcss-scss": "^4.0.2",
- "stylelint-config-recommended": "^6.0.0",
- "stylelint-scss": "^4.0.0"
+ "postcss-scss": "^4.0.9",
+ "stylelint-config-recommended": "^14.0.1",
+ "stylelint-scss": "^6.4.0"
}
},
"stylelint-scss": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz",
- "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.14.0.tgz",
+ "integrity": "sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==",
"dev": true,
"requires": {
+ "css-tree": "^3.0.1",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.37.0",
+ "mdn-data": "^2.25.0",
"postcss-media-query-parser": "^0.2.3",
- "postcss-resolve-nested-selector": "^0.1.1",
- "postcss-selector-parser": "^6.0.11",
+ "postcss-resolve-nested-selector": "^0.1.6",
+ "postcss-selector-parser": "^7.1.1",
"postcss-value-parser": "^4.2.0"
+ },
+ "dependencies": {
+ "css-tree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz",
+ "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.12.2",
+ "source-map-js": "^1.0.1"
+ },
+ "dependencies": {
+ "mdn-data": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz",
+ "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==",
+ "dev": true
+ }
+ }
+ },
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true
+ },
+ "mdn-data": {
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.26.0.tgz",
+ "integrity": "sha512-ZqI0qjKWHMPcGUfLmlr80NPNVHIOjPMHtIOe1qXYFGS0YBZ1YKAzo9yk8W+gGrLCN0Xdv/RKxqdIsqPakEfmow==",
+ "dev": true
+ },
+ "postcss-selector-parser": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
+ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ }
}
},
"supports-color": {
@@ -32682,9 +38364,9 @@
}
},
"supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz",
+ "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==",
"dev": true,
"requires": {
"has-flag": "^4.0.0",
@@ -32739,9 +38421,9 @@
"dev": true
},
"synckit": {
- "version": "0.11.11",
- "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz",
- "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==",
+ "version": "0.11.12",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz",
+ "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==",
"dev": true,
"requires": {
"@pkgr/core": "^0.2.9"
@@ -32780,15 +38462,6 @@
}
}
},
- "tannin": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tannin/-/tannin-1.2.0.tgz",
- "integrity": "sha512-U7GgX/RcSeUETbV7gYgoz8PD7Ni4y95pgIP/Z6ayI3CfhSujwKEBlGFTCRN+Aqnuyf4AN2yHL+L8x+TCGjb9uA==",
- "dev": true,
- "requires": {
- "@tannin/plural-forms": "^1.1.0"
- }
- },
"tapable": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz",
@@ -32796,28 +38469,35 @@
"dev": true
},
"tar-fs": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz",
+ "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==",
"dev": true,
"requires": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
+ "bare-fs": "^4.0.1",
+ "bare-path": "^3.0.0",
"pump": "^3.0.0",
- "tar-stream": "^2.1.4"
+ "tar-stream": "^3.1.5"
}
},
"tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
"dev": true,
"requires": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ },
+ "dependencies": {
+ "b4a": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
+ "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
+ "dev": true,
+ "requires": {}
+ }
}
},
"terser": {
@@ -32933,9 +38613,9 @@
},
"dependencies": {
"b4a": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.1.tgz",
- "integrity": "sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz",
+ "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==",
"dev": true,
"requires": {}
}
@@ -32947,10 +38627,17 @@
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
+ "thingies": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz",
+ "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==",
+ "dev": true,
+ "requires": {}
+ },
"third-party-web": {
- "version": "0.23.4",
- "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.23.4.tgz",
- "integrity": "sha512-kwYnSZRhEvv0SBW2fp8SBBKRglMoBjV8xz6C31m0ewqOtknB5UL+Ihg+M81hyFY5ldkZuGWPb+e4GVDkzf/gYg==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.27.0.tgz",
+ "integrity": "sha512-h0JYX+dO2Zr3abCQpS6/uFjujaOjA1DyDzGQ41+oFn9VW/ARiq9g5ln7qEP9+BTzDpOMyIfsfj4OvfgXAsMUSA==",
"dev": true
},
"through": {
@@ -32965,6 +38652,63 @@
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
"dev": true
},
+ "tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "requires": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "dependencies": {
+ "fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "requires": {}
+ },
+ "picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true
+ }
+ }
+ },
+ "tldts": {
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz",
+ "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==",
+ "dev": true,
+ "requires": {
+ "tldts-core": "^6.1.86"
+ }
+ },
+ "tldts-core": {
+ "version": "6.1.86",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz",
+ "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==",
+ "dev": true
+ },
+ "tldts-icann": {
+ "version": "7.0.19",
+ "resolved": "https://registry.npmjs.org/tldts-icann/-/tldts-icann-7.0.19.tgz",
+ "integrity": "sha512-PZgda8E2cXMNa7QlBbiZh3vcS8UaPTDRIBmcGPDlujSMtQLrzjvikeJxzQSqWxn3muaMJ7BsC+aL464Yl2I6cA==",
+ "dev": true,
+ "requires": {
+ "tldts-core": "^7.0.19"
+ },
+ "dependencies": {
+ "tldts-core": {
+ "version": "7.0.19",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz",
+ "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==",
+ "dev": true
+ }
+ }
+ },
"tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -32993,26 +38737,30 @@
"dev": true
},
"tough-cookie": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
- "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz",
+ "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==",
"dev": true,
"requires": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
+ "tldts": "^6.1.32"
}
},
"tr46": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
- "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
"dev": true,
"requires": {
- "punycode": "^2.1.1"
+ "punycode": "^2.3.1"
}
},
+ "tree-dump": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz",
+ "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==",
+ "dev": true,
+ "requires": {}
+ },
"tree-kill": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
@@ -33101,6 +38849,23 @@
}
}
},
+ "tsyringe": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz",
+ "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
"type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -33185,14 +38950,11 @@
"reflect.getprototypeof": "^1.0.6"
}
},
- "typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
- "requires": {
- "is-typedarray": "^1.0.0"
- }
+ "typed-query-selector": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz",
+ "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==",
+ "dev": true
},
"typescript": {
"version": "5.9.2",
@@ -33263,27 +39025,40 @@
"integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
"dev": true
},
- "unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
- "dev": true,
- "requires": {
- "crypto-random-string": "^2.0.0"
- }
- },
- "universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "dev": true
- },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"dev": true
},
+ "unrs-resolver": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz",
+ "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==",
+ "dev": true,
+ "requires": {
+ "@unrs/resolver-binding-android-arm-eabi": "1.11.1",
+ "@unrs/resolver-binding-android-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-arm64": "1.11.1",
+ "@unrs/resolver-binding-darwin-x64": "1.11.1",
+ "@unrs/resolver-binding-freebsd-x64": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-arm64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1",
+ "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-gnu": "1.11.1",
+ "@unrs/resolver-binding-linux-x64-musl": "1.11.1",
+ "@unrs/resolver-binding-wasm32-wasi": "1.11.1",
+ "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1",
+ "@unrs/resolver-binding-win32-x64-msvc": "1.11.1",
+ "napi-postinstall": "^0.3.0"
+ }
+ },
"update-browserslist-db": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
@@ -33345,15 +39120,11 @@
}
}
},
- "url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dev": true,
- "requires": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
+ "use-sync-external-store": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
+ "requires": {}
},
"util-deprecate": {
"version": "1.0.2",
@@ -33373,12 +39144,6 @@
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true
},
- "v8-compile-cache": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
- "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
- "dev": true
- },
"v8-to-istanbul": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
@@ -33425,15 +39190,33 @@
"dev": true
},
"vite": {
- "version": "5.4.20",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz",
- "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
+ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
"dev": true,
"requires": {
- "esbuild": "^0.21.3",
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.4",
"fsevents": "~2.3.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.13"
+ },
+ "dependencies": {
+ "fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "requires": {}
+ },
+ "picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true
+ }
}
},
"void-elements": {
@@ -33442,25 +39225,25 @@
"integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w=="
},
"w3c-xmlserializer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
- "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true,
"requires": {
- "xml-name-validator": "^4.0.0"
+ "xml-name-validator": "^5.0.0"
}
},
"wait-on": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
- "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.5.tgz",
+ "integrity": "sha512-J3WlS0txVHkhLRb2FsmRg3dkMTCV1+M6Xra3Ho7HzZDHpE7DCOnoSoCJsZotrmW3uRMhvIJGSKUKrh/MeF4iag==",
"dev": true,
"requires": {
- "axios": "^1.6.1",
- "joi": "^17.11.0",
+ "axios": "^1.12.1",
+ "joi": "^18.0.1",
"lodash": "^4.17.21",
"minimist": "^1.2.8",
- "rxjs": "^7.8.1"
+ "rxjs": "^7.8.2"
}
},
"walker": {
@@ -33492,9 +39275,15 @@
}
},
"web-vitals": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz",
- "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz",
+ "integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==",
+ "dev": true
+ },
+ "webdriver-bidi-protocol": {
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.10.tgz",
+ "integrity": "sha512-5LAE43jAVLOhB/QqX4bwSiv0Hg1HBfMmOuwBSXHdvg4GMGu9Y0lIq7p4R/yySu6w74WmaR4GM4H9t2IwLW7hgw==",
"dev": true
},
"webidl-conversions": {
@@ -33572,118 +39361,99 @@
}
},
"webpack-cli": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz",
- "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz",
+ "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==",
"dev": true,
"requires": {
- "@discoveryjs/json-ext": "^0.5.0",
- "@webpack-cli/configtest": "^2.1.1",
- "@webpack-cli/info": "^2.0.2",
- "@webpack-cli/serve": "^2.0.5",
+ "@discoveryjs/json-ext": "^0.6.1",
+ "@webpack-cli/configtest": "^3.0.1",
+ "@webpack-cli/info": "^3.0.1",
+ "@webpack-cli/serve": "^3.0.1",
"colorette": "^2.0.14",
- "commander": "^10.0.1",
+ "commander": "^12.1.0",
"cross-spawn": "^7.0.3",
- "envinfo": "^7.7.3",
+ "envinfo": "^7.14.0",
"fastest-levenshtein": "^1.0.12",
"import-local": "^3.0.2",
"interpret": "^3.1.1",
"rechoir": "^0.8.0",
- "webpack-merge": "^5.7.3"
+ "webpack-merge": "^6.0.1"
},
"dependencies": {
- "commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "dev": true
- },
- "cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "@discoveryjs/json-ext": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz",
+ "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==",
"dev": true
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
}
}
},
"webpack-dev-middleware": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
- "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
+ "version": "7.4.5",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz",
+ "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==",
"dev": true,
"requires": {
"colorette": "^2.0.10",
- "memfs": "^3.4.3",
- "mime-types": "^2.1.31",
+ "memfs": "^4.43.1",
+ "mime-types": "^3.0.1",
+ "on-finished": "^2.4.1",
"range-parser": "^1.2.1",
"schema-utils": "^4.0.0"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
+ "dev": true,
+ "requires": {
+ "mime-db": "^1.54.0"
+ }
+ }
}
},
"webpack-dev-server": {
- "version": "4.15.2",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz",
- "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==",
- "dev": true,
- "requires": {
- "@types/bonjour": "^3.5.9",
- "@types/connect-history-api-fallback": "^1.3.5",
- "@types/express": "^4.17.13",
- "@types/serve-index": "^1.9.1",
- "@types/serve-static": "^1.13.10",
- "@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.5",
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz",
+ "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==",
+ "dev": true,
+ "requires": {
+ "@types/bonjour": "^3.5.13",
+ "@types/connect-history-api-fallback": "^1.5.4",
+ "@types/express": "^4.17.25",
+ "@types/express-serve-static-core": "^4.17.21",
+ "@types/serve-index": "^1.9.4",
+ "@types/serve-static": "^1.15.5",
+ "@types/sockjs": "^0.3.36",
+ "@types/ws": "^8.5.10",
"ansi-html-community": "^0.0.8",
- "bonjour-service": "^1.0.11",
- "chokidar": "^3.5.3",
+ "bonjour-service": "^1.2.1",
+ "chokidar": "^3.6.0",
"colorette": "^2.0.10",
- "compression": "^1.7.4",
+ "compression": "^1.8.1",
"connect-history-api-fallback": "^2.0.0",
- "default-gateway": "^6.0.3",
- "express": "^4.17.3",
+ "express": "^4.22.1",
"graceful-fs": "^4.2.6",
- "html-entities": "^2.3.2",
- "http-proxy-middleware": "^2.0.3",
- "ipaddr.js": "^2.0.1",
- "launch-editor": "^2.6.0",
- "open": "^8.0.9",
- "p-retry": "^4.5.0",
- "rimraf": "^3.0.2",
- "schema-utils": "^4.0.0",
- "selfsigned": "^2.1.1",
+ "http-proxy-middleware": "^2.0.9",
+ "ipaddr.js": "^2.1.0",
+ "launch-editor": "^2.6.1",
+ "open": "^10.0.3",
+ "p-retry": "^6.2.0",
+ "schema-utils": "^4.2.0",
+ "selfsigned": "^5.5.0",
"serve-index": "^1.9.1",
"sockjs": "^0.3.24",
"spdy": "^4.0.2",
- "webpack-dev-middleware": "^5.3.4",
- "ws": "^8.13.0"
+ "webpack-dev-middleware": "^7.4.2",
+ "ws": "^8.18.0"
},
"dependencies": {
"chokidar": {
@@ -33719,27 +39489,18 @@
"requires": {
"picomatch": "^2.2.1"
}
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
}
}
},
"webpack-merge": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
- "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz",
+ "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==",
"dev": true,
"requires": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
- "wildcard": "^2.0.0"
+ "wildcard": "^2.0.1"
},
"dependencies": {
"clone-deep": {
@@ -33794,34 +39555,40 @@
"dev": true
},
"whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"dev": true,
"requires": {
"iconv-lite": "0.6.3"
}
},
"whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true
},
"whatwg-url": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
- "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
"dev": true,
"requires": {
- "tr46": "^3.0.0",
+ "tr46": "^5.1.0",
"webidl-conversions": "^7.0.0"
}
},
+ "when-exit": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.5.tgz",
+ "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==",
+ "dev": true
+ },
"which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"requires": {
"isexe": "^2.0.0"
@@ -33928,22 +39695,31 @@
}
},
"ws": {
- "version": "8.18.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "version": "8.19.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
+ "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
"dev": true,
"requires": {}
},
+ "wsl-utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
+ "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^3.1.0"
+ }
+ },
"xdg-basedir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
- "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
+ "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
"dev": true
},
"xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true
},
"xmlchars": {
@@ -33952,6 +39728,12 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"dev": true
},
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -33965,10 +39747,12 @@
"dev": true
},
"yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
+ "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
+ "dev": true,
+ "optional": true,
+ "peer": true
},
"yargs": {
"version": "17.7.2",
@@ -33983,12 +39767,20 @@
"string-width": "^4.2.3",
"y18n": "^5.0.5",
"yargs-parser": "^21.1.1"
+ },
+ "dependencies": {
+ "yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true
+ }
}
},
"yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
"dev": true
},
"yauzl": {
@@ -34006,6 +39798,12 @@
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true
+ },
+ "zod": {
+ "version": "3.23.8",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
+ "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
+ "dev": true
}
}
}
diff --git a/frontend/package.json b/frontend/package.json
index 0a0a33a..261e178 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -15,10 +15,13 @@
"README.md"
],
"scripts": {
- "start": "npm run minify-css && node copy-build.js --watch & wp-scripts start",
- "build": "npm run minify-css && webpack --config webpack.wp.js && node copy-build.js",
+ "start": "npm run minify-css && wp-scripts start",
+ "build": "npm run minify-css && webpack --config webpack.wp.js",
"build:standalone": "vite build",
- "copy": "node copy-build.js",
+ "lint": "eslint 'src/**/*.{js,jsx}'",
+ "lint:fix": "eslint . --fix",
+ "format": "prettier --log-level=error --write 'src/**/*.{js,jsx,css,scss}'",
+ "format:check": "prettier --check 'src/**/*.{js,jsx,css,scss}'",
"minify-css": "cleancss -o ../assets/min-css/marketplace.min.css ../css/marketplace.css"
},
"peerDependencies": {
@@ -27,12 +30,21 @@
},
"devDependencies": {
"@vitejs/plugin-react": "^4.0.0",
- "@wordpress/scripts": "^26.0.0",
+ "@wordpress/scripts": "^31.1.0",
"clean-css-cli": "^5.6.3",
"cross-env": "^7.0.3",
- "vite": "^5.0.0",
- "webpack": "^5.0.0",
- "webpack-cli": "^5.0.0"
+ "eslint": "^8.57.1",
+ "eslint-config-prettier": "^9.1.2",
+ "eslint-plugin-jsx-a11y": "^6.10.2",
+ "eslint-plugin-react": "^7.37.4",
+ "eslint-plugin-react-hooks": "^4.6.2",
+ "prettier": "^3.5.1",
+ "vite": "^6.1.0",
+ "webpack": "^5.97.1",
+ "webpack-cli": "^6.0.1"
+ },
+ "overrides": {
+ "webpack-dev-server": "^5.2.1"
},
"publishConfig": {
"access": "public"
@@ -44,8 +56,11 @@
"author": "One.com",
"license": "GPL-2.0-or-later",
"dependencies": {
- "@group.one/gravity": "^5.22.1",
- "mixpanel-browser": "^2.72.0",
- "react-i18next": "^15.7.3"
+ "@eslint/js": "^8.57.1",
+ "@dogado/gravity": "^5.25.3",
+ "globals": "^15.15.0",
+ "mixpanel-browser": "^2.73.0",
+ "prop-types": "^15.8.1",
+ "react-i18next": "^16.5.0"
}
}
diff --git a/frontend/src/AddonsApp.jsx b/frontend/src/AddonsApp.jsx
index 2c28e05..b0176dc 100644
--- a/frontend/src/AddonsApp.jsx
+++ b/frontend/src/AddonsApp.jsx
@@ -1,25 +1,25 @@
-import React from "react";
-import Addons from "./components/Addons";
-import LoadingOverlay from "./components/LoadingOverlay";
-import { MarketplaceProvider } from "./context/MarketplaceContext";
+import React from 'react';
+import Addons from './components/Addons';
+import LoadingOverlay from './components/LoadingOverlay';
+import { MarketplaceProvider } from './context/MarketplaceContext';
const AddonsApp = ({ apiBaseUrl, useWPHandlers, wpConfig, enableDefaultStyles, assetsBaseUrl }) => {
- return (
-
-
-
-
- );
+ return (
+
+
+
+
+ );
};
export default AddonsApp;
diff --git a/frontend/src/MarketplaceApp.jsx b/frontend/src/MarketplaceApp.jsx
index cbe717d..4b7280f 100644
--- a/frontend/src/MarketplaceApp.jsx
+++ b/frontend/src/MarketplaceApp.jsx
@@ -1,80 +1,91 @@
-import React, { useState, useEffect } from "react";
-import Marketplace from "./components/MarketPlace";
-import ProductBanner from "./components/ProductBanner";
-import FeaturedCarousel from "./components/FeaturedCarousel";
-import LoadingOverlay from "./components/LoadingOverlay";
-import { MarketplaceProvider, useMarketplace } from "./context/MarketplaceContext";
+import React, { useState, useEffect } from 'react';
+import Marketplace from './components/MarketPlace';
+import ProductBanner from './components/ProductBanner';
+import FeaturedCarousel from './components/FeaturedCarousel';
+import LoadingOverlay from './components/LoadingOverlay';
+import { MarketplaceProvider, useMarketplace } from './context/MarketplaceContext';
// Inner component that can access the context
const MarketplaceContent = () => {
- const { allPluginsActivated, catalogError, catalogLoading, isWpVersionSupported } = useMarketplace();
+ const { allPluginsActivated, catalogError, catalogLoading, isWpVersionSupported } =
+ useMarketplace();
- const isSupportedWpVersion = isWpVersionSupported('6.2');
+ const isSupportedWpVersion = isWpVersionSupported('6.2');
- // Track detail page visibility with state
- const [isDetailPage, setIsDetailPage] = useState(
- typeof window !== "undefined" && new URLSearchParams(window.location.search).get("plugin")
- );
+ // Track detail page visibility with state
+ const [isDetailPage, setIsDetailPage] = useState(
+ typeof window !== 'undefined' && new URLSearchParams(window.location.search).get('plugin')
+ );
- // Listen for URL changes (both popstate and custom events)
- useEffect(() => {
- const checkDetailPage = () => {
- const hasPlugin = typeof window !== "undefined" && new URLSearchParams(window.location.search).get("plugin");
- setIsDetailPage(!!hasPlugin);
- };
+ // Listen for URL changes (both popstate and custom events)
+ useEffect(() => {
+ const checkDetailPage = () => {
+ const hasPlugin =
+ typeof window !== 'undefined' && new URLSearchParams(window.location.search).get('plugin');
+ setIsDetailPage(!!hasPlugin);
+ };
- // Listen for browser back/forward
- window.addEventListener('popstate', checkDetailPage);
+ // Listen for browser back/forward
+ window.addEventListener('popstate', checkDetailPage);
- // Listen for programmatic URL changes (from pushState)
- const originalPushState = window.history.pushState;
- window.history.pushState = function(...args) {
- originalPushState.apply(this, args);
- checkDetailPage();
- };
+ // Listen for programmatic URL changes (from pushState)
+ const originalPushState = window.history.pushState;
+ window.history.pushState = function (...args) {
+ originalPushState.apply(this, args);
+ checkDetailPage();
+ };
- // Listen for programmatic URL changes (from replaceState)
- const originalReplaceState = window.history.replaceState;
- window.history.replaceState = function(...args) {
- originalReplaceState.apply(this, args);
- checkDetailPage();
- };
+ // Listen for programmatic URL changes (from replaceState)
+ const originalReplaceState = window.history.replaceState;
+ window.history.replaceState = function (...args) {
+ originalReplaceState.apply(this, args);
+ checkDetailPage();
+ };
- return () => {
- window.removeEventListener('popstate', checkDetailPage);
- window.history.pushState = originalPushState;
- window.history.replaceState = originalReplaceState;
- };
- }, []);
+ return () => {
+ window.removeEventListener('popstate', checkDetailPage);
+ window.history.pushState = originalPushState;
+ window.history.replaceState = originalReplaceState;
+ };
+ }, []);
- return (
- <>
-
-
-
+ return (
+ <>
+
+
+
+ {!isDetailPage && !catalogError && isSupportedWpVersion && (
+
+ )}
+ {!isDetailPage && !allPluginsActivated && isSupportedWpVersion && (
+
+ )}
- {!isDetailPage && !catalogError && isSupportedWpVersion &&
}
- {!isDetailPage && !allPluginsActivated && isSupportedWpVersion &&
}
-
-
-
-
- >
- );
+
+
+
+ >
+ );
};
-const MarketplaceApp = ({ apiBaseUrl, useWPHandlers, wpConfig, enableDefaultStyles, assetsBaseUrl }) => {
- return (
-
-
-
- );
+const MarketplaceApp = ({
+ apiBaseUrl,
+ useWPHandlers,
+ wpConfig,
+ enableDefaultStyles,
+ assetsBaseUrl,
+}) => {
+ return (
+
+
+
+ );
};
export default MarketplaceApp;
diff --git a/frontend/src/addons.jsx b/frontend/src/addons.jsx
index 9dd17b9..542fdb3 100644
--- a/frontend/src/addons.jsx
+++ b/frontend/src/addons.jsx
@@ -1,31 +1,32 @@
-import React from "react";
-import ReactDOM from "react-dom";
-import AddonsApp from "./AddonsApp";
-import './i18n'
-import { isWpVersionSupported } from "./utils/wpVersionHelper";
+import React from 'react';
+import ReactDOM from 'react-dom';
+import AddonsApp from './AddonsApp';
+import './i18n';
+import { isWpVersionSupported } from './utils/wpVersionHelper';
// Inside-WP auto-mount
-document.addEventListener("DOMContentLoaded", () => {
- const el = document.getElementById("marketplace-addons-root");
- if (el) {
- const config = window.marketplaceConfig || {};
- if (config.locale) {
- import("i18next").then(({ default: i18n }) => {
- i18n.changeLanguage(config.locale);
- });
- }
+document.addEventListener('DOMContentLoaded', () => {
+ const el = document.getElementById('marketplace-addons-root');
+ if (el) {
+ const config = window.marketplaceConfig || {};
+ if (config.locale) {
+ import('i18next').then(({ default: i18n }) => {
+ i18n.changeLanguage(config.locale);
+ });
+ }
- const isSupported = isWpVersionSupported(config.wpVersion, '6.2');
+ const isSupported = isWpVersionSupported(config.wpVersion, '6.2');
- if (typeof ReactDOM.createRoot === 'function' && isSupported) {
- // React 18+
- const root = ReactDOM.createRoot(el);
- root.render( );
- } else {
- // React 17 or unsupported version
- // For unsupported versions, AddonsApp will still render and show WpVersionErrorState
- // We just need to use the compatible render method
- ReactDOM.render( , el);
- }
+ if (typeof ReactDOM.createRoot === 'function' && isSupported) {
+ // React 18+
+ const root = ReactDOM.createRoot(el);
+ root.render( );
+ } else {
+ // React 17 or unsupported version
+ // For unsupported versions, AddonsApp will still render and show WpVersionErrorState
+ // We just need to use the compatible render method
+ /* eslint-disable-next-line react/no-deprecated */
+ ReactDOM.render( , el);
}
+ }
});
diff --git a/frontend/src/components/Addons.jsx b/frontend/src/components/Addons.jsx
index 46b9b70..84125d1 100644
--- a/frontend/src/components/Addons.jsx
+++ b/frontend/src/components/Addons.jsx
@@ -1,631 +1,722 @@
-import React, { useState, useEffect, useRef } from "react";
-import { useMarketplace } from "../context/MarketplaceContext";
-import { formatPluginPrice, getRebatePrice, getFullPrice } from "../utils/priceFormatter";
-import ProductDetail from "./ProductDetail";
-import ProductDetailRankMath from "./ProductDetailRankMath";
-import ErrorToast from "./ErrorToast";
-import SuccessToast from "./SuccessToast";
-import "@group.one/gravity";
-import ErrorState from "./ErrorState";
-import WpVersionErrorState from "./WpVersionErrorState";
-import {trackButtonClick, trackPageView, trackPluginDetailVisit} from "../utils/mixpanelTracking";
-import { getPluginRedirectUrl, navigateToPluginUrl } from "../utils/redirectUrlHelper";
+import React, { useState, useEffect, useRef } from 'react';
+import { useMarketplace } from '../context/MarketplaceContext';
+import { formatPluginPrice, getRebatePrice, getFullPrice } from '../utils/priceFormatter';
+import ProductDetail from './ProductDetail';
+import ProductDetailRankMath from './ProductDetailRankMath';
+import ErrorToast from './ErrorToast';
+import SuccessToast from './SuccessToast';
+import '@dogado/gravity';
+import ErrorState from './ErrorState';
+import WpVersionErrorState from './WpVersionErrorState';
+import { trackButtonClick, trackPageView, trackPluginDetailVisit } from '../utils/mixpanelTracking';
+import { getPluginRedirectUrl, navigateToPluginUrl } from '../utils/redirectUrlHelper';
export default function Addons() {
- const {
- apiBaseUrl,
- assetsBaseUrl,
- pluginInAction,
- setPluginInAction,
- subscriptionStatus,
- fetchSubscriptionStatus,
- isOnecomBrand,
- plugins,
- setPlugins,
- uiI18n,
- setUiI18n,
- handlePluginAction,
- catalogError,
- setCatalogError,
- catalogLoading,
- setCatalogLoading,
- shouldShowProvision,
- isSpecialPlugin,
- shouldShowPlugin,
- isWpVersionSupported
- } = useMarketplace();
-
- const [selectedPlugin, setSelectedPlugin] = useState(null);
- const [featuredPlugins, setFeaturedPlugins] = useState([]);
- const [openMenuIndex, setOpenMenuIndex] = useState(null);
- const menuRef = useRef(null);
-
- // Use ref to track if plugins have already been fetched
- const hasFetchedPlugins = useRef(false);
-
- // Use ref to track if addons visit has been tracked (prevent duplicates)
- const hasTrackedAddonsVisit = useRef(false);
-
- // Use ref to track last tracked plugin detail to prevent duplicate tracking
- const lastTrackedPluginSlug = useRef(null);
-
- // Use ref to store timestamps for tracking
- const contentReceivedTimestamp = useRef(null);
- const contentRenderTimestamp = useRef(null);
-
- // Use ref to store is_cached flag from API response
- const isCachedRef = useRef(false);
-
- // Construct icon base URL with fallback logic
- const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== "undefined" && window.marketplaceConfig?.assetsBaseUrl) || "";
- const iconBase = assetBase ? `${assetBase}assets/icons/` : "";
-
- // Determine if a plugin slug is in the URL
- const pluginFromQuery = typeof window !== "undefined"
- ? new URLSearchParams(window.location.search).get("plugin")
- : null;
-
- // Get marketplace page URL
- const getMarketplaceUrl = (slug) => {
- const adminUrl = typeof window !== "undefined" && window.marketplaceConfig?.wpConfig?.adminUrl
- ? window.marketplaceConfig.wpConfig.adminUrl
- : '/wp-admin/';
- return `${adminUrl}admin.php?page=onecom-marketplace&plugin=${slug}`;
- };
+ const {
+ apiBaseUrl,
+ assetsBaseUrl,
+ pluginInAction,
+ setPluginInAction,
+ subscriptionStatus,
+ fetchSubscriptionStatus,
+ isOnecomBrand,
+ plugins,
+ setPlugins,
+ uiI18n,
+ setUiI18n,
+ handlePluginAction,
+ catalogError,
+ setCatalogError,
+ catalogLoading,
+ setCatalogLoading,
+ shouldShowProvision,
+ isSpecialPlugin,
+ shouldShowPlugin,
+ isWpVersionSupported,
+ } = useMarketplace();
+
+ const [selectedPlugin, setSelectedPlugin] = useState(null);
+ const [featuredPlugins, setFeaturedPlugins] = useState([]);
+ const [openMenuIndex, setOpenMenuIndex] = useState(null);
+ const menuRef = useRef(null);
+
+ // Use ref to track if plugins have already been fetched
+ const hasFetchedPlugins = useRef(false);
+
+ // Use ref to track if addons visit has been tracked (prevent duplicates)
+ const hasTrackedAddonsVisit = useRef(false);
+
+ // Use ref to track last tracked plugin detail to prevent duplicate tracking
+ const lastTrackedPluginSlug = useRef(null);
+
+ // Use ref to store timestamps for tracking
+ const contentReceivedTimestamp = useRef(null);
+ const contentRenderTimestamp = useRef(null);
+
+ // Use ref to store is_cached flag from API response
+ const isCachedRef = useRef(false);
+
+ // Construct icon base URL with fallback logic
+ const assetBase =
+ assetsBaseUrl ||
+ (typeof window.marketplaceConfig !== 'undefined' && window.marketplaceConfig?.assetsBaseUrl) ||
+ '';
+ const iconBase = assetBase ? `${assetBase}assets/icons/` : '';
+
+ // Determine if a plugin slug is in the URL
+ const pluginFromQuery =
+ typeof window !== 'undefined'
+ ? new URLSearchParams(window.location.search).get('plugin')
+ : null;
+
+ // Get marketplace page URL
+ const getMarketplaceUrl = (slug) => {
+ const adminUrl =
+ typeof window !== 'undefined' && window.marketplaceConfig?.wpConfig?.adminUrl
+ ? window.marketplaceConfig.wpConfig.adminUrl
+ : '/wp-admin/';
+ return `${adminUrl}admin.php?page=onecom-marketplace&plugin=${slug}`;
+ };
+
+ // Handle "Manage" action
+ const handleManageAction = (plugin) => {
+ // Track the manage button click
+ if (typeof window !== 'undefined' && window.marketplaceConfig?.data_consent_status) {
+ trackButtonClick({
+ buttonName: 'Manage',
+ buttonAction: 'manage_product',
+ context: {
+ product_slug: plugin.slug,
+ product_name: plugin.name,
+ has_redirect_url: !!(plugin.redirectUrl && plugin.redirectUrl.trim() !== ''),
+ has_onboarding_url: !!(plugin.onboardingUrl && plugin.onboardingUrl.trim() !== ''),
+ },
+ });
+ }
- // Handle "Manage" action
- const handleManageAction = (plugin) => {
- // Track the manage button click
- if (typeof window !== "undefined" && window.marketplaceConfig?.data_consent_status) {
- trackButtonClick({
- buttonName: 'Manage',
- buttonAction: 'manage_product',
- context: {
- product_slug: plugin.slug,
- product_name: plugin.name,
- has_redirect_url: !!(plugin.redirectUrl && plugin.redirectUrl.trim() !== ''),
- has_onboarding_url: !!(plugin.onboardingUrl && plugin.onboardingUrl.trim() !== ''),
- }
- });
+ const redirectUrl = getPluginRedirectUrl(plugin, false);
+ navigateToPluginUrl(redirectUrl);
+ };
+
+ // Fetch plugins from API
+ useEffect(() => {
+ if (hasFetchedPlugins.current) return;
+ hasFetchedPlugins.current = true;
+
+ setCatalogLoading(true);
+ setCatalogError(null);
+
+ fetch(apiBaseUrl)
+ .then((res) => {
+ if (!res.ok) throw new Error(`HTTP error! status: ${res.status}`);
+ // Capture timestamp when content is received
+ contentReceivedTimestamp.current = Date.now();
+ return res.json();
+ })
+ .then((data) => {
+ // Check if response was cached
+ if (data.is_cached || data.cached) {
+ isCachedRef.current = true;
}
- const redirectUrl = getPluginRedirectUrl(plugin, false);
- navigateToPluginUrl(redirectUrl);
- };
-
- // Fetch plugins from API
- useEffect(() => {
- if (hasFetchedPlugins.current) return;
- hasFetchedPlugins.current = true;
-
- setCatalogLoading(true);
- setCatalogError(null);
-
- fetch(apiBaseUrl)
- .then((res) => {
- if (!res.ok) throw new Error(`HTTP error! status: ${res.status}`);
- // Capture timestamp when content is received
- contentReceivedTimestamp.current = Date.now();
- return res.json();
+ if (data.success && data.data && data.data.catalog) {
+ const allPlugins = data.data.catalog;
+ setPlugins(allPlugins);
+
+ // Check activation status of Rank Math plugins
+ const rankMathActivated =
+ allPlugins.find((p) => p.slug === 'seo-by-rank-math')?.activated === true;
+ const rankMathProActivated =
+ allPlugins.find((p) => p.slug === 'seo-by-rank-math-pro')?.activated === true;
+
+ // Filter featured plugins and get top 3
+ // Hide if it is already active on the site
+ const featured = allPlugins
+ .filter((plugin) => {
+ // Apply visibility rules
+ if (!shouldShowPlugin(plugin)) {
+ return false;
+ }
+
+ // Skip activated plugins
+ if (
+ plugin.activated === true ||
+ (plugin.featured !== true && plugin.featured !== 'true')
+ ) {
+ return false;
+ }
+
+ // Handle Rank Math plugin visibility
+ if (plugin.slug === 'seo-by-rank-math') {
+ // Show seo-by-rank-math only if BOTH plugins are NOT activated
+ return !rankMathActivated && !rankMathProActivated;
+ }
+
+ if (plugin.slug === 'seo-by-rank-math-pro') {
+ // Show seo-by-rank-math-pro only if seo-by-rank-math IS activated
+ return rankMathActivated;
+ }
+
+ return true;
})
- .then((data) => {
- // Check if response was cached
- if (data.is_cached || data.cached) {
- isCachedRef.current = true;
- }
-
- if (data.success && data.data && data.data.catalog) {
- const allPlugins = data.data.catalog;
- setPlugins(allPlugins);
-
- // Check activation status of Rank Math plugins
- const rankMathActivated = allPlugins.find(p => p.slug === "seo-by-rank-math")?.activated === true;
- const rankMathProActivated = allPlugins.find(p => p.slug === "seo-by-rank-math-pro")?.activated === true;
-
- // Filter featured plugins and get top 3
- // Hide if it is already active on the site
- const featured = allPlugins
- .filter(plugin => {
- // Apply visibility rules
- if (!shouldShowPlugin(plugin)) {
- return false;
- }
+ .sort((a, b) => {
+ const orderA = a.displayOrder !== undefined ? parseInt(a.displayOrder) : Infinity;
+ const orderB = b.displayOrder !== undefined ? parseInt(b.displayOrder) : Infinity;
+ return orderA - orderB;
+ })
+ .slice(0, 3);
- // Skip activated plugins
- if (plugin.activated === true || (plugin.featured !== true && plugin.featured !== "true")) {
- return false;
- }
+ setFeaturedPlugins(featured);
- // Handle Rank Math plugin visibility
- if (plugin.slug === "seo-by-rank-math") {
- // Show seo-by-rank-math only if BOTH plugins are NOT activated
- return !rankMathActivated && !rankMathProActivated;
- }
+ // Set UI i18n if available
+ const uiI18nData = data.data.uiI18n || data.data.ui_i18n;
+ if (uiI18nData) {
+ setUiI18n(uiI18nData);
+ }
- if (plugin.slug === "seo-by-rank-math-pro") {
- // Show seo-by-rank-math-pro only if seo-by-rank-math IS activated
- return rankMathActivated;
- }
+ // Fetch subscription status for special plugins (wp-rocket, rank-math-pro)
+ if (isOnecomBrand) {
+ const specialPlugins = allPlugins.filter((p) => isSpecialPlugin(p.slug));
- return true;
- })
- .sort((a, b) => {
- const orderA = a.displayOrder !== undefined ? parseInt(a.displayOrder) : Infinity;
- const orderB = b.displayOrder !== undefined ? parseInt(b.displayOrder) : Infinity;
- return orderA - orderB;
- })
- .slice(0, 3);
-
- setFeaturedPlugins(featured);
-
- // Set UI i18n if available
- const uiI18nData = data.data.uiI18n || data.data.ui_i18n;
- if (uiI18nData) {
- setUiI18n(uiI18nData);
- }
-
- // Fetch subscription status for special plugins (wp-rocket, rank-math-pro)
- if (isOnecomBrand) {
- const specialPlugins = allPlugins.filter(p => isSpecialPlugin(p.slug));
-
- // Fetch subscription status for each special plugin
- specialPlugins.forEach(plugin => {
- fetchSubscriptionStatus(plugin.slug);
- });
- }
- } else {
- // Track page view with content render failure
- trackPageView({
- category: 'addons_page',
- itemName: 'Addons Page',
- isContentRendered: false,
- });
- throw new Error("Invalid API response structure");
- }
- })
- .catch((err) => {
- console.error("Failed to fetch plugins:", err);
- // Track page view with content render failure
- trackPageView({
- category: 'addons_page',
- itemName: 'Addons Page',
- isContentRendered: false,
- });
- setCatalogError(err.message || "Failed to load plugins");
- })
- .finally(() => {
- setCatalogLoading(false);
+ // Fetch subscription status for each special plugin
+ specialPlugins.forEach((plugin) => {
+ fetchSubscriptionStatus(plugin.slug);
});
- }, [apiBaseUrl, setPlugins, setUiI18n, setCatalogError, setCatalogLoading, shouldShowPlugin]);
-
- // After plugins load, select plugin from query if present
- useEffect(() => {
- if (pluginFromQuery && plugins.length) {
- const match = plugins.find(p => p.slug === pluginFromQuery);
- if (match) setSelectedPlugin(match);
- } else if (!pluginFromQuery) {
- setSelectedPlugin(null);
- }
- }, [pluginFromQuery, plugins]);
-
- // Listen for browser back/forward navigation
- useEffect(() => {
- const handlePopState = () => {
- const currentPluginParam = new URLSearchParams(window.location.search).get("plugin");
- if (!currentPluginParam) {
- setSelectedPlugin(null);
- } else if (plugins.length) {
- const match = plugins.find(p => p.slug === currentPluginParam);
- if (match) setSelectedPlugin(match);
- }
- };
-
- window.addEventListener('popstate', handlePopState);
- return () => window.removeEventListener('popstate', handlePopState);
- }, [plugins]);
-
- useEffect(() => {
- const handleClickOutside = (event) => {
- if (menuRef.current && !menuRef.current.contains(event.target)) {
- setOpenMenuIndex(null);
- }
- };
-
- if (openMenuIndex !== null) {
- document.addEventListener("mousedown", handleClickOutside);
+ }
} else {
- document.removeEventListener("mousedown", handleClickOutside);
- }
-
- return () => {
- document.removeEventListener("mousedown", handleClickOutside);
- };
- }, [openMenuIndex]);
-
- // Track addons page visit when plugins are loaded and no plugin detail is shown
- useEffect(() => {
- if (!catalogLoading && !catalogError && plugins.length > 0 && !pluginFromQuery && !hasTrackedAddonsVisit.current) {
- // Capture timestamp when content is rendered to the page
- contentRenderTimestamp.current = Date.now();
-
- // Check if this is a reload caused by plugin activation
- const skipPageView = sessionStorage.getItem('mp_skip_page_view');
- if (skipPageView === 'true') {
- // Clear the flag and skip tracking
- sessionStorage.removeItem('mp_skip_page_view');
- } else {
- // Normal page load, track the visit
- trackPageView({
- category: 'addons_page',
- itemName: 'Addons Page',
- contentReceivedAt: contentReceivedTimestamp.current,
- contentRenderedAt: contentRenderTimestamp.current,
- isCached: isCachedRef.current,
- });
- }
-
- hasTrackedAddonsVisit.current = true;
+ // Track page view with content render failure
+ trackPageView({
+ category: 'addons_page',
+ itemName: 'Addons Page',
+ isContentRendered: false,
+ });
+ throw new Error('Invalid API response structure');
}
- }, [catalogLoading, catalogError, plugins.length, pluginFromQuery]);
-
-
- // Determine which detail component to use
- const shouldUseRankMathDetail = (plugin) => {
- return plugin && plugin.slug === 'seo-by-rank-math';
+ })
+ .catch((err) => {
+ console.error('Failed to fetch plugins:', err);
+ // Track page view with content render failure
+ trackPageView({
+ category: 'addons_page',
+ itemName: 'Addons Page',
+ isContentRendered: false,
+ });
+ setCatalogError(err.message || 'Failed to load plugins');
+ })
+ .finally(() => {
+ setCatalogLoading(false);
+ });
+ }, [
+ apiBaseUrl,
+ setPlugins,
+ setUiI18n,
+ setCatalogError,
+ setCatalogLoading,
+ shouldShowPlugin,
+ fetchSubscriptionStatus,
+ isOnecomBrand,
+ isSpecialPlugin,
+ ]);
+
+ // After plugins load, select plugin from query if present
+ useEffect(() => {
+ if (pluginFromQuery && plugins.length) {
+ const match = plugins.find((p) => p.slug === pluginFromQuery);
+ if (match) setSelectedPlugin(match);
+ } else if (!pluginFromQuery) {
+ setSelectedPlugin(null);
+ }
+ }, [pluginFromQuery, plugins]);
+
+ // Listen for browser back/forward navigation
+ useEffect(() => {
+ const handlePopState = () => {
+ const currentPluginParam = new URLSearchParams(window.location.search).get('plugin');
+ if (!currentPluginParam) {
+ setSelectedPlugin(null);
+ } else if (plugins.length) {
+ const match = plugins.find((p) => p.slug === currentPluginParam);
+ if (match) setSelectedPlugin(match);
+ }
};
+ window.addEventListener('popstate', handlePopState);
+ return () => window.removeEventListener('popstate', handlePopState);
+ }, [plugins]);
+ useEffect(() => {
+ const handleClickOutside = (event) => {
+ if (menuRef.current && !menuRef.current.contains(event.target)) {
+ setOpenMenuIndex(null);
+ }
+ };
- // Show loading state
- if (catalogLoading) {
- return (
-
-
-
+ if (openMenuIndex !== null) {
+ document.addEventListener('mousedown', handleClickOutside);
+ } else {
+ document.removeEventListener('mousedown', handleClickOutside);
+ }
-
-
- {[0, 1, 2].map((index) => (
-
- ))}
-
+ return () => {
+ document.removeEventListener('mousedown', handleClickOutside);
+ };
+ }, [openMenuIndex]);
+
+ // Track addons page visit when plugins are loaded and no plugin detail is shown
+ useEffect(() => {
+ if (
+ !catalogLoading &&
+ !catalogError &&
+ plugins.length > 0 &&
+ !pluginFromQuery &&
+ !hasTrackedAddonsVisit.current
+ ) {
+ // Capture timestamp when content is rendered to the page
+ contentRenderTimestamp.current = Date.now();
+
+ // Check if this is a reload caused by plugin activation
+ const skipPageView = sessionStorage.getItem('mp_skip_page_view');
+ if (skipPageView === 'true') {
+ // Clear the flag and skip tracking
+ sessionStorage.removeItem('mp_skip_page_view');
+ } else {
+ // Normal page load, track the visit
+ trackPageView({
+ category: 'addons_page',
+ itemName: 'Addons Page',
+ contentReceivedAt: contentReceivedTimestamp.current,
+ contentRenderedAt: contentRenderTimestamp.current,
+ isCached: isCachedRef.current,
+ });
+ }
+
+ hasTrackedAddonsVisit.current = true;
+ }
+ }, [catalogLoading, catalogError, plugins.length, pluginFromQuery]);
-
-
-
-
-
-
-
-
-
-
-
-
- {[0, 1].map((index) => (
-
-
-
-
-
-
-
-
-
- ))}
-
-
-
+ // Determine which detail component to use
+ const shouldUseRankMathDetail = (plugin) => {
+ return plugin && plugin.slug === 'seo-by-rank-math';
+ };
+ // Show loading state
+ if (catalogLoading) {
+ return (
+
+
+
+
+
+
+ {[0, 1, 2].map((index) => (
+
- );
- }
+ ))}
+
- // Show error state
- if (catalogError) {
- return (
-
- );
- }
- // Show WP version error state
- if (!isWpVersionSupported('6.2')) {
- return (
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {[0, 1].map((index) => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ))}
+
+
+
+
);
}
+ // Show error state
+ if (catalogError) {
+ return
;
+ }
+ // Show WP version error state
+ if (!isWpVersionSupported('6.2')) {
+ return
;
+ }
- // Filter plugins for the table: installed OR special plugins with subscription
- const installedPlugins = plugins.filter(p => p.installed || shouldShowProvision(p));
-
- return (
-
-
-
{uiI18n?.headings?.myProducts}
-
{uiI18n?.text?.myProducts}
+ // Filter plugins for the table: installed OR special plugins with subscription
+ const installedPlugins = plugins.filter((p) => p.installed || shouldShowProvision(p));
+
+ return (
+
+
+
{uiI18n?.headings?.myProducts}
+
{uiI18n?.text?.myProducts}
+
+ {featuredPlugins.length > 0 && (
+
+
+
+
+ {uiI18n?.headings?.recommendedProducts}
+
+
{uiI18n?.text?.recommendedText}
+
+
{
+ // Navigate to the main marketplace page
+ const adminUrl =
+ typeof window !== 'undefined' && window.marketplaceConfig?.wpConfig?.adminUrl
+ ? window.marketplaceConfig.wpConfig.adminUrl
+ : '/wp-admin/';
+ window.location.href = `${adminUrl}admin.php?page=onecom-marketplace`;
+ }}
+ >
+ {uiI18n.seeAllProducts}
+
+
- {featuredPlugins.length > 0 && (
-
-
-
-
{uiI18n?.headings?.recommendedProducts}
-
{uiI18n?.text?.recommendedText}
-
-
{
- // Navigate to the main marketplace page
- const adminUrl = typeof window !== "undefined" && window.marketplaceConfig?.wpConfig?.adminUrl
- ? window.marketplaceConfig.wpConfig.adminUrl
- : '/wp-admin/';
- window.location.href = `${adminUrl}admin.php?page=onecom-marketplace`;
- }}
- >
- {uiI18n.seeAllProducts}
-
-
-
-
+
+ {featuredPlugins.map((plugin) => {
+ const isProvisionable = shouldShowProvision(plugin);
+ const freeLabel =
+ plugin.i18n.freeTrialPeriod && plugin.i18n.freeTrialPeriod.trim() !== ''
+ ? plugin.i18n.freeTrialPeriod
+ : uiI18n?.labels?.free || 'Free';
+ const price = formatPluginPrice(plugin, freeLabel, uiI18n);
+ const fullPriceAmount = getFullPrice(plugin);
+ const rebatePriceAmount = getRebatePrice(plugin);
+
+ return (
- {featuredPlugins.map((plugin) => {
- const isProvisionable = shouldShowProvision(plugin);
- const freeLabel = (plugin.i18n.freeTrialPeriod && plugin.i18n.freeTrialPeriod.trim() !== '')
- ? plugin.i18n.freeTrialPeriod
- : (uiI18n?.labels?.free || 'Free');
- const price = formatPluginPrice(plugin, freeLabel, uiI18n);
- const fullPriceAmount = getFullPrice(plugin);
- const rebatePriceAmount = getRebatePrice(plugin);
-
- return (
-
-
-
-
-
-
{plugin.name}
-
- {plugin.i18n.listingDescription || plugin.i18n.subtitle}
-
-
- <>
- {plugin.licenseType === "premium" && (rebatePriceAmount > 0)
- ? (rebatePriceAmount !== null ? rebatePriceAmount : fullPriceAmount)
- : price}
- {plugin.licenseType !== "free" &&
- price &&
- price !== freeLabel &&
- price !== (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal') &&
- /{uiI18n?.labels?.timeMonth} }
- >
-
-
-
-
- );
- })}
+ key={plugin.slug}
+ className="gv-card gv-gap-md gv-content-container gv-p-lg gv-grid gv-grid-cols-12 gv-radius"
+ >
+
+
-
- )}
-
- {installedPlugins.length > 0 && (
-
-
-
-
-
-
- {uiI18n?.labels?.name}
- {uiI18n?.labels?.type}
- {uiI18n?.labels?.status}
-
-
-
-
-
- {installedPlugins.map((plugin, index) => {
- const isProvisionable = shouldShowProvision(plugin);
-
- const handleProvisionClick = (e) => {
- e.preventDefault();
-
- // Dispatch custom event for provisioning
- const event = new CustomEvent("onecom-plugin-provision", {
- detail: {
- slug: plugin.slug,
- },
- bubbles: true,
- cancelable: true,
- composed: true
- });
- document.dispatchEvent(event);
- };
-
- return (
-
-
-
-
- {plugin.name}
- {plugin.licenseType === 'free' ? uiI18n?.labels?.freePlugin : uiI18n?.labels?.premiumPlugin}
-
-
-
- {plugin.activated ? (uiI18n?.labels?.active || 'Active') : (isProvisionable ? (uiI18n?.labels?.notInstalled || 'Not Installed') : (uiI18n?.labels?.notActive || 'Not Active'))}
-
-
-
- {isProvisionable ? (
-
- {uiI18n?.installAndActivate || 'Install and activate'}
-
- ) : !plugin.activated && (
-
+ {plugin.name}
+
+ {plugin.i18n.listingDescription || plugin.i18n.subtitle}
+
+
+ <>
+ {plugin.licenseType === 'premium' && rebatePriceAmount > 0
+ ? rebatePriceAmount !== null
+ ? rebatePriceAmount
+ : fullPriceAmount
+ : price}
+ {plugin.licenseType !== 'free' &&
+ price &&
+ price !== freeLabel &&
+ price !== (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal') && (
+ /{uiI18n?.labels?.timeMonth}
+ )}
+ >
+
+
+
+
+ );
+ })}
+
+
+ )}
+
+ {installedPlugins.length > 0 && (
+
+
+
+
+
+
+ {uiI18n?.labels?.name}
+ {uiI18n?.labels?.type}
+ {uiI18n?.labels?.status}
+
+
+
+
+
+ {installedPlugins.map((plugin, index) => {
+ const isProvisionable = shouldShowProvision(plugin);
+
+ const handleProvisionClick = (e) => {
+ e.preventDefault();
+
+ // Dispatch custom event for provisioning
+ const event = new CustomEvent('onecom-plugin-provision', {
+ detail: {
+ slug: plugin.slug,
+ },
+ bubbles: true,
+ cancelable: true,
+ composed: true,
+ });
+ document.dispatchEvent(event);
+ };
+
+ return (
+
+
+
+
+ {plugin.name}
+
+ {plugin.licenseType === 'free'
+ ? uiI18n?.labels?.freePlugin
+ : uiI18n?.labels?.premiumPlugin}
+
+
+
+
+
+ {' '}
+ {plugin.activated
+ ? uiI18n?.labels?.active || 'Active'
+ : isProvisionable
+ ? uiI18n?.labels?.notInstalled || 'Not Installed'
+ : uiI18n?.labels?.notActive || 'Not Active'}
+
+
+
+
+ {isProvisionable ? (
+ {
+ e.preventDefault();
+ handleProvisionClick(e);
+ }}
+ >
+ {uiI18n?.installAndActivate || 'Install and activate'}
+
+ ) : (
+ !plugin.activated && (
+ {
e.preventDefault();
handlePluginAction('activate', plugin, 'addons');
}}
>
{uiI18n?.activateButton || 'Activate'}
-
- )}
-
-
- {(plugin.activated || (plugin.installed && !isProvisionable)) && (
-
-
setOpenMenuIndex(openMenuIndex === index ? null : index)}
- >
-
-
-
-
-
-
setOpenMenuIndex(null)}
- >
-
-
-
- {plugin.activated && (
+
+ )
+ )}
+
+
+ {(plugin.activated || (plugin.installed && !isProvisionable)) && (
+
+
+ setOpenMenuIndex(openMenuIndex === index ? null : index)
+ }
+ >
+
+
+
+
+
setOpenMenuIndex(null)}
+ >
+
+
+
-
+
+
- )}
-
-
- );
- })}
-
-
-
-
- )}
-
-
-
-
- {/* Render detail overlay when plugin is selected */}
- {selectedPlugin && !pluginFromQuery && (() => {
- const DetailComponent = shouldUseRankMathDetail(selectedPlugin) ? ProductDetailRankMath : ProductDetail;
- return (
- setSelectedPlugin(null)}
- loading={catalogLoading}
- />
- );
- })()}
-
- );
+
+ )}
+
+
+ );
+ })}
+
+
+
+
+ )}
+
+
+
+
+ {/* Render detail overlay when plugin is selected */}
+ {selectedPlugin &&
+ !pluginFromQuery &&
+ (() => {
+ const DetailComponent = shouldUseRankMathDetail(selectedPlugin)
+ ? ProductDetailRankMath
+ : ProductDetail;
+ return (
+
setSelectedPlugin(null)}
+ loading={catalogLoading}
+ />
+ );
+ })()}
+
+ );
}
diff --git a/frontend/src/components/ErrorState.jsx b/frontend/src/components/ErrorState.jsx
index 1da04bb..e6fc129 100644
--- a/frontend/src/components/ErrorState.jsx
+++ b/frontend/src/components/ErrorState.jsx
@@ -1,31 +1,34 @@
-import React from "react";
-import { useMarketplace } from "../context/MarketplaceContext";
-import { useTranslation } from "react-i18next";
+import React from 'react';
+import { useMarketplace } from '../context/MarketplaceContext';
+import { useTranslation } from 'react-i18next';
export default function ErrorState() {
- const { assetsBaseUrl } = useMarketplace();
- const { t } = useTranslation();
+ const { assetsBaseUrl } = useMarketplace();
+ const { t } = useTranslation();
- const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== "undefined" && window.marketplaceConfig?.assetsBaseUrl) || "";
- const iconBase = assetBase ? `${assetBase}assets/icons/` : "";
+ const assetBase =
+ assetsBaseUrl ||
+ (typeof window.marketplaceConfig !== 'undefined' && window.marketplaceConfig?.assetsBaseUrl) ||
+ '';
+ const iconBase = assetBase ? `${assetBase}assets/icons/` : '';
- const handleRefresh = () => {
- window.location.reload();
- };
+ const handleRefresh = () => {
+ window.location.reload();
+ };
- return (
-
-
-
{t('ui.notifications.couldNotLoad')}
-
{t('ui.notifications.refreshPage')}
-
- {t('ui.button.refreshPage')}
-
-
-
- );
+ return (
+
+
+
{t('ui.notifications.couldNotLoad')}
+
{t('ui.notifications.refreshPage')}
+
+ {t('ui.button.refreshPage')}
+
+
+
+ );
}
diff --git a/frontend/src/components/ErrorToast.jsx b/frontend/src/components/ErrorToast.jsx
index 4cba03b..a8409df 100644
--- a/frontend/src/components/ErrorToast.jsx
+++ b/frontend/src/components/ErrorToast.jsx
@@ -1,70 +1,79 @@
-import React, { useEffect } from "react";
-import { useMarketplace } from "../context/MarketplaceContext";
+import React, { useEffect } from 'react';
+import { useMarketplace } from '../context/MarketplaceContext';
export default function ErrorToast({ plugin: propPlugin }) {
- const {
- assetsBaseUrl,
- errorState,
- setErrorState,
- uiI18n,
- plugins
- } = useMarketplace();
+ const { assetsBaseUrl, errorState, setErrorState, uiI18n, plugins } = useMarketplace();
- const plugin = propPlugin || plugins.find(p => p.slug === errorState.pluginSlug);
- const isVisible = errorState && errorState.visible && errorState.pluginSlug === plugin?.slug;
+ const plugin = propPlugin || plugins.find((p) => p.slug === errorState.pluginSlug);
+ const isVisible = errorState && errorState.visible && errorState.pluginSlug === plugin?.slug;
- useEffect(() => {
- if (isVisible) {
- const timer = setTimeout(() => {
- handleClose();
- }, 5000);
+ const handleClose = React.useCallback(() => {
+ setErrorState({ visible: false, type: null, pluginSlug: null });
+ }, [setErrorState]);
- return () => clearTimeout(timer);
- }
- }, [isVisible]);
+ useEffect(() => {
+ if (isVisible) {
+ const timer = setTimeout(() => {
+ handleClose();
+ }, 5000);
- if (!isVisible) {
- return null;
+ return () => clearTimeout(timer);
}
+ }, [isVisible, handleClose]);
- const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== "undefined" && window.marketplaceConfig?.assetsBaseUrl) || "";
- const iconBase = assetBase ? `${assetBase}assets/` : "";
+ const isActivateError = errorState.type === 'activate';
+ const isDeactivateError = errorState.type === 'deactivate';
+ const isInstallError = errorState.type === 'install';
+ const isDeleteError = errorState.type === 'delete';
- const handleClose = () => {
- setErrorState({ visible: false, type: null, pluginSlug: null });
- };
+ // Helper function to replace {0} with plugin name
+ const formatMessage = (message, pluginName) => {
+ if (!message) return '';
+ return message.replace('{0}', pluginName || '');
+ };
- const isActivateError = errorState.type === 'activate';
- const isDeactivateError = errorState.type === 'deactivate';
- const isInstallError = errorState.type === 'install';
- const isDeleteError = errorState.type === 'delete';
+ const pluginName = plugin?.name || '';
- // Helper function to replace {0} with plugin name
- const formatMessage = (message, pluginName) => {
- if (!message) return '';
- return message.replace('{0}', pluginName || '');
- };
+ const assetBase =
+ assetsBaseUrl ||
+ (typeof window.marketplaceConfig !== 'undefined' && window.marketplaceConfig?.assetsBaseUrl) ||
+ '';
+ const iconBase = assetBase ? `${assetBase}assets/` : '';
- const pluginName = plugin?.name || '';
-
- return (
-
-
-
-
- {isActivateError && formatMessage(uiI18n?.notifications?.pluginActivationFailed || "Couldn't activate plugin.", pluginName)}
- {isDeactivateError && formatMessage(uiI18n?.notifications?.pluginDeactivationFailed || "Couldn't deactivate plugin.", pluginName)}
- {isInstallError && formatMessage(uiI18n?.notifications?.pluginInstallationFailed || "Couldn't install plugin.", pluginName)}
- {isDeleteError && formatMessage(uiI18n?.notifications?.pluginDeletionFailed || "Couldn't delete plugin.", pluginName)}
-
-
-
-
-
+ return (
+
+
+
+
+ {isActivateError &&
+ formatMessage(
+ uiI18n?.notifications?.pluginActivationFailed || "Couldn't activate plugin.",
+ pluginName
+ )}
+ {isDeactivateError &&
+ formatMessage(
+ uiI18n?.notifications?.pluginDeactivationFailed || "Couldn't deactivate plugin.",
+ pluginName
+ )}
+ {isInstallError &&
+ formatMessage(
+ uiI18n?.notifications?.pluginInstallationFailed || "Couldn't install plugin.",
+ pluginName
+ )}
+ {isDeleteError &&
+ formatMessage(
+ uiI18n?.notifications?.pluginDeletionFailed || "Couldn't delete plugin.",
+ pluginName
+ )}
- );
- }
+
+
+
+
+
+ );
+}
diff --git a/frontend/src/components/FeaturedCarousel.jsx b/frontend/src/components/FeaturedCarousel.jsx
index 8274b7a..8cd7919 100644
--- a/frontend/src/components/FeaturedCarousel.jsx
+++ b/frontend/src/components/FeaturedCarousel.jsx
@@ -1,383 +1,436 @@
-import React, { useState, useEffect } from "react";
-import { useMarketplace } from "../context/MarketplaceContext";
-import { formatPluginPrice } from "../utils/priceFormatter";
+import React, { useState, useEffect } from 'react';
+import { useMarketplace } from '../context/MarketplaceContext';
+import { formatPluginPrice } from '../utils/priceFormatter';
export default function FeaturedCarousel({ loading = false }) {
- const { plugins, assetsBaseUrl,uiI18n } = useMarketplace();
- const [currentIndex, setCurrentIndex] = useState(0);
- const [slidesPerView, setSlidesPerView] = useState(2);
-
- // Get active plugin slugs from WordPress config
- const activePlugins = typeof window !== "undefined" && window.marketplaceConfig?.activePlugins
- ? window.marketplaceConfig.activePlugins
- : [];
-
- // Get active theme author from WordPress config
- const activeThemeAuthor = typeof window !== "undefined" && window.marketplaceConfig?.activeThemeAuthor
- ? window.marketplaceConfig.activeThemeAuthor
- : "";
-
- useEffect(() => {
- const updateSlidesPerView = () => {
- if (window.innerWidth > 1024) {
- setSlidesPerView(2); // Desktop: show 2 slides
- } else if (window.innerWidth >= 600) {
- setSlidesPerView(1); // Tablet: show 2 slides
- } else {
- setSlidesPerView(1); // Mobile: show 1 slide
- }
- };
-
- updateSlidesPerView();
- window.addEventListener('resize', updateSlidesPerView);
- return () => window.removeEventListener('resize', updateSlidesPerView);
- }, []);
-
- // Helper function to check if a plugin should be visible based on its rules
- const shouldShowPlugin = (plugin) => {
- // If plugin has no rules, show it by default
- if (!plugin.rules) {
- return true;
- }
-
- // Check mustHavePlugins rule
- if (plugin.rules.mustHavePlugins && Array.isArray(plugin.rules.mustHavePlugins)) {
- // If the array is empty, no requirements exist, so show the plugin
- if (plugin.rules.mustHavePlugins.length === 0) {
- return true;
- }
-
- // Plugin should be visible if ANY of the required plugins is active
- const hasRequiredPlugin = plugin.rules.mustHavePlugins.some(requiredSlug =>
- activePlugins.includes(requiredSlug)
- );
-
- // If mustHavePlugins rule exists but no required plugin is active, hide the plugin
- if (!hasRequiredPlugin) {
- return false;
- }
- }
-
- // Check mustHaveThemesByAuthor rule
- if (plugin.rules.mustHaveThemesByAuthor && typeof plugin.rules.mustHaveThemesByAuthor === 'string') {
- // Plugin should be visible only if the active theme author matches the required author
- const requiredAuthor = plugin.rules.mustHaveThemesByAuthor;
- if (activeThemeAuthor !== requiredAuthor) {
- return false;
- }
- }
-
- // Add support for other rule types here in the future
- // For now, if all rules pass (or don't exist), show the plugin
- return true;
+ const { plugins, assetsBaseUrl, uiI18n } = useMarketplace();
+ const [currentIndex, setCurrentIndex] = useState(0);
+ const [slidesPerView, setSlidesPerView] = useState(2);
+
+ // Get active plugin slugs from WordPress config
+ const activePlugins =
+ typeof window !== 'undefined' && window.marketplaceConfig?.activePlugins
+ ? window.marketplaceConfig.activePlugins
+ : [];
+
+ // Get active theme author from WordPress config
+ const activeThemeAuthor =
+ typeof window !== 'undefined' && window.marketplaceConfig?.activeThemeAuthor
+ ? window.marketplaceConfig.activeThemeAuthor
+ : '';
+
+ useEffect(() => {
+ const updateSlidesPerView = () => {
+ if (window.innerWidth > 1024) {
+ setSlidesPerView(2); // Desktop: show 2 slides
+ } else if (window.innerWidth >= 600) {
+ setSlidesPerView(1); // Tablet: show 2 slides
+ } else {
+ setSlidesPerView(1); // Mobile: show 1 slide
+ }
};
- // Check activation status of Rank Math plugins
- const rankMathActivated = plugins.find(p => p.slug === "seo-by-rank-math")?.activated === true;
- const rankMathProActivated = plugins.find(p => p.slug === "seo-by-rank-math-pro")?.activated === true;
-
- // Filter featured plugins that are not active, pass rules check, and handle Rank Math logic
- const featuredPlugins = plugins.filter(plugin => {
- // Skip activated plugins
- if (plugin.activated === true || plugin.featured !== true) {
- return false;
- }
-
- // Handle Rank Math plugin visibility
- if (plugin.slug === "seo-by-rank-math") {
- // Show seo-by-rank-math only if BOTH plugins are NOT activated
- return !rankMathActivated && !rankMathProActivated && shouldShowPlugin(plugin);
- }
-
- if (plugin.slug === "seo-by-rank-math-pro") {
- // Show seo-by-rank-math-pro only if seo-by-rank-math IS activated
- return rankMathActivated && shouldShowPlugin(plugin);
- }
-
- // For all other plugins, apply normal filtering
- return shouldShowPlugin(plugin);
- }).sort((a, b) => {
- const orderA = a.displayOrder !== undefined ? parseInt(a.displayOrder) : Infinity;
- const orderB = b.displayOrder !== undefined ? parseInt(b.displayOrder) : Infinity;
- return orderA - orderB;
- });
-
- const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== "undefined" && window.marketplaceConfig?.assetsBaseUrl) || "";
- const iconBase = assetBase ? `${assetBase}assets/icons/` : "";
+ updateSlidesPerView();
+ window.addEventListener('resize', updateSlidesPerView);
+ return () => window.removeEventListener('resize', updateSlidesPerView);
+ }, []);
- const totalSlides = featuredPlugins.length;
- const maxIndex = Math.max(0, totalSlides - slidesPerView);
-
- const goToPrevious = () => {
- if (currentIndex > 0) {
- setCurrentIndex(prev => prev - 1);
- }
- };
+ // Helper function to check if a plugin should be visible based on its rules
+ const shouldShowPlugin = (plugin) => {
+ // If plugin has no rules, show it by default
+ if (!plugin.rules) {
+ return true;
+ }
- const goToNext = () => {
- if (currentIndex < maxIndex) {
- setCurrentIndex(prev => prev + 1);
- }
- };
+ // Check mustHavePlugins rule
+ if (plugin.rules.mustHavePlugins && Array.isArray(plugin.rules.mustHavePlugins)) {
+ // If the array is empty, no requirements exist, so show the plugin
+ if (plugin.rules.mustHavePlugins.length === 0) {
+ return true;
+ }
- // Show skeleton loaders while loading
- if (loading) {
- return (
-
-
+ // Plugin should be visible if ANY of the required plugins is active
+ const hasRequiredPlugin = plugin.rules.mustHavePlugins.some((requiredSlug) =>
+ activePlugins.includes(requiredSlug)
+ );
-
-
- {/* Generate 2 skeleton carousel slides */}
- {[...Array(slidesPerView)].map((_, index) => (
-
- ))}
-
-
-
- );
+ // If mustHavePlugins rule exists but no required plugin is active, hide the plugin
+ if (!hasRequiredPlugin) {
+ return false;
+ }
}
- // If no featured plugins, don't render anything
- if (!featuredPlugins || featuredPlugins.length === 0) {
- return null;
+ // Check mustHaveThemesByAuthor rule
+ if (
+ plugin.rules.mustHaveThemesByAuthor &&
+ typeof plugin.rules.mustHaveThemesByAuthor === 'string'
+ ) {
+ // Plugin should be visible only if the active theme author matches the required author
+ const requiredAuthor = plugin.rules.mustHaveThemesByAuthor;
+ if (activeThemeAuthor !== requiredAuthor) {
+ return false;
+ }
}
- const goToSlide = (index) => {
- setCurrentIndex(Math.min(index, maxIndex));
- };
+ // Add support for other rule types here in the future
+ // For now, if all rules pass (or don't exist), show the plugin
+ return true;
+ };
+
+ // Check activation status of Rank Math plugins
+ const rankMathActivated = plugins.find((p) => p.slug === 'seo-by-rank-math')?.activated === true;
+ const rankMathProActivated =
+ plugins.find((p) => p.slug === 'seo-by-rank-math-pro')?.activated === true;
+
+ // Filter featured plugins that are not active, pass rules check, and handle Rank Math logic
+ const featuredPlugins = plugins
+ .filter((plugin) => {
+ // Skip activated plugins
+ if (plugin.activated === true || plugin.featured !== true) {
+ return false;
+ }
+
+ // Handle Rank Math plugin visibility
+ if (plugin.slug === 'seo-by-rank-math') {
+ // Show seo-by-rank-math only if BOTH plugins are NOT activated
+ return !rankMathActivated && !rankMathProActivated && shouldShowPlugin(plugin);
+ }
+
+ if (plugin.slug === 'seo-by-rank-math-pro') {
+ // Show seo-by-rank-math-pro only if seo-by-rank-math IS activated
+ return rankMathActivated && shouldShowPlugin(plugin);
+ }
+
+ // For all other plugins, apply normal filtering
+ return shouldShowPlugin(plugin);
+ })
+ .sort((a, b) => {
+ const orderA = a.displayOrder !== undefined ? parseInt(a.displayOrder) : Infinity;
+ const orderB = b.displayOrder !== undefined ? parseInt(b.displayOrder) : Infinity;
+ return orderA - orderB;
+ });
- // Navigate to plugin detail page
- const handleReadMore = (plugin) => {
- if (typeof window !== "undefined") {
- const url = new URL(window.location.href);
- url.searchParams.set("plugin", plugin.slug);
- window.history.pushState({}, "", url.toString());
+ const assetBase =
+ assetsBaseUrl ||
+ (typeof window.marketplaceConfig !== 'undefined' && window.marketplaceConfig?.assetsBaseUrl) ||
+ '';
+ const iconBase = assetBase ? `${assetBase}assets/icons/` : '';
- // Dispatch custom event to notify app of navigation
- window.dispatchEvent(new PopStateEvent('popstate'));
- }
- };
+ const totalSlides = featuredPlugins.length;
+ const maxIndex = Math.max(0, totalSlides - slidesPerView);
+
+ const goToPrevious = () => {
+ if (currentIndex > 0) {
+ setCurrentIndex((prev) => prev - 1);
+ }
+ };
+ const goToNext = () => {
+ if (currentIndex < maxIndex) {
+ setCurrentIndex((prev) => prev + 1);
+ }
+ };
+
+ // Show skeleton loaders while loading
+ if (loading) {
return (
-
-
-
{uiI18n?.headings?.recommendedHeading}
-
-
-
-
- {featuredPlugins.map((plugin, index) => {
- const title = plugin?.i18n?.featuredTitle;
- const description = plugin?.i18n?.featuredContent;
- const freeLabel = (plugin.i18n.freeTrialPeriod && plugin.i18n.freeTrialPeriod.trim() !== '')
- ? plugin.i18n.freeTrialPeriod
- : (uiI18n?.labels?.free || 'Free');
- const price = formatPluginPrice(plugin, freeLabel, uiI18n);
- const mainImage = plugin.bannerUrl || plugin.image || plugin.thumbnail || 'https://gravity.group.one/guide-images/product-image@2x.png';
-
- // Extract category name from plugin categories array
- const categoryObj = Array.isArray(plugin.categories) && plugin.categories.length
- ? (typeof plugin.categories[0] === 'object' ? plugin.categories[0] : { slug: String(plugin.categories[0]), title: String(plugin.categories[0]), description: null })
- : { slug: "Others", title: "Others", description: null };
- const categoryName = categoryObj.title || categoryObj.slug || "Others";
-
- return (
-
- );
- })}
-
-
-
- {/* Navigation Controls: Arrows + Dots */}
- {totalSlides > slidesPerView && (
-
+
+
+
+
+ {/* Generate 2 skeleton carousel slides */}
+ {[...Array(slidesPerView)].map((_, index) => (
+
+
+
+ ))}
+
+
+
);
+ }
+
+ // If no featured plugins, don't render anything
+ if (!featuredPlugins || featuredPlugins.length === 0) {
+ return null;
+ }
+
+ const goToSlide = (index) => {
+ setCurrentIndex(Math.min(index, maxIndex));
+ };
+
+ // Navigate to plugin detail page
+ const handleReadMore = (plugin) => {
+ if (typeof window !== 'undefined') {
+ const url = new URL(window.location.href);
+ url.searchParams.set('plugin', plugin.slug);
+ window.history.pushState({}, '', url.toString());
+
+ // Dispatch custom event to notify app of navigation
+ window.dispatchEvent(new PopStateEvent('popstate'));
+ }
+ };
+
+ return (
+
+
+
+ {uiI18n?.headings?.recommendedHeading}
+
+
+
+
+
+ {featuredPlugins.map((plugin, index) => {
+ const title = plugin?.i18n?.featuredTitle;
+ const description = plugin?.i18n?.featuredContent;
+ const freeLabel =
+ plugin.i18n.freeTrialPeriod && plugin.i18n.freeTrialPeriod.trim() !== ''
+ ? plugin.i18n.freeTrialPeriod
+ : uiI18n?.labels?.free || 'Free';
+ const price = formatPluginPrice(plugin, freeLabel, uiI18n);
+ const mainImage =
+ plugin.bannerUrl ||
+ plugin.image ||
+ plugin.thumbnail ||
+ 'https://gravity.group.one/guide-images/product-image@2x.png';
+
+ // Extract category name from plugin categories array
+ const categoryObj =
+ Array.isArray(plugin.categories) && plugin.categories.length
+ ? typeof plugin.categories[0] === 'object'
+ ? plugin.categories[0]
+ : {
+ slug: String(plugin.categories[0]),
+ title: String(plugin.categories[0]),
+ description: null,
+ }
+ : { slug: 'Others', title: 'Others', description: null };
+ const categoryName = categoryObj.title || categoryObj.slug || 'Others';
+
+ return (
+
+ );
+ })}
+
+
+
+ {/* Navigation Controls: Arrows + Dots */}
+ {totalSlides > slidesPerView && (
+
+
+
+
+
+
+ {Array.from({ length: maxIndex + 1 }).map((_, index) => (
+ goToSlide(index)}
+ className="gv-carousel-dot"
+ style={{
+ width: '8px',
+ height: '8px',
+ borderRadius: '50%',
+ border: 'none',
+ background: currentIndex === index ? '#0066CC' : '#D0D0D0',
+ cursor: 'pointer',
+ padding: 0,
+ }}
+ aria-label={`Go to slide ${index + 1}`}
+ />
+ ))}
+
+
+
= maxIndex}
+ className="gv-carousel-nav gv-carousel-nav-next"
+ style={{
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ cursor: currentIndex >= maxIndex ? 'not-allowed' : 'pointer',
+ opacity: currentIndex >= maxIndex ? 0.5 : 1,
+ }}
+ aria-label="Next slide"
+ >
+
+
+
+ )}
+
+ );
}
diff --git a/frontend/src/components/LoadingOverlay.jsx b/frontend/src/components/LoadingOverlay.jsx
index a87d7f7..9f10427 100644
--- a/frontend/src/components/LoadingOverlay.jsx
+++ b/frontend/src/components/LoadingOverlay.jsx
@@ -1,23 +1,26 @@
-import React from "react";
-import { useMarketplace } from "../context/MarketplaceContext";
+import React from 'react';
+import { useMarketplace } from '../context/MarketplaceContext';
export default function LoadingOverlay() {
- const { loadingAction, loadingPlugin, assetsBaseUrl } = useMarketplace();
+ const { loadingAction, loadingPlugin, assetsBaseUrl } = useMarketplace();
- // Don't show overlay if no action is in progress
- if (!loadingAction) {
- return null;
- }
+ // Don't show overlay if no action is in progress
+ if (!loadingAction) {
+ return null;
+ }
- const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== "undefined" && window.marketplaceConfig?.assetsBaseUrl) || "";
- const spinnerSrc = `${assetBase}assets/images/spinner.svg`;
+ const assetBase =
+ assetsBaseUrl ||
+ (typeof window.marketplaceConfig !== 'undefined' && window.marketplaceConfig?.assetsBaseUrl) ||
+ '';
+ const spinnerSrc = `${assetBase}assets/images/spinner.svg`;
- return (
-
- );
+ return (
+
+ );
}
diff --git a/frontend/src/components/MarketPlace.jsx b/frontend/src/components/MarketPlace.jsx
index 2c71448..a2ca8af 100644
--- a/frontend/src/components/MarketPlace.jsx
+++ b/frontend/src/components/MarketPlace.jsx
@@ -1,537 +1,607 @@
-import React, { useState, useEffect, useRef } from "react";
-import {normalizePlugins} from "./normalised-plugins";
-import "@group.one/gravity";
-import { useTranslation } from "react-i18next";
-import ProductDetail from "./ProductDetail";
-import ProductDetailRankMath from "./ProductDetailRankMath";
-import ErrorState from "./ErrorState";
-import WpVersionErrorState from "./WpVersionErrorState";
-import { useMarketplace } from "../context/MarketplaceContext";
-import { formatPluginPrice, getRebatePrice,getFullPrice } from "../utils/priceFormatter";
-import { trackMarketplaceVisit, trackPluginDetailVisit, trackPageView } from "../utils/mixpanelTracking";
+import React, { useState, useEffect, useRef } from 'react';
+import { normalizePlugins } from './normalised-plugins';
+import '@dogado/gravity';
+import { useTranslation } from 'react-i18next';
+import ProductDetail from './ProductDetail';
+import ProductDetailRankMath from './ProductDetailRankMath';
+import ErrorState from './ErrorState';
+import WpVersionErrorState from './WpVersionErrorState';
+import { useMarketplace } from '../context/MarketplaceContext';
+import { formatPluginPrice, getRebatePrice, getFullPrice } from '../utils/priceFormatter';
+import {
+ trackMarketplaceVisit,
+ trackPluginDetailVisit,
+ trackPageView,
+} from '../utils/mixpanelTracking';
export default function Marketplace() {
- const {
- apiBaseUrl,
- useWPHandlers,
- wpConfig,
- enableDefaultStyles,
- assetsBaseUrl,
- pluginInAction,
- setPluginInAction,
- fetchSubscriptionStatus,
- isOnecomBrand,
- plugins,
- setPlugins,
- uiI18n,
- setUiI18n,
- handlePluginAction,
- allPluginsActivated,
- setAllPluginsActivated,
- catalogError,
- setCatalogError,
- catalogLoading,
- setCatalogLoading,
- shouldShowProvision,
- isSpecialPlugin,
- shouldShowPlugin,
- isWpVersionSupported
- } = useMarketplace();
-
- // Get active plugin slugs from WordPress config
- const activePlugins = typeof window !== "undefined" && window.marketplaceConfig?.activePlugins
- ? window.marketplaceConfig.activePlugins
- : [];
-
- // Get active theme author from WordPress config
- const activeThemeAuthor = typeof window !== "undefined" && window.marketplaceConfig?.activeThemeAuthor
- ? window.marketplaceConfig.activeThemeAuthor
- : "";
-
- const [downloadingPlugins, setDownloadingPlugins] = useState({});
- const [selectedPlugin, setSelectedPlugin] = useState(null);
-
- // Use ref to track if plugins have already been fetched
- const hasFetchedPlugins = useRef(false);
-
- // Use ref to track if marketplace visit has been tracked (prevent duplicates)
- const hasTrackedMarketplaceVisit = useRef(false);
-
- // Use ref to track last tracked plugin detail to prevent duplicate tracking
- const lastTrackedPluginSlug = useRef(null);
-
- // Use ref to store timestamps for tracking
- const contentReceivedTimestamp = useRef(null);
- const contentRenderTimestamp = useRef(null);
-
- // Use ref to store is_cached flag from API response
- const isCachedRef = useRef(false);
-
- // Construct icon base URL with fallback logic
- const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== "undefined" && window.marketplaceConfig?.assetsBaseUrl) || "";
- const iconBase = assetBase ? `${assetBase}assets/icons/` : "";
-
- // Determine if a plugin slug is in the URL
- const pluginFromQuery = typeof window !== "undefined"
- ? new URLSearchParams(window.location.search).get("plugin")
- : null;
-
- // Get base page URL (without plugin parameter)
- const getBaseUrl = () => {
- if (typeof window === "undefined") return "";
- const url = new URL(window.location.href);
- url.searchParams.delete("plugin");
- return url.toString();
+ const {
+ apiBaseUrl,
+ useWPHandlers,
+ wpConfig,
+ enableDefaultStyles,
+ assetsBaseUrl,
+ pluginInAction,
+ setPluginInAction,
+ fetchSubscriptionStatus,
+ isOnecomBrand,
+ plugins,
+ setPlugins,
+ uiI18n,
+ setUiI18n,
+ handlePluginAction,
+ allPluginsActivated,
+ setAllPluginsActivated,
+ catalogError,
+ setCatalogError,
+ catalogLoading,
+ setCatalogLoading,
+ shouldShowProvision,
+ isSpecialPlugin,
+ shouldShowPlugin,
+ isWpVersionSupported,
+ } = useMarketplace();
+
+ // Get active plugin slugs from WordPress config
+ const activePlugins =
+ typeof window !== 'undefined' && window.marketplaceConfig?.activePlugins
+ ? window.marketplaceConfig.activePlugins
+ : [];
+
+ // Get active theme author from WordPress config
+ const activeThemeAuthor =
+ typeof window !== 'undefined' && window.marketplaceConfig?.activeThemeAuthor
+ ? window.marketplaceConfig.activeThemeAuthor
+ : '';
+
+ const [downloadingPlugins, setDownloadingPlugins] = useState({});
+ const [selectedPlugin, setSelectedPlugin] = useState(null);
+
+ // Use ref to track if plugins have already been fetched
+ const hasFetchedPlugins = useRef(false);
+
+ // Use ref to track if marketplace visit has been tracked (prevent duplicates)
+ const hasTrackedMarketplaceVisit = useRef(false);
+
+ // Use ref to track last tracked plugin detail to prevent duplicate tracking
+ const lastTrackedPluginSlug = useRef(null);
+
+ // Use ref to store timestamps for tracking
+ const contentReceivedTimestamp = useRef(null);
+ const contentRenderTimestamp = useRef(null);
+
+ // Use ref to store is_cached flag from API response
+ const isCachedRef = useRef(false);
+
+ // Construct icon base URL with fallback logic
+ const assetBase =
+ assetsBaseUrl ||
+ (typeof window.marketplaceConfig !== 'undefined' && window.marketplaceConfig?.assetsBaseUrl) ||
+ '';
+ const iconBase = assetBase ? `${assetBase}assets/icons/` : '';
+
+ // Determine if a plugin slug is in the URL
+ const pluginFromQuery =
+ typeof window !== 'undefined'
+ ? new URLSearchParams(window.location.search).get('plugin')
+ : null;
+
+ // Get base page URL (without plugin parameter)
+ const getBaseUrl = () => {
+ if (typeof window === 'undefined') return '';
+ const url = new URL(window.location.href);
+ url.searchParams.delete('plugin');
+ return url.toString();
+ };
+
+ // After plugins load, select plugin from query if present
+ useEffect(() => {
+ if (pluginFromQuery && plugins.length) {
+ const match = plugins.find((p) => p.slug === pluginFromQuery);
+ if (match) setSelectedPlugin(match);
+ } else if (!pluginFromQuery) {
+ // Clear selectedPlugin when no plugin parameter in URL
+ setSelectedPlugin(null);
+ }
+ }, [pluginFromQuery, plugins]);
+
+ // Listen for browser back/forward navigation
+ useEffect(() => {
+ const handlePopState = () => {
+ const currentPluginParam = new URLSearchParams(window.location.search).get('plugin');
+ if (!currentPluginParam) {
+ // URL no longer has plugin parameter, clear selection
+ setSelectedPlugin(null);
+ } else if (plugins.length) {
+ // URL has plugin parameter, update selection
+ const match = plugins.find((p) => p.slug === currentPluginParam);
+ if (match) setSelectedPlugin(match);
+ }
};
+ window.addEventListener('popstate', handlePopState);
+ return () => window.removeEventListener('popstate', handlePopState);
+ }, [plugins]);
- // After plugins load, select plugin from query if present
- useEffect(() => {
- if (pluginFromQuery && plugins.length) {
- const match = plugins.find(p => p.slug === pluginFromQuery);
- if (match) setSelectedPlugin(match);
- } else if (!pluginFromQuery) {
- // Clear selectedPlugin when no plugin parameter in URL
- setSelectedPlugin(null);
- }
- }, [pluginFromQuery, plugins]);
-
- // Listen for browser back/forward navigation
- useEffect(() => {
- const handlePopState = () => {
- const currentPluginParam = new URLSearchParams(window.location.search).get("plugin");
- if (!currentPluginParam) {
- // URL no longer has plugin parameter, clear selection
- setSelectedPlugin(null);
- } else if (plugins.length) {
- // URL has plugin parameter, update selection
- const match = plugins.find(p => p.slug === currentPluginParam);
- if (match) setSelectedPlugin(match);
- }
- };
-
- window.addEventListener('popstate', handlePopState);
- return () => window.removeEventListener('popstate', handlePopState);
- }, [plugins]);
-
- const {t} = useTranslation();
-
- useEffect(() => {
- // Only fetch once
- if (hasFetchedPlugins.current) {
- return;
- }
-
- async function fetchPlugins() {
- try {
- hasFetchedPlugins.current = true;
- const res = await fetch(`${apiBaseUrl}`);
- const json = await res.json();
-
- // Capture timestamp when API content is received
- contentReceivedTimestamp.current = Date.now();
-
- // Extract is_cached flag from API response
- isCachedRef.current = json.is_cached || false;
-
- // Check for API error response (success: false)
- if (json && json.success === false) {
- // Track page view with content render failure
- trackPageView({
- category: 'marketplace_home',
- isContentRendered: false,
- });
- setCatalogError(true);
- setCatalogLoading(false);
- return;
- }
-
- // Check for blank/empty response
- if (!json || !json.data || !json.data.catalog || (Array.isArray(json.data.catalog) && json.data.catalog.length === 0)) {
- console.error("API returned empty or blank response");
- // Track page view with content render failure
- trackPageView({
- category: 'marketplace_home',
- isContentRendered: false,
- });
- setCatalogError(true);
- setCatalogLoading(false);
- return;
- }
-
- const { plugins: normalizedPlugins, uiI18n: apiUiI18n } = normalizePlugins(json);
- setPlugins(normalizedPlugins);
- setUiI18n(apiUiI18n);
-
- // Fetch subscription status for special plugins (wp-rocket, rank-math-pro)
- if (isOnecomBrand) {
- const specialPlugins = normalizedPlugins.filter(p => isSpecialPlugin(p.slug));
-
- // Fetch subscription status for each special plugin
- specialPlugins.forEach(plugin => {
- fetchSubscriptionStatus(plugin.slug);
- });
- }
- } catch (e) {
- // Track page view with content render failure
- trackPageView({
- category: 'marketplace_home',
- isContentRendered: false,
- });
- setCatalogError(true);
- } finally {
- setCatalogLoading(false);
- }
- }
-
- fetchPlugins();
- }, [apiBaseUrl, isOnecomBrand, fetchSubscriptionStatus, setPlugins]);
-
- // Use useMemo to filter plugins based on rules and activation status
- const visiblePlugins = React.useMemo(() => {
- if (!plugins.length) return [];
-
- const bySlug = new Map();
-
- // Check activation status of Rank Math plugins
- const rankMathActivated = plugins.find(p => p.slug === "seo-by-rank-math")?.activated === true;
- const rankMathProActivated = plugins.find(p => p.slug === "seo-by-rank-math-pro")?.activated === true;
-
- plugins.forEach((p) => {
- // Skip if already in map or activated
- if (bySlug.has(p.slug) || p.activated === true) {
- return;
- }
-
- // Handle Rank Math plugin visibility
- if (p.slug === "seo-by-rank-math") {
- // Show seo-by-rank-math only if BOTH plugins are NOT activated
- if (!rankMathActivated && !rankMathProActivated && shouldShowPlugin(p)) {
- bySlug.set(p.slug, p);
- }
- return;
- }
-
- if (p.slug === "seo-by-rank-math-pro") {
- // Show seo-by-rank-math-pro only if seo-by-rank-math IS activated
- if (rankMathActivated && shouldShowPlugin(p)) {
- bySlug.set(p.slug, p);
- }
- return;
- }
-
- // Apply filtering based on rules
- if (shouldShowPlugin(p)) {
- bySlug.set(p.slug, p);
- }
- });
+ const { t } = useTranslation();
- return Array.from(bySlug.values());
- }, [plugins, shouldShowPlugin]);
+ useEffect(() => {
+ // Only fetch once
+ if (hasFetchedPlugins.current) {
+ return;
+ }
- // Update allPluginsActivated in context whenever plugins change
- useEffect(() => {
- if (plugins.length > 0) {
- // If there are no plugins that should be visible (not activated and passing rules), then all are activated/hidden
- const allActivated = visiblePlugins.length === 0;
- setAllPluginsActivated(allActivated);
- }
- }, [plugins, visiblePlugins, setAllPluginsActivated]);
-
- // Track marketplace visit when plugins are loaded and no plugin detail is shown
- useEffect(() => {
- if (!catalogLoading && !catalogError && plugins.length > 0 && !pluginFromQuery && !hasTrackedMarketplaceVisit.current) {
- // Capture timestamp when content is rendered to the page
- contentRenderTimestamp.current = Date.now();
-
- // Check if this is a reload caused by plugin activation
- const skipPageView = sessionStorage.getItem('mp_skip_page_view');
- if (skipPageView === 'true') {
- // Clear the flag and skip tracking
- sessionStorage.removeItem('mp_skip_page_view');
- } else {
- // Normal page load, track the visit
- trackMarketplaceVisit(contentReceivedTimestamp.current, contentRenderTimestamp.current, isCachedRef.current);
- }
- hasTrackedMarketplaceVisit.current = true;
- }
- }, [catalogLoading, catalogError, plugins.length, pluginFromQuery]);
-
- // Track plugin detail page visit when selectedPlugin changes
- useEffect(() => {
- if (selectedPlugin && pluginFromQuery && lastTrackedPluginSlug.current !== selectedPlugin.slug) {
- // Capture timestamp when content is rendered to the page
- contentRenderTimestamp.current = Date.now();
-
- // Check if this is a reload caused by plugin activation
- const skipPageView = sessionStorage.getItem('mp_skip_page_view');
- if (skipPageView === 'true') {
- // Clear the flag and skip tracking
- sessionStorage.removeItem('mp_skip_page_view');
- } else {
- // Normal page load, track the visit
- trackPluginDetailVisit(selectedPlugin, contentReceivedTimestamp.current, contentRenderTimestamp.current, isCachedRef.current);
- }
- lastTrackedPluginSlug.current = selectedPlugin.slug;
+ async function fetchPlugins() {
+ try {
+ hasFetchedPlugins.current = true;
+ const res = await fetch(`${apiBaseUrl}`);
+ const json = await res.json();
+
+ // Capture timestamp when API content is received
+ contentReceivedTimestamp.current = Date.now();
+
+ // Extract is_cached flag from API response
+ isCachedRef.current = json.is_cached || false;
+
+ // Check for API error response (success: false)
+ if (json && json.success === false) {
+ // Track page view with content render failure
+ trackPageView({
+ category: 'marketplace_home',
+ isContentRendered: false,
+ });
+ setCatalogError(true);
+ setCatalogLoading(false);
+ return;
}
- // Reset when returning to marketplace list
- if (!pluginFromQuery) {
- lastTrackedPluginSlug.current = null;
- }
- }, [selectedPlugin, pluginFromQuery]);
-
- const handleDownloadClick = (e, plugin) => {
- e.stopPropagation();
-
- // Set downloading state
- setDownloadingPlugins(prev => ({ ...prev, [plugin.slug]: true }));
-
- // Reset after a short delay (download is triggered immediately)
- // The browser handles the actual download, so we simulate completion
- setTimeout(() => {
- setDownloadingPlugins(prev => ({ ...prev, [plugin.slug]: false }));
- }, 2000);
- };
-
- const openDetail = (plugin, e) => {
- // Debug to confirm click
- setSelectedPlugin(plugin);
- };
+ // Check for blank/empty response
+ if (
+ !json ||
+ !json.data ||
+ !json.data.catalog ||
+ (Array.isArray(json.data.catalog) && json.data.catalog.length === 0)
+ ) {
+ console.error('API returned empty or blank response');
+ // Track page view with content render failure
+ trackPageView({
+ category: 'marketplace_home',
+ isContentRendered: false,
+ });
+ setCatalogError(true);
+ setCatalogLoading(false);
+ return;
+ }
+ const { plugins: normalizedPlugins, uiI18n: apiUiI18n } = normalizePlugins(json);
+ setPlugins(normalizedPlugins);
+ setUiI18n(apiUiI18n);
- // Helper function to determine if we should use ProductDetailRankMath
- const shouldUseRankMathDetail = (plugin) => {
- if (!plugin) return false;
- const brand = typeof window !== "undefined" && window.marketplaceConfig?.brand;
- const isOnecomBrand = brand === "onecom";
- const isRankMathPlugin = plugin.slug === "seo-by-rank-math-pro" || plugin.slug === "seo-by-rank-math";
- return isOnecomBrand && isRankMathPlugin;
- };
+ // Fetch subscription status for special plugins (wp-rocket, rank-math-pro)
+ if (isOnecomBrand) {
+ const specialPlugins = normalizedPlugins.filter((p) => isSpecialPlugin(p.slug));
+ // Fetch subscription status for each special plugin
+ specialPlugins.forEach((plugin) => {
+ fetchSubscriptionStatus(plugin.slug);
+ });
+ }
+ } catch (e) {
+ // Track page view with content render failure
+ trackPageView({
+ category: 'marketplace_home',
+ isContentRendered: false,
+ });
+ setCatalogError(true);
+ } finally {
+ setCatalogLoading(false);
+ }
+ }
+ fetchPlugins();
+ }, [
+ apiBaseUrl,
+ isOnecomBrand,
+ fetchSubscriptionStatus,
+ setPlugins,
+ isSpecialPlugin,
+ setCatalogError,
+ setCatalogLoading,
+ setUiI18n,
+ ]);
+
+ // Use useMemo to filter plugins based on rules and activation status
+ const visiblePlugins = React.useMemo(() => {
+ if (!plugins.length) return [];
+
+ const bySlug = new Map();
+
+ // Check activation status of Rank Math plugins
+ const rankMathActivated =
+ plugins.find((p) => p.slug === 'seo-by-rank-math')?.activated === true;
+ const rankMathProActivated =
+ plugins.find((p) => p.slug === 'seo-by-rank-math-pro')?.activated === true;
+
+ plugins.forEach((p) => {
+ // Skip if already in map or activated
+ if (bySlug.has(p.slug) || p.activated === true) {
+ return;
+ }
+
+ // Handle Rank Math plugin visibility
+ if (p.slug === 'seo-by-rank-math') {
+ // Show seo-by-rank-math only if BOTH plugins are NOT activated
+ if (!rankMathActivated && !rankMathProActivated && shouldShowPlugin(p)) {
+ bySlug.set(p.slug, p);
+ }
+ return;
+ }
- if (catalogLoading) {
- // If there's a plugin parameter in the URL, show appropriate skeleton based on plugin type
- if (pluginFromQuery) {
- // Determine if we should use RankMath detail component based on slug
- const brand = typeof window !== "undefined" && window.marketplaceConfig?.brand;
- const isOnecomBrand = brand === "onecom";
- const isRankMathPlugin = pluginFromQuery === "seo-by-rank-math-pro" || pluginFromQuery === "seo-by-rank-math";
- const DetailComponent = (isOnecomBrand && isRankMathPlugin) ? ProductDetailRankMath : ProductDetail;
- return (
-
{}}
- usePortal={false}
- loading={true}
- />
- );
+ if (p.slug === 'seo-by-rank-math-pro') {
+ // Show seo-by-rank-math-pro only if seo-by-rank-math IS activated
+ if (rankMathActivated && shouldShowPlugin(p)) {
+ bySlug.set(p.slug, p);
}
+ return;
+ }
- // Show catalog skeleton loaders while catalog is loading
- return (
-
-
-
-
-
- {/* Generate first 3 skeleton plugin cards */}
- {[...Array(3)].map((_, index) => (
-
- ))}
-
+ // Apply filtering based on rules
+ if (shouldShowPlugin(p)) {
+ bySlug.set(p.slug, p);
+ }
+ });
- {/* Additional skeleton loaders after 3 cards */}
-
-
-
-
-
- {/* Generate remaining 3 skeleton plugin cards */}
- {[...Array(3)].map((_, index) => (
-
- ))}
-
-
-
+ return Array.from(bySlug.values());
+ }, [plugins, shouldShowPlugin]);
+
+ // Update allPluginsActivated in context whenever plugins change
+ useEffect(() => {
+ if (plugins.length > 0) {
+ // If there are no plugins that should be visible (not activated and passing rules), then all are activated/hidden
+ const allActivated = visiblePlugins.length === 0;
+ setAllPluginsActivated(allActivated);
+ }
+ }, [plugins, visiblePlugins, setAllPluginsActivated]);
+
+ // Track marketplace visit when plugins are loaded and no plugin detail is shown
+ useEffect(() => {
+ if (
+ !catalogLoading &&
+ !catalogError &&
+ plugins.length > 0 &&
+ !pluginFromQuery &&
+ !hasTrackedMarketplaceVisit.current
+ ) {
+ // Capture timestamp when content is rendered to the page
+ contentRenderTimestamp.current = Date.now();
+
+ // Check if this is a reload caused by plugin activation
+ const skipPageView = sessionStorage.getItem('mp_skip_page_view');
+ if (skipPageView === 'true') {
+ // Clear the flag and skip tracking
+ sessionStorage.removeItem('mp_skip_page_view');
+ } else {
+ // Normal page load, track the visit
+ trackMarketplaceVisit(
+ contentReceivedTimestamp.current,
+ contentRenderTimestamp.current,
+ isCachedRef.current
);
+ }
+ hasTrackedMarketplaceVisit.current = true;
}
-
- // Show error state if API failed or returned error
- if (catalogError) {
- return ;
+ }, [catalogLoading, catalogError, plugins.length, pluginFromQuery]);
+
+ // Track plugin detail page visit when selectedPlugin changes
+ useEffect(() => {
+ if (
+ selectedPlugin &&
+ pluginFromQuery &&
+ lastTrackedPluginSlug.current !== selectedPlugin.slug
+ ) {
+ // Capture timestamp when content is rendered to the page
+ contentRenderTimestamp.current = Date.now();
+
+ // Check if this is a reload caused by plugin activation
+ const skipPageView = sessionStorage.getItem('mp_skip_page_view');
+ if (skipPageView === 'true') {
+ // Clear the flag and skip tracking
+ sessionStorage.removeItem('mp_skip_page_view');
+ } else {
+ // Normal page load, track the visit
+ trackPluginDetailVisit(
+ selectedPlugin,
+ contentReceivedTimestamp.current,
+ contentRenderTimestamp.current,
+ isCachedRef.current
+ );
+ }
+ lastTrackedPluginSlug.current = selectedPlugin.slug;
+ }
+ // Reset when returning to marketplace list
+ if (!pluginFromQuery) {
+ lastTrackedPluginSlug.current = null;
+ }
+ }, [selectedPlugin, pluginFromQuery]);
+
+ const handleDownloadClick = (e, plugin) => {
+ e.stopPropagation();
+
+ // Set downloading state
+ setDownloadingPlugins((prev) => ({ ...prev, [plugin.slug]: true }));
+
+ // Reset after a short delay (download is triggered immediately)
+ // The browser handles the actual download, so we simulate completion
+ setTimeout(() => {
+ setDownloadingPlugins((prev) => ({ ...prev, [plugin.slug]: false }));
+ }, 2000);
+ };
+
+ const openDetail = (plugin, e) => {
+ // Debug to confirm click
+ setSelectedPlugin(plugin);
+ };
+
+ // Helper function to determine if we should use ProductDetailRankMath
+ const shouldUseRankMathDetail = (plugin) => {
+ if (!plugin) return false;
+ const brand = typeof window !== 'undefined' && window.marketplaceConfig?.brand;
+ const isOnecomBrand = brand === 'onecom';
+ const isRankMathPlugin =
+ plugin.slug === 'seo-by-rank-math-pro' || plugin.slug === 'seo-by-rank-math';
+ return isOnecomBrand && isRankMathPlugin;
+ };
+
+ if (catalogLoading) {
+ // If there's a plugin parameter in the URL, show appropriate skeleton based on plugin type
+ if (pluginFromQuery) {
+ // Determine if we should use RankMath detail component based on slug
+ const brand = typeof window !== 'undefined' && window.marketplaceConfig?.brand;
+ const isOnecomBrand = brand === 'onecom';
+ const isRankMathPlugin =
+ pluginFromQuery === 'seo-by-rank-math-pro' || pluginFromQuery === 'seo-by-rank-math';
+ const DetailComponent =
+ isOnecomBrand && isRankMathPlugin ? ProductDetailRankMath : ProductDetail;
+ return {}} usePortal={false} loading={true} />;
}
+ // Show catalog skeleton loaders while catalog is loading
+ return (
+
+
+
+
+
+ {/* Generate first 3 skeleton plugin cards */}
+ {[...Array(3)].map((_, index) => (
+
+ ))}
+
+
+ {/* Additional skeleton loaders after 3 cards */}
+
+
+
+ {/* Generate remaining 3 skeleton plugin cards */}
+ {[...Array(3)].map((_, index) => (
+
+ ))}
+
+
+
+ );
+ }
+
+ // Show error state if API failed or returned error
+ if (catalogError) {
+ return ;
+ }
+
// Show WP version error state
if (!isWpVersionSupported('6.2')) {
return ;
}
- // Early return: show full page detail instead of list
- if (selectedPlugin && pluginFromQuery) {
- const DetailComponent = shouldUseRankMathDetail(selectedPlugin) ? ProductDetailRankMath : ProductDetail;
- return (
- {
- // Return to listing (clear selection and URL)
- setSelectedPlugin(null);
- // Check if history.back() will work (has navigable history)
- if (typeof window !== "undefined" && window.history && window.history.length > 1) {
- window.history.back();
- } else {
- // In new-tab scenario, manually remove plugin parameter from URL
- const url = new URL(window.location.href);
- url.searchParams.delete("plugin");
- window.history.replaceState({}, '', url.toString());
- }
- }}
- usePortal={false}
- loading={catalogLoading}
- />
- );
- }
-
- // Group plugins by a single, specific category (first category), avoid duplicates across headings
- const categoryMap = new Map();
+ // Early return: show full page detail instead of list
+ if (selectedPlugin && pluginFromQuery) {
+ const DetailComponent = shouldUseRankMathDetail(selectedPlugin)
+ ? ProductDetailRankMath
+ : ProductDetail;
+ return (
+ {
+ // Return to listing (clear selection and URL)
+ setSelectedPlugin(null);
+ // Check if history.back() will work (has navigable history)
+ if (typeof window !== 'undefined' && window.history && window.history.length > 1) {
+ window.history.back();
+ } else {
+ // In new-tab scenario, manually remove plugin parameter from URL
+ const url = new URL(window.location.href);
+ url.searchParams.delete('plugin');
+ window.history.replaceState({}, '', url.toString());
+ }
+ }}
+ usePortal={false}
+ loading={catalogLoading}
+ />
+ );
+ }
- visiblePlugins.forEach((p) => {
- // Handle new category object structure: { id, slug, title, description }
- const categoryObj = Array.isArray(p.categories) && p.categories.length
- ? (typeof p.categories[0] === 'object' ? p.categories[0] : { slug: String(p.categories[0]), title: String(p.categories[0]), description: null })
- : { slug: "Others", title: "Others", description: null };
+ // Group plugins by a single, specific category (first category), avoid duplicates across headings
+ const categoryMap = new Map();
- const categoryKey = categoryObj.slug || categoryObj.title || "Others";
+ visiblePlugins.forEach((p) => {
+ // Handle new category object structure: { id, slug, title, description }
+ const categoryObj =
+ Array.isArray(p.categories) && p.categories.length
+ ? typeof p.categories[0] === 'object'
+ ? p.categories[0]
+ : { slug: String(p.categories[0]), title: String(p.categories[0]), description: null }
+ : { slug: 'Others', title: 'Others', description: null };
- if (!categoryMap.has(categoryKey)) {
- categoryMap.set(categoryKey, { info: categoryObj, plugins: [] });
- }
- categoryMap.get(categoryKey).plugins.push(p);
- });
+ const categoryKey = categoryObj.slug || categoryObj.title || 'Others';
- const categories = Array.from(categoryMap.entries()).filter(([catKey, { plugins: list }]) => list.length > 0);
-
- // If all plugins are activated, show the "You've got all our plugins!" message
- if (allPluginsActivated) {
- return (
-
-
-
{uiI18n?.notifications?.allPluginsOwned}
-
{uiI18n?.text?.managePlugins}
-
{
- // Navigate to plugins page
- window.location.href = '/wp-admin/plugins.php';
- }}
- >
- {uiI18n.viewProductsButton}
-
-
-
-
- );
+ if (!categoryMap.has(categoryKey)) {
+ categoryMap.set(categoryKey, { info: categoryObj, plugins: [] });
}
+ categoryMap.get(categoryKey).plugins.push(p);
+ });
+ const categories = Array.from(categoryMap.entries()).filter(
+ ([catKey, { plugins: list }]) => list.length > 0
+ );
+
+ // If all plugins are activated, show the "You've got all our plugins!" message
+ if (allPluginsActivated) {
return (
-
- {categories.map(([catKey, { info, plugins: list }]) => (
-
- {info.title || catKey}
- {info.description && {info.description}
}
-
- {list.map((plugin) => {
- const isProvisionable = shouldShowProvision(plugin);
- const freeLabel = (plugin.i18n.freeTrialPeriod && plugin.i18n.freeTrialPeriod.trim() !== '')
- ? plugin.i18n.freeTrialPeriod
- : (uiI18n?.labels?.free || 'Free');
- const price = formatPluginPrice(plugin, freeLabel, uiI18n);
- const fullPriceAmount = getFullPrice(plugin);
- const rebatePriceAmount = getRebatePrice(plugin);
- return (
-
-
-
-
-
-
-
{plugin.name}
-
{plugin.i18n.listingDescription || plugin.i18n.subtitle}
-
- <>
- {plugin.licenseType === "premium" && (rebatePriceAmount > 0) ? (rebatePriceAmount !== null ? rebatePriceAmount : fullPriceAmount) : price}
- {plugin.licenseType !== "free" && price && price !== freeLabel && price !== (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal') && /{uiI18n?.labels?.timeMonth} }
- >
-
-
-
-
-
- );
- })}
-
-
- ))}
- {/* Remove overlay render (keep for non-query usage) */}
- {selectedPlugin && !pluginFromQuery && (() => {
- const DetailComponent = shouldUseRankMathDetail(selectedPlugin) ? ProductDetailRankMath : ProductDetail;
- return (
-
setSelectedPlugin(null)}
- loading={catalogLoading}
- />
- );
- })()}
+
+
+
{uiI18n?.notifications?.allPluginsOwned}
+
{uiI18n?.text?.managePlugins}
+
{
+ // Navigate to plugins page
+ window.location.href = '/wp-admin/plugins.php';
+ }}
+ >
+ {uiI18n.viewProductsButton}
+
+
+
);
+ }
+
+ return (
+
+ {categories.map(([catKey, { info, plugins: list }]) => (
+
+ {info.title || catKey}
+ {info.description && {info.description}
}
+
+ {list.map((plugin) => {
+ const isProvisionable = shouldShowProvision(plugin);
+ const freeLabel =
+ plugin.i18n.freeTrialPeriod && plugin.i18n.freeTrialPeriod.trim() !== ''
+ ? plugin.i18n.freeTrialPeriod
+ : uiI18n?.labels?.free || 'Free';
+ const price = formatPluginPrice(plugin, freeLabel, uiI18n);
+ const fullPriceAmount = getFullPrice(plugin);
+ const rebatePriceAmount = getRebatePrice(plugin);
+ return (
+
+
+
+
+
+
+
{plugin.name}
+
+ {' '}
+ {plugin.i18n.listingDescription || plugin.i18n.subtitle}{' '}
+
+
+ <>
+ {plugin.licenseType === 'premium' && rebatePriceAmount > 0
+ ? rebatePriceAmount !== null
+ ? rebatePriceAmount
+ : fullPriceAmount
+ : price}
+ {plugin.licenseType !== 'free' &&
+ price &&
+ price !== freeLabel &&
+ price !==
+ (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal') && (
+ /{uiI18n?.labels?.timeMonth}
+ )}
+ >
+
+
+
+
+
+ );
+ })}
+
+
+ ))}
+ {/* Remove overlay render (keep for non-query usage) */}
+ {selectedPlugin &&
+ !pluginFromQuery &&
+ (() => {
+ const DetailComponent = shouldUseRankMathDetail(selectedPlugin)
+ ? ProductDetailRankMath
+ : ProductDetail;
+ return (
+
setSelectedPlugin(null)}
+ loading={catalogLoading}
+ />
+ );
+ })()}
+
+ );
}
diff --git a/frontend/src/components/PluginActions.jsx b/frontend/src/components/PluginActions.jsx
index 77aa4a4..243d9ed 100644
--- a/frontend/src/components/PluginActions.jsx
+++ b/frontend/src/components/PluginActions.jsx
@@ -1,155 +1,161 @@
-import React, { useState, useEffect } from "react";
-import { useMarketplace } from "../context/MarketplaceContext";
-import { trackPluginAction, trackButtonClick } from "../utils/mixpanelTracking";
-import { getPluginRedirectUrl, navigateToPluginUrl } from "../utils/redirectUrlHelper";
+import React, { useState, useEffect } from 'react';
+import { useMarketplace } from '../context/MarketplaceContext';
+import { trackPluginAction, trackButtonClick } from '../utils/mixpanelTracking';
+import { getPluginRedirectUrl, navigateToPluginUrl } from '../utils/redirectUrlHelper';
export default function PluginActions({ plugin }) {
- const {
- assetsBaseUrl,
- pluginInAction,
- subscriptionStatus,
- isCheckingSubscription,
- isOnecomBrand,
- handlePluginAction,
- uiI18n,
- isSpecialPlugin
- } = useMarketplace();
+ const {
+ assetsBaseUrl,
+ pluginInAction,
+ subscriptionStatus,
+ isCheckingSubscription,
+ isOnecomBrand,
+ handlePluginAction,
+ uiI18n,
+ isSpecialPlugin,
+ } = useMarketplace();
- // Get subscription status for this plugin from context
- const pluginSubscriptionStatus = subscriptionStatus[plugin.slug];
- const pluginIsCheckingSubscription = isCheckingSubscription[plugin.slug];
- const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== "undefined" && window.marketplaceConfig?.assetsBaseUrl) || "";
- const iconBase = assetBase ? `${assetBase}assets/` : "";
- const handleClick = (action) => {
- // Check if brand is onecom, plugin is not installed, and slug is wp-rocket or rank-math-pro
- const isNotInstalled = !plugin.installed;
+ // Get subscription status for this plugin from context
+ const pluginSubscriptionStatus = subscriptionStatus[plugin.slug];
+ const pluginIsCheckingSubscription = isCheckingSubscription[plugin.slug];
+ const assetBase =
+ assetsBaseUrl ||
+ (typeof window.marketplaceConfig !== 'undefined' && window.marketplaceConfig?.assetsBaseUrl) ||
+ '';
+ const iconBase = assetBase ? `${assetBase}assets/` : '';
+ const handleClick = (action) => {
+ // Check if brand is onecom, plugin is not installed, and slug is wp-rocket or rank-math-pro
+ const isNotInstalled = !plugin.installed;
- if (isOnecomBrand && isSpecialPlugin(plugin.slug) && isNotInstalled && action === "install") {
- // Track install event with result: initiated for special plugins
- trackButtonClick({
- buttonName: 'Install',
- buttonAction: 'product_install',
- plugin: plugin,
- context: {
- action: action,
- result: 'initiated',
- }
- });
+ if (isOnecomBrand && isSpecialPlugin(plugin.slug) && isNotInstalled && action === 'install') {
+ // Track install event with result: initiated for special plugins
+ trackButtonClick({
+ buttonName: 'Install',
+ buttonAction: 'product_install',
+ plugin: plugin,
+ context: {
+ action: action,
+ result: 'initiated',
+ },
+ });
- // Dispatch custom event instead of calling handlePluginAction
- const event = new CustomEvent("onecom-plugin-provision", {
- detail: {
- slug: plugin.slug,
- },
- bubbles: true,
- cancelable: true,
- composed: true
- });
- // Dispatch on document so listeners using document.addEventListener receive it
- document.dispatchEvent(event);
- return;
- }
+ // Dispatch custom event instead of calling handlePluginAction
+ const event = new CustomEvent('onecom-plugin-provision', {
+ detail: {
+ slug: plugin.slug,
+ },
+ bubbles: true,
+ cancelable: true,
+ composed: true,
+ });
+ // Dispatch on document so listeners using document.addEventListener receive it
+ document.dispatchEvent(event);
+ return;
+ }
- // Default behavior
- handlePluginAction(action, plugin, 'product_detail');
- };
+ // Default behavior
+ handlePluginAction(action, plugin, 'product_detail');
+ };
- const handleSelectClick = () => {
- // Track the select button click
- trackButtonClick({
- buttonName: 'Select',
- buttonAction: 'subscribe_addon',
- plugin: plugin,
- });
+ const handleSelectClick = () => {
+ // Track the select button click
+ trackButtonClick({
+ buttonName: 'Select',
+ buttonAction: 'subscribe_addon',
+ plugin: plugin,
+ });
- // Dispatch custom event for provisioning
- const event = new CustomEvent("onecom-subscribe-addon", {
- detail: { slug: plugin.slug },
- bubbles: true,
- cancelable: true,
- composed: true
- });
- document.dispatchEvent(event);
- };
+ // Dispatch custom event for provisioning
+ const event = new CustomEvent('onecom-subscribe-addon', {
+ detail: { slug: plugin.slug },
+ bubbles: true,
+ cancelable: true,
+ composed: true,
+ });
+ document.dispatchEvent(event);
+ };
- const handleManage = () => {
- // Track the manage button click
- trackButtonClick({
- buttonName: 'Manage',
- buttonAction: 'manage_product',
- context: {
- product_slug: plugin.slug,
- product_name: plugin.name,
- has_redirect_url: !!(plugin.redirectUrl && plugin.redirectUrl.trim() !== ''),
- has_onboarding_url: !!(plugin.onboardingUrl && plugin.onboardingUrl.trim() !== ''),
- }
- });
+ const handleManage = () => {
+ // Track the manage button click
+ trackButtonClick({
+ buttonName: 'Manage',
+ buttonAction: 'manage_product',
+ context: {
+ product_slug: plugin.slug,
+ product_name: plugin.name,
+ has_redirect_url: !!(plugin.redirectUrl && plugin.redirectUrl.trim() !== ''),
+ has_onboarding_url: !!(plugin.onboardingUrl && plugin.onboardingUrl.trim() !== ''),
+ },
+ });
- const redirectUrl = getPluginRedirectUrl(plugin, false);
- navigateToPluginUrl(redirectUrl);
- };
+ const redirectUrl = getPluginRedirectUrl(plugin, false);
+ navigateToPluginUrl(redirectUrl);
+ };
- // Helper function to replace {0} with plugin name
- const formatMessage = (message, pluginName) => {
- if (!message) return '';
- return message.replace('{0}', pluginName || '');
- };
+ // Helper function to replace {0} with plugin name
+ const formatMessage = (message, pluginName) => {
+ if (!message) return '';
+ return message.replace('{0}', pluginName || '');
+ };
- const pluginName = plugin?.name || '';
+ const pluginName = plugin?.name || '';
- // Check if we should show "Select" button instead of install/activate
- const shouldShowSelectButton = isOnecomBrand && isSpecialPlugin(plugin.slug) && !plugin.installed && pluginSubscriptionStatus === false;
+ // Check if we should show "Select" button instead of install/activate
+ const shouldShowSelectButton =
+ isOnecomBrand &&
+ isSpecialPlugin(plugin.slug) &&
+ !plugin.installed &&
+ pluginSubscriptionStatus === false;
- // Check if we should show skeleton loader (while checking subscription for special plugins)
- // Show skeleton if: checking OR status is undefined (not yet fetched)
- const shouldShowSkeleton = isOnecomBrand && isSpecialPlugin(plugin.slug) && !plugin.installed &&
- (pluginIsCheckingSubscription || pluginSubscriptionStatus === undefined);
+ // Check if we should show skeleton loader (while checking subscription for special plugins)
+ // Show skeleton if: checking OR status is undefined (not yet fetched)
+ const shouldShowSkeleton =
+ isOnecomBrand &&
+ isSpecialPlugin(plugin.slug) &&
+ !plugin.installed &&
+ (pluginIsCheckingSubscription || pluginSubscriptionStatus === undefined);
- return (
-
- {shouldShowSkeleton ? (
-
- ) : shouldShowSelectButton ? (
-
- Select
-
- ) : plugin.installed ? (
- plugin.activated ? (
-
- {uiI18n?.labels?.manage || 'Manage'}
-
-
- ) : (
-
handleClick("activate")}
- >
- {pluginInAction[plugin.slug]
- ? formatMessage(uiI18n?.notifications?.activating || 'Activating {0}', pluginName)
- : (uiI18n?.activateButton || plugin.i18n?.activateButton || 'Activate')}
-
- )
- ) : (
-
handleClick("install")}
- >
- {pluginInAction[plugin.slug]
- ? formatMessage(uiI18n?.notifications?.installing || 'Installing {0}', pluginName)
- : (uiI18n?.installButton || plugin.i18n?.installButton || 'Install')}
-
- )}
-
- );
+ return (
+
+ {shouldShowSkeleton ? (
+
+ ) : shouldShowSelectButton ? (
+
+ Select
+
+ ) : plugin.installed ? (
+ plugin.activated ? (
+
+ {uiI18n?.labels?.manage || 'Manage'}
+
+
+ ) : (
+
handleClick('activate')}
+ >
+ {pluginInAction[plugin.slug]
+ ? formatMessage(uiI18n?.notifications?.activating || 'Activating {0}', pluginName)
+ : uiI18n?.activateButton || plugin.i18n?.activateButton || 'Activate'}
+
+ )
+ ) : (
+
handleClick('install')}
+ >
+ {pluginInAction[plugin.slug]
+ ? formatMessage(uiI18n?.notifications?.installing || 'Installing {0}', pluginName)
+ : uiI18n?.installButton || plugin.i18n?.installButton || 'Install'}
+
+ )}
+
+ );
}
diff --git a/frontend/src/components/ProductBanner.jsx b/frontend/src/components/ProductBanner.jsx
index 0ddcf30..1119f30 100644
--- a/frontend/src/components/ProductBanner.jsx
+++ b/frontend/src/components/ProductBanner.jsx
@@ -2,63 +2,64 @@ import React from 'react';
import { useMarketplace } from '../context/MarketplaceContext';
const ProductBanner = ({ loading = false }) => {
- const { assetsBaseUrl, uiI18n } = useMarketplace();
- const leftBannerUrl = 'https://wpaddon-static.group-cdn.one/images/wp/marketplace/banners/top-header-left-banner.png';
- const rightBannerUrl = 'https://wpaddon-static.group-cdn.one/images/wp/marketplace/banners/top-header-right-banner.png';
+ const { assetsBaseUrl, uiI18n } = useMarketplace();
+ const leftBannerUrl =
+ 'https://wpaddon-static.group-cdn.one/images/wp/marketplace/banners/top-header-left-banner.png';
+ const rightBannerUrl =
+ 'https://wpaddon-static.group-cdn.one/images/wp/marketplace/banners/top-header-right-banner.png';
- return (
-
-
- {loading ? (
-
- ) : (
-
-
-
-
-
-
- )}
-
+ return (
+
- );
+
+ {loading ? (
+
+ ) : (
+
+
+
+
+
+
+ )}
+
+
+ );
};
export default ProductBanner;
diff --git a/frontend/src/components/ProductDetail.jsx b/frontend/src/components/ProductDetail.jsx
index 64312f0..e7408d1 100644
--- a/frontend/src/components/ProductDetail.jsx
+++ b/frontend/src/components/ProductDetail.jsx
@@ -1,410 +1,454 @@
-import React, { useState, useEffect } from "react";
-import { createPortal } from "react-dom";
-import PluginActions from "./PluginActions";
-import SuccessNotice from "./SuccessNotice";
-import ErrorToast from "./ErrorToast";
-import { useMarketplace } from "../context/MarketplaceContext";
-import { formatPluginPrice, getFullPrice, getRebatePrice } from "../utils/priceFormatter";
-
-export default function ProductDetail({
- plugin,
- onClose,
- usePortal = true,
- loading = false
-}) {
- const {
- assetsBaseUrl,
- useWPHandlers,
- pluginInAction,
- uiI18n,
- subscriptionStatus,
- isCheckingSubscription,
- setNoticeState,
- setErrorState
- } = useMarketplace();
-
- const assetBase = assetsBaseUrl || (typeof window.marketplaceConfig !== "undefined" && window.marketplaceConfig?.assetsBaseUrl) || "";
- const iconBase = assetBase ? `${assetBase}assets/icons/` : "";
-
- // Show skeleton loaders while loading (even if plugin is null)
- if (loading) {
- const skeletonContent = (
-
-
- {/* Breadcrumbs skeleton */}
-
-
-
-
- {/* Header skeleton */}
-
-
- {/* Pricing / Action Section skeleton */}
-
-
-
-
+import React, { useState, useEffect } from 'react';
+import { createPortal } from 'react-dom';
+import PluginActions from './PluginActions';
+import SuccessNotice from './SuccessNotice';
+import ErrorToast from './ErrorToast';
+import { useMarketplace } from '../context/MarketplaceContext';
+import { formatPluginPrice, getFullPrice, getRebatePrice } from '../utils/priceFormatter';
+
+export default function ProductDetail({ plugin, onClose, usePortal = true, loading = false }) {
+ const {
+ assetsBaseUrl,
+ useWPHandlers,
+ pluginInAction,
+ uiI18n,
+ subscriptionStatus,
+ isCheckingSubscription,
+ setNoticeState,
+ setErrorState,
+ } = useMarketplace();
+
+ const assetBase =
+ assetsBaseUrl ||
+ (typeof window.marketplaceConfig !== 'undefined' && window.marketplaceConfig?.assetsBaseUrl) ||
+ '';
+ const iconBase = assetBase ? `${assetBase}assets/icons/` : '';
+
+ // Scroll to top when component mounts or plugin changes
+ useEffect(() => {
+ if (plugin) {
+ window.scrollTo(0, 0);
+ }
+ }, [plugin]);
+
+ // Clear banners when component mounts (handles case when user returns via browser back button)
+ useEffect(() => {
+ if (plugin) {
+ // Clear any existing banners when ProductDetail mounts
+ // BUT don't clear them if they are for the current plugin (e.g. just activated and reloaded)
+ setNoticeState((prev) => {
+ return prev.visible && prev.pluginSlug === plugin.slug
+ ? prev
+ : { visible: false, type: null, pluginSlug: null };
+ });
+ setErrorState((prev) => {
+ return prev.visible && prev.pluginSlug === plugin.slug
+ ? prev
+ : { visible: false, type: null, pluginSlug: null };
+ });
+ }
+ }, [plugin, setNoticeState, setErrorState]);
+
+ // Hide banners when user navigates back and returns to the product detail page
+ useEffect(() => {
+ const handlePopState = () => {
+ // Clear notice and error state when navigating via browser back/forward
+ setNoticeState({ visible: false, type: null, pluginSlug: null });
+ setErrorState({ visible: false, type: null, pluginSlug: null });
+ };
- {/* Key features skeleton */}
-
-
- {[...Array(3)].map((_, i) => (
-
- ))}
-
-
+ window.addEventListener('popstate', handlePopState);
+ return () => window.removeEventListener('popstate', handlePopState);
+ }, [setNoticeState, setErrorState]);
+
+ // Show skeleton loaders while loading (even if plugin is null)
+ if (loading) {
+ const skeletonContent = (
+
+
+ {/* Breadcrumbs skeleton */}
+
+
+
+
+ {/* Header skeleton */}
+
+
+ {/* Pricing / Action Section skeleton */}
+
+
+
+
+
+
+
+
+
-
-
- {/* Benefits skeleton */}
-
-
-
-
- {[...Array(3)].map((_, i) => (
-
-
-
- ))}
-
-
+
+
+
+
- {/* Core Features skeleton */}
-
-
-
-
- {[...Array(3)].map((_, i) => (
-
- ))}
-
-
+ {/* Key features skeleton */}
+
+
+ {[...Array(3)].map((_, i) => (
+
-
+ ))}
+
+
- );
- return usePortal ? createPortal(skeletonContent, document.body) : skeletonContent;
+
+
+ {/* Benefits skeleton */}
+
+
+
+
+ {[...Array(3)].map((_, i) => (
+
+
+
+ ))}
+
+
+
+
+ {/* Core Features skeleton */}
+
+
+
+
+ {[...Array(3)].map((_, i) => (
+
+ ))}
+
+
+
+
+
+ );
+ return usePortal ? createPortal(skeletonContent, document.body) : skeletonContent;
+ }
+
+ // If not loading and plugin is null, return null
+ if (!plugin) return null;
+
+ const imageURL =
+ (typeof window.onecomWpVars !== 'undefined' && window.onecomWpVars?.imageURL) || assetBase;
+ const iconSrc = plugin.thumbnail || `${assetBase}assets/icons/placeholder.svg`;
+ const mainImage =
+ plugin.bannerUrl ||
+ plugin.image ||
+ plugin.thumbnail ||
+ 'https://gravity.group.one/guide-images/product-image@2x.png';
+
+ // Extract data with fallbacks
+ const title = plugin.name || 'Product';
+ const description =
+ plugin.i18n?.description ||
+ plugin.i18n?.subtitle ||
+ plugin.description ||
+ plugin.shortDescription ||
+ 'No description available.';
+ const subTitle = plugin.i18n?.subtitle;
+ const isFree = plugin.licenseType === 'free';
+ const freeTrialText = plugin.i18n?.freeTrialText || '';
+ const hasFreeTrialText = freeTrialText && freeTrialText.trim() !== '';
+ const freeTrialPeriod = plugin.i18n?.freeTrialPeriod || '';
+ const hasFreeTrialPeriod = freeTrialPeriod && freeTrialPeriod.trim() !== '';
+
+ const price =
+ hasFreeTrialPeriod || hasFreeTrialText
+ ? uiI18n?.headings?.freeTrial || 'Free trial*'
+ : formatPluginPrice(plugin, uiI18n?.labels?.free || 'Free', uiI18n);
+
+ // Check if price is "Free until renewal" (rebate amount is 0)
+ const isFreeUntilRenewal = price === (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal');
+
+ // Extract full and rebate prices using common utility functions
+ const fullPriceAmount = getFullPrice(plugin);
+ const rebatePriceAmount = getRebatePrice(plugin);
+
+ // Helper function to extract numbered properties dynamically from i18n object
+ const extractNumberedProps = (obj, baseName) => {
+ if (!obj || typeof obj !== 'object') return [];
+ const results = [];
+ let i = 1;
+ while (obj[`${baseName}${i}`]) {
+ const value = obj[`${baseName}${i}`];
+ if (value && value.trim() !== '') {
+ results.push(value);
+ }
+ i++;
}
-
- // If not loading and plugin is null, return null
- if (!plugin) return null;
-
- // Scroll to top when component mounts or plugin changes
- useEffect(() => {
- window.scrollTo(0, 0);
- }, [plugin]);
-
- // Clear banners when component mounts (handles case when user returns via browser back button)
- useEffect(() => {
- // Clear any existing banners when ProductDetail mounts
- // BUT don't clear them if they are for the current plugin (e.g. just activated and reloaded)
- setNoticeState(prev => (prev.visible && prev.pluginSlug === plugin.slug) ? prev : { visible: false, type: null, pluginSlug: null });
- setErrorState(prev => (prev.visible && prev.pluginSlug === plugin.slug) ? prev : { visible: false, type: null, pluginSlug: null });
- }, [plugin.slug, setNoticeState, setErrorState]);
-
- // Hide banners when user navigates back and returns to the product detail page
- useEffect(() => {
- const handlePopState = () => {
- // Clear notice and error state when navigating via browser back/forward
- setNoticeState({ visible: false, type: null, pluginSlug: null });
- setErrorState({ visible: false, type: null, pluginSlug: null });
- };
-
- window.addEventListener('popstate', handlePopState);
- return () => window.removeEventListener('popstate', handlePopState);
- }, [setNoticeState, setErrorState]);
-
- const imageURL = (typeof window.onecomWpVars !== "undefined" && window.onecomWpVars?.imageURL) || assetBase;
- const iconSrc = plugin.thumbnail || `${assetBase}assets/icons/placeholder.svg`;
- const mainImage = plugin.bannerUrl || plugin.image || plugin.thumbnail || 'https://gravity.group.one/guide-images/product-image@2x.png';
-
- // Extract data with fallbacks
- const title = plugin.name || 'Product';
- const description = plugin.i18n?.description || plugin.i18n?.subtitle || plugin.description || plugin.shortDescription || 'No description available.';
- const subTitle = plugin.i18n?.subtitle;
- const isFree = plugin.licenseType === "free";
- const freeTrialText = plugin.i18n?.freeTrialText || '';
- const hasFreeTrialText = freeTrialText && freeTrialText.trim() !== '';
- const freeTrialPeriod = plugin.i18n?.freeTrialPeriod || '';
- const hasFreeTrialPeriod = freeTrialPeriod && freeTrialPeriod.trim() !== '';
-
- const price = (hasFreeTrialPeriod || hasFreeTrialText)
- ? (uiI18n?.headings?.freeTrial || 'Free trial*')
- : formatPluginPrice(plugin, uiI18n?.labels?.free || 'Free', uiI18n);
-
- // Check if price is "Free until renewal" (rebate amount is 0)
- const isFreeUntilRenewal = price === (uiI18n?.labels?.freeUntilRenewal || 'Free until renewal');
-
- // Extract full and rebate prices using common utility functions
- const fullPriceAmount = getFullPrice(plugin);
- const rebatePriceAmount = getRebatePrice(plugin);
-
- // Helper function to extract numbered properties dynamically from i18n object
- const extractNumberedProps = (obj, baseName) => {
- if (!obj || typeof obj !== 'object') return [];
- const results = [];
- let i = 1;
- while (obj[`${baseName}${i}`]) {
- const value = obj[`${baseName}${i}`];
- if (value && value.trim() !== '') {
- results.push(value);
- }
- i++;
- }
- return results;
- };
-
- // Extract key benefits from i18n (keyBenefitContent1, keyBenefitContent2, etc.)
- const benefitsFromI18n = extractNumberedProps(plugin.i18n, 'keyBenefitContent');
-
- // Extract key features from i18n (keyFeatureContent1 through keyFeatureContent6)
- const keyFeaturesFromI18n = extractNumberedProps(plugin.i18n, 'keyFeatureContent');
-
- // Extract core features (title/content pairs) from i18n
- const coreFeaturesFromI18n = [];
- if (plugin.i18n && typeof plugin.i18n === 'object') {
- let i = 1;
- while (plugin.i18n[`coreFeatureTitle${i}`] || plugin.i18n[`coreFeatureContent${i}`]) {
- const featureTitle = plugin.i18n[`coreFeatureTitle${i}`];
- const content = plugin.i18n[`coreFeatureContent${i}`];
- if (featureTitle && featureTitle.trim() !== '' && content && content.trim() !== '') {
- coreFeaturesFromI18n.push({ name: featureTitle, desc: content });
- }
- i++;
- }
+ return results;
+ };
+
+ // Extract key benefits from i18n (keyBenefitContent1, keyBenefitContent2, etc.)
+ const benefitsFromI18n = extractNumberedProps(plugin.i18n, 'keyBenefitContent');
+
+ // Extract key features from i18n (keyFeatureContent1 through keyFeatureContent6)
+ const keyFeaturesFromI18n = extractNumberedProps(plugin.i18n, 'keyFeatureContent');
+
+ // Extract core features (title/content pairs) from i18n
+ const coreFeaturesFromI18n = [];
+ if (plugin.i18n && typeof plugin.i18n === 'object') {
+ let i = 1;
+ while (plugin.i18n[`coreFeatureTitle${i}`] || plugin.i18n[`coreFeatureContent${i}`]) {
+ const featureTitle = plugin.i18n[`coreFeatureTitle${i}`];
+ const content = plugin.i18n[`coreFeatureContent${i}`];
+ if (featureTitle && featureTitle.trim() !== '' && content && content.trim() !== '') {
+ coreFeaturesFromI18n.push({ name: featureTitle, desc: content });
+ }
+ i++;
}
-
- // Use only i18n data - no fallbacks
- const keyFeatures = keyFeaturesFromI18n;
- const benefits = benefitsFromI18n;
- const coreFeatures = coreFeaturesFromI18n;
-
- const content = (
-