From 3b65ca56a1374d4033cba82d6f26dd83eab0bbe4 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Sat, 11 Oct 2025 21:10:18 +0500 Subject: [PATCH] global: use bun for patching modules instead of patch-package --- apps/web/package.json | 3 +- packages/clipper/bun.lock | 3 + packages/clipper/package.json | 4 +- ...-what+6.1.0.patch => css-what@6.1.0.patch} | 12 +- packages/core/package.json | 7 +- ...patch => @microsoft%2Fsignalr@8.0.0.patch} | 24 +- ...t+9.0.5.patch => html-to-text@9.0.5.patch} | 12 +- packages/editor-mobile/bun.lock | 2621 +---------------- packages/editor-mobile/package.json | 23 +- .../patches/react-scripts+5.0.1.patch | 141 - packages/editor-mobile/rsbuild.config.ts | 52 + packages/editor/bun.lock | 22 +- packages/editor/package.json | 13 +- ...2.6.6.patch => @tiptap%2Fcore@2.6.6.patch} | 42 +- ...iptap%2Fextension-list-keymap@2.6.6.patch} | 12 +- ...atex+0.16.11.patch => katex@0.16.11.patch} | 6 +- ...3.patch => prosemirror-model@1.25.3.patch} | 20 +- ....2.patch => prosemirror-view@1.41.3.patch} | 30 +- .../src/extensions/code-block/highlighter.ts | 4 +- .../src/extensions/react/react-node-view.tsx | 23 +- packages/intl/bun.lock | 3 + packages/intl/package.json | 6 +- .../intl/patches/@lingui%2Fcli@5.5.1.patch | 15 + packages/intl/patches/@lingui+cli+5.1.2.patch | 16 - packages/sodium/bun.lock | 3 + packages/sodium/package.json | 4 +- ...7.15.patch => libsodium-sumo@0.7.15.patch} | 6 +- scripts/clean.mjs | 5 +- 28 files changed, 256 insertions(+), 2876 deletions(-) rename packages/clipper/patches/{css-what+6.1.0.patch => css-what@6.1.0.patch} (72%) rename packages/core/patches/{@microsoft+signalr+8.0.0.patch => @microsoft%2Fsignalr@8.0.0.patch} (67%) rename packages/core/patches/{html-to-text+9.0.5.patch => html-to-text@9.0.5.patch} (63%) delete mode 100644 packages/editor-mobile/patches/react-scripts+5.0.1.patch create mode 100644 packages/editor-mobile/rsbuild.config.ts rename packages/editor/patches/{@tiptap+core+2.6.6.patch => @tiptap%2Fcore@2.6.6.patch} (99%) rename packages/editor/patches/{@tiptap+extension-list-keymap+2.6.6.patch => @tiptap%2Fextension-list-keymap@2.6.6.patch} (82%) rename packages/editor/patches/{katex+0.16.11.patch => katex@0.16.11.patch} (99%) rename packages/editor/patches/{prosemirror-model+1.22.3.patch => prosemirror-model@1.25.3.patch} (80%) rename packages/editor/patches/{prosemirror-view+1.34.2.patch => prosemirror-view@1.41.3.patch} (57%) create mode 100644 packages/intl/patches/@lingui%2Fcli@5.5.1.patch delete mode 100644 packages/intl/patches/@lingui+cli+5.1.2.patch rename packages/sodium/patches/{libsodium-sumo+0.7.15.patch => libsodium-sumo@0.7.15.patch} (99%) diff --git a/apps/web/package.json b/apps/web/package.json index 9a4c37935..b92cd4860 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -135,8 +135,7 @@ "build:beta": "PLATFORM=web BETA=true vite build", "build:desktop": "PLATFORM=desktop vite build", "analyze": "ANALYZING=true PLATFORM=web vite build", - "test": "playwright test -u", - "postinstall": "patch-package" + "test": "playwright test -u" }, "browserslist": { "production": [ diff --git a/packages/clipper/bun.lock b/packages/clipper/bun.lock index bcc58cc62..cf1d754b0 100644 --- a/packages/clipper/bun.lock +++ b/packages/clipper/bun.lock @@ -16,6 +16,9 @@ }, }, }, + "patchedDependencies": { + "css-what@6.1.0": "patches/css-what@6.1.0.patch", + }, "packages": { "@emnapi/core": ["@emnapi/core@1.5.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg=="], diff --git a/packages/clipper/package.json b/packages/clipper/package.json index 8e3d3b0e7..ebc03c583 100644 --- a/packages/clipper/package.json +++ b/packages/clipper/package.json @@ -25,7 +25,6 @@ "build": "tsc && bunx rsbuild build", "prepublishOnly": "bun run build", "test": "playwright test", - "postinstall": "patch-package", "watch": "tsc --watch" }, "bugs": { @@ -36,5 +35,8 @@ "css-what": "6.1.0", "hyperapp": "^2.0.22", "specificity": "^0.4.1" + }, + "patchedDependencies": { + "css-what@6.1.0": "patches/css-what@6.1.0.patch" } } diff --git a/packages/clipper/patches/css-what+6.1.0.patch b/packages/clipper/patches/css-what@6.1.0.patch similarity index 72% rename from packages/clipper/patches/css-what+6.1.0.patch rename to packages/clipper/patches/css-what@6.1.0.patch index 77539de58..b76b9e2f1 100644 --- a/packages/clipper/patches/css-what+6.1.0.patch +++ b/packages/clipper/patches/css-what@6.1.0.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/css-what/lib/commonjs/stringify.js b/node_modules/css-what/lib/commonjs/stringify.js +diff --git a/lib/commonjs/stringify.js b/lib/commonjs/stringify.js index 158b180..89b5b6c 100644 ---- a/node_modules/css-what/lib/commonjs/stringify.js -+++ b/node_modules/css-what/lib/commonjs/stringify.js +--- a/lib/commonjs/stringify.js ++++ b/lib/commonjs/stringify.js @@ -11,7 +11,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { Object.defineProperty(exports, "__esModule", { value: true }); exports.stringify = void 0; @@ -11,10 +11,10 @@ index 158b180..89b5b6c 100644 var pseudoValChars = __spreadArray(__spreadArray([], attribValChars, true), ["(", ")"], false); var charsToEscapeInAttributeValue = new Set(attribValChars.map(function (c) { return c.charCodeAt(0); })); var charsToEscapeInPseudoValue = new Set(pseudoValChars.map(function (c) { return c.charCodeAt(0); })); -diff --git a/node_modules/css-what/lib/es/stringify.js b/node_modules/css-what/lib/es/stringify.js +diff --git a/lib/es/stringify.js b/lib/es/stringify.js index 5f3b8ef..0ec34f7 100644 ---- a/node_modules/css-what/lib/es/stringify.js -+++ b/node_modules/css-what/lib/es/stringify.js +--- a/lib/es/stringify.js ++++ b/lib/es/stringify.js @@ -1,5 +1,5 @@ import { SelectorType, AttributeAction } from "./types"; -const attribValChars = ["\\", '"']; diff --git a/packages/core/package.json b/packages/core/package.json index 43dab629d..e90f22a79 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -54,7 +54,6 @@ "ws": "^8.13.0" }, "scripts": { - "postinstall": "patch-package", "prebuild": "bun run scripts/prebuild.mjs", "pretest": "bun run scripts/prebuild.mjs", "pretest:e2e": "bun run scripts/prebuild.mjs", @@ -96,5 +95,9 @@ }, "trustedDependencies": [ "better-sqlite3-multiple-ciphers" - ] + ], + "patchedDependencies": { + "@microsoft/signalr@8.0.0": "patches/@microsoft%2Fsignalr@8.0.0.patch", + "html-to-text@9.0.5.patch": "patches/html-to-text@9.0.5.patch" + } } diff --git a/packages/core/patches/@microsoft+signalr+8.0.0.patch b/packages/core/patches/@microsoft%2Fsignalr@8.0.0.patch similarity index 67% rename from packages/core/patches/@microsoft+signalr+8.0.0.patch rename to packages/core/patches/@microsoft%2Fsignalr@8.0.0.patch index 2f0f62d33..9661a0feb 100644 --- a/packages/core/patches/@microsoft+signalr+8.0.0.patch +++ b/packages/core/patches/@microsoft%2Fsignalr@8.0.0.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/@microsoft/signalr/dist/browser/signalr.js b/node_modules/@microsoft/signalr/dist/browser/signalr.js +diff --git a/dist/browser/signalr.js b/dist/browser/signalr.js index 86f7968..9bc9745 100644 ---- a/node_modules/@microsoft/signalr/dist/browser/signalr.js -+++ b/node_modules/@microsoft/signalr/dist/browser/signalr.js +--- a/dist/browser/signalr.js ++++ b/dist/browser/signalr.js @@ -347,7 +347,7 @@ class Platform { // Node apps shouldn't have a window object, but WebWorkers don't either // so we need to check for both WebWorker and window @@ -11,10 +11,10 @@ index 86f7968..9bc9745 100644 } } /** @private */ -diff --git a/node_modules/@microsoft/signalr/dist/cjs/Utils.js b/node_modules/@microsoft/signalr/dist/cjs/Utils.js +diff --git a/dist/cjs/Utils.js b/dist/cjs/Utils.js index 2db55f7..228d318 100644 ---- a/node_modules/@microsoft/signalr/dist/cjs/Utils.js -+++ b/node_modules/@microsoft/signalr/dist/cjs/Utils.js +--- a/dist/cjs/Utils.js ++++ b/dist/cjs/Utils.js @@ -45,7 +45,7 @@ class Platform { // Node apps shouldn't have a window object, but WebWorkers don't either // so we need to check for both WebWorker and window @@ -24,10 +24,10 @@ index 2db55f7..228d318 100644 } } exports.Platform = Platform; -diff --git a/node_modules/@microsoft/signalr/dist/esm/Utils.js b/node_modules/@microsoft/signalr/dist/esm/Utils.js +diff --git a/dist/esm/Utils.js b/dist/esm/Utils.js index a8962ee..2fd2558 100644 ---- a/node_modules/@microsoft/signalr/dist/esm/Utils.js -+++ b/node_modules/@microsoft/signalr/dist/esm/Utils.js +--- a/dist/esm/Utils.js ++++ b/dist/esm/Utils.js @@ -41,7 +41,7 @@ export class Platform { // Node apps shouldn't have a window object, but WebWorkers don't either // so we need to check for both WebWorker and window @@ -37,10 +37,10 @@ index a8962ee..2fd2558 100644 } } /** @private */ -diff --git a/node_modules/@microsoft/signalr/dist/webworker/signalr.js b/node_modules/@microsoft/signalr/dist/webworker/signalr.js +diff --git a/dist/webworker/signalr.js b/dist/webworker/signalr.js index 86f7968..9bc9745 100644 ---- a/node_modules/@microsoft/signalr/dist/webworker/signalr.js -+++ b/node_modules/@microsoft/signalr/dist/webworker/signalr.js +--- a/dist/webworker/signalr.js ++++ b/dist/webworker/signalr.js @@ -347,7 +347,7 @@ class Platform { // Node apps shouldn't have a window object, but WebWorkers don't either // so we need to check for both WebWorker and window diff --git a/packages/core/patches/html-to-text+9.0.5.patch b/packages/core/patches/html-to-text@9.0.5.patch similarity index 63% rename from packages/core/patches/html-to-text+9.0.5.patch rename to packages/core/patches/html-to-text@9.0.5.patch index eca1fb30f..9a709364d 100644 --- a/packages/core/patches/html-to-text+9.0.5.patch +++ b/packages/core/patches/html-to-text@9.0.5.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/html-to-text/lib/html-to-text.cjs b/node_modules/html-to-text/lib/html-to-text.cjs +diff --git a/lib/html-to-text.cjs b/lib/html-to-text.cjs index 6bcef9d..99203a1 100644 ---- a/node_modules/html-to-text/lib/html-to-text.cjs -+++ b/node_modules/html-to-text/lib/html-to-text.cjs +--- a/lib/html-to-text.cjs ++++ b/lib/html-to-text.cjs @@ -1240,6 +1240,7 @@ function recursiveWalk (walk, dom, builder) { case 'tag': { const tagDefinition = builder.picker.pick1(elem); @@ -10,10 +10,10 @@ index 6bcef9d..99203a1 100644 format(elem, walk, builder, tagDefinition.options || {}); break; } -diff --git a/node_modules/html-to-text/lib/html-to-text.mjs b/node_modules/html-to-text/lib/html-to-text.mjs +diff --git a/lib/html-to-text.mjs b/lib/html-to-text.mjs index e42ff85..6659bbc 100644 ---- a/node_modules/html-to-text/lib/html-to-text.mjs -+++ b/node_modules/html-to-text/lib/html-to-text.mjs +--- a/lib/html-to-text.mjs ++++ b/lib/html-to-text.mjs @@ -1232,6 +1232,7 @@ function recursiveWalk (walk, dom, builder) { case 'tag': { const tagDefinition = builder.picker.pick1(elem); diff --git a/packages/editor-mobile/bun.lock b/packages/editor-mobile/bun.lock index 774d34d07..2cf1efb38 100644 --- a/packages/editor-mobile/bun.lock +++ b/packages/editor-mobile/bun.lock @@ -25,259 +25,28 @@ }, "devDependencies": { "@playwright/test": "^1.37.1", + "@rsbuild/core": "^1.5.16", + "@rsbuild/plugin-react": "^1.4.1", "@types/react": "^18.2.39", "@types/react-dom": "^18.2.17", - "react-scripts": "^5.0.1", }, }, }, "packages": { - "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], - - "@apideck/better-ajv-errors": ["@apideck/better-ajv-errors@0.3.6", "", { "dependencies": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", "leven": "^3.1.0" }, "peerDependencies": { "ajv": ">=8" } }, "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA=="], - "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], - "@babel/compat-data": ["@babel/compat-data@7.28.4", "", {}, "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw=="], - - "@babel/core": ["@babel/core@7.28.4", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.4", "@babel/types": "^7.28.4", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA=="], - - "@babel/eslint-parser": ["@babel/eslint-parser@7.28.4", "", { "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.11.0", "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, "sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA=="], - "@babel/generator": ["@babel/generator@7.28.3", "", { "dependencies": { "@babel/parser": "^7.28.3", "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw=="], - "@babel/helper-annotate-as-pure": ["@babel/helper-annotate-as-pure@7.27.3", "", { "dependencies": { "@babel/types": "^7.27.3" } }, "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg=="], - - "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], - - "@babel/helper-create-class-features-plugin": ["@babel/helper-create-class-features-plugin@7.28.3", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/traverse": "^7.28.3", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg=="], - - "@babel/helper-create-regexp-features-plugin": ["@babel/helper-create-regexp-features-plugin@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ=="], - - "@babel/helper-define-polyfill-provider": ["@babel/helper-define-polyfill-provider@0.6.5", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "debug": "^4.4.1", "lodash.debounce": "^4.0.8", "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg=="], - "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], - "@babel/helper-member-expression-to-functions": ["@babel/helper-member-expression-to-functions@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA=="], - "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], - "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.3", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw=="], - - "@babel/helper-optimise-call-expression": ["@babel/helper-optimise-call-expression@7.27.1", "", { "dependencies": { "@babel/types": "^7.27.1" } }, "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw=="], - - "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="], - - "@babel/helper-remap-async-to-generator": ["@babel/helper-remap-async-to-generator@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-wrap-function": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA=="], - - "@babel/helper-replace-supers": ["@babel/helper-replace-supers@7.27.1", "", { "dependencies": { "@babel/helper-member-expression-to-functions": "^7.27.1", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA=="], - - "@babel/helper-skip-transparent-expression-wrappers": ["@babel/helper-skip-transparent-expression-wrappers@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg=="], - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], - "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], - - "@babel/helper-wrap-function": ["@babel/helper-wrap-function@7.28.3", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.3", "@babel/types": "^7.28.2" } }, "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g=="], - - "@babel/helpers": ["@babel/helpers@7.28.4", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], - "@babel/parser": ["@babel/parser@7.28.4", "", { "dependencies": { "@babel/types": "^7.28.4" }, "bin": "./bin/babel-parser.js" }, "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg=="], - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ["@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA=="], - - "@babel/plugin-bugfix-safari-class-field-initializer-scope": ["@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA=="], - - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ["@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA=="], - - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ["@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.13.0" } }, "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw=="], - - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ["@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw=="], - - "@babel/plugin-proposal-class-properties": ["@babel/plugin-proposal-class-properties@7.18.6", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ=="], - - "@babel/plugin-proposal-decorators": ["@babel/plugin-proposal-decorators@7.28.0", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-decorators": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg=="], - - "@babel/plugin-proposal-nullish-coalescing-operator": ["@babel/plugin-proposal-nullish-coalescing-operator@7.18.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA=="], - - "@babel/plugin-proposal-numeric-separator": ["@babel/plugin-proposal-numeric-separator@7.18.6", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q=="], - - "@babel/plugin-proposal-optional-chaining": ["@babel/plugin-proposal-optional-chaining@7.21.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA=="], - - "@babel/plugin-proposal-private-methods": ["@babel/plugin-proposal-private-methods@7.18.6", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA=="], - - "@babel/plugin-proposal-private-property-in-object": ["@babel/plugin-proposal-private-property-in-object@7.21.11", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.21.0", "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw=="], - - "@babel/plugin-syntax-async-generators": ["@babel/plugin-syntax-async-generators@7.8.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw=="], - - "@babel/plugin-syntax-bigint": ["@babel/plugin-syntax-bigint@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg=="], - - "@babel/plugin-syntax-class-properties": ["@babel/plugin-syntax-class-properties@7.12.13", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA=="], - - "@babel/plugin-syntax-class-static-block": ["@babel/plugin-syntax-class-static-block@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw=="], - - "@babel/plugin-syntax-decorators": ["@babel/plugin-syntax-decorators@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A=="], - - "@babel/plugin-syntax-flow": ["@babel/plugin-syntax-flow@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA=="], - - "@babel/plugin-syntax-import-assertions": ["@babel/plugin-syntax-import-assertions@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg=="], - - "@babel/plugin-syntax-import-attributes": ["@babel/plugin-syntax-import-attributes@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww=="], - - "@babel/plugin-syntax-import-meta": ["@babel/plugin-syntax-import-meta@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g=="], - - "@babel/plugin-syntax-json-strings": ["@babel/plugin-syntax-json-strings@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA=="], - - "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w=="], - - "@babel/plugin-syntax-logical-assignment-operators": ["@babel/plugin-syntax-logical-assignment-operators@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig=="], - - "@babel/plugin-syntax-nullish-coalescing-operator": ["@babel/plugin-syntax-nullish-coalescing-operator@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ=="], - - "@babel/plugin-syntax-numeric-separator": ["@babel/plugin-syntax-numeric-separator@7.10.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug=="], - - "@babel/plugin-syntax-object-rest-spread": ["@babel/plugin-syntax-object-rest-spread@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA=="], - - "@babel/plugin-syntax-optional-catch-binding": ["@babel/plugin-syntax-optional-catch-binding@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q=="], - - "@babel/plugin-syntax-optional-chaining": ["@babel/plugin-syntax-optional-chaining@7.8.3", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg=="], - - "@babel/plugin-syntax-private-property-in-object": ["@babel/plugin-syntax-private-property-in-object@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg=="], - - "@babel/plugin-syntax-top-level-await": ["@babel/plugin-syntax-top-level-await@7.14.5", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw=="], - - "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ=="], - - "@babel/plugin-syntax-unicode-sets-regex": ["@babel/plugin-syntax-unicode-sets-regex@7.18.6", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg=="], - - "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA=="], - - "@babel/plugin-transform-async-generator-functions": ["@babel/plugin-transform-async-generator-functions@7.28.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1", "@babel/traverse": "^7.28.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q=="], - - "@babel/plugin-transform-async-to-generator": ["@babel/plugin-transform-async-to-generator@7.27.1", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-remap-async-to-generator": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA=="], - - "@babel/plugin-transform-block-scoped-functions": ["@babel/plugin-transform-block-scoped-functions@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg=="], - - "@babel/plugin-transform-block-scoping": ["@babel/plugin-transform-block-scoping@7.28.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A=="], - - "@babel/plugin-transform-class-properties": ["@babel/plugin-transform-class-properties@7.27.1", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA=="], - - "@babel/plugin-transform-class-static-block": ["@babel/plugin-transform-class-static-block@7.28.3", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.3", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg=="], - - "@babel/plugin-transform-classes": ["@babel/plugin-transform-classes@7.28.4", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA=="], - - "@babel/plugin-transform-computed-properties": ["@babel/plugin-transform-computed-properties@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/template": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw=="], - - "@babel/plugin-transform-destructuring": ["@babel/plugin-transform-destructuring@7.28.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.28.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A=="], - - "@babel/plugin-transform-dotall-regex": ["@babel/plugin-transform-dotall-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw=="], - - "@babel/plugin-transform-duplicate-keys": ["@babel/plugin-transform-duplicate-keys@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q=="], - - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ["@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ=="], - - "@babel/plugin-transform-dynamic-import": ["@babel/plugin-transform-dynamic-import@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A=="], - - "@babel/plugin-transform-explicit-resource-management": ["@babel/plugin-transform-explicit-resource-management@7.28.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ=="], - - "@babel/plugin-transform-exponentiation-operator": ["@babel/plugin-transform-exponentiation-operator@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ=="], - - "@babel/plugin-transform-export-namespace-from": ["@babel/plugin-transform-export-namespace-from@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ=="], - - "@babel/plugin-transform-flow-strip-types": ["@babel/plugin-transform-flow-strip-types@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-flow": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg=="], - - "@babel/plugin-transform-for-of": ["@babel/plugin-transform-for-of@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw=="], - - "@babel/plugin-transform-function-name": ["@babel/plugin-transform-function-name@7.27.1", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ=="], - - "@babel/plugin-transform-json-strings": ["@babel/plugin-transform-json-strings@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q=="], - - "@babel/plugin-transform-literals": ["@babel/plugin-transform-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA=="], - - "@babel/plugin-transform-logical-assignment-operators": ["@babel/plugin-transform-logical-assignment-operators@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw=="], - - "@babel/plugin-transform-member-expression-literals": ["@babel/plugin-transform-member-expression-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ=="], - - "@babel/plugin-transform-modules-amd": ["@babel/plugin-transform-modules-amd@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA=="], - - "@babel/plugin-transform-modules-commonjs": ["@babel/plugin-transform-modules-commonjs@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw=="], - - "@babel/plugin-transform-modules-systemjs": ["@babel/plugin-transform-modules-systemjs@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA=="], - - "@babel/plugin-transform-modules-umd": ["@babel/plugin-transform-modules-umd@7.27.1", "", { "dependencies": { "@babel/helper-module-transforms": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w=="], - - "@babel/plugin-transform-named-capturing-groups-regex": ["@babel/plugin-transform-named-capturing-groups-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng=="], - - "@babel/plugin-transform-new-target": ["@babel/plugin-transform-new-target@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ=="], - - "@babel/plugin-transform-nullish-coalescing-operator": ["@babel/plugin-transform-nullish-coalescing-operator@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA=="], - - "@babel/plugin-transform-numeric-separator": ["@babel/plugin-transform-numeric-separator@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw=="], - - "@babel/plugin-transform-object-rest-spread": ["@babel/plugin-transform-object-rest-spread@7.28.4", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew=="], - - "@babel/plugin-transform-object-super": ["@babel/plugin-transform-object-super@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng=="], - - "@babel/plugin-transform-optional-catch-binding": ["@babel/plugin-transform-optional-catch-binding@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q=="], - - "@babel/plugin-transform-optional-chaining": ["@babel/plugin-transform-optional-chaining@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg=="], - - "@babel/plugin-transform-parameters": ["@babel/plugin-transform-parameters@7.27.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg=="], - - "@babel/plugin-transform-private-methods": ["@babel/plugin-transform-private-methods@7.27.1", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA=="], - - "@babel/plugin-transform-private-property-in-object": ["@babel/plugin-transform-private-property-in-object@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ=="], - - "@babel/plugin-transform-property-literals": ["@babel/plugin-transform-property-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ=="], - - "@babel/plugin-transform-react-constant-elements": ["@babel/plugin-transform-react-constant-elements@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug=="], - - "@babel/plugin-transform-react-display-name": ["@babel/plugin-transform-react-display-name@7.28.0", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA=="], - - "@babel/plugin-transform-react-jsx": ["@babel/plugin-transform-react-jsx@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-module-imports": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/types": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw=="], - - "@babel/plugin-transform-react-jsx-development": ["@babel/plugin-transform-react-jsx-development@7.27.1", "", { "dependencies": { "@babel/plugin-transform-react-jsx": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q=="], - - "@babel/plugin-transform-react-pure-annotations": ["@babel/plugin-transform-react-pure-annotations@7.27.1", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA=="], - - "@babel/plugin-transform-regenerator": ["@babel/plugin-transform-regenerator@7.28.4", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA=="], - - "@babel/plugin-transform-regexp-modifiers": ["@babel/plugin-transform-regexp-modifiers@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA=="], - - "@babel/plugin-transform-reserved-words": ["@babel/plugin-transform-reserved-words@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw=="], - - "@babel/plugin-transform-runtime": ["@babel/plugin-transform-runtime@7.28.3", "", { "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", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg=="], - - "@babel/plugin-transform-shorthand-properties": ["@babel/plugin-transform-shorthand-properties@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ=="], - - "@babel/plugin-transform-spread": ["@babel/plugin-transform-spread@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q=="], - - "@babel/plugin-transform-sticky-regex": ["@babel/plugin-transform-sticky-regex@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g=="], - - "@babel/plugin-transform-template-literals": ["@babel/plugin-transform-template-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg=="], - - "@babel/plugin-transform-typeof-symbol": ["@babel/plugin-transform-typeof-symbol@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw=="], - - "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.28.0", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg=="], - - "@babel/plugin-transform-unicode-escapes": ["@babel/plugin-transform-unicode-escapes@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg=="], - - "@babel/plugin-transform-unicode-property-regex": ["@babel/plugin-transform-unicode-property-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q=="], - - "@babel/plugin-transform-unicode-regex": ["@babel/plugin-transform-unicode-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw=="], - - "@babel/plugin-transform-unicode-sets-regex": ["@babel/plugin-transform-unicode-sets-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw=="], - - "@babel/preset-env": ["@babel/preset-env@7.28.3", "", { "dependencies": { "@babel/compat-data": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-import-assertions": "^7.27.1", "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", "@babel/plugin-transform-async-generator-functions": "^7.28.0", "@babel/plugin-transform-async-to-generator": "^7.27.1", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", "@babel/plugin-transform-block-scoping": "^7.28.0", "@babel/plugin-transform-class-properties": "^7.27.1", "@babel/plugin-transform-class-static-block": "^7.28.3", "@babel/plugin-transform-classes": "^7.28.3", "@babel/plugin-transform-computed-properties": "^7.27.1", "@babel/plugin-transform-destructuring": "^7.28.0", "@babel/plugin-transform-dotall-regex": "^7.27.1", "@babel/plugin-transform-duplicate-keys": "^7.27.1", "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.0", "@babel/plugin-transform-exponentiation-operator": "^7.27.1", "@babel/plugin-transform-export-namespace-from": "^7.27.1", "@babel/plugin-transform-for-of": "^7.27.1", "@babel/plugin-transform-function-name": "^7.27.1", "@babel/plugin-transform-json-strings": "^7.27.1", "@babel/plugin-transform-literals": "^7.27.1", "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-modules-systemjs": "^7.27.1", "@babel/plugin-transform-modules-umd": "^7.27.1", "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", "@babel/plugin-transform-numeric-separator": "^7.27.1", "@babel/plugin-transform-object-rest-spread": "^7.28.0", "@babel/plugin-transform-object-super": "^7.27.1", "@babel/plugin-transform-optional-catch-binding": "^7.27.1", "@babel/plugin-transform-optional-chaining": "^7.27.1", "@babel/plugin-transform-parameters": "^7.27.7", "@babel/plugin-transform-private-methods": "^7.27.1", "@babel/plugin-transform-private-property-in-object": "^7.27.1", "@babel/plugin-transform-property-literals": "^7.27.1", "@babel/plugin-transform-regenerator": "^7.28.3", "@babel/plugin-transform-regexp-modifiers": "^7.27.1", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", "@babel/plugin-transform-spread": "^7.27.1", "@babel/plugin-transform-sticky-regex": "^7.27.1", "@babel/plugin-transform-template-literals": "^7.27.1", "@babel/plugin-transform-typeof-symbol": "^7.27.1", "@babel/plugin-transform-unicode-escapes": "^7.27.1", "@babel/plugin-transform-unicode-property-regex": "^7.27.1", "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", "core-js-compat": "^3.43.0", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg=="], - - "@babel/preset-modules": ["@babel/preset-modules@0.1.6-no-external-plugins", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA=="], - - "@babel/preset-react": ["@babel/preset-react@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-transform-react-display-name": "^7.27.1", "@babel/plugin-transform-react-jsx": "^7.27.1", "@babel/plugin-transform-react-jsx-development": "^7.27.1", "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA=="], - - "@babel/preset-typescript": ["@babel/preset-typescript@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-validator-option": "^7.27.1", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.27.1", "@babel/plugin-transform-typescript": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ=="], - "@babel/runtime": ["@babel/runtime@7.28.4", "", {}, "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ=="], "@babel/template": ["@babel/template@7.27.2", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], @@ -286,39 +55,11 @@ "@babel/types": ["@babel/types@7.28.4", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q=="], - "@bcoe/v8-coverage": ["@bcoe/v8-coverage@0.2.3", "", {}, "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="], + "@emnapi/core": ["@emnapi/core@1.5.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg=="], - "@csstools/normalize.css": ["@csstools/normalize.css@12.1.1", "", {}, "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ=="], + "@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="], - "@csstools/postcss-cascade-layers": ["@csstools/postcss-cascade-layers@1.1.1", "", { "dependencies": { "@csstools/selector-specificity": "^2.0.2", "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA=="], - - "@csstools/postcss-color-function": ["@csstools/postcss-color-function@1.1.1", "", { "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw=="], - - "@csstools/postcss-font-format-keywords": ["@csstools/postcss-font-format-keywords@1.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg=="], - - "@csstools/postcss-hwb-function": ["@csstools/postcss-hwb-function@1.0.2", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w=="], - - "@csstools/postcss-ic-unit": ["@csstools/postcss-ic-unit@1.0.1", "", { "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw=="], - - "@csstools/postcss-is-pseudo-class": ["@csstools/postcss-is-pseudo-class@2.0.7", "", { "dependencies": { "@csstools/selector-specificity": "^2.0.0", "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA=="], - - "@csstools/postcss-nested-calc": ["@csstools/postcss-nested-calc@1.0.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ=="], - - "@csstools/postcss-normalize-display-values": ["@csstools/postcss-normalize-display-values@1.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw=="], - - "@csstools/postcss-oklab-function": ["@csstools/postcss-oklab-function@1.1.1", "", { "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA=="], - - "@csstools/postcss-progressive-custom-properties": ["@csstools/postcss-progressive-custom-properties@1.3.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.3" } }, "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA=="], - - "@csstools/postcss-stepped-value-functions": ["@csstools/postcss-stepped-value-functions@1.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ=="], - - "@csstools/postcss-text-decoration-shorthand": ["@csstools/postcss-text-decoration-shorthand@1.0.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw=="], - - "@csstools/postcss-trigonometric-functions": ["@csstools/postcss-trigonometric-functions@1.0.2", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og=="], - - "@csstools/postcss-unset-value": ["@csstools/postcss-unset-value@1.0.2", "", { "peerDependencies": { "postcss": "^8.2" } }, "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g=="], - - "@csstools/selector-specificity": ["@csstools/selector-specificity@2.2.0", "", { "peerDependencies": { "postcss-selector-parser": "^6.0.10" } }, "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw=="], + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], "@emotion/babel-plugin": ["@emotion/babel-plugin@11.13.5", "", { "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", "@emotion/serialize": "^1.3.3", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", "stylis": "4.2.0" } }, "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ=="], @@ -342,64 +83,14 @@ "@emotion/weak-memoize": ["@emotion/weak-memoize@0.3.1", "", {}, "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww=="], - "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], - - "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="], - - "@eslint/eslintrc": ["@eslint/eslintrc@2.1.4", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ=="], - - "@eslint/js": ["@eslint/js@8.57.1", "", {}, "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q=="], - - "@humanwhocodes/config-array": ["@humanwhocodes/config-array@0.13.0", "", { "dependencies": { "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" } }, "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw=="], - - "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], - - "@humanwhocodes/object-schema": ["@humanwhocodes/object-schema@2.0.3", "", {}, "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA=="], - - "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], - - "@istanbuljs/load-nyc-config": ["@istanbuljs/load-nyc-config@1.1.0", "", { "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" } }, "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ=="], - - "@istanbuljs/schema": ["@istanbuljs/schema@0.1.3", "", {}, "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA=="], - - "@jest/console": ["@jest/console@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "jest-message-util": "^27.5.1", "jest-util": "^27.5.1", "slash": "^3.0.0" } }, "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg=="], - - "@jest/core": ["@jest/core@27.5.1", "", { "dependencies": { "@jest/console": "^27.5.1", "@jest/reporters": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^27.5.1", "jest-config": "^27.5.1", "jest-haste-map": "^27.5.1", "jest-message-util": "^27.5.1", "jest-regex-util": "^27.5.1", "jest-resolve": "^27.5.1", "jest-resolve-dependencies": "^27.5.1", "jest-runner": "^27.5.1", "jest-runtime": "^27.5.1", "jest-snapshot": "^27.5.1", "jest-util": "^27.5.1", "jest-validate": "^27.5.1", "jest-watcher": "^27.5.1", "micromatch": "^4.0.4", "rimraf": "^3.0.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ=="], - - "@jest/environment": ["@jest/environment@27.5.1", "", { "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "jest-mock": "^27.5.1" } }, "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA=="], - - "@jest/fake-timers": ["@jest/fake-timers@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", "@types/node": "*", "jest-message-util": "^27.5.1", "jest-mock": "^27.5.1", "jest-util": "^27.5.1" } }, "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ=="], - - "@jest/globals": ["@jest/globals@27.5.1", "", { "dependencies": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", "expect": "^27.5.1" } }, "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q=="], - - "@jest/reporters": ["@jest/reporters@27.5.1", "", { "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.2", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", "jest-haste-map": "^27.5.1", "jest-resolve": "^27.5.1", "jest-util": "^27.5.1", "jest-worker": "^27.5.1", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", "terminal-link": "^2.0.0", "v8-to-istanbul": "^8.1.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"] }, "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw=="], - - "@jest/schemas": ["@jest/schemas@28.1.3", "", { "dependencies": { "@sinclair/typebox": "^0.24.1" } }, "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg=="], - - "@jest/source-map": ["@jest/source-map@27.5.1", "", { "dependencies": { "callsites": "^3.0.0", "graceful-fs": "^4.2.9", "source-map": "^0.6.0" } }, "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg=="], - - "@jest/test-result": ["@jest/test-result@27.5.1", "", { "dependencies": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag=="], - - "@jest/test-sequencer": ["@jest/test-sequencer@27.5.1", "", { "dependencies": { "@jest/test-result": "^27.5.1", "graceful-fs": "^4.2.9", "jest-haste-map": "^27.5.1", "jest-runtime": "^27.5.1" } }, "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ=="], - - "@jest/transform": ["@jest/transform@27.5.1", "", { "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^27.5.1", "jest-regex-util": "^27.5.1", "jest-util": "^27.5.1", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" } }, "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw=="], - - "@jest/types": ["@jest/types@27.5.1", "", { "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^16.0.0", "chalk": "^4.0.0" } }, "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw=="], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], - "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], - "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], - "@jridgewell/source-map": ["@jridgewell/source-map@0.3.11", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" } }, "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA=="], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@leichtgewicht/ip-codec": ["@leichtgewicht/ip-codec@2.0.5", "", {}, "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw=="], - "@lingui/core": ["@lingui/core@5.1.2", "", { "dependencies": { "@babel/runtime": "^7.20.13", "@lingui/message-utils": "^5.1.2", "unraw": "^3.0.0" }, "peerDependencies": { "@lingui/babel-plugin-lingui-macro": "5.1.2", "babel-plugin-macros": "2 || 3" }, "optionalPeers": ["@lingui/babel-plugin-lingui-macro", "babel-plugin-macros"] }, "sha512-biqmMCWuBBj7ERSpgGSV91hTShnSrR/RIFUcNKjWuZYgDd3HpBdEmXKCo9NTanQYbkBUpmyw/bgwsSBex6vkDA=="], "@lingui/message-utils": ["@lingui/message-utils@5.5.1", "", { "dependencies": { "@messageformat/parser": "^5.0.0", "js-sha256": "^0.10.1" } }, "sha512-RV3WjkSDTYIhNQwAj5MUHjpfOgPJFBXDuBW3aFZZmPqAkFrSJJbrKxVmBoja59b3CEX5QuCGOHnijrCehBpU+w=="], @@ -412,13 +103,19 @@ "@messageformat/parser": ["@messageformat/parser@5.1.1", "", { "dependencies": { "moo": "^0.5.1" } }, "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg=="], - "@nicolo-ribaudo/eslint-scope-5-internals": ["@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1", "", { "dependencies": { "eslint-scope": "5.1.1" } }, "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg=="], + "@module-federation/error-codes": ["@module-federation/error-codes@0.18.0", "", {}, "sha512-Woonm8ehyVIUPXChmbu80Zj6uJkC0dD9SJUZ/wOPtO8iiz/m+dkrOugAuKgoiR6qH4F+yorWila954tBz4uKsQ=="], - "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + "@module-federation/runtime": ["@module-federation/runtime@0.18.0", "", { "dependencies": { "@module-federation/error-codes": "0.18.0", "@module-federation/runtime-core": "0.18.0", "@module-federation/sdk": "0.18.0" } }, "sha512-+C4YtoSztM7nHwNyZl6dQKGUVJdsPrUdaf3HIKReg/GQbrt9uvOlUWo2NXMZ8vDAnf/QRrpSYAwXHmWDn9Obaw=="], - "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + "@module-federation/runtime-core": ["@module-federation/runtime-core@0.18.0", "", { "dependencies": { "@module-federation/error-codes": "0.18.0", "@module-federation/sdk": "0.18.0" } }, "sha512-ZyYhrDyVAhUzriOsVfgL6vwd+5ebYm595Y13KeMf6TKDRoUHBMTLGQ8WM4TDj8JNsy7LigncK8C03fn97of0QQ=="], - "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + "@module-federation/runtime-tools": ["@module-federation/runtime-tools@0.18.0", "", { "dependencies": { "@module-federation/runtime": "0.18.0", "@module-federation/webpack-bundler-runtime": "0.18.0" } }, "sha512-fSga9o4t1UfXNV/Kh6qFvRyZpPp3EHSPRISNeyT8ZoTpzDNiYzhtw0BPUSSD8m6C6XQh2s/11rI4g80UY+d+hA=="], + + "@module-federation/sdk": ["@module-federation/sdk@0.18.0", "", {}, "sha512-Lo/Feq73tO2unjmpRfyyoUkTVoejhItXOk/h5C+4cistnHbTV8XHrW/13fD5e1Iu60heVdAhhelJd6F898Ve9A=="], + + "@module-federation/webpack-bundler-runtime": ["@module-federation/webpack-bundler-runtime@0.18.0", "", { "dependencies": { "@module-federation/runtime": "0.18.0", "@module-federation/sdk": "0.18.0" } }, "sha512-TEvErbF+YQ+6IFimhUYKK3a5wapD90d90sLsNpcu2kB3QGT7t4nIluE25duXuZDVUKLz86tEPrza/oaaCWTpvQ=="], + + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" } }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="], "@notesnook/common": ["@notesnook/common@link:@notesnook/common", {}], @@ -428,2418 +125,182 @@ "@notesnook/theme": ["@notesnook/theme@link:@notesnook/theme", {}], - "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], - "@playwright/test": ["@playwright/test@1.56.0", "", { "dependencies": { "playwright": "1.56.0" }, "bin": { "playwright": "cli.js" } }, "sha512-Tzh95Twig7hUwwNe381/K3PggZBZblKUe2wv25oIpzWLr6Z0m4KgV1ZVIjnR6GM9ANEqjZD7XsZEa6JL/7YEgg=="], - "@pmmmwh/react-refresh-webpack-plugin": ["@pmmmwh/react-refresh-webpack-plugin@0.5.17", "", { "dependencies": { "ansi-html": "^0.0.9", "core-js-pure": "^3.23.3", "error-stack-parser": "^2.0.6", "html-entities": "^2.1.0", "loader-utils": "^2.0.4", "schema-utils": "^4.2.0", "source-map": "^0.7.3" }, "peerDependencies": { "@types/webpack": "4.x || 5.x", "react-refresh": ">=0.10.0 <1.0.0", "sockjs-client": "^1.4.0", "type-fest": ">=0.17.0 <5.0.0", "webpack": ">=4.43.0 <6.0.0", "webpack-dev-server": "3.x || 4.x || 5.x", "webpack-hot-middleware": "2.x", "webpack-plugin-serve": "0.x || 1.x" }, "optionalPeers": ["@types/webpack", "sockjs-client", "type-fest", "webpack-dev-server", "webpack-hot-middleware", "webpack-plugin-serve"] }, "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ=="], + "@rsbuild/core": ["@rsbuild/core@1.5.16", "", { "dependencies": { "@rspack/core": "1.5.8", "@rspack/lite-tapable": "~1.0.1", "@swc/helpers": "^0.5.17", "core-js": "~3.45.1", "jiti": "^2.6.1" }, "bin": { "rsbuild": "bin/rsbuild.js" } }, "sha512-AMvyPmpyAF5RfSY70oWiByP/h0mbi3KOgHUsuYapWXtfPTYM/fpvfuEgqc4DZI5YCzZsY5JcEAfG1EmR7I0AXw=="], - "@rollup/plugin-babel": ["@rollup/plugin-babel@5.3.1", "", { "dependencies": { "@babel/helper-module-imports": "^7.10.4", "@rollup/pluginutils": "^3.1.0" }, "peerDependencies": { "@babel/core": "^7.0.0", "@types/babel__core": "^7.1.9", "rollup": "^1.20.0||^2.0.0" }, "optionalPeers": ["@types/babel__core"] }, "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q=="], + "@rsbuild/plugin-react": ["@rsbuild/plugin-react@1.4.1", "", { "dependencies": { "@rspack/plugin-react-refresh": "^1.5.1", "react-refresh": "^0.17.0" }, "peerDependencies": { "@rsbuild/core": "1.x" } }, "sha512-kahvnfRPQTsG0tReR6h0KuVfyjKJfpv/PoU5qW5SDkON7vmbGn8Jx7l3fI+yU3lR/7qDiAO19QnNjkqxPsFT3Q=="], - "@rollup/plugin-node-resolve": ["@rollup/plugin-node-resolve@11.2.1", "", { "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", "is-module": "^1.0.0", "resolve": "^1.19.0" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0" } }, "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg=="], + "@rspack/binding": ["@rspack/binding@1.5.8", "", { "optionalDependencies": { "@rspack/binding-darwin-arm64": "1.5.8", "@rspack/binding-darwin-x64": "1.5.8", "@rspack/binding-linux-arm64-gnu": "1.5.8", "@rspack/binding-linux-arm64-musl": "1.5.8", "@rspack/binding-linux-x64-gnu": "1.5.8", "@rspack/binding-linux-x64-musl": "1.5.8", "@rspack/binding-wasm32-wasi": "1.5.8", "@rspack/binding-win32-arm64-msvc": "1.5.8", "@rspack/binding-win32-ia32-msvc": "1.5.8", "@rspack/binding-win32-x64-msvc": "1.5.8" } }, "sha512-/91CzhRl9r5BIQCgGsS7jA6MDbw1I2BQpbfcUUdkdKl2P79K3Zo/Mw/TvKzS86catwLaUQEgkGRmYawOfPg7ow=="], - "@rollup/plugin-replace": ["@rollup/plugin-replace@2.4.2", "", { "dependencies": { "@rollup/pluginutils": "^3.1.0", "magic-string": "^0.25.7" }, "peerDependencies": { "rollup": "^1.20.0 || ^2.0.0" } }, "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg=="], + "@rspack/binding-darwin-arm64": ["@rspack/binding-darwin-arm64@1.5.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-spJfpOSN3f7V90ic45/ET2NKB2ujAViCNmqb0iGurMNQtFRq+7Kd+jvVKKGXKBHBbsQrFhidSWbbqy2PBPGK8g=="], - "@rollup/pluginutils": ["@rollup/pluginutils@3.1.0", "", { "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0" } }, "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg=="], + "@rspack/binding-darwin-x64": ["@rspack/binding-darwin-x64@1.5.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-YFOzeL1IBknBcri8vjUp43dfUBylCeQnD+9O9p0wZmLAw7DtpN5JEOe2AkGo8kdTqJjYKI+cczJPKIw6lu1LWw=="], - "@rtsao/scc": ["@rtsao/scc@1.1.0", "", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], + "@rspack/binding-linux-arm64-gnu": ["@rspack/binding-linux-arm64-gnu@1.5.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-UAWCsOnpkvy8eAVRo0uipbHXDhnoDq5zmqWTMhpga0/a3yzCp2e+fnjZb/qnFNYb5MeL0O1mwMOYgn1M3oHILQ=="], - "@rushstack/eslint-patch": ["@rushstack/eslint-patch@1.13.0", "", {}, "sha512-2ih5qGw5SZJ+2fLZxP6Lr6Na2NTIgPRL/7Kmyuw0uIyBQnuhQ8fi8fzUTd38eIQmqp+GYLC00cI6WgtqHxBwmw=="], + "@rspack/binding-linux-arm64-musl": ["@rspack/binding-linux-arm64-musl@1.5.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-GnSvGT4GjokPSD45cTtE+g7LgghuxSP1MRmvd+Vp/I8pnxTVSTsebRod4TAqyiv+l11nuS8yqNveK9qiOkBLWw=="], - "@sinclair/typebox": ["@sinclair/typebox@0.24.51", "", {}, "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA=="], + "@rspack/binding-linux-x64-gnu": ["@rspack/binding-linux-x64-gnu@1.5.8", "", { "os": "linux", "cpu": "x64" }, "sha512-XLxh5n/pzUfxsugz/8rVBv+Tx2nqEM+9rharK69kfooDsQNKyz7PANllBQ/v4svJ+W0BRHnDL4qXSGdteZeEjA=="], - "@sinonjs/commons": ["@sinonjs/commons@1.8.6", "", { "dependencies": { "type-detect": "4.0.8" } }, "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ=="], + "@rspack/binding-linux-x64-musl": ["@rspack/binding-linux-x64-musl@1.5.8", "", { "os": "linux", "cpu": "x64" }, "sha512-gE0+MZmwF+01p9/svpEESkzkLpBkVUG2o03YMpwXYC/maeRRhWvF8BJ7R3i/Ls/jFGSE87dKX5NbRLVzqksq/w=="], - "@sinonjs/fake-timers": ["@sinonjs/fake-timers@8.1.0", "", { "dependencies": { "@sinonjs/commons": "^1.7.0" } }, "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg=="], + "@rspack/binding-wasm32-wasi": ["@rspack/binding-wasm32-wasi@1.5.8", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.0.5" }, "cpu": "none" }, "sha512-cfg3niNHeJuxuml1Vy9VvaJrI/5TakzoaZvKX2g5S24wfzR50Eyy4JAsZ+L2voWQQp1yMJbmPYPmnTCTxdJQBQ=="], - "@surma/rollup-plugin-off-main-thread": ["@surma/rollup-plugin-off-main-thread@2.2.3", "", { "dependencies": { "ejs": "^3.1.6", "json5": "^2.2.0", "magic-string": "^0.25.0", "string.prototype.matchall": "^4.0.6" } }, "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ=="], + "@rspack/binding-win32-arm64-msvc": ["@rspack/binding-win32-arm64-msvc@1.5.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-7i3ZTHFXKfU/9Jm9XhpMkrdkxO7lfeYMNVEGkuU5dyBfRMQj69dRgPL7zJwc2plXiqu9LUOl+TwDNTjap7Q36g=="], - "@svgr/babel-plugin-add-jsx-attribute": ["@svgr/babel-plugin-add-jsx-attribute@5.4.0", "", {}, "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg=="], + "@rspack/binding-win32-ia32-msvc": ["@rspack/binding-win32-ia32-msvc@1.5.8", "", { "os": "win32", "cpu": "ia32" }, "sha512-7ZPPWO11J+soea1+mnfaPpQt7GIodBM7A86dx6PbXgVEoZmetcWPrCF2NBfXxQWOKJ9L3RYltC4z+ZyXRgMOrw=="], - "@svgr/babel-plugin-remove-jsx-attribute": ["@svgr/babel-plugin-remove-jsx-attribute@5.4.0", "", {}, "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg=="], + "@rspack/binding-win32-x64-msvc": ["@rspack/binding-win32-x64-msvc@1.5.8", "", { "os": "win32", "cpu": "x64" }, "sha512-N/zXQgzIxME3YUzXT8qnyzxjqcnXudWOeDh8CAG9zqTCnCiy16SFfQ/cQgEoLlD9geQntV6jx2GbDDI5kpDGMQ=="], - "@svgr/babel-plugin-remove-jsx-empty-expression": ["@svgr/babel-plugin-remove-jsx-empty-expression@5.0.1", "", {}, "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA=="], + "@rspack/core": ["@rspack/core@1.5.8", "", { "dependencies": { "@module-federation/runtime-tools": "0.18.0", "@rspack/binding": "1.5.8", "@rspack/lite-tapable": "1.0.1" }, "peerDependencies": { "@swc/helpers": ">=0.5.1" }, "optionalPeers": ["@swc/helpers"] }, "sha512-sUd2LfiDhqYVfvknuoz0+/c+wSpn693xotnG5g1CSWKZArbtwiYzBIVnNlcHGmuoBRsnj/TkSq8dTQ7gwfBroQ=="], - "@svgr/babel-plugin-replace-jsx-attribute-value": ["@svgr/babel-plugin-replace-jsx-attribute-value@5.0.1", "", {}, "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ=="], + "@rspack/lite-tapable": ["@rspack/lite-tapable@1.0.1", "", {}, "sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w=="], - "@svgr/babel-plugin-svg-dynamic-title": ["@svgr/babel-plugin-svg-dynamic-title@5.4.0", "", {}, "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg=="], + "@rspack/plugin-react-refresh": ["@rspack/plugin-react-refresh@1.5.1", "", { "dependencies": { "error-stack-parser": "^2.1.4", "html-entities": "^2.6.0" }, "peerDependencies": { "react-refresh": ">=0.10.0 <1.0.0", "webpack-hot-middleware": "2.x" }, "optionalPeers": ["webpack-hot-middleware"] }, "sha512-GT3KV1GSmIXO8dQg6taNf9AuZ8XHEs8cZqRn5mC2GT6DPCvUA/ZKezIGsHTyH+HMEbJnJ/T8yYeJnvnzuUcqAQ=="], - "@svgr/babel-plugin-svg-em-dimensions": ["@svgr/babel-plugin-svg-em-dimensions@5.4.0", "", {}, "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw=="], - - "@svgr/babel-plugin-transform-react-native-svg": ["@svgr/babel-plugin-transform-react-native-svg@5.4.0", "", {}, "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q=="], - - "@svgr/babel-plugin-transform-svg-component": ["@svgr/babel-plugin-transform-svg-component@5.5.0", "", {}, "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ=="], - - "@svgr/babel-preset": ["@svgr/babel-preset@5.5.0", "", { "dependencies": { "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", "@svgr/babel-plugin-transform-svg-component": "^5.5.0" } }, "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig=="], - - "@svgr/core": ["@svgr/core@5.5.0", "", { "dependencies": { "@svgr/plugin-jsx": "^5.5.0", "camelcase": "^6.2.0", "cosmiconfig": "^7.0.0" } }, "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ=="], - - "@svgr/hast-util-to-babel-ast": ["@svgr/hast-util-to-babel-ast@5.5.0", "", { "dependencies": { "@babel/types": "^7.12.6" } }, "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ=="], - - "@svgr/plugin-jsx": ["@svgr/plugin-jsx@5.5.0", "", { "dependencies": { "@babel/core": "^7.12.3", "@svgr/babel-preset": "^5.5.0", "@svgr/hast-util-to-babel-ast": "^5.5.0", "svg-parser": "^2.0.2" } }, "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA=="], - - "@svgr/plugin-svgo": ["@svgr/plugin-svgo@5.5.0", "", { "dependencies": { "cosmiconfig": "^7.0.0", "deepmerge": "^4.2.2", "svgo": "^1.2.2" } }, "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ=="], - - "@svgr/webpack": ["@svgr/webpack@5.5.0", "", { "dependencies": { "@babel/core": "^7.12.3", "@babel/plugin-transform-react-constant-elements": "^7.12.1", "@babel/preset-env": "^7.12.1", "@babel/preset-react": "^7.12.5", "@svgr/core": "^5.5.0", "@svgr/plugin-jsx": "^5.5.0", "@svgr/plugin-svgo": "^5.5.0", "loader-utils": "^2.0.0" } }, "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g=="], + "@swc/helpers": ["@swc/helpers@0.5.17", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A=="], "@szhsin/react-menu": ["@szhsin/react-menu@4.5.0", "", { "dependencies": { "react-transition-state": "^2.3.1" }, "peerDependencies": { "react": ">=16.14.0", "react-dom": ">=16.14.0" } }, "sha512-fblZBPxFGjg+QxSbdDsWk3H8brupuQG+ayYXElwg+FdCxwLQLvrHG9K6O9+4pE8qLyDy5REn/2HmffPXcBZviA=="], - "@tootallnate/once": ["@tootallnate/once@1.1.2", "", {}, "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="], - - "@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="], - - "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], - - "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], - - "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], - - "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], - - "@types/body-parser": ["@types/body-parser@1.19.6", "", { "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g=="], - - "@types/bonjour": ["@types/bonjour@3.5.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ=="], - - "@types/connect": ["@types/connect@3.4.38", "", { "dependencies": { "@types/node": "*" } }, "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug=="], - - "@types/connect-history-api-fallback": ["@types/connect-history-api-fallback@1.5.4", "", { "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw=="], - - "@types/eslint": ["@types/eslint@8.56.12", "", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g=="], - - "@types/eslint-scope": ["@types/eslint-scope@3.7.7", "", { "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg=="], - - "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], - - "@types/express": ["@types/express@4.17.23", "", { "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ=="], - - "@types/express-serve-static-core": ["@types/express-serve-static-core@4.19.7", "", { "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg=="], - - "@types/graceful-fs": ["@types/graceful-fs@4.1.9", "", { "dependencies": { "@types/node": "*" } }, "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ=="], - - "@types/html-minifier-terser": ["@types/html-minifier-terser@6.1.0", "", {}, "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="], - - "@types/http-errors": ["@types/http-errors@2.0.5", "", {}, "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg=="], - - "@types/http-proxy": ["@types/http-proxy@1.17.16", "", { "dependencies": { "@types/node": "*" } }, "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w=="], - - "@types/istanbul-lib-coverage": ["@types/istanbul-lib-coverage@2.0.6", "", {}, "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="], - - "@types/istanbul-lib-report": ["@types/istanbul-lib-report@3.0.3", "", { "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA=="], - - "@types/istanbul-reports": ["@types/istanbul-reports@3.0.4", "", { "dependencies": { "@types/istanbul-lib-report": "*" } }, "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ=="], - - "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], - - "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], - - "@types/mime": ["@types/mime@1.3.5", "", {}, "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="], - - "@types/node": ["@types/node@24.7.1", "", { "dependencies": { "undici-types": "~7.14.0" } }, "sha512-CmyhGZanP88uuC5GpWU9q+fI61j2SkhO3UGMUdfYRE6Bcy0ccyzn1Rqj9YAB/ZY4kOXmNf0ocah5GtphmLMP6Q=="], - - "@types/node-forge": ["@types/node-forge@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], "@types/parse-json": ["@types/parse-json@4.0.2", "", {}, "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="], - "@types/prettier": ["@types/prettier@2.7.3", "", {}, "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="], - "@types/prop-types": ["@types/prop-types@15.7.15", "", {}, "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw=="], - "@types/q": ["@types/q@1.5.8", "", {}, "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw=="], - - "@types/qs": ["@types/qs@6.14.0", "", {}, "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ=="], - - "@types/range-parser": ["@types/range-parser@1.2.7", "", {}, "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="], - "@types/react": ["@types/react@18.3.26", "", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA=="], "@types/react-dom": ["@types/react-dom@18.3.7", "", { "peerDependencies": { "@types/react": "^18.0.0" } }, "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ=="], - "@types/resolve": ["@types/resolve@1.17.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw=="], - - "@types/retry": ["@types/retry@0.12.0", "", {}, "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="], - - "@types/semver": ["@types/semver@7.7.1", "", {}, "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA=="], - - "@types/send": ["@types/send@0.17.5", "", { "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w=="], - - "@types/serve-index": ["@types/serve-index@1.9.4", "", { "dependencies": { "@types/express": "*" } }, "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug=="], - - "@types/serve-static": ["@types/serve-static@1.15.9", "", { "dependencies": { "@types/http-errors": "*", "@types/node": "*", "@types/send": "<1" } }, "sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA=="], - - "@types/sockjs": ["@types/sockjs@0.3.36", "", { "dependencies": { "@types/node": "*" } }, "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q=="], - - "@types/stack-utils": ["@types/stack-utils@2.0.3", "", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="], - - "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], - - "@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="], - - "@types/yargs": ["@types/yargs@16.0.9", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA=="], - - "@types/yargs-parser": ["@types/yargs-parser@21.0.3", "", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="], - - "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@5.62.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.4.0", "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/type-utils": "5.62.0", "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, "peerDependencies": { "@typescript-eslint/parser": "^5.0.0", "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag=="], - - "@typescript-eslint/experimental-utils": ["@typescript-eslint/experimental-utils@5.62.0", "", { "dependencies": { "@typescript-eslint/utils": "5.62.0" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw=="], - - "@typescript-eslint/parser": ["@typescript-eslint/parser@5.62.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA=="], - - "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@5.62.0", "", { "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0" } }, "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w=="], - - "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@5.62.0", "", { "dependencies": { "@typescript-eslint/typescript-estree": "5.62.0", "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, "peerDependencies": { "eslint": "*" } }, "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew=="], - - "@typescript-eslint/types": ["@typescript-eslint/types@5.62.0", "", {}, "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ=="], - - "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@5.62.0", "", { "dependencies": { "@typescript-eslint/types": "5.62.0", "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", "semver": "^7.3.7", "tsutils": "^3.21.0" } }, "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA=="], - - "@typescript-eslint/utils": ["@typescript-eslint/utils@5.62.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ=="], - - "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@5.62.0", "", { "dependencies": { "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" } }, "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw=="], - - "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], - - "@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="], - - "@webassemblyjs/floating-point-hex-parser": ["@webassemblyjs/floating-point-hex-parser@1.13.2", "", {}, "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA=="], - - "@webassemblyjs/helper-api-error": ["@webassemblyjs/helper-api-error@1.13.2", "", {}, "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ=="], - - "@webassemblyjs/helper-buffer": ["@webassemblyjs/helper-buffer@1.14.1", "", {}, "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA=="], - - "@webassemblyjs/helper-numbers": ["@webassemblyjs/helper-numbers@1.13.2", "", { "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA=="], - - "@webassemblyjs/helper-wasm-bytecode": ["@webassemblyjs/helper-wasm-bytecode@1.13.2", "", {}, "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA=="], - - "@webassemblyjs/helper-wasm-section": ["@webassemblyjs/helper-wasm-section@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/wasm-gen": "1.14.1" } }, "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw=="], - - "@webassemblyjs/ieee754": ["@webassemblyjs/ieee754@1.13.2", "", { "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw=="], - - "@webassemblyjs/leb128": ["@webassemblyjs/leb128@1.13.2", "", { "dependencies": { "@xtuc/long": "4.2.2" } }, "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw=="], - - "@webassemblyjs/utf8": ["@webassemblyjs/utf8@1.13.2", "", {}, "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ=="], - - "@webassemblyjs/wasm-edit": ["@webassemblyjs/wasm-edit@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/helper-wasm-section": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-opt": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1", "@webassemblyjs/wast-printer": "1.14.1" } }, "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ=="], - - "@webassemblyjs/wasm-gen": ["@webassemblyjs/wasm-gen@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg=="], - - "@webassemblyjs/wasm-opt": ["@webassemblyjs/wasm-opt@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", "@webassemblyjs/wasm-gen": "1.14.1", "@webassemblyjs/wasm-parser": "1.14.1" } }, "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw=="], - - "@webassemblyjs/wasm-parser": ["@webassemblyjs/wasm-parser@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", "@webassemblyjs/ieee754": "1.13.2", "@webassemblyjs/leb128": "1.13.2", "@webassemblyjs/utf8": "1.13.2" } }, "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ=="], - - "@webassemblyjs/wast-printer": ["@webassemblyjs/wast-printer@1.14.1", "", { "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw=="], - - "@xtuc/ieee754": ["@xtuc/ieee754@1.2.0", "", {}, "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="], - - "@xtuc/long": ["@xtuc/long@4.2.2", "", {}, "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="], - - "abab": ["abab@2.0.6", "", {}, "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="], - - "accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], - - "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], - - "acorn-globals": ["acorn-globals@6.0.0", "", { "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" } }, "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg=="], - - "acorn-import-phases": ["acorn-import-phases@1.0.4", "", { "peerDependencies": { "acorn": "^8.14.0" } }, "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ=="], - - "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], - - "acorn-walk": ["acorn-walk@7.2.0", "", {}, "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="], - - "address": ["address@1.2.2", "", {}, "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA=="], - - "adjust-sourcemap-loader": ["adjust-sourcemap-loader@4.0.0", "", { "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" } }, "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A=="], - - "agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], - - "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], - - "ajv-formats": ["ajv-formats@2.1.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], - - "ajv-keywords": ["ajv-keywords@5.1.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw=="], - - "ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], - - "ansi-html": ["ansi-html@0.0.9", "", { "bin": { "ansi-html": "bin/ansi-html" } }, "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg=="], - - "ansi-html-community": ["ansi-html-community@0.0.8", "", { "bin": { "ansi-html": "bin/ansi-html" } }, "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw=="], - - "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - - "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], - - "any-promise": ["any-promise@1.3.0", "", {}, "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="], - - "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], - - "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], - - "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - - "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], - - "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], - - "array-flatten": ["array-flatten@1.1.1", "", {}, "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="], - - "array-includes": ["array-includes@3.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], - - "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], - - "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], - - "array.prototype.findlastindex": ["array.prototype.findlastindex@1.2.6", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-shim-unscopables": "^1.1.0" } }, "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ=="], - - "array.prototype.flat": ["array.prototype.flat@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], - - "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], - - "array.prototype.reduce": ["array.prototype.reduce@1.0.8", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-array-method-boxes-properly": "^1.0.0", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "is-string": "^1.1.1" } }, "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw=="], - - "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], - - "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], - - "asap": ["asap@2.0.6", "", {}, "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="], - - "ast-types-flow": ["ast-types-flow@0.0.8", "", {}, "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="], - - "async": ["async@3.2.6", "", {}, "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="], - - "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], - - "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], - - "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], - - "autoprefixer": ["autoprefixer@10.4.21", "", { "dependencies": { "browserslist": "^4.24.4", "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" } }, "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ=="], - - "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], - - "axe-core": ["axe-core@4.11.0", "", {}, "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ=="], - - "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], - - "babel-jest": ["babel-jest@27.5.1", "", { "dependencies": { "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^27.5.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" } }, "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg=="], - - "babel-loader": ["babel-loader@8.4.1", "", { "dependencies": { "find-cache-dir": "^3.3.1", "loader-utils": "^2.0.4", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, "peerDependencies": { "@babel/core": "^7.0.0", "webpack": ">=2" } }, "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA=="], - - "babel-plugin-istanbul": ["babel-plugin-istanbul@6.1.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" } }, "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA=="], - - "babel-plugin-jest-hoist": ["babel-plugin-jest-hoist@27.5.1", "", { "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", "@types/babel__core": "^7.0.0", "@types/babel__traverse": "^7.0.6" } }, "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ=="], - "babel-plugin-macros": ["babel-plugin-macros@3.1.0", "", { "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", "resolve": "^1.19.0" } }, "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg=="], - "babel-plugin-named-asset-import": ["babel-plugin-named-asset-import@0.3.8", "", { "peerDependencies": { "@babel/core": "^7.1.0" } }, "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q=="], - - "babel-plugin-polyfill-corejs2": ["babel-plugin-polyfill-corejs2@0.4.14", "", { "dependencies": { "@babel/compat-data": "^7.27.7", "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg=="], - - "babel-plugin-polyfill-corejs3": ["babel-plugin-polyfill-corejs3@0.13.0", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5", "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A=="], - - "babel-plugin-polyfill-regenerator": ["babel-plugin-polyfill-regenerator@0.6.5", "", { "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg=="], - - "babel-plugin-transform-react-remove-prop-types": ["babel-plugin-transform-react-remove-prop-types@0.4.24", "", {}, "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA=="], - - "babel-preset-current-node-syntax": ["babel-preset-current-node-syntax@1.2.0", "", { "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-import-attributes": "^7.24.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" }, "peerDependencies": { "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg=="], - - "babel-preset-jest": ["babel-preset-jest@27.5.1", "", { "dependencies": { "babel-plugin-jest-hoist": "^27.5.1", "babel-preset-current-node-syntax": "^1.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag=="], - - "babel-preset-react-app": ["babel-preset-react-app@10.1.0", "", { "dependencies": { "@babel/core": "^7.16.0", "@babel/plugin-proposal-class-properties": "^7.16.0", "@babel/plugin-proposal-decorators": "^7.16.4", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", "@babel/plugin-proposal-numeric-separator": "^7.16.0", "@babel/plugin-proposal-optional-chaining": "^7.16.0", "@babel/plugin-proposal-private-methods": "^7.16.0", "@babel/plugin-proposal-private-property-in-object": "^7.16.7", "@babel/plugin-transform-flow-strip-types": "^7.16.0", "@babel/plugin-transform-react-display-name": "^7.16.0", "@babel/plugin-transform-runtime": "^7.16.4", "@babel/preset-env": "^7.16.4", "@babel/preset-react": "^7.16.0", "@babel/preset-typescript": "^7.16.0", "@babel/runtime": "^7.16.3", "babel-plugin-macros": "^3.1.0", "babel-plugin-transform-react-remove-prop-types": "^0.4.24" } }, "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg=="], - - "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.16", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw=="], - - "batch": ["batch@0.6.1", "", {}, "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="], - - "bfj": ["bfj@7.1.0", "", { "dependencies": { "bluebird": "^3.7.2", "check-types": "^11.2.3", "hoopy": "^0.1.4", "jsonpath": "^1.1.1", "tryer": "^1.0.1" } }, "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw=="], - - "big.js": ["big.js@5.2.2", "", {}, "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="], - - "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], - - "bluebird": ["bluebird@3.7.2", "", {}, "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="], - - "body-parser": ["body-parser@1.20.3", "", { "dependencies": { "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", "type-is": "~1.6.18", "unpipe": "1.0.0" } }, "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g=="], - - "bonjour-service": ["bonjour-service@1.3.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" } }, "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA=="], - - "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], - - "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], - - "browser-process-hrtime": ["browser-process-hrtime@1.0.0", "", {}, "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="], - - "browserslist": ["browserslist@4.26.3", "", { "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", "electron-to-chromium": "^1.5.227", "node-releases": "^2.0.21", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w=="], - - "bser": ["bser@2.1.1", "", { "dependencies": { "node-int64": "^0.4.0" } }, "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ=="], - "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], - "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], - - "builtin-modules": ["builtin-modules@3.3.0", "", {}, "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw=="], - - "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], - - "call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="], - - "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], - - "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], - "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "camel-case": ["camel-case@4.1.2", "", { "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" } }, "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw=="], + "convert-source-map": ["convert-source-map@1.9.0", "", {}, "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="], - "camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], - - "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="], - - "caniuse-api": ["caniuse-api@3.0.0", "", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="], - - "caniuse-lite": ["caniuse-lite@1.0.30001749", "", {}, "sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q=="], - - "case-sensitive-paths-webpack-plugin": ["case-sensitive-paths-webpack-plugin@2.4.0", "", {}, "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw=="], - - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - - "char-regex": ["char-regex@2.0.2", "", {}, "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg=="], - - "check-types": ["check-types@11.2.3", "", {}, "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg=="], - - "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], - - "chrome-trace-event": ["chrome-trace-event@1.0.4", "", {}, "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ=="], - - "ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="], - - "cjs-module-lexer": ["cjs-module-lexer@1.4.3", "", {}, "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q=="], - - "clean-css": ["clean-css@5.3.3", "", { "dependencies": { "source-map": "~0.6.0" } }, "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg=="], - - "cliui": ["cliui@7.0.4", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="], - - "co": ["co@4.6.0", "", {}, "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="], - - "coa": ["coa@2.0.2", "", { "dependencies": { "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" } }, "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA=="], - - "collect-v8-coverage": ["collect-v8-coverage@1.0.2", "", {}, "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q=="], - - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - - "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - - "colord": ["colord@2.9.3", "", {}, "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="], - - "colorette": ["colorette@2.0.20", "", {}, "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="], - - "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], - - "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], - - "common-tags": ["common-tags@1.8.2", "", {}, "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA=="], - - "commondir": ["commondir@1.0.1", "", {}, "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="], - - "compressible": ["compressible@2.0.18", "", { "dependencies": { "mime-db": ">= 1.43.0 < 2" } }, "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg=="], - - "compression": ["compression@1.8.1", "", { "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", "negotiator": "~0.6.4", "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" } }, "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w=="], - - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], - - "confusing-browser-globals": ["confusing-browser-globals@1.0.11", "", {}, "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA=="], - - "connect-history-api-fallback": ["connect-history-api-fallback@2.0.0", "", {}, "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA=="], - - "content-disposition": ["content-disposition@0.5.4", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="], - - "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], - - "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], - - "cookie": ["cookie@0.7.1", "", {}, "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="], - - "cookie-signature": ["cookie-signature@1.0.6", "", {}, "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="], - - "core-js": ["core-js@3.46.0", "", {}, "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA=="], - - "core-js-compat": ["core-js-compat@3.46.0", "", { "dependencies": { "browserslist": "^4.26.3" } }, "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law=="], - - "core-js-pure": ["core-js-pure@3.46.0", "", {}, "sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw=="], - - "core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="], + "core-js": ["core-js@3.45.1", "", {}, "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg=="], "cosmiconfig": ["cosmiconfig@7.1.0", "", { "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" } }, "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA=="], - "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], - - "crypto-random-string": ["crypto-random-string@2.0.0", "", {}, "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="], - - "css-blank-pseudo": ["css-blank-pseudo@3.0.3", "", { "dependencies": { "postcss-selector-parser": "^6.0.9" }, "peerDependencies": { "postcss": "^8.4" }, "bin": { "css-blank-pseudo": "dist/cli.cjs" } }, "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ=="], - - "css-declaration-sorter": ["css-declaration-sorter@6.4.1", "", { "peerDependencies": { "postcss": "^8.0.9" } }, "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g=="], - - "css-has-pseudo": ["css-has-pseudo@3.0.4", "", { "dependencies": { "postcss-selector-parser": "^6.0.9" }, "peerDependencies": { "postcss": "^8.4" }, "bin": { "css-has-pseudo": "dist/cli.cjs" } }, "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw=="], - - "css-loader": ["css-loader@6.11.0", "", { "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", "postcss-modules-extract-imports": "^3.1.0", "postcss-modules-local-by-default": "^4.0.5", "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.5.4" }, "peerDependencies": { "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" }, "optionalPeers": ["@rspack/core", "webpack"] }, "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g=="], - - "css-minimizer-webpack-plugin": ["css-minimizer-webpack-plugin@3.4.1", "", { "dependencies": { "cssnano": "^5.0.6", "jest-worker": "^27.0.2", "postcss": "^8.3.5", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q=="], - - "css-prefers-color-scheme": ["css-prefers-color-scheme@6.0.3", "", { "peerDependencies": { "postcss": "^8.4" }, "bin": { "css-prefers-color-scheme": "dist/cli.cjs" } }, "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA=="], - - "css-select": ["css-select@2.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^3.2.1", "domutils": "^1.7.0", "nth-check": "^1.0.2" } }, "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ=="], - - "css-select-base-adapter": ["css-select-base-adapter@0.1.1", "", {}, "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w=="], - - "css-tree": ["css-tree@1.0.0-alpha.37", "", { "dependencies": { "mdn-data": "2.0.4", "source-map": "^0.6.1" } }, "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg=="], - - "css-what": ["css-what@3.4.2", "", {}, "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ=="], - - "cssdb": ["cssdb@7.11.2", "", {}, "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A=="], - - "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], - - "cssnano": ["cssnano@5.1.15", "", { "dependencies": { "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw=="], - - "cssnano-preset-default": ["cssnano-preset-default@5.2.14", "", { "dependencies": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.1", "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", "postcss-merge-longhand": "^5.1.7", "postcss-merge-rules": "^5.1.4", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", "postcss-normalize-positions": "^5.1.1", "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", "postcss-reduce-initial": "^5.1.2", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A=="], - - "cssnano-utils": ["cssnano-utils@3.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA=="], - - "csso": ["csso@4.2.0", "", { "dependencies": { "css-tree": "^1.1.2" } }, "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA=="], - - "cssom": ["cssom@0.4.4", "", {}, "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw=="], - - "cssstyle": ["cssstyle@2.3.0", "", { "dependencies": { "cssom": "~0.3.6" } }, "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A=="], - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], - "damerau-levenshtein": ["damerau-levenshtein@1.0.8", "", {}, "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="], - - "data-urls": ["data-urls@2.0.0", "", { "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.0.0" } }, "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ=="], - - "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], - - "data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], - - "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], - "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], - "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], - - "dedent": ["dedent@0.7.0", "", {}, "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="], - - "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], - - "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], - - "default-gateway": ["default-gateway@6.0.3", "", { "dependencies": { "execa": "^5.0.0" } }, "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg=="], - - "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], - - "define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], - - "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], - - "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], - - "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], - - "destroy": ["destroy@1.2.0", "", {}, "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="], - - "detect-newline": ["detect-newline@3.1.0", "", {}, "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="], - - "detect-node": ["detect-node@2.1.0", "", {}, "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="], - - "detect-port-alt": ["detect-port-alt@1.1.6", "", { "dependencies": { "address": "^1.0.1", "debug": "^2.6.0" }, "bin": { "detect": "./bin/detect-port", "detect-port": "./bin/detect-port" } }, "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q=="], - - "didyoumean": ["didyoumean@1.2.2", "", {}, "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="], - - "diff-sequences": ["diff-sequences@27.5.1", "", {}, "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="], - - "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], - - "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], - - "dns-packet": ["dns-packet@5.6.1", "", { "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" } }, "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw=="], - - "doctrine": ["doctrine@3.0.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="], - - "dom-converter": ["dom-converter@0.2.0", "", { "dependencies": { "utila": "~0.4" } }, "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA=="], - - "dom-serializer": ["dom-serializer@0.2.2", "", { "dependencies": { "domelementtype": "^2.0.1", "entities": "^2.0.0" } }, "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g=="], - - "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], - - "domexception": ["domexception@2.0.1", "", { "dependencies": { "webidl-conversions": "^5.0.0" } }, "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg=="], - - "domhandler": ["domhandler@4.3.1", "", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="], - - "domutils": ["domutils@1.7.0", "", { "dependencies": { "dom-serializer": "0", "domelementtype": "1" } }, "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg=="], - - "dot-case": ["dot-case@3.0.4", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w=="], - - "dotenv": ["dotenv@10.0.0", "", {}, "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="], - - "dotenv-expand": ["dotenv-expand@5.1.0", "", {}, "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="], - - "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - - "duplexer": ["duplexer@0.1.2", "", {}, "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="], - - "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], - - "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - - "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], - - "electron-to-chromium": ["electron-to-chromium@1.5.234", "", {}, "sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg=="], - - "emittery": ["emittery@0.8.1", "", {}, "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg=="], - - "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], - - "emojis-list": ["emojis-list@3.0.0", "", {}, "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="], - - "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], - - "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], - - "entities": ["entities@2.2.0", "", {}, "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="], - "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], "error-stack-parser": ["error-stack-parser@2.1.4", "", { "dependencies": { "stackframe": "^1.3.4" } }, "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ=="], - "es-abstract": ["es-abstract@1.24.0", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg=="], - - "es-array-method-boxes-properly": ["es-array-method-boxes-properly@1.0.0", "", {}, "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="], - - "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], - - "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], - - "es-iterator-helpers": ["es-iterator-helpers@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.6", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.4", "safe-array-concat": "^1.1.3" } }, "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w=="], - - "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], - - "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], - - "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], - - "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], - - "es-to-primitive": ["es-to-primitive@1.3.0", "", { "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", "is-symbol": "^1.0.4" } }, "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g=="], - - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], - - "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], - "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], - "escodegen": ["escodegen@1.14.3", "", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw=="], - - "eslint": ["eslint@8.57.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", "@eslint/js": "8.57.1", "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.2", "eslint-visitor-keys": "^3.4.3", "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" } }, "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA=="], - - "eslint-config-react-app": ["eslint-config-react-app@7.0.1", "", { "dependencies": { "@babel/core": "^7.16.0", "@babel/eslint-parser": "^7.16.3", "@rushstack/eslint-patch": "^1.1.0", "@typescript-eslint/eslint-plugin": "^5.5.0", "@typescript-eslint/parser": "^5.5.0", "babel-preset-react-app": "^10.0.1", "confusing-browser-globals": "^1.0.11", "eslint-plugin-flowtype": "^8.0.3", "eslint-plugin-import": "^2.25.3", "eslint-plugin-jest": "^25.3.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.27.1", "eslint-plugin-react-hooks": "^4.3.0", "eslint-plugin-testing-library": "^5.0.1" }, "peerDependencies": { "eslint": "^8.0.0" } }, "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA=="], - - "eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.9", "", { "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", "resolve": "^1.22.4" } }, "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g=="], - - "eslint-module-utils": ["eslint-module-utils@2.12.1", "", { "dependencies": { "debug": "^3.2.7" } }, "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw=="], - - "eslint-plugin-flowtype": ["eslint-plugin-flowtype@8.0.3", "", { "dependencies": { "lodash": "^4.17.21", "string-natural-compare": "^3.0.1" }, "peerDependencies": { "@babel/plugin-syntax-flow": "^7.14.5", "@babel/plugin-transform-react-jsx": "^7.14.9", "eslint": "^8.1.0" } }, "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ=="], - - "eslint-plugin-import": ["eslint-plugin-import@2.32.0", "", { "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", "array.prototype.findlastindex": "^1.2.6", "array.prototype.flat": "^1.3.3", "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", "object.values": "^1.2.1", "semver": "^6.3.1", "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA=="], - - "eslint-plugin-jest": ["eslint-plugin-jest@25.7.0", "", { "dependencies": { "@typescript-eslint/experimental-utils": "^5.0.0" }, "peerDependencies": { "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["@typescript-eslint/eslint-plugin"] }, "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ=="], - - "eslint-plugin-jsx-a11y": ["eslint-plugin-jsx-a11y@6.10.2", "", { "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "^4.10.0", "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", "string.prototype.includes": "^2.0.1" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q=="], - - "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], - - "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@4.6.2", "", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ=="], - - "eslint-plugin-testing-library": ["eslint-plugin-testing-library@5.11.1", "", { "dependencies": { "@typescript-eslint/utils": "^5.58.0" }, "peerDependencies": { "eslint": "^7.5.0 || ^8.0.0" } }, "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw=="], - - "eslint-scope": ["eslint-scope@7.2.2", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg=="], - - "eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], - - "eslint-webpack-plugin": ["eslint-webpack-plugin@3.2.0", "", { "dependencies": { "@types/eslint": "^7.29.0 || ^8.4.1", "jest-worker": "^28.0.2", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", "webpack": "^5.0.0" } }, "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w=="], - - "espree": ["espree@9.6.1", "", { "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.4.1" } }, "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ=="], - - "esprima": ["esprima@1.2.2", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A=="], - - "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], - - "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], - - "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], - - "estree-walker": ["estree-walker@1.0.1", "", {}, "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg=="], - - "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], - - "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], - - "eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], - - "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], - - "execa": ["execa@5.1.1", "", { "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg=="], - - "exit": ["exit@0.1.2", "", {}, "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ=="], - - "expect": ["expect@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", "jest-matcher-utils": "^27.5.1", "jest-message-util": "^27.5.1" } }, "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw=="], - - "express": ["express@4.21.2", "", { "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "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", "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" } }, "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA=="], - - "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - - "fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="], - - "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], - - "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - - "fast-uri": ["fast-uri@3.1.0", "", {}, "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA=="], - - "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], - - "faye-websocket": ["faye-websocket@0.11.4", "", { "dependencies": { "websocket-driver": ">=0.5.1" } }, "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g=="], - - "fb-watchman": ["fb-watchman@2.0.2", "", { "dependencies": { "bser": "2.1.1" } }, "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA=="], - - "file-entry-cache": ["file-entry-cache@6.0.1", "", { "dependencies": { "flat-cache": "^3.0.4" } }, "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="], - - "file-loader": ["file-loader@6.2.0", "", { "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" }, "peerDependencies": { "webpack": "^4.0.0 || ^5.0.0" } }, "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw=="], - - "filelist": ["filelist@1.0.4", "", { "dependencies": { "minimatch": "^5.0.1" } }, "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q=="], - - "filesize": ["filesize@8.0.7", "", {}, "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ=="], - - "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - - "finalhandler": ["finalhandler@1.3.1", "", { "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", "statuses": "2.0.1", "unpipe": "~1.0.0" } }, "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ=="], - - "find-cache-dir": ["find-cache-dir@3.3.2", "", { "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" } }, "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig=="], - "find-root": ["find-root@1.1.0", "", {}, "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng=="], - "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], - - "flat-cache": ["flat-cache@3.2.0", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", "rimraf": "^3.0.2" } }, "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw=="], - - "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], - - "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], - - "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], - - "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], - - "fork-ts-checker-webpack-plugin": ["fork-ts-checker-webpack-plugin@6.5.3", "", { "dependencies": { "@babel/code-frame": "^7.8.3", "@types/json-schema": "^7.0.5", "chalk": "^4.1.0", "chokidar": "^3.4.2", "cosmiconfig": "^6.0.0", "deepmerge": "^4.2.2", "fs-extra": "^9.0.0", "glob": "^7.1.6", "memfs": "^3.1.2", "minimatch": "^3.0.4", "schema-utils": "2.7.0", "semver": "^7.3.2", "tapable": "^1.0.0" }, "peerDependencies": { "eslint": ">= 6", "typescript": ">= 2.7", "vue-template-compiler": "*", "webpack": ">= 4" }, "optionalPeers": ["eslint", "vue-template-compiler"] }, "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ=="], - - "form-data": ["form-data@3.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.35" } }, "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ=="], - - "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], - - "fraction.js": ["fraction.js@4.3.7", "", {}, "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew=="], - - "fresh": ["fresh@0.5.2", "", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], - - "fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], - - "fs-monkey": ["fs-monkey@1.1.0", "", {}, "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw=="], - - "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], - - "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + "fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], - "function.prototype.name": ["function.prototype.name@1.1.8", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "functions-have-names": "^1.2.3", "hasown": "^2.0.2", "is-callable": "^1.2.7" } }, "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q=="], - - "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], - - "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], - - "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], - - "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], - - "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], - - "get-own-enumerable-property-symbols": ["get-own-enumerable-property-symbols@3.0.2", "", {}, "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="], - - "get-package-type": ["get-package-type@0.1.0", "", {}, "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q=="], - - "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], - - "get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], - - "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], - - "glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - - "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], - - "glob-to-regexp": ["glob-to-regexp@0.4.1", "", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="], - - "global-modules": ["global-modules@2.0.0", "", { "dependencies": { "global-prefix": "^3.0.0" } }, "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A=="], - - "global-prefix": ["global-prefix@3.0.0", "", { "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" } }, "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg=="], - - "globals": ["globals@13.24.0", "", { "dependencies": { "type-fest": "^0.20.2" } }, "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ=="], - - "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], - - "globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="], - - "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], - - "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - - "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], - - "gzip-size": ["gzip-size@6.0.0", "", { "dependencies": { "duplexer": "^0.1.2" } }, "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q=="], - - "handle-thing": ["handle-thing@2.0.1", "", {}, "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="], - - "harmony-reflect": ["harmony-reflect@1.6.2", "", {}, "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="], - - "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], - - "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - - "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], - - "has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], - - "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], - - "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], - "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], - "he": ["he@1.2.0", "", { "bin": { "he": "bin/he" } }, "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="], - "hoist-non-react-statics": ["hoist-non-react-statics@3.3.2", "", { "dependencies": { "react-is": "^16.7.0" } }, "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="], - "hoopy": ["hoopy@0.1.4", "", {}, "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ=="], - - "hpack.js": ["hpack.js@2.1.6", "", { "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" } }, "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ=="], - - "html-encoding-sniffer": ["html-encoding-sniffer@2.0.1", "", { "dependencies": { "whatwg-encoding": "^1.0.5" } }, "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ=="], - "html-entities": ["html-entities@2.6.0", "", {}, "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ=="], - "html-escaper": ["html-escaper@2.0.2", "", {}, "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg=="], - - "html-minifier-terser": ["html-minifier-terser@6.1.0", "", { "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", "commander": "^8.3.0", "he": "^1.2.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", "terser": "^5.10.0" }, "bin": { "html-minifier-terser": "cli.js" } }, "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw=="], - - "html-webpack-plugin": ["html-webpack-plugin@5.6.4", "", { "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", "lodash": "^4.17.21", "pretty-error": "^4.0.0", "tapable": "^2.0.0" }, "peerDependencies": { "@rspack/core": "0.x || 1.x", "webpack": "^5.20.0" }, "optionalPeers": ["@rspack/core", "webpack"] }, "sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw=="], - - "htmlparser2": ["htmlparser2@6.1.0", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A=="], - - "http-deceiver": ["http-deceiver@1.2.7", "", {}, "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="], - - "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], - - "http-parser-js": ["http-parser-js@0.5.10", "", {}, "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA=="], - - "http-proxy": ["http-proxy@1.18.1", "", { "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" } }, "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ=="], - - "http-proxy-agent": ["http-proxy-agent@4.0.1", "", { "dependencies": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4" } }, "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg=="], - - "http-proxy-middleware": ["http-proxy-middleware@2.0.9", "", { "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" }, "peerDependencies": { "@types/express": "^4.17.13" }, "optionalPeers": ["@types/express"] }, "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q=="], - - "https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], - - "human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="], - - "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], - - "icss-utils": ["icss-utils@5.1.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA=="], - - "idb": ["idb@7.1.1", "", {}, "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ=="], - - "identity-obj-proxy": ["identity-obj-proxy@3.0.0", "", { "dependencies": { "harmony-reflect": "^1.4.6" } }, "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA=="], - "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], - "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], - "immediate": ["immediate@3.0.6", "", {}, "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="], "immer": ["immer@9.0.21", "", {}, "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA=="], "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], - "import-local": ["import-local@3.2.0", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="], - - "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], - - "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], - - "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - - "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], - - "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], - - "ipaddr.js": ["ipaddr.js@2.2.0", "", {}, "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA=="], - - "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], - "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], - "is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], - - "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], - - "is-binary-path": ["is-binary-path@2.1.0", "", { "dependencies": { "binary-extensions": "^2.0.0" } }, "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="], - - "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], - - "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], - "is-core-module": ["is-core-module@2.16.1", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w=="], - "is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], - - "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], - - "is-docker": ["is-docker@2.2.1", "", { "bin": { "is-docker": "cli.js" } }, "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="], - - "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], - - "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], - - "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], - - "is-generator-fn": ["is-generator-fn@2.1.0", "", {}, "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ=="], - - "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], - - "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], - - "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], - - "is-module": ["is-module@1.0.0", "", {}, "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="], - - "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], - - "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], - - "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], - - "is-obj": ["is-obj@1.0.1", "", {}, "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg=="], - - "is-path-inside": ["is-path-inside@3.0.3", "", {}, "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="], - - "is-plain-obj": ["is-plain-obj@3.0.0", "", {}, "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA=="], - - "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], - - "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], - - "is-regexp": ["is-regexp@1.0.0", "", {}, "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA=="], - - "is-root": ["is-root@2.1.0", "", {}, "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg=="], - - "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], - - "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], - - "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], - - "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], - - "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], - - "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], - - "is-typedarray": ["is-typedarray@1.0.0", "", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="], - - "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], - - "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], - - "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], - - "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], - - "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], - - "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - - "istanbul-lib-coverage": ["istanbul-lib-coverage@3.2.2", "", {}, "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg=="], - - "istanbul-lib-instrument": ["istanbul-lib-instrument@5.2.1", "", { "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" } }, "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg=="], - - "istanbul-lib-report": ["istanbul-lib-report@3.0.1", "", { "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw=="], - - "istanbul-lib-source-maps": ["istanbul-lib-source-maps@4.0.1", "", { "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" } }, "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw=="], - - "istanbul-reports": ["istanbul-reports@3.2.0", "", { "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA=="], - - "iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], - - "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], - - "jake": ["jake@10.9.4", "", { "dependencies": { "async": "^3.2.6", "filelist": "^1.0.4", "picocolors": "^1.1.1" }, "bin": { "jake": "bin/cli.js" } }, "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA=="], - - "jest": ["jest@27.5.1", "", { "dependencies": { "@jest/core": "^27.5.1", "import-local": "^3.0.2", "jest-cli": "^27.5.1" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "bin/jest.js" } }, "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ=="], - - "jest-changed-files": ["jest-changed-files@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "execa": "^5.0.0", "throat": "^6.0.1" } }, "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw=="], - - "jest-circus": ["jest-circus@27.5.1", "", { "dependencies": { "@jest/environment": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", "expect": "^27.5.1", "is-generator-fn": "^2.0.0", "jest-each": "^27.5.1", "jest-matcher-utils": "^27.5.1", "jest-message-util": "^27.5.1", "jest-runtime": "^27.5.1", "jest-snapshot": "^27.5.1", "jest-util": "^27.5.1", "pretty-format": "^27.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.3", "throat": "^6.0.1" } }, "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw=="], - - "jest-cli": ["jest-cli@27.5.1", "", { "dependencies": { "@jest/core": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", "jest-config": "^27.5.1", "jest-util": "^27.5.1", "jest-validate": "^27.5.1", "prompts": "^2.0.1", "yargs": "^16.2.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "optionalPeers": ["node-notifier"], "bin": { "jest": "bin/jest.js" } }, "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw=="], - - "jest-config": ["jest-config@27.5.1", "", { "dependencies": { "@babel/core": "^7.8.0", "@jest/test-sequencer": "^27.5.1", "@jest/types": "^27.5.1", "babel-jest": "^27.5.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.9", "jest-circus": "^27.5.1", "jest-environment-jsdom": "^27.5.1", "jest-environment-node": "^27.5.1", "jest-get-type": "^27.5.1", "jest-jasmine2": "^27.5.1", "jest-regex-util": "^27.5.1", "jest-resolve": "^27.5.1", "jest-runner": "^27.5.1", "jest-util": "^27.5.1", "jest-validate": "^27.5.1", "micromatch": "^4.0.4", "parse-json": "^5.2.0", "pretty-format": "^27.5.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "peerDependencies": { "ts-node": ">=9.0.0" }, "optionalPeers": ["ts-node"] }, "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA=="], - - "jest-diff": ["jest-diff@27.5.1", "", { "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^27.5.1", "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" } }, "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw=="], - - "jest-docblock": ["jest-docblock@27.5.1", "", { "dependencies": { "detect-newline": "^3.0.0" } }, "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ=="], - - "jest-each": ["jest-each@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", "jest-get-type": "^27.5.1", "jest-util": "^27.5.1", "pretty-format": "^27.5.1" } }, "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ=="], - - "jest-environment-jsdom": ["jest-environment-jsdom@27.5.1", "", { "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "jest-mock": "^27.5.1", "jest-util": "^27.5.1", "jsdom": "^16.6.0" } }, "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw=="], - - "jest-environment-node": ["jest-environment-node@27.5.1", "", { "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "jest-mock": "^27.5.1", "jest-util": "^27.5.1" } }, "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw=="], - - "jest-get-type": ["jest-get-type@27.5.1", "", {}, "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="], - - "jest-haste-map": ["jest-haste-map@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^27.5.1", "jest-serializer": "^27.5.1", "jest-util": "^27.5.1", "jest-worker": "^27.5.1", "micromatch": "^4.0.4", "walker": "^1.0.7" }, "optionalDependencies": { "fsevents": "^2.3.2" } }, "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng=="], - - "jest-jasmine2": ["jest-jasmine2@27.5.1", "", { "dependencies": { "@jest/environment": "^27.5.1", "@jest/source-map": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "expect": "^27.5.1", "is-generator-fn": "^2.0.0", "jest-each": "^27.5.1", "jest-matcher-utils": "^27.5.1", "jest-message-util": "^27.5.1", "jest-runtime": "^27.5.1", "jest-snapshot": "^27.5.1", "jest-util": "^27.5.1", "pretty-format": "^27.5.1", "throat": "^6.0.1" } }, "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ=="], - - "jest-leak-detector": ["jest-leak-detector@27.5.1", "", { "dependencies": { "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" } }, "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ=="], - - "jest-matcher-utils": ["jest-matcher-utils@27.5.1", "", { "dependencies": { "chalk": "^4.0.0", "jest-diff": "^27.5.1", "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" } }, "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw=="], - - "jest-message-util": ["jest-message-util@27.5.1", "", { "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", "pretty-format": "^27.5.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g=="], - - "jest-mock": ["jest-mock@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" } }, "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og=="], - - "jest-pnp-resolver": ["jest-pnp-resolver@1.2.3", "", { "peerDependencies": { "jest-resolve": "*" }, "optionalPeers": ["jest-resolve"] }, "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w=="], - - "jest-regex-util": ["jest-regex-util@28.0.2", "", {}, "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw=="], - - "jest-resolve": ["jest-resolve@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "jest-haste-map": "^27.5.1", "jest-pnp-resolver": "^1.2.2", "jest-util": "^27.5.1", "jest-validate": "^27.5.1", "resolve": "^1.20.0", "resolve.exports": "^1.1.0", "slash": "^3.0.0" } }, "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw=="], - - "jest-resolve-dependencies": ["jest-resolve-dependencies@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "jest-regex-util": "^27.5.1", "jest-snapshot": "^27.5.1" } }, "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg=="], - - "jest-runner": ["jest-runner@27.5.1", "", { "dependencies": { "@jest/console": "^27.5.1", "@jest/environment": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.8.1", "graceful-fs": "^4.2.9", "jest-docblock": "^27.5.1", "jest-environment-jsdom": "^27.5.1", "jest-environment-node": "^27.5.1", "jest-haste-map": "^27.5.1", "jest-leak-detector": "^27.5.1", "jest-message-util": "^27.5.1", "jest-resolve": "^27.5.1", "jest-runtime": "^27.5.1", "jest-util": "^27.5.1", "jest-worker": "^27.5.1", "source-map-support": "^0.5.6", "throat": "^6.0.1" } }, "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ=="], - - "jest-runtime": ["jest-runtime@27.5.1", "", { "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", "@jest/globals": "^27.5.1", "@jest/source-map": "^27.5.1", "@jest/test-result": "^27.5.1", "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "execa": "^5.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", "jest-haste-map": "^27.5.1", "jest-message-util": "^27.5.1", "jest-mock": "^27.5.1", "jest-regex-util": "^27.5.1", "jest-resolve": "^27.5.1", "jest-snapshot": "^27.5.1", "jest-util": "^27.5.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A=="], - - "jest-serializer": ["jest-serializer@27.5.1", "", { "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.9" } }, "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w=="], - - "jest-snapshot": ["jest-snapshot@27.5.1", "", { "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", "expect": "^27.5.1", "graceful-fs": "^4.2.9", "jest-diff": "^27.5.1", "jest-get-type": "^27.5.1", "jest-haste-map": "^27.5.1", "jest-matcher-utils": "^27.5.1", "jest-message-util": "^27.5.1", "jest-util": "^27.5.1", "natural-compare": "^1.4.0", "pretty-format": "^27.5.1", "semver": "^7.3.2" } }, "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA=="], - - "jest-util": ["jest-util@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" } }, "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw=="], - - "jest-validate": ["jest-validate@27.5.1", "", { "dependencies": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^27.5.1", "leven": "^3.1.0", "pretty-format": "^27.5.1" } }, "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ=="], - - "jest-watch-typeahead": ["jest-watch-typeahead@1.1.0", "", { "dependencies": { "ansi-escapes": "^4.3.1", "chalk": "^4.0.0", "jest-regex-util": "^28.0.0", "jest-watcher": "^28.0.0", "slash": "^4.0.0", "string-length": "^5.0.1", "strip-ansi": "^7.0.1" }, "peerDependencies": { "jest": "^27.0.0 || ^28.0.0" } }, "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw=="], - - "jest-watcher": ["jest-watcher@28.1.3", "", { "dependencies": { "@jest/test-result": "^28.1.3", "@jest/types": "^28.1.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.10.2", "jest-util": "^28.1.3", "string-length": "^4.0.1" } }, "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g=="], - - "jest-worker": ["jest-worker@27.5.1", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg=="], - - "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], + "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], "js-sha256": ["js-sha256@0.10.1", "", {}, "sha512-5obBtsz9301ULlsgggLg542s/jqtddfOpV5KJc4hajc9JV8GeY2gZHSVpYBn4nWqAUTJ9v+xwtbJ1mIBgIH5Vw=="], "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], - - "jsdom": ["jsdom@16.7.0", "", { "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.3.0", "data-urls": "^2.0.0", "decimal.js": "^10.2.1", "domexception": "^2.0.1", "escodegen": "^2.0.0", "form-data": "^3.0.0", "html-encoding-sniffer": "^2.0.1", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.0", "parse5": "6.0.1", "saxes": "^5.0.1", "symbol-tree": "^3.2.4", "tough-cookie": "^4.0.0", "w3c-hr-time": "^1.0.2", "w3c-xmlserializer": "^2.0.0", "webidl-conversions": "^6.1.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.5.0", "ws": "^7.4.6", "xml-name-validator": "^3.0.0" }, "peerDependencies": { "canvas": "^2.5.0" }, "optionalPeers": ["canvas"] }, "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw=="], - "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], - "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], - "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], - "json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], - - "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], - - "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], - - "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], - - "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], - - "jsonpath": ["jsonpath@1.1.1", "", { "dependencies": { "esprima": "1.2.2", "static-eval": "2.0.2", "underscore": "1.12.1" } }, "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w=="], - - "jsonpointer": ["jsonpointer@5.0.1", "", {}, "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ=="], - - "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], - - "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], - - "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], - - "kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], - - "klona": ["klona@2.0.6", "", {}, "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="], - - "language-subtag-registry": ["language-subtag-registry@0.3.23", "", {}, "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ=="], - - "language-tags": ["language-tags@1.0.9", "", { "dependencies": { "language-subtag-registry": "^0.3.20" } }, "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA=="], - - "launch-editor": ["launch-editor@2.11.1", "", { "dependencies": { "picocolors": "^1.1.1", "shell-quote": "^1.8.3" } }, "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg=="], - - "leven": ["leven@3.1.0", "", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="], - - "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], - "lie": ["lie@3.1.1", "", { "dependencies": { "immediate": "~3.0.5" } }, "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw=="], - "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="], - "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - "loader-runner": ["loader-runner@4.3.1", "", {}, "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q=="], - - "loader-utils": ["loader-utils@2.0.4", "", { "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw=="], - "localforage": ["localforage@1.10.0", "", { "dependencies": { "lie": "3.1.1" } }, "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg=="], - "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], - - "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], - - "lodash.debounce": ["lodash.debounce@4.0.8", "", {}, "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="], - - "lodash.memoize": ["lodash.memoize@4.1.2", "", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="], - - "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], - - "lodash.sortby": ["lodash.sortby@4.7.0", "", {}, "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA=="], - - "lodash.uniq": ["lodash.uniq@4.5.0", "", {}, "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="], - "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], - "lower-case": ["lower-case@2.0.2", "", { "dependencies": { "tslib": "^2.0.3" } }, "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg=="], - - "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], - - "magic-string": ["magic-string@0.25.9", "", { "dependencies": { "sourcemap-codec": "^1.4.8" } }, "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ=="], - - "make-dir": ["make-dir@3.1.0", "", { "dependencies": { "semver": "^6.0.0" } }, "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="], - - "makeerror": ["makeerror@1.0.12", "", { "dependencies": { "tmpl": "1.0.5" } }, "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg=="], - - "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], - "mdi-react": ["mdi-react@9.1.0", "", { "peerDependencies": { "react": ">=0.14.0" } }, "sha512-QFY9BkhX5MaEFpq+0ZGbM7S0iOGkgPb3RLRyzHJIxo8LT8jGu8VY0M+3tfXAaRgYN83t7ksA7D8kuFTt8d/oag=="], - "mdn-data": ["mdn-data@2.0.4", "", {}, "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA=="], - - "media-typer": ["media-typer@0.3.0", "", {}, "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="], - - "memfs": ["memfs@3.6.0", "", { "dependencies": { "fs-monkey": "^1.0.4" } }, "sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ=="], - - "merge-descriptors": ["merge-descriptors@1.0.3", "", {}, "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ=="], - - "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], - - "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], - - "methods": ["methods@1.1.2", "", {}, "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="], - - "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], - - "mime": ["mime@1.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="], - - "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], - - "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - - "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], - - "mini-css-extract-plugin": ["mini-css-extract-plugin@2.9.4", "", { "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ=="], - - "minimalistic-assert": ["minimalistic-assert@1.0.1", "", {}, "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="], - - "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - - "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], - - "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], - - "mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="], - "moo": ["moo@0.5.2", "", {}, "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "multicast-dns": ["multicast-dns@7.2.5", "", { "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" }, "bin": { "multicast-dns": "cli.js" } }, "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg=="], - - "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], - - "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - - "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], - - "natural-compare-lite": ["natural-compare-lite@1.4.0", "", {}, "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="], - - "negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], - - "neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="], - - "no-case": ["no-case@3.0.4", "", { "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="], - - "node-forge": ["node-forge@1.3.1", "", {}, "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA=="], - - "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], - - "node-releases": ["node-releases@2.0.23", "", {}, "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg=="], - - "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], - - "normalize-range": ["normalize-range@0.1.2", "", {}, "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="], - - "normalize-url": ["normalize-url@6.1.0", "", {}, "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="], - - "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], - - "nth-check": ["nth-check@1.0.2", "", { "dependencies": { "boolbase": "~1.0.0" } }, "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg=="], - - "nwsapi": ["nwsapi@2.2.22", "", {}, "sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ=="], - "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], - "object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], - - "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], - - "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], - - "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], - - "object.entries": ["object.entries@1.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-object-atoms": "^1.1.1" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="], - - "object.fromentries": ["object.fromentries@2.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], - - "object.getownpropertydescriptors": ["object.getownpropertydescriptors@2.1.8", "", { "dependencies": { "array.prototype.reduce": "^1.0.6", "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0", "gopd": "^1.0.1", "safe-array-concat": "^1.1.2" } }, "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A=="], - - "object.groupby": ["object.groupby@1.0.3", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" } }, "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ=="], - - "object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], - - "obuf": ["obuf@1.1.2", "", {}, "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="], - - "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], - - "on-headers": ["on-headers@1.1.0", "", {}, "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A=="], - - "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], - - "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], - - "open": ["open@8.4.2", "", { "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ=="], - - "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], - - "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], - - "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], - - "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], - - "p-retry": ["p-retry@4.6.2", "", { "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" } }, "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ=="], - - "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], - - "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], - - "param-case": ["param-case@3.0.4", "", { "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A=="], - "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], - "parse5": ["parse5@6.0.1", "", {}, "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="], - - "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], - - "pascal-case": ["pascal-case@3.1.2", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g=="], - - "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], - - "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], - - "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], - "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], - "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - - "path-to-regexp": ["path-to-regexp@0.1.12", "", {}, "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="], - "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], - "performance-now": ["performance-now@2.1.0", "", {}, "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="], - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], - "picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - - "pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], - - "pirates": ["pirates@4.0.7", "", {}, "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA=="], - - "pkg-dir": ["pkg-dir@4.2.0", "", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="], - - "pkg-up": ["pkg-up@3.1.0", "", { "dependencies": { "find-up": "^3.0.0" } }, "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA=="], - "playwright": ["playwright@1.56.0", "", { "dependencies": { "playwright-core": "1.56.0" }, "optionalDependencies": { "fsevents": "2.3.2" }, "bin": { "playwright": "cli.js" } }, "sha512-X5Q1b8lOdWIE4KAoHpW3SE8HvUB+ZZsUoN64ZhjnN8dOb1UpujxBtENGiZFE+9F/yhzJwYa+ca3u43FeLbboHA=="], "playwright-core": ["playwright-core@1.56.0", "", { "bin": { "playwright-core": "cli.js" } }, "sha512-1SXl7pMfemAMSDn5rkPeZljxOCYAmQnYLBTExuh6E8USHXGSX3dx6lYZN/xPpTz1vimXmPA9CDnILvmJaB8aSQ=="], - "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], - - "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], - - "postcss-attribute-case-insensitive": ["postcss-attribute-case-insensitive@5.0.2", "", { "dependencies": { "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ=="], - - "postcss-browser-comments": ["postcss-browser-comments@4.0.0", "", { "peerDependencies": { "browserslist": ">=4", "postcss": ">=8" } }, "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg=="], - - "postcss-calc": ["postcss-calc@8.2.4", "", { "dependencies": { "postcss-selector-parser": "^6.0.9", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.2" } }, "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q=="], - - "postcss-clamp": ["postcss-clamp@4.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.6" } }, "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow=="], - - "postcss-color-functional-notation": ["postcss-color-functional-notation@4.2.4", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg=="], - - "postcss-color-hex-alpha": ["postcss-color-hex-alpha@8.0.4", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ=="], - - "postcss-color-rebeccapurple": ["postcss-color-rebeccapurple@7.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg=="], - - "postcss-colormin": ["postcss-colormin@5.3.1", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ=="], - - "postcss-convert-values": ["postcss-convert-values@5.1.3", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA=="], - - "postcss-custom-media": ["postcss-custom-media@8.0.2", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.3" } }, "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg=="], - - "postcss-custom-properties": ["postcss-custom-properties@12.1.11", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ=="], - - "postcss-custom-selectors": ["postcss-custom-selectors@6.0.3", "", { "dependencies": { "postcss-selector-parser": "^6.0.4" }, "peerDependencies": { "postcss": "^8.3" } }, "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg=="], - - "postcss-dir-pseudo-class": ["postcss-dir-pseudo-class@6.0.5", "", { "dependencies": { "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA=="], - - "postcss-discard-comments": ["postcss-discard-comments@5.1.2", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ=="], - - "postcss-discard-duplicates": ["postcss-discard-duplicates@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw=="], - - "postcss-discard-empty": ["postcss-discard-empty@5.1.1", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A=="], - - "postcss-discard-overridden": ["postcss-discard-overridden@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw=="], - - "postcss-double-position-gradients": ["postcss-double-position-gradients@3.1.2", "", { "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ=="], - - "postcss-env-function": ["postcss-env-function@4.0.6", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA=="], - - "postcss-flexbugs-fixes": ["postcss-flexbugs-fixes@5.0.2", "", { "peerDependencies": { "postcss": "^8.1.4" } }, "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ=="], - - "postcss-focus-visible": ["postcss-focus-visible@6.0.4", "", { "dependencies": { "postcss-selector-parser": "^6.0.9" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw=="], - - "postcss-focus-within": ["postcss-focus-within@5.0.4", "", { "dependencies": { "postcss-selector-parser": "^6.0.9" }, "peerDependencies": { "postcss": "^8.4" } }, "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ=="], - - "postcss-font-variant": ["postcss-font-variant@5.0.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA=="], - - "postcss-gap-properties": ["postcss-gap-properties@3.0.5", "", { "peerDependencies": { "postcss": "^8.2" } }, "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg=="], - - "postcss-image-set-function": ["postcss-image-set-function@4.0.7", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw=="], - - "postcss-import": ["postcss-import@15.1.0", "", { "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew=="], - - "postcss-initial": ["postcss-initial@4.0.1", "", { "peerDependencies": { "postcss": "^8.0.0" } }, "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ=="], - - "postcss-js": ["postcss-js@4.1.0", "", { "dependencies": { "camelcase-css": "^2.0.1" }, "peerDependencies": { "postcss": "^8.4.21" } }, "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw=="], - - "postcss-lab-function": ["postcss-lab-function@4.2.1", "", { "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w=="], - - "postcss-load-config": ["postcss-load-config@6.0.1", "", { "dependencies": { "lilconfig": "^3.1.1" }, "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "postcss", "tsx", "yaml"] }, "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g=="], - - "postcss-loader": ["postcss-loader@6.2.1", "", { "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" }, "peerDependencies": { "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" } }, "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q=="], - - "postcss-logical": ["postcss-logical@5.0.4", "", { "peerDependencies": { "postcss": "^8.4" } }, "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g=="], - - "postcss-media-minmax": ["postcss-media-minmax@5.0.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ=="], - - "postcss-merge-longhand": ["postcss-merge-longhand@5.1.7", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.1" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ=="], - - "postcss-merge-rules": ["postcss-merge-rules@5.1.4", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g=="], - - "postcss-minify-font-values": ["postcss-minify-font-values@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA=="], - - "postcss-minify-gradients": ["postcss-minify-gradients@5.1.1", "", { "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw=="], - - "postcss-minify-params": ["postcss-minify-params@5.1.4", "", { "dependencies": { "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw=="], - - "postcss-minify-selectors": ["postcss-minify-selectors@5.2.1", "", { "dependencies": { "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg=="], - - "postcss-modules-extract-imports": ["postcss-modules-extract-imports@3.1.0", "", { "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q=="], - - "postcss-modules-local-by-default": ["postcss-modules-local-by-default@4.2.0", "", { "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw=="], - - "postcss-modules-scope": ["postcss-modules-scope@3.2.1", "", { "dependencies": { "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA=="], - - "postcss-modules-values": ["postcss-modules-values@4.0.0", "", { "dependencies": { "icss-utils": "^5.0.0" }, "peerDependencies": { "postcss": "^8.1.0" } }, "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ=="], - - "postcss-nested": ["postcss-nested@6.2.0", "", { "dependencies": { "postcss-selector-parser": "^6.1.1" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ=="], - - "postcss-nesting": ["postcss-nesting@10.2.0", "", { "dependencies": { "@csstools/selector-specificity": "^2.0.0", "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA=="], - - "postcss-normalize": ["postcss-normalize@10.0.1", "", { "dependencies": { "@csstools/normalize.css": "*", "postcss-browser-comments": "^4", "sanitize.css": "*" }, "peerDependencies": { "browserslist": ">= 4", "postcss": ">= 8" } }, "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA=="], - - "postcss-normalize-charset": ["postcss-normalize-charset@5.1.0", "", { "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg=="], - - "postcss-normalize-display-values": ["postcss-normalize-display-values@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA=="], - - "postcss-normalize-positions": ["postcss-normalize-positions@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg=="], - - "postcss-normalize-repeat-style": ["postcss-normalize-repeat-style@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g=="], - - "postcss-normalize-string": ["postcss-normalize-string@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w=="], - - "postcss-normalize-timing-functions": ["postcss-normalize-timing-functions@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg=="], - - "postcss-normalize-unicode": ["postcss-normalize-unicode@5.1.1", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA=="], - - "postcss-normalize-url": ["postcss-normalize-url@5.1.0", "", { "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew=="], - - "postcss-normalize-whitespace": ["postcss-normalize-whitespace@5.1.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA=="], - - "postcss-opacity-percentage": ["postcss-opacity-percentage@1.1.3", "", { "peerDependencies": { "postcss": "^8.2" } }, "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A=="], - - "postcss-ordered-values": ["postcss-ordered-values@5.1.3", "", { "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ=="], - - "postcss-overflow-shorthand": ["postcss-overflow-shorthand@3.0.4", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A=="], - - "postcss-page-break": ["postcss-page-break@3.0.4", "", { "peerDependencies": { "postcss": "^8" } }, "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ=="], - - "postcss-place": ["postcss-place@7.0.5", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g=="], - - "postcss-preset-env": ["postcss-preset-env@7.8.3", "", { "dependencies": { "@csstools/postcss-cascade-layers": "^1.1.1", "@csstools/postcss-color-function": "^1.1.1", "@csstools/postcss-font-format-keywords": "^1.0.1", "@csstools/postcss-hwb-function": "^1.0.2", "@csstools/postcss-ic-unit": "^1.0.1", "@csstools/postcss-is-pseudo-class": "^2.0.7", "@csstools/postcss-nested-calc": "^1.0.0", "@csstools/postcss-normalize-display-values": "^1.0.1", "@csstools/postcss-oklab-function": "^1.1.1", "@csstools/postcss-progressive-custom-properties": "^1.3.0", "@csstools/postcss-stepped-value-functions": "^1.0.1", "@csstools/postcss-text-decoration-shorthand": "^1.0.0", "@csstools/postcss-trigonometric-functions": "^1.0.2", "@csstools/postcss-unset-value": "^1.0.2", "autoprefixer": "^10.4.13", "browserslist": "^4.21.4", "css-blank-pseudo": "^3.0.3", "css-has-pseudo": "^3.0.4", "css-prefers-color-scheme": "^6.0.3", "cssdb": "^7.1.0", "postcss-attribute-case-insensitive": "^5.0.2", "postcss-clamp": "^4.1.0", "postcss-color-functional-notation": "^4.2.4", "postcss-color-hex-alpha": "^8.0.4", "postcss-color-rebeccapurple": "^7.1.1", "postcss-custom-media": "^8.0.2", "postcss-custom-properties": "^12.1.10", "postcss-custom-selectors": "^6.0.3", "postcss-dir-pseudo-class": "^6.0.5", "postcss-double-position-gradients": "^3.1.2", "postcss-env-function": "^4.0.6", "postcss-focus-visible": "^6.0.4", "postcss-focus-within": "^5.0.4", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^3.0.5", "postcss-image-set-function": "^4.0.7", "postcss-initial": "^4.0.1", "postcss-lab-function": "^4.2.1", "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", "postcss-nesting": "^10.2.0", "postcss-opacity-percentage": "^1.1.2", "postcss-overflow-shorthand": "^3.0.4", "postcss-page-break": "^3.0.4", "postcss-place": "^7.0.5", "postcss-pseudo-class-any-link": "^7.1.6", "postcss-replace-overflow-wrap": "^4.0.0", "postcss-selector-not": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag=="], - - "postcss-pseudo-class-any-link": ["postcss-pseudo-class-any-link@7.1.6", "", { "dependencies": { "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w=="], - - "postcss-reduce-initial": ["postcss-reduce-initial@5.1.2", "", { "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg=="], - - "postcss-reduce-transforms": ["postcss-reduce-transforms@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ=="], - - "postcss-replace-overflow-wrap": ["postcss-replace-overflow-wrap@4.0.0", "", { "peerDependencies": { "postcss": "^8.0.3" } }, "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw=="], - - "postcss-selector-not": ["postcss-selector-not@6.0.1", "", { "dependencies": { "postcss-selector-parser": "^6.0.10" }, "peerDependencies": { "postcss": "^8.2" } }, "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ=="], - - "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], - - "postcss-svgo": ["postcss-svgo@5.1.0", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA=="], - - "postcss-unique-selectors": ["postcss-unique-selectors@5.1.1", "", { "dependencies": { "postcss-selector-parser": "^6.0.5" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA=="], - - "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], - - "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], - - "pretty-bytes": ["pretty-bytes@5.6.0", "", {}, "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg=="], - - "pretty-error": ["pretty-error@4.0.0", "", { "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" } }, "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw=="], - - "pretty-format": ["pretty-format@27.5.1", "", { "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" } }, "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ=="], - - "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], - - "promise": ["promise@8.3.0", "", { "dependencies": { "asap": "~2.0.6" } }, "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg=="], - - "prompts": ["prompts@2.4.2", "", { "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" } }, "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="], - "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], - "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], - - "psl": ["psl@1.15.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w=="], - - "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], - - "q": ["q@1.5.1", "", {}, "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw=="], - - "qs": ["qs@6.13.0", "", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="], - - "querystringify": ["querystringify@2.2.0", "", {}, "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="], - - "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], - - "raf": ["raf@3.4.1", "", { "dependencies": { "performance-now": "^2.1.0" } }, "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA=="], - - "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], - - "range-parser": ["range-parser@1.2.1", "", {}, "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="], - - "raw-body": ["raw-body@2.5.2", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA=="], - "react": ["react@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ=="], - "react-app-polyfill": ["react-app-polyfill@3.0.0", "", { "dependencies": { "core-js": "^3.19.2", "object-assign": "^4.1.1", "promise": "^8.1.0", "raf": "^3.4.1", "regenerator-runtime": "^0.13.9", "whatwg-fetch": "^3.6.2" } }, "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w=="], - - "react-dev-utils": ["react-dev-utils@12.0.1", "", { "dependencies": { "@babel/code-frame": "^7.16.0", "address": "^1.1.2", "browserslist": "^4.18.1", "chalk": "^4.1.2", "cross-spawn": "^7.0.3", "detect-port-alt": "^1.1.6", "escape-string-regexp": "^4.0.0", "filesize": "^8.0.6", "find-up": "^5.0.0", "fork-ts-checker-webpack-plugin": "^6.5.0", "global-modules": "^2.0.0", "globby": "^11.0.4", "gzip-size": "^6.0.0", "immer": "^9.0.7", "is-root": "^2.1.0", "loader-utils": "^3.2.0", "open": "^8.4.0", "pkg-up": "^3.1.0", "prompts": "^2.4.2", "react-error-overlay": "^6.0.11", "recursive-readdir": "^2.2.2", "shell-quote": "^1.7.3", "strip-ansi": "^6.0.1", "text-table": "^0.2.0" } }, "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ=="], - "react-dom": ["react-dom@18.3.1", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw=="], - "react-error-overlay": ["react-error-overlay@6.1.0", "", {}, "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ=="], - "react-freeze": ["react-freeze@1.0.4", "", { "peerDependencies": { "react": ">=17.0.0" } }, "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA=="], "react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - "react-refresh": ["react-refresh@0.11.0", "", {}, "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A=="], - - "react-scripts": ["react-scripts@5.0.1", "", { "dependencies": { "@babel/core": "^7.16.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", "@svgr/webpack": "^5.5.0", "babel-jest": "^27.4.2", "babel-loader": "^8.2.3", "babel-plugin-named-asset-import": "^0.3.8", "babel-preset-react-app": "^10.0.1", "bfj": "^7.0.2", "browserslist": "^4.18.1", "camelcase": "^6.2.1", "case-sensitive-paths-webpack-plugin": "^2.4.0", "css-loader": "^6.5.1", "css-minimizer-webpack-plugin": "^3.2.0", "dotenv": "^10.0.0", "dotenv-expand": "^5.1.0", "eslint": "^8.3.0", "eslint-config-react-app": "^7.0.1", "eslint-webpack-plugin": "^3.1.1", "file-loader": "^6.2.0", "fs-extra": "^10.0.0", "html-webpack-plugin": "^5.5.0", "identity-obj-proxy": "^3.0.0", "jest": "^27.4.3", "jest-resolve": "^27.4.2", "jest-watch-typeahead": "^1.0.0", "mini-css-extract-plugin": "^2.4.5", "postcss": "^8.4.4", "postcss-flexbugs-fixes": "^5.0.2", "postcss-loader": "^6.2.1", "postcss-normalize": "^10.0.1", "postcss-preset-env": "^7.0.1", "prompts": "^2.4.2", "react-app-polyfill": "^3.0.0", "react-dev-utils": "^12.0.1", "react-refresh": "^0.11.0", "resolve": "^1.20.0", "resolve-url-loader": "^4.0.0", "sass-loader": "^12.3.0", "semver": "^7.3.5", "source-map-loader": "^3.0.0", "style-loader": "^3.3.1", "tailwindcss": "^3.0.2", "terser-webpack-plugin": "^5.2.5", "webpack": "^5.64.4", "webpack-dev-server": "^4.6.0", "webpack-manifest-plugin": "^4.0.2", "workbox-webpack-plugin": "^6.4.1" }, "optionalDependencies": { "fsevents": "^2.3.2" }, "peerDependencies": { "react": ">= 16", "typescript": "^3.2.1 || ^4" }, "optionalPeers": ["typescript"], "bin": { "react-scripts": "bin/react-scripts.js" } }, "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ=="], + "react-refresh": ["react-refresh@0.17.0", "", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="], "react-transition-state": ["react-transition-state@2.3.1", "", { "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, "sha512-Z48el73x+7HUEM131dof9YpcQ5IlM4xB+pKWH/lX3FhxGfQaNTZa16zb7pWkC/y5btTZzXfCtglIJEGc57giOw=="], - "read-cache": ["read-cache@1.0.0", "", { "dependencies": { "pify": "^2.3.0" } }, "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA=="], - - "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], - - "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], - - "recursive-readdir": ["recursive-readdir@2.2.3", "", { "dependencies": { "minimatch": "^3.0.5" } }, "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA=="], - - "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], - - "regenerate": ["regenerate@1.4.2", "", {}, "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="], - - "regenerate-unicode-properties": ["regenerate-unicode-properties@10.2.2", "", { "dependencies": { "regenerate": "^1.4.2" } }, "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g=="], - - "regenerator-runtime": ["regenerator-runtime@0.13.11", "", {}, "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="], - - "regex-parser": ["regex-parser@2.3.1", "", {}, "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ=="], - - "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], - - "regexpu-core": ["regexpu-core@6.4.0", "", { "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.2.1" } }, "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA=="], - - "regjsgen": ["regjsgen@0.8.0", "", {}, "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q=="], - - "regjsparser": ["regjsparser@0.13.0", "", { "dependencies": { "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q=="], - - "relateurl": ["relateurl@0.2.7", "", {}, "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog=="], - - "renderkid": ["renderkid@3.0.0", "", { "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", "strip-ansi": "^6.0.1" } }, "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg=="], - - "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], - - "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - - "requires-port": ["requires-port@1.0.0", "", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="], - "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="], - "resolve-cwd": ["resolve-cwd@3.0.0", "", { "dependencies": { "resolve-from": "^5.0.0" } }, "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg=="], - - "resolve-from": ["resolve-from@5.0.0", "", {}, "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="], - - "resolve-url-loader": ["resolve-url-loader@4.0.0", "", { "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", "loader-utils": "^2.0.0", "postcss": "^7.0.35", "source-map": "0.6.1" }, "peerDependencies": { "rework": "1.0.1", "rework-visit": "1.0.0" }, "optionalPeers": ["rework", "rework-visit"] }, "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA=="], - - "resolve.exports": ["resolve.exports@1.1.1", "", {}, "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ=="], - - "retry": ["retry@0.13.1", "", {}, "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="], - - "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], - - "rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], - - "rollup": ["rollup@2.79.2", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ=="], - - "rollup-plugin-terser": ["rollup-plugin-terser@7.0.2", "", { "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", "serialize-javascript": "^4.0.0", "terser": "^5.0.0" }, "peerDependencies": { "rollup": "^2.0.0" } }, "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ=="], - - "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], - - "safe-array-concat": ["safe-array-concat@1.1.3", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q=="], - - "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - - "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], - - "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], - - "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], - - "sanitize.css": ["sanitize.css@13.0.0", "", {}, "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA=="], - - "sass-loader": ["sass-loader@12.6.0", "", { "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" }, "peerDependencies": { "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "optionalPeers": ["fibers", "node-sass", "sass", "sass-embedded"] }, "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA=="], - - "sax": ["sax@1.2.4", "", {}, "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="], - - "saxes": ["saxes@5.0.1", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw=="], + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], "scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - "schema-utils": ["schema-utils@4.3.3", "", { "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.1.0" } }, "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA=="], - - "select-hose": ["select-hose@2.0.0", "", {}, "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="], - - "selfsigned": ["selfsigned@2.4.1", "", { "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" } }, "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q=="], - - "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - - "send": ["send@0.19.0", "", { "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", "on-finished": "2.4.1", "range-parser": "~1.2.1", "statuses": "2.0.1" } }, "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw=="], - - "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], - - "serve-index": ["serve-index@1.9.1", "", { "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" } }, "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw=="], - - "serve-static": ["serve-static@1.16.2", "", { "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.19.0" } }, "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw=="], - - "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], - - "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], - - "set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], - - "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], - - "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], - - "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], - - "shell-quote": ["shell-quote@1.8.3", "", {}, "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw=="], - - "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], - - "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], - - "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], - - "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], - - "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - - "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], - - "slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - - "sockjs": ["sockjs@0.3.24", "", { "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ=="], - - "source-list-map": ["source-list-map@2.0.1", "", {}, "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="], - - "source-map": ["source-map@0.7.6", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="], - - "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], - - "source-map-loader": ["source-map-loader@3.0.2", "", { "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", "source-map-js": "^1.0.1" }, "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg=="], - - "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], - - "sourcemap-codec": ["sourcemap-codec@1.4.8", "", {}, "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="], - - "spdy": ["spdy@4.0.2", "", { "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" } }, "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA=="], - - "spdy-transport": ["spdy-transport@3.0.0", "", { "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" } }, "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw=="], - - "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], - - "stable": ["stable@0.1.8", "", {}, "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="], - - "stack-utils": ["stack-utils@2.0.6", "", { "dependencies": { "escape-string-regexp": "^2.0.0" } }, "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ=="], + "source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="], "stackframe": ["stackframe@1.3.4", "", {}, "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="], - "static-eval": ["static-eval@2.0.2", "", { "dependencies": { "escodegen": "^1.8.1" } }, "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg=="], - - "statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], - - "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], - - "string-length": ["string-length@5.0.1", "", { "dependencies": { "char-regex": "^2.0.0", "strip-ansi": "^7.0.1" } }, "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow=="], - - "string-natural-compare": ["string-natural-compare@3.0.1", "", {}, "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw=="], - - "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - - "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], - - "string.prototype.includes": ["string.prototype.includes@2.0.1", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3" } }, "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg=="], - - "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], - - "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], - - "string.prototype.trim": ["string.prototype.trim@1.2.10", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-object-atoms": "^1.0.0", "has-property-descriptors": "^1.0.2" } }, "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA=="], - - "string.prototype.trimend": ["string.prototype.trimend@1.0.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ=="], - - "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], - - "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], - - "stringify-object": ["stringify-object@3.3.0", "", { "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" } }, "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw=="], - - "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - - "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - - "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], - - "strip-comments": ["strip-comments@2.0.1", "", {}, "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw=="], - - "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], - - "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], - - "style-loader": ["style-loader@3.3.4", "", { "peerDependencies": { "webpack": "^5.0.0" } }, "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w=="], - - "stylehacks": ["stylehacks@5.1.1", "", { "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "peerDependencies": { "postcss": "^8.2.15" } }, "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw=="], - "stylis": ["stylis@4.2.0", "", {}, "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw=="], - "sucrase": ["sucrase@3.35.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA=="], - - "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], - - "supports-hyperlinks": ["supports-hyperlinks@2.3.0", "", { "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" } }, "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA=="], - "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], - "svg-parser": ["svg-parser@2.0.4", "", {}, "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="], - - "svgo": ["svgo@1.3.2", "", { "dependencies": { "chalk": "^2.4.1", "coa": "^2.0.2", "css-select": "^2.0.0", "css-select-base-adapter": "^0.1.1", "css-tree": "1.0.0-alpha.37", "csso": "^4.0.2", "js-yaml": "^3.13.1", "mkdirp": "~0.5.1", "object.values": "^1.1.0", "sax": "~1.2.4", "stable": "^0.1.8", "unquote": "~1.1.1", "util.promisify": "~1.0.0" }, "bin": { "svgo": "./bin/svgo" } }, "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw=="], - - "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], - - "tailwindcss": ["tailwindcss@3.4.18", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.21.7", "lilconfig": "^3.1.3", "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.1.1", "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", "postcss-nested": "^6.2.0", "postcss-selector-parser": "^6.1.2", "resolve": "^1.22.8", "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ=="], - - "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], - - "temp-dir": ["temp-dir@2.0.0", "", {}, "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="], - - "tempy": ["tempy@0.6.0", "", { "dependencies": { "is-stream": "^2.0.0", "temp-dir": "^2.0.0", "type-fest": "^0.16.0", "unique-string": "^2.0.0" } }, "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw=="], - - "terminal-link": ["terminal-link@2.1.1", "", { "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" } }, "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ=="], - - "terser": ["terser@5.44.0", "", { "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" } }, "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w=="], - - "terser-webpack-plugin": ["terser-webpack-plugin@5.3.14", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw=="], - - "test-exclude": ["test-exclude@6.0.0", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w=="], - - "text-table": ["text-table@0.2.0", "", {}, "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="], - - "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], - - "thenify-all": ["thenify-all@1.6.0", "", { "dependencies": { "thenify": ">= 3.1.0 < 4" } }, "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA=="], - - "throat": ["throat@6.0.2", "", {}, "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ=="], - - "thunky": ["thunky@1.1.0", "", {}, "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="], - "tinycolor2": ["tinycolor2@1.6.0", "", {}, "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="], - "tmpl": ["tmpl@1.0.5", "", {}, "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="], - - "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], - - "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], - - "tough-cookie": ["tough-cookie@4.1.4", "", { "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.2.0", "url-parse": "^1.5.3" } }, "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag=="], - - "tr46": ["tr46@1.0.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA=="], - - "tryer": ["tryer@1.0.1", "", {}, "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="], - - "ts-interface-checker": ["ts-interface-checker@0.1.13", "", {}, "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="], - - "tsconfig-paths": ["tsconfig-paths@3.15.0", "", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], - - "tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - - "tsutils": ["tsutils@3.21.0", "", { "dependencies": { "tslib": "^1.8.1" }, "peerDependencies": { "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA=="], - - "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], - - "type-detect": ["type-detect@4.0.8", "", {}, "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="], - - "type-fest": ["type-fest@0.20.2", "", {}, "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="], - - "type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="], - - "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], - - "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], - - "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], - - "typed-array-length": ["typed-array-length@1.0.7", "", { "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", "is-typed-array": "^1.1.13", "possible-typed-array-names": "^1.0.0", "reflect.getprototypeof": "^1.0.6" } }, "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg=="], - - "typedarray-to-buffer": ["typedarray-to-buffer@3.1.5", "", { "dependencies": { "is-typedarray": "^1.0.0" } }, "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q=="], - - "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], - - "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], - - "underscore": ["underscore@1.12.1", "", {}, "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="], - - "undici-types": ["undici-types@7.14.0", "", {}, "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA=="], - - "unicode-canonical-property-names-ecmascript": ["unicode-canonical-property-names-ecmascript@2.0.1", "", {}, "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="], - - "unicode-match-property-ecmascript": ["unicode-match-property-ecmascript@2.0.0", "", { "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" } }, "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q=="], - - "unicode-match-property-value-ecmascript": ["unicode-match-property-value-ecmascript@2.2.1", "", {}, "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg=="], - - "unicode-property-aliases-ecmascript": ["unicode-property-aliases-ecmascript@2.2.0", "", {}, "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ=="], - - "unique-string": ["unique-string@2.0.0", "", { "dependencies": { "crypto-random-string": "^2.0.0" } }, "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg=="], - - "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], - - "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], - - "unquote": ["unquote@1.1.1", "", {}, "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "unraw": ["unraw@3.0.0", "", {}, "sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg=="], - "upath": ["upath@1.2.0", "", {}, "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="], - - "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], - - "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], - - "url-parse": ["url-parse@1.5.10", "", { "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ=="], - "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], - "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - - "util.promisify": ["util.promisify@1.0.1", "", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.2", "has-symbols": "^1.0.1", "object.getownpropertydescriptors": "^2.1.0" } }, "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA=="], - - "utila": ["utila@0.4.0", "", {}, "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="], - - "utils-merge": ["utils-merge@1.0.1", "", {}, "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="], - - "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], - - "v8-to-istanbul": ["v8-to-istanbul@8.1.1", "", { "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", "source-map": "^0.7.3" } }, "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w=="], - - "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], - - "w3c-hr-time": ["w3c-hr-time@1.0.2", "", { "dependencies": { "browser-process-hrtime": "^1.0.0" } }, "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ=="], - - "w3c-xmlserializer": ["w3c-xmlserializer@2.0.0", "", { "dependencies": { "xml-name-validator": "^3.0.0" } }, "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA=="], - - "walker": ["walker@1.0.8", "", { "dependencies": { "makeerror": "1.0.12" } }, "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ=="], - - "watchpack": ["watchpack@2.4.4", "", { "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA=="], - - "wbuf": ["wbuf@1.7.3", "", { "dependencies": { "minimalistic-assert": "^1.0.0" } }, "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA=="], - - "webidl-conversions": ["webidl-conversions@4.0.2", "", {}, "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="], - - "webpack": ["webpack@5.102.1", "", { "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" } }, "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ=="], - - "webpack-dev-middleware": ["webpack-dev-middleware@5.3.4", "", { "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "peerDependencies": { "webpack": "^4.0.0 || ^5.0.0" } }, "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q=="], - - "webpack-dev-server": ["webpack-dev-server@4.15.2", "", { "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", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "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", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.4", "ws": "^8.13.0" }, "peerDependencies": { "webpack": "^4.37.0 || ^5.0.0" }, "optionalPeers": ["webpack"], "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" } }, "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g=="], - - "webpack-manifest-plugin": ["webpack-manifest-plugin@4.1.1", "", { "dependencies": { "tapable": "^2.0.0", "webpack-sources": "^2.2.0" }, "peerDependencies": { "webpack": "^4.44.2 || ^5.47.0" } }, "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow=="], - - "webpack-sources": ["webpack-sources@3.3.3", "", {}, "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg=="], - - "websocket-driver": ["websocket-driver@0.7.4", "", { "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg=="], - - "websocket-extensions": ["websocket-extensions@0.1.4", "", {}, "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="], - - "whatwg-encoding": ["whatwg-encoding@1.0.5", "", { "dependencies": { "iconv-lite": "0.4.24" } }, "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw=="], - - "whatwg-fetch": ["whatwg-fetch@3.6.20", "", {}, "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg=="], - - "whatwg-mimetype": ["whatwg-mimetype@2.3.0", "", {}, "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="], - - "whatwg-url": ["whatwg-url@7.1.0", "", { "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", "webidl-conversions": "^4.0.2" } }, "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg=="], - - "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], - - "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], - - "which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], - - "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], - - "which-typed-array": ["which-typed-array@1.1.19", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw=="], - - "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], - - "workbox-background-sync": ["workbox-background-sync@6.6.1", "", { "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.1" } }, "sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg=="], - - "workbox-broadcast-update": ["workbox-broadcast-update@6.6.1", "", { "dependencies": { "workbox-core": "6.6.1" } }, "sha512-fBhffRdaANdeQ1V8s692R9l/gzvjjRtydBOvR6WCSB0BNE2BacA29Z4r9/RHd9KaXCPl6JTdI9q0bR25YKP8TQ=="], - - "workbox-build": ["workbox-build@6.6.1", "", { "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", "@babel/preset-env": "^7.11.0", "@babel/runtime": "^7.11.2", "@rollup/plugin-babel": "^5.2.0", "@rollup/plugin-node-resolve": "^11.2.1", "@rollup/plugin-replace": "^2.4.1", "@surma/rollup-plugin-off-main-thread": "^2.2.3", "ajv": "^8.6.0", "common-tags": "^1.8.0", "fast-json-stable-stringify": "^2.1.0", "fs-extra": "^9.0.1", "glob": "^7.1.6", "lodash": "^4.17.20", "pretty-bytes": "^5.3.0", "rollup": "^2.43.1", "rollup-plugin-terser": "^7.0.0", "source-map": "^0.8.0-beta.0", "stringify-object": "^3.3.0", "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", "workbox-background-sync": "6.6.1", "workbox-broadcast-update": "6.6.1", "workbox-cacheable-response": "6.6.1", "workbox-core": "6.6.1", "workbox-expiration": "6.6.1", "workbox-google-analytics": "6.6.1", "workbox-navigation-preload": "6.6.1", "workbox-precaching": "6.6.1", "workbox-range-requests": "6.6.1", "workbox-recipes": "6.6.1", "workbox-routing": "6.6.1", "workbox-strategies": "6.6.1", "workbox-streams": "6.6.1", "workbox-sw": "6.6.1", "workbox-window": "6.6.1" } }, "sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw=="], - - "workbox-cacheable-response": ["workbox-cacheable-response@6.6.1", "", { "dependencies": { "workbox-core": "6.6.1" } }, "sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag=="], - - "workbox-core": ["workbox-core@6.6.1", "", {}, "sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw=="], - - "workbox-expiration": ["workbox-expiration@6.6.1", "", { "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.1" } }, "sha512-qFiNeeINndiOxaCrd2DeL1Xh1RFug3JonzjxUHc5WkvkD2u5abY3gZL1xSUNt3vZKsFFGGORItSjVTVnWAZO4A=="], - - "workbox-google-analytics": ["workbox-google-analytics@6.6.1", "", { "dependencies": { "workbox-background-sync": "6.6.1", "workbox-core": "6.6.1", "workbox-routing": "6.6.1", "workbox-strategies": "6.6.1" } }, "sha512-1TjSvbFSLmkpqLcBsF7FuGqqeDsf+uAXO/pjiINQKg3b1GN0nBngnxLcXDYo1n/XxK4N7RaRrpRlkwjY/3ocuA=="], - - "workbox-navigation-preload": ["workbox-navigation-preload@6.6.1", "", { "dependencies": { "workbox-core": "6.6.1" } }, "sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA=="], - - "workbox-precaching": ["workbox-precaching@6.6.1", "", { "dependencies": { "workbox-core": "6.6.1", "workbox-routing": "6.6.1", "workbox-strategies": "6.6.1" } }, "sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A=="], - - "workbox-range-requests": ["workbox-range-requests@6.6.1", "", { "dependencies": { "workbox-core": "6.6.1" } }, "sha512-4BDzk28govqzg2ZpX0IFkthdRmCKgAKreontYRC5YsAPB2jDtPNxqx3WtTXgHw1NZalXpcH/E4LqUa9+2xbv1g=="], - - "workbox-recipes": ["workbox-recipes@6.6.1", "", { "dependencies": { "workbox-cacheable-response": "6.6.1", "workbox-core": "6.6.1", "workbox-expiration": "6.6.1", "workbox-precaching": "6.6.1", "workbox-routing": "6.6.1", "workbox-strategies": "6.6.1" } }, "sha512-/oy8vCSzromXokDA+X+VgpeZJvtuf8SkQ8KL0xmRivMgJZrjwM3c2tpKTJn6PZA6TsbxGs3Sc7KwMoZVamcV2g=="], - - "workbox-routing": ["workbox-routing@6.6.1", "", { "dependencies": { "workbox-core": "6.6.1" } }, "sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg=="], - - "workbox-strategies": ["workbox-strategies@6.6.1", "", { "dependencies": { "workbox-core": "6.6.1" } }, "sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw=="], - - "workbox-streams": ["workbox-streams@6.6.1", "", { "dependencies": { "workbox-core": "6.6.1", "workbox-routing": "6.6.1" } }, "sha512-maKG65FUq9e4BLotSKWSTzeF0sgctQdYyTMq529piEN24Dlu9b6WhrAfRpHdCncRS89Zi2QVpW5V33NX8PgH3Q=="], - - "workbox-sw": ["workbox-sw@6.6.1", "", {}, "sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ=="], - - "workbox-webpack-plugin": ["workbox-webpack-plugin@6.6.1", "", { "dependencies": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", "upath": "^1.2.0", "webpack-sources": "^1.4.3", "workbox-build": "6.6.1" }, "peerDependencies": { "webpack": "^4.4.0 || ^5.9.0" } }, "sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA=="], - - "workbox-window": ["workbox-window@6.6.1", "", { "dependencies": { "@types/trusted-types": "^2.0.2", "workbox-core": "6.6.1" } }, "sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ=="], - - "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - - "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], - - "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], - - "write-file-atomic": ["write-file-atomic@3.0.3", "", { "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q=="], - - "ws": ["ws@8.18.3", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="], - - "xml-name-validator": ["xml-name-validator@3.0.0", "", {}, "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="], - - "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], - - "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], - - "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], - "yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="], - "yargs": ["yargs@16.2.0", "", { "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } }, "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="], - - "yargs-parser": ["yargs-parser@20.2.9", "", {}, "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="], - - "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], - "zustand": ["zustand@4.5.7", "", { "dependencies": { "use-sync-external-store": "^1.2.2" }, "peerDependencies": { "@types/react": ">=16.8", "immer": ">=9.0.6", "react": ">=16.8" }, "optionalPeers": ["@types/react", "immer", "react"] }, "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw=="], - "@apideck/better-ajv-errors/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - - "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "@babel/eslint-parser/eslint-visitor-keys": ["eslint-visitor-keys@2.1.0", "", {}, "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="], - - "@babel/eslint-parser/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "@babel/helper-create-regexp-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "@babel/plugin-transform-runtime/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "@babel/preset-env/@babel/plugin-proposal-private-property-in-object": ["@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2", "", { "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w=="], - - "@babel/preset-env/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "@emotion/babel-plugin/convert-source-map": ["convert-source-map@1.9.0", "", {}, "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="], - - "@emotion/babel-plugin/source-map": ["source-map@0.5.7", "", {}, "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="], - "@emotion/cache/@emotion/weak-memoize": ["@emotion/weak-memoize@0.4.0", "", {}, "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg=="], - - "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], - - "@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], - - "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], - - "@istanbuljs/load-nyc-config/camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], - - "@istanbuljs/load-nyc-config/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - - "@istanbuljs/load-nyc-config/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], - - "@jest/core/jest-regex-util": ["jest-regex-util@27.5.1", "", {}, "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="], - - "@jest/core/jest-watcher": ["jest-watcher@27.5.1", "", { "dependencies": { "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "jest-util": "^27.5.1", "string-length": "^4.0.1" } }, "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw=="], - - "@jest/reporters/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "@jest/reporters/string-length": ["string-length@4.0.2", "", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], - - "@jest/source-map/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "@jest/transform/convert-source-map": ["convert-source-map@1.9.0", "", {}, "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="], - - "@jest/transform/jest-regex-util": ["jest-regex-util@27.5.1", "", {}, "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="], - - "@jest/transform/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "@nicolo-ribaudo/eslint-scope-5-internals/eslint-scope": ["eslint-scope@5.1.1", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], - - "@rollup/pluginutils/@types/estree": ["@types/estree@0.0.39", "", {}, "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="], - - "@typescript-eslint/utils/eslint-scope": ["eslint-scope@5.1.1", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], - - "accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], - - "acorn-globals/acorn": ["acorn@7.4.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="], - - "ajv-formats/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - - "ajv-keywords/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - - "ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], - - "babel-loader/schema-utils": ["schema-utils@2.7.1", "", { "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", "ajv-keywords": "^3.5.2" } }, "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg=="], - - "babel-plugin-polyfill-corejs2/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "body-parser/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - - "body-parser/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], - - "camel-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - - "clean-css/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "coa/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], - - "compressible/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], - - "compression/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - - "css-minimizer-webpack-plugin/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "css-tree/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "cssnano/lilconfig": ["lilconfig@2.1.0", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="], - - "csso/css-tree": ["css-tree@1.1.3", "", { "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="], - - "cssstyle/cssom": ["cssom@0.3.8", "", {}, "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="], - - "data-urls/whatwg-url": ["whatwg-url@8.7.0", "", { "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", "webidl-conversions": "^6.1.0" } }, "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg=="], - - "detect-port-alt/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - - "domexception/webidl-conversions": ["webidl-conversions@5.0.0", "", {}, "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA=="], - - "domutils/domelementtype": ["domelementtype@1.3.1", "", {}, "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="], - - "dot-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "escodegen/esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], - - "escodegen/estraverse": ["estraverse@4.3.0", "", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], - - "escodegen/optionator": ["optionator@0.8.3", "", { "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "word-wrap": "~1.2.3" } }, "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA=="], - - "escodegen/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - - "eslint-module-utils/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - - "eslint-plugin-import/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], - - "eslint-plugin-import/doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], - - "eslint-plugin-import/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "eslint-plugin-react/doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], - - "eslint-plugin-react/resolve": ["resolve@2.0.0-next.5", "", { "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA=="], - - "eslint-plugin-react/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "eslint-webpack-plugin/jest-worker": ["jest-worker@28.1.3", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g=="], - - "express/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - - "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - - "file-loader/schema-utils": ["schema-utils@3.3.0", "", { "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } }, "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg=="], - - "filelist/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], - - "finalhandler/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - - "foreground-child/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], - - "fork-ts-checker-webpack-plugin/cosmiconfig": ["cosmiconfig@6.0.0", "", { "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.7.2" } }, "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg=="], - - "fork-ts-checker-webpack-plugin/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], - - "fork-ts-checker-webpack-plugin/schema-utils": ["schema-utils@2.7.0", "", { "dependencies": { "@types/json-schema": "^7.0.4", "ajv": "^6.12.2", "ajv-keywords": "^3.4.1" } }, "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A=="], - - "fork-ts-checker-webpack-plugin/tapable": ["tapable@1.1.3", "", {}, "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="], - - "global-prefix/which": ["which@1.3.1", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "./bin/which" } }, "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="], - - "hpack.js/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], - - "htmlparser2/domutils": ["domutils@2.8.0", "", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="], - - "import-fresh/resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], - - "istanbul-lib-instrument/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "istanbul-lib-report/make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="], - - "istanbul-lib-source-maps/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "jest-config/jest-regex-util": ["jest-regex-util@27.5.1", "", {}, "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="], - - "jest-haste-map/jest-regex-util": ["jest-regex-util@27.5.1", "", {}, "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="], - - "jest-resolve-dependencies/jest-regex-util": ["jest-regex-util@27.5.1", "", {}, "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="], - - "jest-runtime/jest-regex-util": ["jest-regex-util@27.5.1", "", {}, "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg=="], - - "jest-runtime/strip-bom": ["strip-bom@4.0.0", "", {}, "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="], - - "jest-watch-typeahead/slash": ["slash@4.0.0", "", {}, "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew=="], - - "jest-watch-typeahead/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], - - "jest-watcher/@jest/test-result": ["@jest/test-result@28.1.3", "", { "dependencies": { "@jest/console": "^28.1.3", "@jest/types": "^28.1.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg=="], - - "jest-watcher/@jest/types": ["@jest/types@28.1.3", "", { "dependencies": { "@jest/schemas": "^28.1.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^17.0.8", "chalk": "^4.0.0" } }, "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ=="], - - "jest-watcher/emittery": ["emittery@0.10.2", "", {}, "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw=="], - - "jest-watcher/jest-util": ["jest-util@28.1.3", "", { "dependencies": { "@jest/types": "^28.1.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", "graceful-fs": "^4.2.9", "picomatch": "^2.2.3" } }, "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ=="], - - "jest-watcher/string-length": ["string-length@4.0.2", "", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], - - "jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - - "jsdom/escodegen": ["escodegen@2.1.0", "", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w=="], - - "jsdom/webidl-conversions": ["webidl-conversions@6.1.0", "", {}, "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="], - - "jsdom/whatwg-url": ["whatwg-url@8.7.0", "", { "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", "webidl-conversions": "^6.1.0" } }, "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg=="], - - "jsdom/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], - - "lower-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "make-dir/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - - "no-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "param-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "pascal-case/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], - - "path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - - "pkg-dir/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], - - "pkg-up/find-up": ["find-up@3.0.0", "", { "dependencies": { "locate-path": "^3.0.0" } }, "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="], - - "playwright/fsevents": ["fsevents@2.3.2", "", { "os": "darwin" }, "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="], - - "postcss-modules-local-by-default/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], - - "postcss-modules-scope/postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="], - - "postcss-svgo/svgo": ["svgo@2.8.0", "", { "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", "picocolors": "^1.0.0", "stable": "^0.1.8" }, "bin": { "svgo": "bin/svgo" } }, "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg=="], - - "pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - - "pretty-format/react-is": ["react-is@17.0.2", "", {}, "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="], - - "proxy-addr/ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], - - "raw-body/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], - - "react-dev-utils/loader-utils": ["loader-utils@3.3.1", "", {}, "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg=="], - - "renderkid/css-select": ["css-select@4.3.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ=="], - - "resolve-url-loader/convert-source-map": ["convert-source-map@1.9.0", "", {}, "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="], - - "resolve-url-loader/postcss": ["postcss@7.0.39", "", { "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" } }, "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA=="], - - "resolve-url-loader/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "rollup-plugin-terser/jest-worker": ["jest-worker@26.6.2", "", { "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" } }, "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ=="], - - "rollup-plugin-terser/serialize-javascript": ["serialize-javascript@4.0.0", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw=="], - - "schema-utils/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - - "send/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - - "send/encodeurl": ["encodeurl@1.0.2", "", {}, "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="], - - "serve-index/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], - - "serve-index/http-errors": ["http-errors@1.6.3", "", { "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" } }, "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A=="], - - "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "stack-utils/escape-string-regexp": ["escape-string-regexp@2.0.0", "", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="], - - "string-length/strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="], - - "string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - - "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - - "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], - - "sucrase/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], - - "svgo/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], - - "svgo/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], - - "tempy/type-fest": ["type-fest@0.16.0", "", {}, "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg=="], - - "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], - - "tough-cookie/universalify": ["universalify@0.2.0", "", {}, "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="], - - "tsconfig-paths/json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], - - "v8-to-istanbul/convert-source-map": ["convert-source-map@1.9.0", "", {}, "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="], - - "webpack/eslint-scope": ["eslint-scope@5.1.1", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="], - - "webpack-manifest-plugin/webpack-sources": ["webpack-sources@2.3.1", "", { "dependencies": { "source-list-map": "^2.0.1", "source-map": "^0.6.1" } }, "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA=="], - - "whatwg-encoding/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], - - "workbox-build/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - - "workbox-build/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], - - "workbox-build/source-map": ["source-map@0.8.0-beta.0", "", { "dependencies": { "whatwg-url": "^7.0.0" } }, "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA=="], - - "workbox-webpack-plugin/webpack-sources": ["webpack-sources@1.4.3", "", { "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" } }, "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ=="], - - "@apideck/better-ajv-errors/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - - "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - - "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], - - "@istanbuljs/load-nyc-config/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - - "@istanbuljs/load-nyc-config/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - - "@istanbuljs/load-nyc-config/js-yaml/esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], - - "@jest/core/jest-watcher/string-length": ["string-length@4.0.2", "", { "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ=="], - - "@jest/reporters/string-length/char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], - - "@nicolo-ribaudo/eslint-scope-5-internals/eslint-scope/estraverse": ["estraverse@4.3.0", "", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], - - "@typescript-eslint/utils/eslint-scope/estraverse": ["estraverse@4.3.0", "", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], - - "ajv-formats/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - - "ajv-keywords/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - - "babel-loader/schema-utils/ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="], - - "body-parser/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - - "coa/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - - "coa/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], - - "coa/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - - "compression/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - - "csso/css-tree/mdn-data": ["mdn-data@2.0.14", "", {}, "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="], - - "csso/css-tree/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "data-urls/whatwg-url/tr46": ["tr46@2.1.0", "", { "dependencies": { "punycode": "^2.1.1" } }, "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw=="], - - "data-urls/whatwg-url/webidl-conversions": ["webidl-conversions@6.1.0", "", {}, "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="], - - "detect-port-alt/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - - "escodegen/optionator/levn": ["levn@0.3.0", "", { "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" } }, "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA=="], - - "escodegen/optionator/prelude-ls": ["prelude-ls@1.1.2", "", {}, "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w=="], - - "escodegen/optionator/type-check": ["type-check@0.3.2", "", { "dependencies": { "prelude-ls": "~1.1.2" } }, "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg=="], - - "eslint-webpack-plugin/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - - "express/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - - "file-loader/schema-utils/ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="], - - "filelist/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - - "finalhandler/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - - "fork-ts-checker-webpack-plugin/schema-utils/ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="], - - "hpack.js/readable-stream/isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], - - "hpack.js/readable-stream/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], - - "hpack.js/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], - - "htmlparser2/domutils/dom-serializer": ["dom-serializer@1.4.1", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="], - - "jest-watch-typeahead/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - - "jest-watcher/@jest/test-result/@jest/console": ["@jest/console@28.1.3", "", { "dependencies": { "@jest/types": "^28.1.3", "@types/node": "*", "chalk": "^4.0.0", "jest-message-util": "^28.1.3", "jest-util": "^28.1.3", "slash": "^3.0.0" } }, "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw=="], - - "jest-watcher/@jest/types/@types/yargs": ["@types/yargs@17.0.33", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA=="], - - "jest-watcher/string-length/char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], - - "jsdom/escodegen/esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], - - "jsdom/escodegen/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "jsdom/whatwg-url/tr46": ["tr46@2.1.0", "", { "dependencies": { "punycode": "^2.1.1" } }, "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw=="], - - "pkg-dir/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], - - "pkg-up/find-up/locate-path": ["locate-path@3.0.0", "", { "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="], - - "postcss-svgo/svgo/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], - - "postcss-svgo/svgo/css-select": ["css-select@4.3.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ=="], - - "postcss-svgo/svgo/css-tree": ["css-tree@1.1.3", "", { "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q=="], - - "renderkid/css-select/css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], - - "renderkid/css-select/domutils": ["domutils@2.8.0", "", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="], - - "renderkid/css-select/nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], - - "resolve-url-loader/postcss/picocolors": ["picocolors@0.2.1", "", {}, "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA=="], - - "schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - - "send/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - - "serve-index/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - - "serve-index/http-errors/depd": ["depd@1.1.2", "", {}, "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="], - - "serve-index/http-errors/inherits": ["inherits@2.0.3", "", {}, "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="], - - "serve-index/http-errors/setprototypeof": ["setprototypeof@1.1.0", "", {}, "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="], - - "serve-index/http-errors/statuses": ["statuses@1.5.0", "", {}, "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="], - - "string-length/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], - - "sucrase/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - - "svgo/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - - "svgo/chalk/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], - - "svgo/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - - "svgo/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], - - "svgo/js-yaml/esprima": ["esprima@4.0.1", "", { "bin": { "esparse": "./bin/esparse.js", "esvalidate": "./bin/esvalidate.js" } }, "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="], - - "webpack-manifest-plugin/webpack-sources/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "webpack/eslint-scope/estraverse": ["estraverse@4.3.0", "", {}, "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="], - - "workbox-build/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - - "workbox-webpack-plugin/webpack-sources/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - - "@jest/core/jest-watcher/string-length/char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], - - "coa/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], - - "coa/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - - "jest-watcher/@jest/test-result/@jest/console/jest-message-util": ["jest-message-util@28.1.3", "", { "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^28.1.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", "pretty-format": "^28.1.3", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g=="], - - "pkg-dir/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], - - "pkg-up/find-up/locate-path/p-locate": ["p-locate@3.0.0", "", { "dependencies": { "p-limit": "^2.0.0" } }, "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="], - - "pkg-up/find-up/locate-path/path-exists": ["path-exists@3.0.0", "", {}, "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="], - - "postcss-svgo/svgo/css-select/css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], - - "postcss-svgo/svgo/css-select/domutils": ["domutils@2.8.0", "", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="], - - "postcss-svgo/svgo/css-select/nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], - - "postcss-svgo/svgo/css-tree/mdn-data": ["mdn-data@2.0.14", "", {}, "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="], - - "postcss-svgo/svgo/css-tree/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], - - "renderkid/css-select/domutils/dom-serializer": ["dom-serializer@1.4.1", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="], - - "sucrase/glob/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], - - "svgo/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], - - "svgo/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - - "@istanbuljs/load-nyc-config/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - - "coa/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - - "jest-watcher/@jest/test-result/@jest/console/jest-message-util/pretty-format": ["pretty-format@28.1.3", "", { "dependencies": { "@jest/schemas": "^28.1.3", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" } }, "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q=="], - - "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - - "pkg-up/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], - - "postcss-svgo/svgo/css-select/domutils/dom-serializer": ["dom-serializer@1.4.1", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="], - - "svgo/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - - "jest-watcher/@jest/test-result/@jest/console/jest-message-util/pretty-format/ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], - - "jest-watcher/@jest/test-result/@jest/console/jest-message-util/pretty-format/react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], } } diff --git a/packages/editor-mobile/package.json b/packages/editor-mobile/package.json index 04de2259a..99ddb96c6 100644 --- a/packages/editor-mobile/package.json +++ b/packages/editor-mobile/package.json @@ -24,17 +24,15 @@ }, "devDependencies": { "@playwright/test": "^1.37.1", + "@rsbuild/core": "^1.5.16", + "@rsbuild/plugin-react": "^1.4.1", "@types/react": "^18.2.39", - "@types/react-dom": "^18.2.17", - "react-scripts": "^5.0.1" + "@types/react-dom": "^18.2.17" }, "scripts": { - "start": "DISABLE_ESLINT_PLUGIN=true GENERATE_SOURCEMAP=true BROWSER=none react-scripts start", - "build": "DISABLE_ESLINT_PLUGIN=true GENERATE_SOURCEMAP=true BROWSER=none react-scripts build", - "postbuild": "bun run scripts/build.mjs", - "test": "react-scripts test", - "eject": "react-scripts eject", - "postinstall": "patch-package" + "start": "DISABLE_ESLINT_PLUGIN=true GENERATE_SOURCEMAP=true BROWSER=none rsbuild start", + "build": "DISABLE_ESLINT_PLUGIN=true GENERATE_SOURCEMAP=true BROWSER=none rsbuild build", + "postbuild": "bun run scripts/build.mjs" }, "homepage": ".", "browserslist": { @@ -48,14 +46,5 @@ "last 1 firefox version", "last 1 safari version" ] - }, - "nx": { - "targets": { - "build": { - "outputs": [ - "{projectRoot}/build.bundle" - ] - } - } } } diff --git a/packages/editor-mobile/patches/react-scripts+5.0.1.patch b/packages/editor-mobile/patches/react-scripts+5.0.1.patch deleted file mode 100644 index d3b84f2eb..000000000 --- a/packages/editor-mobile/patches/react-scripts+5.0.1.patch +++ /dev/null @@ -1,141 +0,0 @@ -diff --git a/node_modules/react-scripts/config/webpack.config.js b/node_modules/react-scripts/config/webpack.config.js -index e465d8e..19a2c01 100644 ---- a/node_modules/react-scripts/config/webpack.config.js -+++ b/node_modules/react-scripts/config/webpack.config.js -@@ -106,6 +106,9 @@ module.exports = function (webpackEnv) { - const isEnvProductionProfile = - isEnvProduction && process.argv.includes('--profile'); - -+ const isEnvProductionTest = -+ isEnvProduction && process.argv.includes('--test'); -+ - // We will provide `paths.publicUrlOrPath` to our app - // as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript. - // Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz. -@@ -256,7 +259,7 @@ module.exports = function (webpackEnv) { - level: 'none', - }, - optimization: { -- minimize: isEnvProduction, -+ minimize: isEnvProduction && !isEnvProductionTest, - minimizer: [ - // This is only used in production mode - new TerserPlugin({ -@@ -304,6 +307,14 @@ module.exports = function (webpackEnv) { - }, - resolve: { - // This allows you to set a fallback for where webpack should look for modules. -+ fallback: { -+ crypto: false, -+ module: false, -+ dgram: false, -+ path: false, -+ url: false, -+ fs: false -+ }, - // We placed these paths second because we want `node_modules` to "win" - // if there are any conflicts. This matches Node resolution mechanism. - // https://github.com/facebook/create-react-app/issues/253 -@@ -320,13 +331,19 @@ module.exports = function (webpackEnv) { - .map(ext => `.${ext}`) - .filter(ext => useTypeScript || !ext.includes('ts')), - alias: { -+ "react": path.resolve(path.join(__dirname,'../../react')), -+ "react-dom": path.resolve(path.join(__dirname,'../../react-dom')), -+ "@mdi/js": path.resolve(path.join(__dirname,'../../@mdi/js')), -+ "@mdi/react": path.resolve(path.join(__dirname,'../../@mdi/react')), -+ "@emotion/react": path.resolve(path.join(__dirname,'../../@emotion/react')), -+ - // Support React Native Web - // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ - 'react-native': 'react-native-web', - // Allows for better profiling with ReactDevTools - ...(isEnvProductionProfile && { - 'react-dom$': 'react-dom/profiling', -- 'scheduler/tracing': 'scheduler/tracing-profiling', -+ 'scheduler/tracing': 'scheduler/tracing-profiling' - }), - ...(modules.webpackAliases || {}), - }, -@@ -336,14 +353,14 @@ module.exports = function (webpackEnv) { - // To fix this, we prevent you from importing files out of src/ -- if you'd like to, - // please link the files into your node_modules/ and let module-resolution kick in. - // Make sure your source files are compiled, as they will not be processed in any way. -- new ModuleScopePlugin(paths.appSrc, [ -- paths.appPackageJson, -- reactRefreshRuntimeEntry, -- reactRefreshWebpackPluginRuntimeEntry, -- babelRuntimeEntry, -- babelRuntimeEntryHelpers, -- babelRuntimeRegenerator, -- ]), -+ // new ModuleScopePlugin(paths.appSrc, [ -+ // paths.appPackageJson, -+ // reactRefreshRuntimeEntry, -+ // reactRefreshWebpackPluginRuntimeEntry, -+ // babelRuntimeEntry, -+ // babelRuntimeEntryHelpers, -+ // babelRuntimeRegenerator, -+ // ]), - ], - }, - module: { -@@ -353,7 +370,7 @@ module.exports = function (webpackEnv) { - shouldUseSourceMap && { - enforce: 'pre', - exclude: /@babel(?:\/|\\{1,2})runtime/, -- test: /\.(js|mjs|jsx|ts|tsx|css)$/, -+ test: /\.(cjs|js|mjs|jsx|ts|tsx|css)$/, - loader: require.resolve('source-map-loader'), - }, - { -@@ -408,13 +425,13 @@ module.exports = function (webpackEnv) { - }, - ], - issuer: { -- and: [/\.(ts|tsx|js|jsx|md|mdx)$/], -+ and: [/\.(ts|tsx|cjs|js|jsx|md|mdx)$/], - }, - }, - // Process application JS with Babel. - // The preset includes JSX, Flow, TypeScript, and some ESnext features. - { -- test: /\.(js|mjs|jsx|ts|tsx)$/, -+ test: /\.(cjs|js|mjs|jsx|ts|tsx)$/, - include: paths.appSrc, - loader: require.resolve('babel-loader'), - options: { -@@ -452,7 +469,7 @@ module.exports = function (webpackEnv) { - plugins: [ - isEnvDevelopment && - shouldUseReactRefresh && -- require.resolve('react-refresh/babel'), -+ require.resolve('react-refresh/babel') - ].filter(Boolean), - // This is a feature of `babel-loader` for webpack (not Babel itself). - // It enables caching results in ./node_modules/.cache/babel-loader/ -@@ -460,13 +477,13 @@ module.exports = function (webpackEnv) { - cacheDirectory: true, - // See #6846 for context on why cacheCompression is disabled - cacheCompression: false, -- compact: isEnvProduction, -+ compact: isEnvProduction && !isEnvProductionTest, - }, - }, - // Process any JS outside of the app with Babel. - // Unlike the application JS, we only compile the standard ES features. - { -- test: /\.(js|mjs)$/, -+ test: /\.(cjs|js|mjs)$/, - exclude: /@babel(?:\/|\\{1,2})runtime/, - loader: require.resolve('babel-loader'), - options: { -@@ -594,7 +611,7 @@ module.exports = function (webpackEnv) { - // its runtime that would otherwise be processed through "file" loader. - // Also exclude `html` and `json` extensions so they get processed - // by webpacks internal loaders. -- exclude: [/^$/, /\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/], -+ exclude: [/^$/, /\.(cjs|js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/], - type: 'asset/resource', - }, - // ** STOP ** Are you adding a new loader? diff --git a/packages/editor-mobile/rsbuild.config.ts b/packages/editor-mobile/rsbuild.config.ts new file mode 100644 index 000000000..aa830a5ff --- /dev/null +++ b/packages/editor-mobile/rsbuild.config.ts @@ -0,0 +1,52 @@ +import { defineConfig } from "@rsbuild/core"; +import { pluginReact } from "@rsbuild/plugin-react"; +import path from "path"; + +export default defineConfig({ + html: { + template: "./public/index.html" + }, + output: { + distPath: { + root: "build" + }, + sourceMap: { + css: false, + js: "cheap-module-source-map" + } + }, + + tools: { + rspack: { + externals: { + "node:crypto": "commonjs crypto" + }, + resolve: { + alias: { + react: path.resolve(path.join(__dirname, "node_modules", "react")), + "react-dom": path.resolve( + path.join(__dirname, "node_modules", "react-dom") + ), + "@mdi/js": path.resolve( + path.join(__dirname, "node_modules", "@mdi/js") + ), + "@mdi/react": path.resolve( + path.join(__dirname, "node_modules", "@mdi/react") + ), + "@emotion/react": path.resolve( + path.join(__dirname, "node_modules", "@emotion/react") + ) + }, + fallback: { + crypto: false, + module: false, + dgram: false, + path: false, + url: false, + fs: false + } + } + } + }, + plugins: [pluginReact()] +}); diff --git a/packages/editor/bun.lock b/packages/editor/bun.lock index e58f53968..f41764634 100644 --- a/packages/editor/bun.lock +++ b/packages/editor/bun.lock @@ -48,7 +48,7 @@ "nanoid": "5.0.7", "prism-themes": "^1.9.0", "prosemirror-codemark": "^0.4.2", - "prosemirror-view": "1.34.2", + "prosemirror-view": "1.41.3", "re-resizable": "^6.9.18", "react-colorful": "^5.6.1", "redent": "^4.0.0", @@ -92,6 +92,16 @@ }, }, }, + "patchedDependencies": { + "prosemirror-model@1.25.3": "patches/prosemirror-model@1.25.3.patch", + "katex@0.16.11": "patches/katex@0.16.11.patch", + "prosemirror-view@1.41.3": "patches/prosemirror-view@1.41.3.patch", + "@tiptap/core@2.6.6": "patches/@tiptap%2Fcore@2.6.6.patch", + "@tiptap/extension-list-keymap@2.6.6": "patches/@tiptap%2Fextension-list-keymap@2.6.6.patch", + }, + "overrides": { + "prosemirror-view": "1.41.3", + }, "packages": { "@azure/msal-browser": ["@azure/msal-browser@3.30.0", "", { "dependencies": { "@azure/msal-common": "14.16.1" } }, "sha512-I0XlIGVdM4E9kYP5eTjgW8fgATdzwxJvQ6bm2PNiHaZhEuUz47NYw1xHthC9R+lXz4i9zbShS0VdLyxd7n0GGA=="], @@ -945,7 +955,7 @@ "prosemirror-transform": ["prosemirror-transform@1.10.4", "", { "dependencies": { "prosemirror-model": "^1.21.0" } }, "sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw=="], - "prosemirror-view": ["prosemirror-view@1.34.2", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-tPX/V2Xd70vrAGQ/V9CppJtPKnQyQMypJGlLylvdI94k6JaG+4P6fVmXPR1zc1eVTW0gq3c6zsfqwJKCRLaG9Q=="], + "prosemirror-view": ["prosemirror-view@1.41.3", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ=="], "pstree.remy": ["pstree.remy@1.1.8", "", {}, "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="], @@ -1209,14 +1219,6 @@ "postcss/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], - "prosemirror-dropcursor/prosemirror-view": ["prosemirror-view@1.41.3", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ=="], - - "prosemirror-gapcursor/prosemirror-view": ["prosemirror-view@1.41.3", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ=="], - - "prosemirror-history/prosemirror-view": ["prosemirror-view@1.41.3", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ=="], - - "prosemirror-tables/prosemirror-view": ["prosemirror-view@1.41.3", "", { "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ=="], - "remark-supersub/unist-util-visit": ["unist-util-visit@4.1.2", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", "unist-util-visit-parents": "^5.1.1" } }, "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg=="], "unfurl.js/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], diff --git a/packages/editor/package.json b/packages/editor/package.json index 82287aea3..a0db0d6e7 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -74,7 +74,7 @@ "nanoid": "5.0.7", "prism-themes": "^1.9.0", "prosemirror-codemark": "^0.4.2", - "prosemirror-view": "1.34.2", + "prosemirror-view": "1.41.3", "re-resizable": "^6.9.18", "react-colorful": "^5.6.1", "redent": "^4.0.0", @@ -122,7 +122,6 @@ "postbuild": "bun run ./scripts/postbuild.mjs", "start": "bun run watch", "prepublishOnly": "bun run build && bun run test", - "postinstall": "patch-package", "build": "bun run ../../scripts/build.mjs", "watch": "nodemon -V --watch src --watch styles/styles.css -i src/extensions/code-block/languages/index.ts --ext ts,tsx,css --exec bun run build" }, @@ -130,5 +129,15 @@ "type": "git", "url": "git://github.com/streetwriters/notesnook.git", "directory": "packages/editor" + }, + "overrides": { + "prosemirror-view": "1.41.3" + }, + "patchedDependencies": { + "prosemirror-view@1.41.3": "patches/prosemirror-view@1.41.3.patch", + "prosemirror-model@1.25.3": "patches/prosemirror-model@1.25.3.patch", + "@tiptap/core@2.6.6": "patches/@tiptap%2Fcore@2.6.6.patch", + "@tiptap/extension-list-keymap@2.6.6": "patches/@tiptap%2Fextension-list-keymap@2.6.6.patch", + "katex@0.16.11": "patches/katex@0.16.11.patch" } } diff --git a/packages/editor/patches/@tiptap+core+2.6.6.patch b/packages/editor/patches/@tiptap%2Fcore@2.6.6.patch similarity index 99% rename from packages/editor/patches/@tiptap+core+2.6.6.patch rename to packages/editor/patches/@tiptap%2Fcore@2.6.6.patch index a12c68925..12876b2a5 100644 --- a/packages/editor/patches/@tiptap+core+2.6.6.patch +++ b/packages/editor/patches/@tiptap%2Fcore@2.6.6.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/@tiptap/core/dist/index.cjs b/node_modules/@tiptap/core/dist/index.cjs +diff --git a/dist/index.cjs b/dist/index.cjs index 61b4f6c..eb21688 100644 ---- a/node_modules/@tiptap/core/dist/index.cjs -+++ b/node_modules/@tiptap/core/dist/index.cjs +--- a/dist/index.cjs ++++ b/dist/index.cjs @@ -304,45 +304,59 @@ function getNodeType(nameOrType, schema) { } @@ -345,19 +345,19 @@ index 61b4f6c..eb21688 100644 } /** * Creates all node views. -diff --git a/node_modules/@tiptap/core/dist/index.cjs.map b/node_modules/@tiptap/core/dist/index.cjs.map +diff --git a/dist/index.cjs.map b/dist/index.cjs.map index 9c28917..9138226 100644 ---- a/node_modules/@tiptap/core/dist/index.cjs.map -+++ b/node_modules/@tiptap/core/dist/index.cjs.map +--- a/dist/index.cjs.map ++++ b/dist/index.cjs.map @@ -1 +1 @@ -{"version":3,"file":"index.cjs","sources":["../src/helpers/createChainableState.ts","../src/CommandManager.ts","../src/EventEmitter.ts","../src/helpers/getExtensionField.ts","../src/helpers/splitExtensions.ts","../src/helpers/getAttributesFromExtensions.ts","../src/helpers/getNodeType.ts","../src/utilities/mergeAttributes.ts","../src/helpers/getRenderedAttributes.ts","../src/utilities/isFunction.ts","../src/utilities/callOrReturn.ts","../src/utilities/isEmptyObject.ts","../src/utilities/fromString.ts","../src/helpers/injectExtensionAttributesToParseRule.ts","../src/helpers/getSchemaByResolvedExtensions.ts","../src/helpers/getSchemaTypeByName.ts","../src/helpers/isExtensionRulesEnabled.ts","../src/helpers/getTextContentFromNodes.ts","../src/utilities/isRegExp.ts","../src/InputRule.ts","../src/utilities/isNumber.ts","../src/PasteRule.ts","../src/utilities/findDuplicates.ts","../src/ExtensionManager.ts","../src/utilities/isPlainObject.ts","../src/utilities/mergeDeep.ts","../src/Extension.ts","../src/helpers/getTextBetween.ts","../src/helpers/getTextSerializersFromSchema.ts","../src/extensions/clipboardTextSerializer.ts","../src/commands/blur.ts","../src/commands/clearContent.ts","../src/commands/clearNodes.ts","../src/commands/command.ts","../src/commands/createParagraphNear.ts","../src/commands/cut.ts","../src/commands/deleteCurrentNode.ts","../src/commands/deleteNode.ts","../src/commands/deleteRange.ts","../src/commands/deleteSelection.ts","../src/commands/enter.ts","../src/commands/exitCode.ts","../src/utilities/objectIncludes.ts","../src/helpers/getMarkRange.ts","../src/helpers/getMarkType.ts","../src/commands/extendMarkRange.ts","../src/commands/first.ts","../src/helpers/isTextSelection.ts","../src/utilities/minMax.ts","../src/helpers/resolveFocusPosition.ts","../src/utilities/isiOS.ts","../src/commands/focus.ts","../src/commands/forEach.ts","../src/commands/insertContent.ts","../src/utilities/elementFromString.ts","../src/helpers/createNodeFromContent.ts","../src/helpers/selectionToInsertionEnd.ts","../src/commands/insertContentAt.ts","../src/commands/join.ts","../src/commands/joinItemBackward.ts","../src/commands/joinItemForward.ts","../src/commands/joinTextblockBackward.ts","../src/commands/joinTextblockForward.ts","../src/utilities/isMacOS.ts","../src/commands/keyboardShortcut.ts","../src/helpers/isNodeActive.ts","../src/commands/lift.ts","../src/commands/liftEmptyBlock.ts","../src/commands/liftListItem.ts","../src/commands/newlineInCode.ts","../src/helpers/getSchemaTypeNameByName.ts","../src/utilities/deleteProps.ts","../src/commands/resetAttributes.ts","../src/commands/scrollIntoView.ts","../src/commands/selectAll.ts","../src/commands/selectNodeBackward.ts","../src/commands/selectNodeForward.ts","../src/commands/selectParentNode.ts","../src/commands/selectTextblockEnd.ts","../src/commands/selectTextblockStart.ts","../src/helpers/createDocument.ts","../src/commands/setContent.ts","../src/helpers/getMarkAttributes.ts","../src/helpers/combineTransactionSteps.ts","../src/helpers/defaultBlockAt.ts","../src/helpers/findChildren.ts","../src/helpers/findChildrenInRange.ts","../src/helpers/findParentNodeClosestToPos.ts","../src/helpers/findParentNode.ts","../src/helpers/getHTMLFromFragment.ts","../src/helpers/getSchema.ts","../src/helpers/generateHTML.ts","../src/helpers/generateJSON.ts","../src/helpers/getText.ts","../src/helpers/generateText.ts","../src/helpers/getNodeAttributes.ts","../src/helpers/getAttributes.ts","../src/utilities/removeDuplicates.ts","../src/helpers/getChangedRanges.ts","../src/helpers/getDebugJSON.ts","../src/helpers/getMarksBetween.ts","../src/helpers/getNodeAtPosition.ts","../src/helpers/getSplittedAttributes.ts","../src/helpers/isMarkActive.ts","../src/helpers/isActive.ts","../src/helpers/isAtEndOfNode.ts","../src/helpers/isAtStartOfNode.ts","../src/helpers/isList.ts","../src/helpers/isNodeEmpty.ts","../src/helpers/isNodeSelection.ts","../src/helpers/posToDOMRect.ts","../src/commands/setMark.ts","../src/commands/setMeta.ts","../src/commands/setNode.ts","../src/commands/setNodeSelection.ts","../src/commands/setTextSelection.ts","../src/commands/sinkListItem.ts","../src/commands/splitBlock.ts","../src/commands/splitListItem.ts","../src/commands/toggleList.ts","../src/commands/toggleMark.ts","../src/commands/toggleNode.ts","../src/commands/toggleWrap.ts","../src/commands/undoInputRule.ts","../src/commands/unsetAllMarks.ts","../src/commands/unsetMark.ts","../src/commands/updateAttributes.ts","../src/commands/wrapIn.ts","../src/commands/wrapInList.ts","../src/extensions/commands.ts","../src/extensions/editable.ts","../src/extensions/focusEvents.ts","../src/extensions/keymap.ts","../src/extensions/tabindex.ts","../src/NodePos.ts","../src/style.ts","../src/utilities/createStyleTag.ts","../src/Editor.ts","../src/inputRules/markInputRule.ts","../src/inputRules/nodeInputRule.ts","../src/inputRules/textblockTypeInputRule.ts","../src/inputRules/textInputRule.ts","../src/inputRules/wrappingInputRule.ts","../src/Mark.ts","../src/Node.ts","../src/utilities/isAndroid.ts","../src/NodeView.ts","../src/pasteRules/markPasteRule.ts","../src/utilities/escapeForRegEx.ts","../src/utilities/isString.ts","../src/pasteRules/nodePasteRule.ts","../src/pasteRules/textPasteRule.ts","../src/Tracker.ts"],"sourcesContent":["import { EditorState, Transaction } from '@tiptap/pm/state'\n\n/**\n * Takes a Transaction & Editor State and turns it into a chainable state object\n * @param config The transaction and state to create the chainable state from\n * @returns A chainable Editor state object\n */\nexport function createChainableState(config: {\n transaction: Transaction\n state: EditorState\n}): EditorState {\n const { state, transaction } = config\n let { selection } = transaction\n let { doc } = transaction\n let { storedMarks } = transaction\n\n return {\n ...state,\n apply: state.apply.bind(state),\n applyTransaction: state.applyTransaction.bind(state),\n plugins: state.plugins,\n schema: state.schema,\n reconfigure: state.reconfigure.bind(state),\n toJSON: state.toJSON.bind(state),\n get storedMarks() {\n return storedMarks\n },\n get selection() {\n return selection\n },\n get doc() {\n return doc\n },\n get tr() {\n selection = transaction.selection\n doc = transaction.doc\n storedMarks = transaction.storedMarks\n\n return transaction\n },\n }\n}\n","import { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n AnyCommands, CanCommands, ChainedCommands, CommandProps, SingleCommands,\n} from './types.js'\n\nexport class CommandManager {\n editor: Editor\n\n rawCommands: AnyCommands\n\n customState?: EditorState\n\n constructor(props: { editor: Editor; state?: EditorState }) {\n this.editor = props.editor\n this.rawCommands = this.editor.extensionManager.commands\n this.customState = props.state\n }\n\n get hasCustomState(): boolean {\n return !!this.customState\n }\n\n get state(): EditorState {\n return this.customState || this.editor.state\n }\n\n get commands(): SingleCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const { tr } = state\n const props = this.buildProps(tr)\n\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const method = (...args: any[]) => {\n const callback = command(...args)(props)\n\n if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {\n view.dispatch(tr)\n }\n\n return callback\n }\n\n return [name, method]\n }),\n ) as unknown as SingleCommands\n }\n\n get chain(): () => ChainedCommands {\n return () => this.createChain()\n }\n\n get can(): () => CanCommands {\n return () => this.createCan()\n }\n\n public createChain(startTr?: Transaction, shouldDispatch = true): ChainedCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const callbacks: boolean[] = []\n const hasStartTransaction = !!startTr\n const tr = startTr || state.tr\n\n const run = () => {\n if (\n !hasStartTransaction\n && shouldDispatch\n && !tr.getMeta('preventDispatch')\n && !this.hasCustomState\n ) {\n view.dispatch(tr)\n }\n\n return callbacks.every(callback => callback === true)\n }\n\n const chain = {\n ...Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const chainedCommand = (...args: never[]) => {\n const props = this.buildProps(tr, shouldDispatch)\n const callback = command(...args)(props)\n\n callbacks.push(callback)\n\n return chain\n }\n\n return [name, chainedCommand]\n }),\n ),\n run,\n } as unknown as ChainedCommands\n\n return chain\n }\n\n public createCan(startTr?: Transaction): CanCommands {\n const { rawCommands, state } = this\n const dispatch = false\n const tr = startTr || state.tr\n const props = this.buildProps(tr, dispatch)\n const formattedCommands = Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)({ ...props, dispatch: undefined })]\n }),\n ) as unknown as SingleCommands\n\n return {\n ...formattedCommands,\n chain: () => this.createChain(tr, dispatch),\n } as CanCommands\n }\n\n public buildProps(tr: Transaction, shouldDispatch = true): CommandProps {\n const { rawCommands, editor, state } = this\n const { view } = editor\n\n const props: CommandProps = {\n tr,\n editor,\n view,\n state: createChainableState({\n state,\n transaction: tr,\n }),\n dispatch: shouldDispatch ? () => undefined : undefined,\n chain: () => this.createChain(tr, shouldDispatch),\n can: () => this.createCan(tr),\n get commands() {\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)(props)]\n }),\n ) as unknown as SingleCommands\n },\n }\n\n return props\n }\n}\n","type StringKeyOf = Extract\ntype CallbackType<\n T extends Record,\n EventName extends StringKeyOf,\n> = T[EventName] extends any[] ? T[EventName] : [T[EventName]]\ntype CallbackFunction<\n T extends Record,\n EventName extends StringKeyOf,\n> = (...props: CallbackType) => any\n\nexport class EventEmitter> {\n\n private callbacks: { [key: string]: Function[] } = {}\n\n public on>(event: EventName, fn: CallbackFunction): this {\n if (!this.callbacks[event]) {\n this.callbacks[event] = []\n }\n\n this.callbacks[event].push(fn)\n\n return this\n }\n\n public emit>(event: EventName, ...args: CallbackType): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n callbacks.forEach(callback => callback.apply(this, args))\n }\n\n return this\n }\n\n public off>(event: EventName, fn?: CallbackFunction): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n if (fn) {\n this.callbacks[event] = callbacks.filter(callback => callback !== fn)\n } else {\n delete this.callbacks[event]\n }\n }\n\n return this\n }\n\n public removeAllListeners(): void {\n this.callbacks = {}\n }\n}\n","import { AnyExtension, MaybeThisParameterType, RemoveThis } from '../types.js'\n\n/**\n * Returns a field from an extension\n * @param extension The Tiptap extension\n * @param field The field, for example `renderHTML` or `priority`\n * @param context The context object that should be passed as `this` into the function\n * @returns The field value\n */\nexport function getExtensionField(\n extension: AnyExtension,\n field: string,\n context?: Omit, 'parent'>,\n): RemoveThis {\n\n if (extension.config[field] === undefined && extension.parent) {\n return getExtensionField(extension.parent, field, context)\n }\n\n if (typeof extension.config[field] === 'function') {\n const value = extension.config[field].bind({\n ...context,\n parent: extension.parent\n ? getExtensionField(extension.parent, field, context)\n : null,\n })\n\n return value\n }\n\n return extension.config[field]\n}\n","import { Extension } from '../Extension.js'\nimport { Mark } from '../Mark.js'\nimport { Node } from '../Node.js'\nimport { Extensions } from '../types.js'\n\nexport function splitExtensions(extensions: Extensions) {\n const baseExtensions = extensions.filter(extension => extension.type === 'extension') as Extension[]\n const nodeExtensions = extensions.filter(extension => extension.type === 'node') as Node[]\n const markExtensions = extensions.filter(extension => extension.type === 'mark') as Mark[]\n\n return {\n baseExtensions,\n nodeExtensions,\n markExtensions,\n }\n}\n","import { MarkConfig, NodeConfig } from '../index.js'\nimport {\n AnyConfig,\n Attribute,\n Attributes,\n ExtensionAttribute,\n Extensions,\n} from '../types.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { splitExtensions } from './splitExtensions.js'\n\n/**\n * Get a list of all extension attributes defined in `addAttribute` and `addGlobalAttribute`.\n * @param extensions List of extensions\n */\nexport function getAttributesFromExtensions(extensions: Extensions): ExtensionAttribute[] {\n const extensionAttributes: ExtensionAttribute[] = []\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const nodeAndMarkExtensions = [...nodeExtensions, ...markExtensions]\n const defaultAttribute: Required = {\n default: null,\n rendered: true,\n renderHTML: null,\n parseHTML: null,\n keepOnSplit: true,\n isRequired: false,\n }\n\n extensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n extensions: nodeAndMarkExtensions,\n }\n\n const addGlobalAttributes = getExtensionField(\n extension,\n 'addGlobalAttributes',\n context,\n )\n\n if (!addGlobalAttributes) {\n return\n }\n\n const globalAttributes = addGlobalAttributes()\n\n globalAttributes.forEach(globalAttribute => {\n globalAttribute.types.forEach(type => {\n Object\n .entries(globalAttribute.attributes)\n .forEach(([name, attribute]) => {\n extensionAttributes.push({\n type,\n name,\n attribute: {\n ...defaultAttribute,\n ...attribute,\n },\n })\n })\n })\n })\n })\n\n nodeAndMarkExtensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addAttributes = getExtensionField(\n extension,\n 'addAttributes',\n context,\n )\n\n if (!addAttributes) {\n return\n }\n\n // TODO: remove `as Attributes`\n const attributes = addAttributes() as Attributes\n\n Object\n .entries(attributes)\n .forEach(([name, attribute]) => {\n const mergedAttr = {\n ...defaultAttribute,\n ...attribute,\n }\n\n if (typeof mergedAttr?.default === 'function') {\n mergedAttr.default = mergedAttr.default()\n }\n\n if (mergedAttr?.isRequired && mergedAttr?.default === undefined) {\n delete mergedAttr.default\n }\n\n extensionAttributes.push({\n type: extension.name,\n name,\n attribute: mergedAttr,\n })\n })\n })\n\n return extensionAttributes\n}\n","import { NodeType, Schema } from '@tiptap/pm/model'\n\nexport function getNodeType(nameOrType: string | NodeType, schema: Schema): NodeType {\n if (typeof nameOrType === 'string') {\n if (!schema.nodes[nameOrType]) {\n throw Error(\n `There is no node type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.nodes[nameOrType]\n }\n\n return nameOrType\n}\n","export function mergeAttributes(...objects: Record[]): Record {\n return objects\n .filter(item => !!item)\n .reduce((items, item) => {\n const mergedAttributes = { ...items }\n\n Object.entries(item).forEach(([key, value]) => {\n const exists = mergedAttributes[key]\n\n if (!exists) {\n mergedAttributes[key] = value\n\n return\n }\n\n if (key === 'class') {\n const valueClasses: string[] = value ? value.split(' ') : []\n const existingClasses: string[] = mergedAttributes[key] ? mergedAttributes[key].split(' ') : []\n\n const insertClasses = valueClasses.filter(\n valueClass => !existingClasses.includes(valueClass),\n )\n\n mergedAttributes[key] = [...existingClasses, ...insertClasses].join(' ')\n } else if (key === 'style') {\n mergedAttributes[key] = [mergedAttributes[key], value].join('; ')\n } else {\n mergedAttributes[key] = value\n }\n })\n\n return mergedAttributes\n }, {})\n}\n","import { Mark, Node } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { mergeAttributes } from '../utilities/mergeAttributes.js'\n\nexport function getRenderedAttributes(\n nodeOrMark: Node | Mark,\n extensionAttributes: ExtensionAttribute[],\n): Record {\n return extensionAttributes\n .filter(item => item.attribute.rendered)\n .map(item => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: nodeOrMark.attrs[item.name],\n }\n }\n\n return item.attribute.renderHTML(nodeOrMark.attrs) || {}\n })\n .reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {})\n}\n","export function isFunction(value: any): value is Function {\n return typeof value === 'function'\n}\n","import { MaybeReturnType } from '../types.js'\nimport { isFunction } from './isFunction.js'\n\n/**\n * Optionally calls `value` as a function.\n * Otherwise it is returned directly.\n * @param value Function or any value.\n * @param context Optional context to bind to function.\n * @param props Optional props to pass to function.\n */\nexport function callOrReturn(value: T, context: any = undefined, ...props: any[]): MaybeReturnType {\n if (isFunction(value)) {\n if (context) {\n return value.bind(context)(...props)\n }\n\n return value(...props)\n }\n\n return value as MaybeReturnType\n}\n","export function isEmptyObject(value = {}): boolean {\n return Object.keys(value).length === 0 && value.constructor === Object\n}\n","export function fromString(value: any): any {\n if (typeof value !== 'string') {\n return value\n }\n\n if (value.match(/^[+-]?(?:\\d*\\.)?\\d+$/)) {\n return Number(value)\n }\n\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n return value\n}\n","import { ParseRule } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { fromString } from '../utilities/fromString.js'\n\n/**\n * This function merges extension attributes into parserule attributes (`attrs` or `getAttrs`).\n * Cancels when `getAttrs` returned `false`.\n * @param parseRule ProseMirror ParseRule\n * @param extensionAttributes List of attributes to inject\n */\nexport function injectExtensionAttributesToParseRule(\n parseRule: ParseRule,\n extensionAttributes: ExtensionAttribute[],\n): ParseRule {\n if ('style' in parseRule) {\n return parseRule\n }\n\n return {\n ...parseRule,\n getAttrs: (node: HTMLElement) => {\n const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs\n\n if (oldAttributes === false) {\n return false\n }\n\n const newAttributes = extensionAttributes.reduce((items, item) => {\n const value = item.attribute.parseHTML\n ? item.attribute.parseHTML(node)\n : fromString((node).getAttribute(item.name))\n\n if (value === null || value === undefined) {\n return items\n }\n\n return {\n ...items,\n [item.name]: value,\n }\n }, {})\n\n return { ...oldAttributes, ...newAttributes }\n },\n }\n}\n","import {\n MarkSpec, NodeSpec, Schema, TagParseRule,\n} from '@tiptap/pm/model'\n\nimport { Editor, MarkConfig, NodeConfig } from '../index.js'\nimport { AnyConfig, Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { isEmptyObject } from '../utilities/isEmptyObject.js'\nimport { getAttributesFromExtensions } from './getAttributesFromExtensions.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { getRenderedAttributes } from './getRenderedAttributes.js'\nimport { injectExtensionAttributesToParseRule } from './injectExtensionAttributesToParseRule.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nfunction cleanUpSchemaItem(data: T) {\n return Object.fromEntries(\n // @ts-ignore\n Object.entries(data).filter(([key, value]) => {\n if (key === 'attrs' && isEmptyObject(value as {} | undefined)) {\n return false\n }\n\n return value !== null && value !== undefined\n }),\n ) as T\n}\n\n/**\n * Creates a new Prosemirror schema based on the given extensions.\n * @param extensions An array of Tiptap extensions\n * @param editor The editor instance\n * @returns A Prosemirror schema\n */\nexport function getSchemaByResolvedExtensions(extensions: Extensions, editor?: Editor): Schema {\n const allAttributes = getAttributesFromExtensions(extensions)\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const topNode = nodeExtensions.find(extension => getExtensionField(extension, 'topNode'))?.name\n\n const nodes = Object.fromEntries(\n nodeExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraNodeFields = extensions.reduce((fields, e) => {\n const extendNodeSchema = getExtensionField(\n e,\n 'extendNodeSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendNodeSchema ? extendNodeSchema(extension) : {}),\n }\n }, {})\n\n const schema: NodeSpec = cleanUpSchemaItem({\n ...extraNodeFields,\n content: callOrReturn(\n getExtensionField(extension, 'content', context),\n ),\n marks: callOrReturn(getExtensionField(extension, 'marks', context)),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n inline: callOrReturn(getExtensionField(extension, 'inline', context)),\n atom: callOrReturn(getExtensionField(extension, 'atom', context)),\n selectable: callOrReturn(\n getExtensionField(extension, 'selectable', context),\n ),\n draggable: callOrReturn(\n getExtensionField(extension, 'draggable', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n whitespace: callOrReturn(getExtensionField(extension, 'whitespace', context)),\n defining: callOrReturn(\n getExtensionField(extension, 'defining', context),\n ),\n isolating: callOrReturn(\n getExtensionField(extension, 'isolating', context),\n ),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes)) as TagParseRule[]\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = node => renderHTML({\n node,\n HTMLAttributes: getRenderedAttributes(node, extensionAttributes),\n })\n }\n\n const renderText = getExtensionField(\n extension,\n 'renderText',\n context,\n )\n\n if (renderText) {\n schema.toText = renderText\n }\n\n return [extension.name, schema]\n }),\n )\n\n const marks = Object.fromEntries(\n markExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraMarkFields = extensions.reduce((fields, e) => {\n const extendMarkSchema = getExtensionField(\n e,\n 'extendMarkSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendMarkSchema ? extendMarkSchema(extension) : {}),\n }\n }, {})\n\n const schema: MarkSpec = cleanUpSchemaItem({\n ...extraMarkFields,\n inclusive: callOrReturn(\n getExtensionField(extension, 'inclusive', context),\n ),\n excludes: callOrReturn(\n getExtensionField(extension, 'excludes', context),\n ),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n spanning: callOrReturn(\n getExtensionField(extension, 'spanning', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes))\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = mark => renderHTML({\n mark,\n HTMLAttributes: getRenderedAttributes(mark, extensionAttributes),\n })\n }\n\n return [extension.name, schema]\n }),\n )\n\n return new Schema({\n topNode,\n nodes,\n marks,\n })\n}\n","import { MarkType, NodeType, Schema } from '@tiptap/pm/model'\n\n/**\n * Tries to get a node or mark type by its name.\n * @param name The name of the node or mark type\n * @param schema The Prosemiror schema to search in\n * @returns The node or mark type, or null if it doesn't exist\n */\nexport function getSchemaTypeByName(name: string, schema: Schema): NodeType | MarkType | null {\n return schema.nodes[name] || schema.marks[name] || null\n}\n","import { AnyExtension, EnableRules } from '../types.js'\n\nexport function isExtensionRulesEnabled(extension: AnyExtension, enabled: EnableRules): boolean {\n if (Array.isArray(enabled)) {\n return enabled.some(enabledExtension => {\n const name = typeof enabledExtension === 'string'\n ? enabledExtension\n : enabledExtension.name\n\n return name === extension.name\n })\n }\n\n return enabled\n}\n","import { ResolvedPos } from '@tiptap/pm/model'\n\n/**\n * Returns the text content of a resolved prosemirror position\n * @param $from The resolved position to get the text content from\n * @param maxMatch The maximum number of characters to match\n * @returns The text content\n */\nexport const getTextContentFromNodes = ($from: ResolvedPos, maxMatch = 500) => {\n let textBefore = ''\n\n const sliceEndPos = $from.parentOffset\n\n $from.parent.nodesBetween(\n Math.max(0, sliceEndPos - maxMatch),\n sliceEndPos,\n (node, pos, parent, index) => {\n const chunk = node.type.spec.toText?.({\n node,\n pos,\n parent,\n index,\n })\n || node.textContent\n || '%leaf%'\n\n textBefore += node.isAtom && !node.isText ? chunk : chunk.slice(0, Math.max(0, sliceEndPos - pos))\n },\n )\n\n return textBefore\n}\n","export function isRegExp(value: any): value is RegExp {\n return Object.prototype.toString.call(value) === '[object RegExp]'\n}\n","import { EditorState, Plugin, TextSelection } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport { getTextContentFromNodes } from './helpers/getTextContentFromNodes.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type InputRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type InputRuleFinder = RegExp | ((text: string) => InputRuleMatch | null)\n\nexport class InputRule {\n find: InputRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n\n constructor(config: {\n find: InputRuleFinder\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst inputRuleMatcherHandler = (\n text: string,\n find: InputRuleFinder,\n): ExtendedRegExpMatchArray | null => {\n if (isRegExp(find)) {\n return find.exec(text)\n }\n\n const inputRuleMatch = find(text)\n\n if (!inputRuleMatch) {\n return null\n }\n\n const result: ExtendedRegExpMatchArray = [inputRuleMatch.text]\n\n result.index = inputRuleMatch.index\n result.input = text\n result.data = inputRuleMatch.data\n\n if (inputRuleMatch.replaceWith) {\n if (!inputRuleMatch.text.includes(inputRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".',\n )\n }\n\n result.push(inputRuleMatch.replaceWith)\n }\n\n return result\n}\n\nfunction run(config: {\n editor: Editor\n from: number\n to: number\n text: string\n rules: InputRule[]\n plugin: Plugin\n}): boolean {\n const {\n editor, from, to, text, rules, plugin,\n } = config\n const { view } = editor\n\n if (view.composing) {\n return false\n }\n\n const $from = view.state.doc.resolve(from)\n\n if (\n // check for code node\n $from.parent.type.spec.code\n // check for code mark\n || !!($from.nodeBefore || $from.nodeAfter)?.marks.find(mark => mark.type.spec.code)\n ) {\n return false\n }\n\n let matched = false\n\n const textBefore = getTextContentFromNodes($from) + text\n\n rules.forEach(rule => {\n if (matched) {\n return\n }\n\n const match = inputRuleMatcherHandler(textBefore, rule.find)\n\n if (!match) {\n return\n }\n\n const tr = view.state.tr\n const state = createChainableState({\n state: view.state,\n transaction: tr,\n })\n const range = {\n from: from - (match[0].length - text.length),\n to,\n }\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n })\n\n // stop if there are no changes\n if (handler === null || !tr.steps.length) {\n return\n }\n\n // store transform as meta data\n // so we can undo input rules within the `undoInputRules` command\n tr.setMeta(plugin, {\n transform: tr,\n from,\n to,\n text,\n })\n\n view.dispatch(tr)\n matched = true\n })\n\n return matched\n}\n\n/**\n * Create an input rules plugin. When enabled, it will cause text\n * input that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function inputRulesPlugin(props: { editor: Editor; rules: InputRule[] }): Plugin {\n const { editor, rules } = props\n const plugin = new Plugin({\n state: {\n init() {\n return null\n },\n apply(tr, prev) {\n const stored = tr.getMeta(plugin)\n\n if (stored) {\n return stored\n }\n\n // if InputRule is triggered by insertContent()\n const simulatedInputMeta = tr.getMeta('applyInputRules')\n const isSimulatedInput = !!simulatedInputMeta\n\n if (isSimulatedInput) {\n setTimeout(() => {\n const { from, text } = simulatedInputMeta\n const to = from + text.length\n\n run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n })\n }\n\n return tr.selectionSet || tr.docChanged ? null : prev\n },\n },\n\n props: {\n handleTextInput(view, from, to, text) {\n return run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n },\n\n handleDOMEvents: {\n compositionend: view => {\n setTimeout(() => {\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '',\n rules,\n plugin,\n })\n }\n })\n\n return false\n },\n },\n\n // add support for input rules to trigger on enter\n // this is useful for example for code blocks\n handleKeyDown(view, event) {\n if (event.key !== 'Enter') {\n return false\n }\n\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n return run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '\\n',\n rules,\n plugin,\n })\n }\n\n return false\n },\n },\n\n // @ts-ignore\n isInputRules: true,\n }) as Plugin\n\n return plugin\n}\n","export function isNumber(value: any): value is number {\n return typeof value === 'number'\n}\n","import { EditorState, Plugin } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isNumber } from './utilities/isNumber.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type PasteRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type PasteRuleFinder = RegExp | ((text: string, event?: ClipboardEvent | null) => PasteRuleMatch[] | null | undefined)\n\n/**\n * Paste rules are used to react to pasted content.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport class PasteRule {\n find: PasteRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n }) => void | null\n\n constructor(config: {\n find: PasteRuleFinder\n handler: (props: {\n can: () => CanCommands\n chain: () => ChainedCommands\n commands: SingleCommands\n dropEvent: DragEvent | null\n match: ExtendedRegExpMatchArray\n pasteEvent: ClipboardEvent | null\n range: Range\n state: EditorState\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst pasteRuleMatcherHandler = (\n text: string,\n find: PasteRuleFinder,\n event?: ClipboardEvent | null,\n): ExtendedRegExpMatchArray[] => {\n if (isRegExp(find)) {\n return [...text.matchAll(find)]\n }\n\n const matches = find(text, event)\n\n if (!matches) {\n return []\n }\n\n return matches.map(pasteRuleMatch => {\n const result: ExtendedRegExpMatchArray = [pasteRuleMatch.text]\n\n result.index = pasteRuleMatch.index\n result.input = text\n result.data = pasteRuleMatch.data\n\n if (pasteRuleMatch.replaceWith) {\n if (!pasteRuleMatch.text.includes(pasteRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".',\n )\n }\n\n result.push(pasteRuleMatch.replaceWith)\n }\n\n return result\n })\n}\n\nfunction run(config: {\n editor: Editor\n state: EditorState\n from: number\n to: number\n rule: PasteRule\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n}): boolean {\n const {\n editor, state, from, to, rule, pasteEvent, dropEvent,\n } = config\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handlers: (void | null)[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isTextblock || node.type.spec.code) {\n return\n }\n\n const resolvedFrom = Math.max(from, pos)\n const resolvedTo = Math.min(to, pos + node.content.size)\n const textToMatch = node.textBetween(resolvedFrom - pos, resolvedTo - pos, undefined, '\\ufffc')\n\n const matches = pasteRuleMatcherHandler(textToMatch, rule.find, pasteEvent)\n\n matches.forEach(match => {\n if (match.index === undefined) {\n return\n }\n\n const start = resolvedFrom + match.index + 1\n const end = start + match[0].length\n const range = {\n from: state.tr.mapping.map(start),\n to: state.tr.mapping.map(end),\n }\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n pasteEvent,\n dropEvent,\n })\n\n handlers.push(handler)\n })\n })\n\n const success = handlers.every(handler => handler !== null)\n\n return success\n}\n\nconst createClipboardPasteEvent = (text: string) => {\n const event = new ClipboardEvent('paste', {\n clipboardData: new DataTransfer(),\n })\n\n event.clipboardData?.setData('text/html', text)\n\n return event\n}\n\n/**\n * Create an paste rules plugin. When enabled, it will cause pasted\n * text that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function pasteRulesPlugin(props: { editor: Editor; rules: PasteRule[] }): Plugin[] {\n const { editor, rules } = props\n let dragSourceElement: Element | null = null\n let isPastedFromProseMirror = false\n let isDroppedFromProseMirror = false\n let pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n let dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n\n const processEvent = ({\n state,\n from,\n to,\n rule,\n pasteEvt,\n }: {\n state: EditorState\n from: number\n to: { b: number }\n rule: PasteRule\n pasteEvt: ClipboardEvent | null\n }) => {\n const tr = state.tr\n const chainableState = createChainableState({\n state,\n transaction: tr,\n })\n\n const handler = run({\n editor,\n state: chainableState,\n from: Math.max(from - 1, 0),\n to: to.b - 1,\n rule,\n pasteEvent: pasteEvt,\n dropEvent,\n })\n\n if (!handler || !tr.steps.length) {\n return\n }\n\n dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n\n return tr\n }\n\n const plugins = rules.map(rule => {\n return new Plugin({\n // we register a global drag handler to track the current drag source element\n view(view) {\n const handleDragstart = (event: DragEvent) => {\n dragSourceElement = view.dom.parentElement?.contains(event.target as Element)\n ? view.dom.parentElement\n : null\n }\n\n window.addEventListener('dragstart', handleDragstart)\n\n return {\n destroy() {\n window.removeEventListener('dragstart', handleDragstart)\n },\n }\n },\n\n props: {\n handleDOMEvents: {\n drop: (view, event: Event) => {\n isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement\n dropEvent = event as DragEvent\n\n return false\n },\n\n paste: (_view, event: Event) => {\n const html = (event as ClipboardEvent).clipboardData?.getData('text/html')\n\n pasteEvent = event as ClipboardEvent\n\n isPastedFromProseMirror = !!html?.includes('data-pm-slice')\n\n return false\n },\n },\n },\n\n appendTransaction: (transactions, oldState, state) => {\n const transaction = transactions[0]\n const isPaste = transaction.getMeta('uiEvent') === 'paste' && !isPastedFromProseMirror\n const isDrop = transaction.getMeta('uiEvent') === 'drop' && !isDroppedFromProseMirror\n\n // if PasteRule is triggered by insertContent()\n const simulatedPasteMeta = transaction.getMeta('applyPasteRules')\n const isSimulatedPaste = !!simulatedPasteMeta\n\n if (!isPaste && !isDrop && !isSimulatedPaste) {\n return\n }\n\n // Handle simulated paste\n if (isSimulatedPaste) {\n const { from, text } = simulatedPasteMeta\n const to = from + text.length\n const pasteEvt = createClipboardPasteEvent(text)\n\n return processEvent({\n rule,\n state,\n from,\n to: { b: to },\n pasteEvt,\n })\n }\n\n // handle actual paste/drop\n const from = oldState.doc.content.findDiffStart(state.doc.content)\n const to = oldState.doc.content.findDiffEnd(state.doc.content)\n\n // stop if there is no changed range\n if (!isNumber(from) || !to || from === to.b) {\n return\n }\n\n return processEvent({\n rule,\n state,\n from,\n to,\n pasteEvt: pasteEvent,\n })\n },\n })\n })\n\n return plugins\n}\n","export function findDuplicates(items: any[]): any[] {\n const filtered = items.filter((el, index) => items.indexOf(el) !== index)\n\n return Array.from(new Set(filtered))\n}\n","import { keymap } from '@tiptap/pm/keymap'\nimport { Node as ProsemirrorNode, Schema } from '@tiptap/pm/model'\nimport { Plugin } from '@tiptap/pm/state'\nimport { Decoration, EditorView } from '@tiptap/pm/view'\n\nimport type { Editor } from './Editor.js'\nimport { getAttributesFromExtensions } from './helpers/getAttributesFromExtensions.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { getNodeType } from './helpers/getNodeType.js'\nimport { getRenderedAttributes } from './helpers/getRenderedAttributes.js'\nimport { getSchemaByResolvedExtensions } from './helpers/getSchemaByResolvedExtensions.js'\nimport { getSchemaTypeByName } from './helpers/getSchemaTypeByName.js'\nimport { isExtensionRulesEnabled } from './helpers/isExtensionRulesEnabled.js'\nimport { splitExtensions } from './helpers/splitExtensions.js'\nimport { Mark, NodeConfig } from './index.js'\nimport { InputRule, inputRulesPlugin } from './InputRule.js'\nimport { PasteRule, pasteRulesPlugin } from './PasteRule.js'\nimport { AnyConfig, Extensions, RawCommands } from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { findDuplicates } from './utilities/findDuplicates.js'\n\nexport class ExtensionManager {\n editor: Editor\n\n schema: Schema\n\n extensions: Extensions\n\n splittableMarks: string[] = []\n\n constructor(extensions: Extensions, editor: Editor) {\n this.editor = editor\n this.extensions = ExtensionManager.resolve(extensions)\n this.schema = getSchemaByResolvedExtensions(this.extensions, editor)\n this.setupExtensions()\n }\n\n /**\n * Returns a flattened and sorted extension list while\n * also checking for duplicated extensions and warns the user.\n * @param extensions An array of Tiptap extensions\n * @returns An flattened and sorted array of Tiptap extensions\n */\n static resolve(extensions: Extensions): Extensions {\n const resolvedExtensions = ExtensionManager.sort(ExtensionManager.flatten(extensions))\n const duplicatedNames = findDuplicates(resolvedExtensions.map(extension => extension.name))\n\n if (duplicatedNames.length) {\n console.warn(\n `[tiptap warn]: Duplicate extension names found: [${duplicatedNames\n .map(item => `'${item}'`)\n .join(', ')}]. This can lead to issues.`,\n )\n }\n\n return resolvedExtensions\n }\n\n /**\n * Create a flattened array of extensions by traversing the `addExtensions` field.\n * @param extensions An array of Tiptap extensions\n * @returns A flattened array of Tiptap extensions\n */\n static flatten(extensions: Extensions): Extensions {\n return (\n extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addExtensions = getExtensionField(\n extension,\n 'addExtensions',\n context,\n )\n\n if (addExtensions) {\n return [extension, ...this.flatten(addExtensions())]\n }\n\n return extension\n })\n // `Infinity` will break TypeScript so we set a number that is probably high enough\n .flat(10)\n )\n }\n\n /**\n * Sort extensions by priority.\n * @param extensions An array of Tiptap extensions\n * @returns A sorted array of Tiptap extensions by priority\n */\n static sort(extensions: Extensions): Extensions {\n const defaultPriority = 100\n\n return extensions.sort((a, b) => {\n const priorityA = getExtensionField(a, 'priority') || defaultPriority\n const priorityB = getExtensionField(b, 'priority') || defaultPriority\n\n if (priorityA > priorityB) {\n return -1\n }\n\n if (priorityA < priorityB) {\n return 1\n }\n\n return 0\n })\n }\n\n /**\n * Get all commands from the extensions.\n * @returns An object with all commands where the key is the command name and the value is the command function\n */\n get commands(): RawCommands {\n return this.extensions.reduce((commands, extension) => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const addCommands = getExtensionField(\n extension,\n 'addCommands',\n context,\n )\n\n if (!addCommands) {\n return commands\n }\n\n return {\n ...commands,\n ...addCommands(),\n }\n }, {} as RawCommands)\n }\n\n /**\n * Get all registered Prosemirror plugins from the extensions.\n * @returns An array of Prosemirror plugins\n */\n get plugins(): Plugin[] {\n const { editor } = this\n\n // With ProseMirror, first plugins within an array are executed first.\n // In Tiptap, we provide the ability to override plugins,\n // so it feels more natural to run plugins at the end of an array first.\n // That’s why we have to reverse the `extensions` array and sort again\n // based on the `priority` option.\n const extensions = ExtensionManager.sort([...this.extensions].reverse())\n\n const inputRules: InputRule[] = []\n const pasteRules: PasteRule[] = []\n\n const allPlugins = extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const plugins: Plugin[] = []\n\n const addKeyboardShortcuts = getExtensionField(\n extension,\n 'addKeyboardShortcuts',\n context,\n )\n\n let defaultBindings: Record boolean> = {}\n\n // bind exit handling\n if (extension.type === 'mark' && getExtensionField(extension, 'exitable', context)) {\n defaultBindings.ArrowRight = () => Mark.handleExit({ editor, mark: extension as Mark })\n }\n\n if (addKeyboardShortcuts) {\n const bindings = Object.fromEntries(\n Object.entries(addKeyboardShortcuts()).map(([shortcut, method]) => {\n return [shortcut, () => method({ editor })]\n }),\n )\n\n defaultBindings = { ...defaultBindings, ...bindings }\n }\n\n const keyMapPlugin = keymap(defaultBindings)\n\n plugins.push(keyMapPlugin)\n\n const addInputRules = getExtensionField(\n extension,\n 'addInputRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enableInputRules) && addInputRules) {\n inputRules.push(...addInputRules())\n }\n\n const addPasteRules = getExtensionField(\n extension,\n 'addPasteRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enablePasteRules) && addPasteRules) {\n pasteRules.push(...addPasteRules())\n }\n\n const addProseMirrorPlugins = getExtensionField(\n extension,\n 'addProseMirrorPlugins',\n context,\n )\n\n if (addProseMirrorPlugins) {\n const proseMirrorPlugins = addProseMirrorPlugins()\n\n plugins.push(...proseMirrorPlugins)\n }\n\n return plugins\n })\n .flat()\n\n return [\n inputRulesPlugin({\n editor,\n rules: inputRules,\n }),\n ...pasteRulesPlugin({\n editor,\n rules: pasteRules,\n }),\n ...allPlugins,\n ]\n }\n\n /**\n * Get all attributes from the extensions.\n * @returns An array of attributes\n */\n get attributes() {\n return getAttributesFromExtensions(this.extensions)\n }\n\n /**\n * Get all node views from the extensions.\n * @returns An object with all node views where the key is the node name and the value is the node view function\n */\n get nodeViews() {\n const { editor } = this\n const { nodeExtensions } = splitExtensions(this.extensions)\n\n return Object.fromEntries(\n nodeExtensions\n .filter(extension => !!getExtensionField(extension, 'addNodeView'))\n .map(extension => {\n const extensionAttributes = this.attributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getNodeType(extension.name, this.schema),\n }\n const addNodeView = getExtensionField(\n extension,\n 'addNodeView',\n context,\n )\n\n if (!addNodeView) {\n return []\n }\n\n const nodeview = (\n node: ProsemirrorNode,\n view: EditorView,\n getPos: (() => number) | boolean,\n decorations: Decoration[],\n ) => {\n const HTMLAttributes = getRenderedAttributes(node, extensionAttributes)\n\n return addNodeView()({\n editor,\n node,\n getPos,\n decorations,\n HTMLAttributes,\n extension,\n })\n }\n\n return [extension.name, nodeview]\n }),\n )\n }\n\n /**\n * Go through all extensions, create extension storages & setup marks\n * & bind editor event listener.\n */\n private setupExtensions() {\n this.extensions.forEach(extension => {\n // store extension storage in editor\n this.editor.extensionStorage[extension.name] = extension.storage\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n if (extension.type === 'mark') {\n const keepOnSplit = callOrReturn(getExtensionField(extension, 'keepOnSplit', context)) ?? true\n\n if (keepOnSplit) {\n this.splittableMarks.push(extension.name)\n }\n }\n\n const onBeforeCreate = getExtensionField(\n extension,\n 'onBeforeCreate',\n context,\n )\n const onCreate = getExtensionField(extension, 'onCreate', context)\n const onUpdate = getExtensionField(extension, 'onUpdate', context)\n const onSelectionUpdate = getExtensionField(\n extension,\n 'onSelectionUpdate',\n context,\n )\n const onTransaction = getExtensionField(\n extension,\n 'onTransaction',\n context,\n )\n const onFocus = getExtensionField(extension, 'onFocus', context)\n const onBlur = getExtensionField(extension, 'onBlur', context)\n const onDestroy = getExtensionField(extension, 'onDestroy', context)\n\n if (onBeforeCreate) {\n this.editor.on('beforeCreate', onBeforeCreate)\n }\n\n if (onCreate) {\n this.editor.on('create', onCreate)\n }\n\n if (onUpdate) {\n this.editor.on('update', onUpdate)\n }\n\n if (onSelectionUpdate) {\n this.editor.on('selectionUpdate', onSelectionUpdate)\n }\n\n if (onTransaction) {\n this.editor.on('transaction', onTransaction)\n }\n\n if (onFocus) {\n this.editor.on('focus', onFocus)\n }\n\n if (onBlur) {\n this.editor.on('blur', onBlur)\n }\n\n if (onDestroy) {\n this.editor.on('destroy', onDestroy)\n }\n })\n }\n}\n","// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nfunction getType(value: any): string {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nexport function isPlainObject(value: any): value is Record {\n if (getType(value) !== 'Object') {\n return false\n }\n\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype\n}\n","import { isPlainObject } from './isPlainObject.js'\n\nexport function mergeDeep(target: Record, source: Record): Record {\n const output = { ...target }\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n output[key] = mergeDeep(target[key], source[key])\n } else {\n output[key] = source[key]\n }\n })\n }\n\n return output\n}\n","import { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { ExtensionConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface ExtensionConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#commands\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n }\n}\n\n/**\n * The Extension class is the base class for all extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Extension {\n type = 'extension'\n\n name = 'extension'\n\n parent: Extension | null = null\n\n child: Extension | null = null\n\n options: Options\n\n storage: Storage\n\n config: ExtensionConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Extension(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Extension({ ...this.config, ...extendedConfig })\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { Range, TextSerializer } from '../types.js'\n\n/**\n * Gets the text between two positions in a Prosemirror node\n * and serializes it using the given text serializers and block separator (see getText)\n * @param startNode The Prosemirror node to start from\n * @param range The range of the text to get\n * @param options Options for the text serializer & block separator\n * @returns The text between the two positions\n */\nexport function getTextBetween(\n startNode: ProseMirrorNode,\n range: Range,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { from, to } = range\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n let text = ''\n\n startNode.nodesBetween(from, to, (node, pos, parent, index) => {\n if (node.isBlock && pos > from) {\n text += blockSeparator\n }\n\n const textSerializer = textSerializers?.[node.type.name]\n\n if (textSerializer) {\n if (parent) {\n text += textSerializer({\n node,\n pos,\n parent,\n index,\n range,\n })\n }\n // do not descend into child nodes when there exists a serializer\n return false\n }\n\n if (node.isText) {\n text += node?.text?.slice(Math.max(from, pos) - pos, to - pos) // eslint-disable-line\n }\n })\n\n return text\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\n\n/**\n * Find text serializers `toText` in a Prosemirror schema\n * @param schema The Prosemirror schema to search in\n * @returns A record of text serializers by node name\n */\nexport function getTextSerializersFromSchema(schema: Schema): Record {\n return Object.fromEntries(\n Object.entries(schema.nodes)\n .filter(([, node]) => node.spec.toText)\n .map(([name, node]) => [name, node.spec.toText]),\n )\n}\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\nimport { getTextBetween } from '../helpers/getTextBetween.js'\nimport { getTextSerializersFromSchema } from '../helpers/getTextSerializersFromSchema.js'\n\nexport type ClipboardTextSerializerOptions = {\n blockSeparator?: string,\n}\n\nexport const ClipboardTextSerializer = Extension.create({\n name: 'clipboardTextSerializer',\n\n addOptions() {\n return {\n blockSeparator: undefined,\n }\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('clipboardTextSerializer'),\n props: {\n clipboardTextSerializer: () => {\n const { editor } = this\n const { state, schema } = editor\n const { doc, selection } = state\n const { ranges } = selection\n const from = Math.min(...ranges.map(range => range.$from.pos))\n const to = Math.max(...ranges.map(range => range.$to.pos))\n const textSerializers = getTextSerializersFromSchema(schema)\n const range = { from, to }\n\n return getTextBetween(doc, range, {\n ...(this.options.blockSeparator !== undefined\n ? { blockSeparator: this.options.blockSeparator }\n : {}),\n textSerializers,\n })\n },\n },\n }),\n ]\n },\n})\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n blur: {\n /**\n * Removes focus from the editor.\n * @example editor.commands.blur()\n */\n blur: () => ReturnType,\n }\n }\n}\n\nexport const blur: RawCommands['blur'] = () => ({ editor, view }) => {\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n (view.dom as HTMLElement).blur()\n\n // Browsers should remove the caret on blur but safari does not.\n // See: https://github.com/ueberdosis/tiptap/issues/2405\n window?.getSelection()?.removeAllRanges()\n }\n })\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearContent: {\n /**\n * Clear the whole document.\n * @param emitUpdate Whether to emit an update event.\n * @example editor.commands.clearContent()\n */\n clearContent: (emitUpdate?: boolean) => ReturnType,\n }\n }\n}\n\nexport const clearContent: RawCommands['clearContent'] = (emitUpdate = false) => ({ commands }) => {\n return commands.setContent('', emitUpdate)\n}\n","import { liftTarget } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearNodes: {\n /**\n * Normalize nodes to a simple paragraph.\n * @example editor.commands.clearNodes()\n */\n clearNodes: () => ReturnType,\n }\n }\n}\n\nexport const clearNodes: RawCommands['clearNodes'] = () => ({ state, tr, dispatch }) => {\n const { selection } = tr\n const { ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n ranges.forEach(({ $from, $to }) => {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.type.isText) {\n return\n }\n\n const { doc, mapping } = tr\n const $mappedFrom = doc.resolve(mapping.map(pos))\n const $mappedTo = doc.resolve(mapping.map(pos + node.nodeSize))\n const nodeRange = $mappedFrom.blockRange($mappedTo)\n\n if (!nodeRange) {\n return\n }\n\n const targetLiftDepth = liftTarget(nodeRange)\n\n if (node.type.isTextblock) {\n const { defaultType } = $mappedFrom.parent.contentMatchAt($mappedFrom.index())\n\n tr.setNodeMarkup(nodeRange.start, defaultType)\n }\n\n if (targetLiftDepth || targetLiftDepth === 0) {\n tr.lift(nodeRange, targetLiftDepth)\n }\n })\n })\n\n return true\n}\n","import { Command, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n command: {\n /**\n * Define a command inline.\n * @param fn The command function.\n * @example\n * editor.commands.command(({ tr, state }) => {\n * ...\n * return true\n * })\n */\n command: (fn: (props: Parameters[0]) => boolean) => ReturnType,\n }\n }\n}\n\nexport const command: RawCommands['command'] = fn => props => {\n return fn(props)\n}\n","import { createParagraphNear as originalCreateParagraphNear } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n createParagraphNear: {\n /**\n * Create a paragraph nearby.\n * @example editor.commands.createParagraphNear()\n */\n createParagraphNear: () => ReturnType\n }\n }\n}\n\nexport const createParagraphNear: RawCommands['createParagraphNear'] = () => ({ state, dispatch }) => {\n return originalCreateParagraphNear(state, dispatch)\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n cut: {\n /**\n * Cuts content from a range and inserts it at a given position.\n * @param range The range to cut.\n * @param range.from The start position of the range.\n * @param range.to The end position of the range.\n * @param targetPos The position to insert the content at.\n * @example editor.commands.cut({ from: 1, to: 3 }, 5)\n */\n cut: ({ from, to }: { from: number, to: number }, targetPos: number) => ReturnType,\n }\n }\n}\n\nexport const cut: RawCommands['cut'] = (originRange, targetPos) => ({ editor, tr }) => {\n const { state } = editor\n\n const contentSlice = state.doc.slice(originRange.from, originRange.to)\n\n tr.deleteRange(originRange.from, originRange.to)\n const newPos = tr.mapping.map(targetPos)\n\n tr.insert(newPos, contentSlice.content)\n\n tr.setSelection(new TextSelection(tr.doc.resolve(newPos - 1)))\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteCurrentNode: {\n /**\n * Delete the node that currently has the selection anchor.\n * @example editor.commands.deleteCurrentNode()\n */\n deleteCurrentNode: () => ReturnType,\n }\n }\n}\n\nexport const deleteCurrentNode: RawCommands['deleteCurrentNode'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const currentNode = selection.$anchor.node()\n\n // if there is content inside the current node, break out of this command\n if (currentNode.content.size > 0) {\n return false\n }\n\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === currentNode.type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteNode: {\n /**\n * Delete a node with a given type or name.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.deleteNode('paragraph')\n */\n deleteNode: (typeOrName: string | NodeType) => ReturnType,\n }\n }\n}\n\nexport const deleteNode: RawCommands['deleteNode'] = typeOrName => ({ tr, state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteRange: {\n /**\n * Delete a given range.\n * @param range The range to delete.\n * @example editor.commands.deleteRange({ from: 1, to: 3 })\n */\n deleteRange: (range: Range) => ReturnType,\n }\n }\n}\n\nexport const deleteRange: RawCommands['deleteRange'] = range => ({ tr, dispatch }) => {\n const { from, to } = range\n\n if (dispatch) {\n tr.delete(from, to)\n }\n\n return true\n}\n","import { deleteSelection as originalDeleteSelection } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteSelection: {\n /**\n * Delete the selection, if there is one.\n * @example editor.commands.deleteSelection()\n */\n deleteSelection: () => ReturnType\n }\n }\n}\n\nexport const deleteSelection: RawCommands['deleteSelection'] = () => ({ state, dispatch }) => {\n return originalDeleteSelection(state, dispatch)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n enter: {\n /**\n * Trigger enter.\n * @example editor.commands.enter()\n */\n enter: () => ReturnType,\n }\n }\n}\n\nexport const enter: RawCommands['enter'] = () => ({ commands }) => {\n return commands.keyboardShortcut('Enter')\n}\n","import { exitCode as originalExitCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n exitCode: {\n /**\n * Exit from a code block.\n * @example editor.commands.exitCode()\n */\n exitCode: () => ReturnType\n }\n }\n}\n\nexport const exitCode: RawCommands['exitCode'] = () => ({ state, dispatch }) => {\n return originalExitCode(state, dispatch)\n}\n","import { isRegExp } from './isRegExp.js'\n\n/**\n * Check if object1 includes object2\n * @param object1 Object\n * @param object2 Object\n */\nexport function objectIncludes(\n object1: Record,\n object2: Record,\n options: { strict: boolean } = { strict: true },\n): boolean {\n const keys = Object.keys(object2)\n\n if (!keys.length) {\n return true\n }\n\n return keys.every(key => {\n if (options.strict) {\n return object2[key] === object1[key]\n }\n\n if (isRegExp(object2[key])) {\n return object2[key].test(object1[key])\n }\n\n return object2[key] === object1[key]\n })\n}\n","import { Mark as ProseMirrorMark, MarkType, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Range } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\n\nfunction findMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): ProseMirrorMark | undefined {\n return marks.find(item => {\n return item.type === type && objectIncludes(item.attrs, attributes)\n })\n}\n\nfunction isMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): boolean {\n return !!findMarkInSet(marks, type, attributes)\n}\n\nexport function getMarkRange(\n $pos: ResolvedPos,\n type: MarkType,\n attributes: Record = {},\n): Range | void {\n if (!$pos || !type) {\n return\n }\n\n let start = $pos.parent.childAfter($pos.parentOffset)\n\n if ($pos.parentOffset === start.offset && start.offset !== 0) {\n start = $pos.parent.childBefore($pos.parentOffset)\n }\n\n if (!start.node) {\n return\n }\n\n const mark = findMarkInSet([...start.node.marks], type, attributes)\n\n if (!mark) {\n return\n }\n\n let startIndex = start.index\n let startPos = $pos.start() + start.offset\n let endIndex = startIndex + 1\n let endPos = startPos + start.node.nodeSize\n\n findMarkInSet([...start.node.marks], type, attributes)\n\n while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {\n startIndex -= 1\n startPos -= $pos.parent.child(startIndex).nodeSize\n }\n\n while (\n endIndex < $pos.parent.childCount\n && isMarkInSet([...$pos.parent.child(endIndex).marks], type, attributes)\n ) {\n endPos += $pos.parent.child(endIndex).nodeSize\n endIndex += 1\n }\n\n return {\n from: startPos,\n to: endPos,\n }\n}\n","import { MarkType, Schema } from '@tiptap/pm/model'\n\nexport function getMarkType(nameOrType: string | MarkType, schema: Schema): MarkType {\n if (typeof nameOrType === 'string') {\n if (!schema.marks[nameOrType]) {\n throw Error(\n `There is no mark type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.marks[nameOrType]\n }\n\n return nameOrType\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n extendMarkRange: {\n /**\n * Extends the text selection to the current mark by type or name.\n * @param typeOrName The type or name of the mark.\n * @param attributes The attributes of the mark.\n * @example editor.commands.extendMarkRange('bold')\n * @example editor.commands.extendMarkRange('mention', { userId: \"1\" })\n */\n extendMarkRange: (\n /**\n * The type or name of the mark.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const extendMarkRange: RawCommands['extendMarkRange'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const type = getMarkType(typeOrName, state.schema)\n const { doc, selection } = tr\n const { $from, from, to } = selection\n\n if (dispatch) {\n const range = getMarkRange($from, type, attributes)\n\n if (range && range.from <= from && range.to >= to) {\n const newSelection = TextSelection.create(doc, range.from, range.to)\n\n tr.setSelection(newSelection)\n }\n }\n\n return true\n}\n","import { Command, CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n first: {\n /**\n * Runs one command after the other and stops at the first which returns true.\n * @param commands The commands to run.\n * @example editor.commands.first([command1, command2])\n */\n first: (commands: Command[] | ((props: CommandProps) => Command[])) => ReturnType,\n }\n }\n}\n\nexport const first: RawCommands['first'] = commands => props => {\n const items = typeof commands === 'function'\n ? commands(props)\n : commands\n\n for (let i = 0; i < items.length; i += 1) {\n if (items[i](props)) {\n return true\n }\n }\n\n return false\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nexport function isTextSelection(value: unknown): value is TextSelection {\n return value instanceof TextSelection\n}\n","export function minMax(value = 0, min = 0, max = 0): number {\n return Math.min(Math.max(value, min), max)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Selection, TextSelection } from '@tiptap/pm/state'\n\nimport { FocusPosition } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\nexport function resolveFocusPosition(\n doc: ProseMirrorNode,\n position: FocusPosition = null,\n): Selection | null {\n if (!position) {\n return null\n }\n\n const selectionAtStart = Selection.atStart(doc)\n const selectionAtEnd = Selection.atEnd(doc)\n\n if (position === 'start' || position === true) {\n return selectionAtStart\n }\n\n if (position === 'end') {\n return selectionAtEnd\n }\n\n const minPos = selectionAtStart.from\n const maxPos = selectionAtEnd.to\n\n if (position === 'all') {\n return TextSelection.create(\n doc,\n minMax(0, minPos, maxPos),\n minMax(doc.content.size, minPos, maxPos),\n )\n }\n\n return TextSelection.create(\n doc,\n minMax(position, minPos, maxPos),\n minMax(position, minPos, maxPos),\n )\n}\n","export function isiOS(): boolean {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod',\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n}\n","import { isTextSelection } from '../helpers/isTextSelection.js'\nimport { resolveFocusPosition } from '../helpers/resolveFocusPosition.js'\nimport { FocusPosition, RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n focus: {\n /**\n * Focus the editor at the given position.\n * @param position The position to focus at.\n * @param options.scrollIntoView Scroll the focused position into view after focusing\n * @example editor.commands.focus()\n * @example editor.commands.focus(32, { scrollIntoView: false })\n */\n focus: (\n /**\n * The position to focus at.\n */\n position?: FocusPosition,\n\n /**\n * Optional options\n * @default { scrollIntoView: true }\n */\n options?: {\n scrollIntoView?: boolean,\n },\n ) => ReturnType,\n }\n }\n}\n\nexport const focus: RawCommands['focus'] = (position = null, options = {}) => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n options = {\n scrollIntoView: true,\n ...options,\n }\n\n const delayedFocus = () => {\n // focus within `requestAnimationFrame` breaks focus on iOS\n // so we have to call this\n if (isiOS()) {\n (view.dom as HTMLElement).focus()\n }\n\n // For React we have to focus asynchronously. Otherwise wild things happen.\n // see: https://github.com/ueberdosis/tiptap/issues/1520\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n view.focus()\n\n if (options?.scrollIntoView) {\n editor.commands.scrollIntoView()\n }\n }\n })\n }\n\n if ((view.hasFocus() && position === null) || position === false) {\n return true\n }\n\n // we don’t try to resolve a NodeSelection or CellSelection\n if (dispatch && position === null && !isTextSelection(editor.state.selection)) {\n delayedFocus()\n return true\n }\n\n // pass through tr.doc instead of editor.state.doc\n // since transactions could change the editors state before this command has been run\n const selection = resolveFocusPosition(tr.doc, position) || editor.state.selection\n const isSameSelection = editor.state.selection.eq(selection)\n\n if (dispatch) {\n if (!isSameSelection) {\n tr.setSelection(selection)\n }\n\n // `tr.setSelection` resets the stored marks\n // so we’ll restore them if the selection is the same as before\n if (isSameSelection && tr.storedMarks) {\n tr.setStoredMarks(tr.storedMarks)\n }\n\n delayedFocus()\n }\n\n return true\n}\n","import { CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n forEach: {\n /**\n * Loop through an array of items.\n */\n forEach: (\n items: T[],\n fn: (\n item: T,\n props: CommandProps & {\n index: number,\n },\n ) => boolean,\n ) => ReturnType,\n }\n }\n}\n\nexport const forEach: RawCommands['forEach'] = (items, fn) => props => {\n return items.every((item, index) => fn(item, { ...props, index }))\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContent: {\n /**\n * Insert a node or string of HTML at the current position.\n * @example editor.commands.insertContent('

Example

')\n * @example editor.commands.insertContent('

Example

', { updateSelection: false })\n */\n insertContent: (\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n applyInputRules?: boolean\n applyPasteRules?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const insertContent: RawCommands['insertContent'] = (value, options) => ({ tr, commands }) => {\n return commands.insertContentAt(\n { from: tr.selection.from, to: tr.selection.to },\n value,\n options,\n )\n}\n","const removeWhitespaces = (node: HTMLElement) => {\n const children = node.childNodes\n\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i]\n\n if (child.nodeType === 3 && child.nodeValue && /^(\\n\\s\\s|\\n)$/.test(child.nodeValue)) {\n node.removeChild(child)\n } else if (child.nodeType === 1) {\n removeWhitespaces(child as HTMLElement)\n }\n }\n\n return node\n}\n\nexport function elementFromString(value: string): HTMLElement {\n // add a wrapper to preserve leading and trailing whitespace\n const wrappedValue = `${value}`\n\n const html = new window.DOMParser().parseFromString(wrappedValue, 'text/html').body\n\n return removeWhitespaces(html)\n}\n","import {\n DOMParser,\n Fragment,\n Node as ProseMirrorNode,\n ParseOptions,\n Schema,\n} from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\n\nexport type CreateNodeFromContentOptions = {\n slice?: boolean\n parseOptions?: ParseOptions\n errorOnInvalidContent?: boolean\n}\n\n/**\n * Takes a JSON or HTML content and creates a Prosemirror node or fragment from it.\n * @param content The JSON or HTML content to create the node from\n * @param schema The Prosemirror schema to use for the node\n * @param options Options for the parser\n * @returns The created Prosemirror node or fragment\n */\nexport function createNodeFromContent(\n content: Content,\n schema: Schema,\n options?: CreateNodeFromContentOptions,\n): ProseMirrorNode | Fragment {\n options = {\n slice: true,\n parseOptions: {},\n ...options,\n }\n\n const isJSONContent = typeof content === 'object' && content !== null\n const isTextContent = typeof content === 'string'\n\n if (isJSONContent) {\n try {\n const isArrayContent = Array.isArray(content) && content.length > 0\n\n // if the JSON Content is an array of nodes, create a fragment for each node\n if (isArrayContent) {\n return Fragment.fromArray(content.map(item => schema.nodeFromJSON(item)))\n }\n\n const node = schema.nodeFromJSON(content)\n\n if (options.errorOnInvalidContent) {\n node.check()\n }\n\n return node\n } catch (error) {\n if (options.errorOnInvalidContent) {\n throw new Error('[tiptap error]: Invalid JSON content', { cause: error as Error })\n }\n\n console.warn('[tiptap warn]: Invalid content.', 'Passed value:', content, 'Error:', error)\n\n return createNodeFromContent('', schema, options)\n }\n }\n\n if (isTextContent) {\n\n // Check for invalid content\n if (options.errorOnInvalidContent) {\n let hasInvalidContent = false\n let invalidContent = ''\n\n // A copy of the current schema with a catch-all node at the end\n const contentCheckSchema = new Schema({\n topNode: schema.spec.topNode,\n marks: schema.spec.marks,\n // Prosemirror's schemas are executed such that: the last to execute, matches last\n // This means that we can add a catch-all node at the end of the schema to catch any content that we don't know how to handle\n nodes: schema.spec.nodes.append({\n __tiptap__private__unknown__catch__all__node: {\n content: 'inline*',\n group: 'block',\n parseDOM: [\n {\n tag: '*',\n getAttrs: e => {\n // If this is ever called, we know that the content has something that we don't know how to handle in the schema\n hasInvalidContent = true\n // Try to stringify the element for a more helpful error message\n invalidContent = typeof e === 'string' ? e : e.outerHTML\n return null\n },\n },\n ],\n },\n }),\n })\n\n if (options.slice) {\n DOMParser.fromSchema(contentCheckSchema).parseSlice(elementFromString(content), options.parseOptions)\n } else {\n DOMParser.fromSchema(contentCheckSchema).parse(elementFromString(content), options.parseOptions)\n }\n\n if (options.errorOnInvalidContent && hasInvalidContent) {\n throw new Error('[tiptap error]: Invalid HTML content', { cause: new Error(`Invalid element found: ${invalidContent}`) })\n }\n }\n\n const parser = DOMParser.fromSchema(schema)\n\n if (options.slice) {\n return parser.parseSlice(elementFromString(content), options.parseOptions).content\n }\n\n return parser.parse(elementFromString(content), options.parseOptions)\n\n }\n\n return createNodeFromContent('', schema, options)\n}\n","import { Selection, Transaction } from '@tiptap/pm/state'\nimport { ReplaceAroundStep, ReplaceStep } from '@tiptap/pm/transform'\n\n// source: https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.js#L466\nexport function selectionToInsertionEnd(tr: Transaction, startLen: number, bias: number) {\n const last = tr.steps.length - 1\n\n if (last < startLen) {\n return\n }\n\n const step = tr.steps[last]\n\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\n return\n }\n\n const map = tr.mapping.maps[last]\n let end = 0\n\n map.forEach((_from, _to, _newFrom, newTo) => {\n if (end === 0) {\n end = newTo\n }\n })\n\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias))\n}\n","import { Fragment, Node as ProseMirrorNode, ParseOptions } from '@tiptap/pm/model'\n\nimport { createNodeFromContent } from '../helpers/createNodeFromContent.js'\nimport { selectionToInsertionEnd } from '../helpers/selectionToInsertionEnd.js'\nimport { Content, Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContentAt: {\n /**\n * Insert a node or string of HTML at a specific position.\n * @example editor.commands.insertContentAt(0, '

Example

')\n */\n insertContentAt: (\n /**\n * The position to insert the content at.\n */\n position: number | Range,\n\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n\n /**\n * Whether to apply input rules after inserting the content.\n */\n applyInputRules?: boolean\n\n /**\n * Whether to apply paste rules after inserting the content.\n */\n applyPasteRules?: boolean\n\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nconst isFragment = (nodeOrFragment: ProseMirrorNode | Fragment): nodeOrFragment is Fragment => {\n return !('type' in nodeOrFragment)\n}\n\nexport const insertContentAt: RawCommands['insertContentAt'] = (position, value, options) => ({ tr, dispatch, editor }) => {\n if (dispatch) {\n options = {\n parseOptions: {},\n updateSelection: true,\n applyInputRules: false,\n applyPasteRules: false,\n ...options,\n }\n\n let content: Fragment | ProseMirrorNode\n\n try {\n content = createNodeFromContent(value, editor.schema, {\n parseOptions: {\n preserveWhitespace: 'full',\n ...options.parseOptions,\n },\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n } catch (e) {\n editor.emit('contentError', {\n editor,\n error: e as Error,\n disableCollaboration: () => {\n console.error('[tiptap error]: Unable to disable collaboration at this point in time')\n },\n })\n return false\n }\n\n let { from, to } = typeof position === 'number' ? { from: position, to: position } : { from: position.from, to: position.to }\n\n let isOnlyTextContent = true\n let isOnlyBlockContent = true\n const nodes = isFragment(content) ? content : [content]\n\n nodes.forEach(node => {\n // check if added node is valid\n node.check()\n\n isOnlyTextContent = isOnlyTextContent ? node.isText && node.marks.length === 0 : false\n\n isOnlyBlockContent = isOnlyBlockContent ? node.isBlock : false\n })\n\n // check if we can replace the wrapping node by\n // the newly inserted content\n // example:\n // replace an empty paragraph by an inserted image\n // instead of inserting the image below the paragraph\n if (from === to && isOnlyBlockContent) {\n const { parent } = tr.doc.resolve(from)\n const isEmptyTextBlock = parent.isTextblock && !parent.type.spec.code && !parent.childCount\n\n if (isEmptyTextBlock) {\n from -= 1\n to += 1\n }\n }\n\n let newContent\n\n // if there is only plain text we have to use `insertText`\n // because this will keep the current marks\n if (isOnlyTextContent) {\n // if value is string, we can use it directly\n // otherwise if it is an array, we have to join it\n if (Array.isArray(value)) {\n newContent = value.map(v => v.text || '').join('')\n } else if (typeof value === 'object' && !!value && !!value.text) {\n newContent = value.text\n } else {\n newContent = value as string\n }\n\n tr.insertText(newContent, from, to)\n } else {\n newContent = content\n\n tr.replaceWith(from, to, newContent)\n }\n\n // set cursor at end of inserted content\n if (options.updateSelection) {\n selectionToInsertionEnd(tr, tr.steps.length - 1, -1)\n }\n\n if (options.applyInputRules) {\n tr.setMeta('applyInputRules', { from, text: newContent })\n }\n\n if (options.applyPasteRules) {\n tr.setMeta('applyPasteRules', { from, text: newContent })\n }\n }\n\n return true\n}\n","import {\n joinBackward as originalJoinBackward,\n joinDown as originalJoinDown,\n joinForward as originalJoinForward,\n joinUp as originalJoinUp,\n} from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinUp: {\n /**\n * Join the selected block or, if there is a text selection, the closest ancestor block of the selection that can be joined, with the sibling above it.\n * @example editor.commands.joinUp()\n */\n joinUp: () => ReturnType\n }\n joinDown: {\n /**\n * Join the selected block, or the closest ancestor of the selection that can be joined, with the sibling after it.\n * @example editor.commands.joinDown()\n */\n joinDown: () => ReturnType\n }\n joinBackward: {\n /**\n * If the selection is empty and at the start of a textblock, try to reduce the distance between that block and the one before it—if there's a block directly before it that can be joined, join them.\n * If not, try to move the selected block closer to the next one in the document structure by lifting it out of its\n * parent or moving it into a parent of the previous block. Will use the view for accurate (bidi-aware) start-of-textblock detection if given.\n * @example editor.commands.joinBackward()\n */\n joinBackward: () => ReturnType\n }\n joinForward: {\n /**\n * If the selection is empty and the cursor is at the end of a textblock, try to reduce or remove the boundary between that block and the one after it,\n * either by joining them or by moving the other block closer to this one in the tree structure.\n * Will use the view for accurate start-of-textblock detection if given.\n * @example editor.commands.joinForward()\n */\n joinForward: () => ReturnType\n }\n }\n}\n\nexport const joinUp: RawCommands['joinUp'] = () => ({ state, dispatch }) => {\n return originalJoinUp(state, dispatch)\n}\n\nexport const joinDown: RawCommands['joinDown'] = () => ({ state, dispatch }) => {\n return originalJoinDown(state, dispatch)\n}\n\nexport const joinBackward: RawCommands['joinBackward'] = () => ({ state, dispatch }) => {\n return originalJoinBackward(state, dispatch)\n}\n\nexport const joinForward: RawCommands['joinForward'] = () => ({ state, dispatch }) => {\n return originalJoinForward(state, dispatch)\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemBackward: {\n /**\n * Join two items backward.\n * @example editor.commands.joinItemBackward()\n */\n joinItemBackward: () => ReturnType\n }\n }\n}\n\nexport const joinItemBackward: RawCommands['joinItemBackward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, -1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemForward: {\n /**\n * Join two items Forwards.\n * @example editor.commands.joinItemForward()\n */\n joinItemForward: () => ReturnType\n }\n }\n}\n\nexport const joinItemForward: RawCommands['joinItemForward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, +1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinTextblockBackward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockBackward: {\n /**\n * A more limited form of joinBackward that only tries to join the current textblock to the one before it, if the cursor is at the start of a textblock.\n */\n joinTextblockBackward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockBackward: RawCommands['joinTextblockBackward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","import { joinTextblockForward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockForward: {\n /**\n * A more limited form of joinForward that only tries to join the current textblock to the one after it, if the cursor is at the end of a textblock.\n */\n joinTextblockForward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockForward: RawCommands['joinTextblockForward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","export function isMacOS(): boolean {\n return typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n}\n","import { RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nfunction normalizeKeyName(name: string) {\n const parts = name.split(/-(?!$)/)\n let result = parts[parts.length - 1]\n\n if (result === 'Space') {\n result = ' '\n }\n\n let alt\n let ctrl\n let shift\n let meta\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const mod = parts[i]\n\n if (/^(cmd|meta|m)$/i.test(mod)) {\n meta = true\n } else if (/^a(lt)?$/i.test(mod)) {\n alt = true\n } else if (/^(c|ctrl|control)$/i.test(mod)) {\n ctrl = true\n } else if (/^s(hift)?$/i.test(mod)) {\n shift = true\n } else if (/^mod$/i.test(mod)) {\n if (isiOS() || isMacOS()) {\n meta = true\n } else {\n ctrl = true\n }\n } else {\n throw new Error(`Unrecognized modifier name: ${mod}`)\n }\n }\n\n if (alt) {\n result = `Alt-${result}`\n }\n\n if (ctrl) {\n result = `Ctrl-${result}`\n }\n\n if (meta) {\n result = `Meta-${result}`\n }\n\n if (shift) {\n result = `Shift-${result}`\n }\n\n return result\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n keyboardShortcut: {\n /**\n * Trigger a keyboard shortcut.\n * @param name The name of the keyboard shortcut.\n * @example editor.commands.keyboardShortcut('Mod-b')\n */\n keyboardShortcut: (name: string) => ReturnType,\n }\n }\n}\n\nexport const keyboardShortcut: RawCommands['keyboardShortcut'] = name => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n const keys = normalizeKeyName(name).split(/-(?!$)/)\n const key = keys.find(item => !['Alt', 'Ctrl', 'Meta', 'Shift'].includes(item))\n const event = new KeyboardEvent('keydown', {\n key: key === 'Space'\n ? ' '\n : key,\n altKey: keys.includes('Alt'),\n ctrlKey: keys.includes('Ctrl'),\n metaKey: keys.includes('Meta'),\n shiftKey: keys.includes('Shift'),\n bubbles: true,\n cancelable: true,\n })\n\n const capturedTransaction = editor.captureTransaction(() => {\n view.someProp('handleKeyDown', f => f(view, event))\n })\n\n capturedTransaction?.steps.forEach(step => {\n const newStep = step.map(tr.mapping)\n\n if (newStep && dispatch) {\n tr.maybeStep(newStep)\n }\n })\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { NodeRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getNodeType } from './getNodeType.js'\n\nexport function isNodeActive(\n state: EditorState,\n typeOrName: NodeType | string | null,\n attributes: Record = {},\n): boolean {\n const { from, to, empty } = state.selection\n const type = typeOrName ? getNodeType(typeOrName, state.schema) : null\n\n const nodeRanges: NodeRange[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isText) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n\n nodeRanges.push({\n node,\n from: relativeFrom,\n to: relativeTo,\n })\n })\n\n const selectionRange = to - from\n const matchedNodeRanges = nodeRanges\n .filter(nodeRange => {\n if (!type) {\n return true\n }\n\n return type.name === nodeRange.node.type.name\n })\n .filter(nodeRange => objectIncludes(nodeRange.node.attrs, attributes, { strict: false }))\n\n if (empty) {\n return !!matchedNodeRanges.length\n }\n\n const range = matchedNodeRanges.reduce((sum, nodeRange) => sum + nodeRange.to - nodeRange.from, 0)\n\n return range >= selectionRange\n}\n","import { lift as originalLift } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n lift: {\n /**\n * Removes an existing wrap if possible lifting the node out of it\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.lift('paragraph')\n * @example editor.commands.lift('heading', { level: 1 })\n */\n lift: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const lift: RawCommands['lift'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (!isActive) {\n return false\n }\n\n return originalLift(state, dispatch)\n}\n","import { liftEmptyBlock as originalLiftEmptyBlock } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftEmptyBlock: {\n /**\n * If the cursor is in an empty textblock that can be lifted, lift the block.\n * @example editor.commands.liftEmptyBlock()\n */\n liftEmptyBlock: () => ReturnType,\n }\n }\n}\n\nexport const liftEmptyBlock: RawCommands['liftEmptyBlock'] = () => ({ state, dispatch }) => {\n return originalLiftEmptyBlock(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { liftListItem as originalLiftListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftListItem: {\n /**\n * Create a command to lift the list item around the selection up into a wrapping list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.liftListItem('listItem')\n */\n liftListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const liftListItem: RawCommands['liftListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalLiftListItem(type)(state, dispatch)\n}\n","import { newlineInCode as originalNewlineInCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n newlineInCode: {\n /**\n * Add a newline character in code.\n * @example editor.commands.newlineInCode()\n */\n newlineInCode: () => ReturnType\n }\n }\n}\n\nexport const newlineInCode: RawCommands['newlineInCode'] = () => ({ state, dispatch }) => {\n return originalNewlineInCode(state, dispatch)\n}\n","import { Schema } from '@tiptap/pm/model'\n\n/**\n * Get the type of a schema item by its name.\n * @param name The name of the schema item\n * @param schema The Prosemiror schema to search in\n * @returns The type of the schema item (`node` or `mark`), or null if it doesn't exist\n */\nexport function getSchemaTypeNameByName(name: string, schema: Schema): 'node' | 'mark' | null {\n if (schema.nodes[name]) {\n return 'node'\n }\n\n if (schema.marks[name]) {\n return 'mark'\n }\n\n return null\n}\n","/**\n * Remove a property or an array of properties from an object\n * @param obj Object\n * @param key Key to remove\n */\nexport function deleteProps(obj: Record, propOrProps: string | string[]): Record {\n const props = typeof propOrProps === 'string'\n ? [propOrProps]\n : propOrProps\n\n return Object\n .keys(obj)\n .reduce((newObj: Record, prop) => {\n if (!props.includes(prop)) {\n newObj[prop] = obj[prop]\n }\n\n return newObj\n }, {})\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\nimport { deleteProps } from '../utilities/deleteProps.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n resetAttributes: {\n /**\n * Resets some node attributes to the default value.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node to reset.\n * @example editor.commands.resetAttributes('heading', 'level')\n */\n resetAttributes: (\n typeOrName: string | NodeType | MarkType,\n attributes: string | string[],\n ) => ReturnType\n }\n }\n}\n\nexport const resetAttributes: RawCommands['resetAttributes'] = (typeOrName, attributes) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n state.doc.nodesBetween(range.$from.pos, range.$to.pos, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, deleteProps(node.attrs, attributes))\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n tr.addMark(\n pos,\n pos + node.nodeSize,\n markType.create(deleteProps(mark.attrs, attributes)),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n scrollIntoView: {\n /**\n * Scroll the selection into view.\n * @example editor.commands.scrollIntoView()\n */\n scrollIntoView: () => ReturnType,\n }\n }\n}\n\nexport const scrollIntoView: RawCommands['scrollIntoView'] = () => ({ tr, dispatch }) => {\n if (dispatch) {\n tr.scrollIntoView()\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectAll: {\n /**\n * Select the whole document.\n * @example editor.commands.selectAll()\n */\n selectAll: () => ReturnType,\n }\n }\n}\n\nexport const selectAll: RawCommands['selectAll'] = () => ({ tr, commands }) => {\n return commands.setTextSelection({\n from: 0,\n to: tr.doc.content.size,\n })\n}\n","import { selectNodeBackward as originalSelectNodeBackward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeBackward: {\n /**\n * Select a node backward.\n * @example editor.commands.selectNodeBackward()\n */\n selectNodeBackward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeBackward: RawCommands['selectNodeBackward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeBackward(state, dispatch)\n}\n","import { selectNodeForward as originalSelectNodeForward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeForward: {\n /**\n * Select a node forward.\n * @example editor.commands.selectNodeForward()\n */\n selectNodeForward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeForward: RawCommands['selectNodeForward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeForward(state, dispatch)\n}\n","import { selectParentNode as originalSelectParentNode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectParentNode: {\n /**\n * Select the parent node.\n * @example editor.commands.selectParentNode()\n */\n selectParentNode: () => ReturnType\n }\n }\n}\n\nexport const selectParentNode: RawCommands['selectParentNode'] = () => ({ state, dispatch }) => {\n return originalSelectParentNode(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockEnd as originalSelectTextblockEnd } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockEnd: {\n /**\n * Moves the cursor to the end of current text block.\n * @example editor.commands.selectTextblockEnd()\n */\n selectTextblockEnd: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockEnd: RawCommands['selectTextblockEnd'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockEnd(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockStart as originalSelectTextblockStart } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockStart: {\n /**\n * Moves the cursor to the start of current text block.\n * @example editor.commands.selectTextblockStart()\n */\n selectTextblockStart: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockStart: RawCommands['selectTextblockStart'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockStart(state, dispatch)\n}\n","import { Node as ProseMirrorNode, ParseOptions, Schema } from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { createNodeFromContent } from './createNodeFromContent.js'\n\n/**\n * Create a new Prosemirror document node from content.\n * @param content The JSON or HTML content to create the document from\n * @param schema The Prosemirror schema to use for the document\n * @param parseOptions Options for the parser\n * @returns The created Prosemirror document node\n */\nexport function createDocument(\n content: Content,\n schema: Schema,\n parseOptions: ParseOptions = {},\n options: { errorOnInvalidContent?: boolean } = {},\n): ProseMirrorNode {\n return createNodeFromContent(content, schema, {\n slice: false,\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent,\n }) as ProseMirrorNode\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { createDocument } from '../helpers/createDocument.js'\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setContent: {\n /**\n * Replace the whole document with new content.\n * @param content The new content.\n * @param emitUpdate Whether to emit an update event.\n * @param parseOptions Options for parsing the content.\n * @example editor.commands.setContent('

Example text

')\n */\n setContent: (\n /**\n * The new content.\n */\n content: Content,\n\n /**\n * Whether to emit an update event.\n * @default false\n */\n emitUpdate?: boolean,\n\n /**\n * Options for parsing the content.\n * @default {}\n */\n parseOptions?: ParseOptions,\n /**\n * Options for `setContent`.\n */\n options?: {\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const setContent: RawCommands['setContent'] = (content, emitUpdate = false, parseOptions = {}, options = {}) => ({\n editor, tr, dispatch, commands,\n}) => {\n const { doc } = tr\n\n // This is to keep backward compatibility with the previous behavior\n // TODO remove this in the next major version\n if (parseOptions.preserveWhitespace !== 'full') {\n const document = createDocument(content, editor.schema, parseOptions, {\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n\n if (dispatch) {\n tr.replaceWith(0, doc.content.size, document).setMeta('preventUpdate', !emitUpdate)\n }\n return true\n }\n\n if (dispatch) {\n tr.setMeta('preventUpdate', !emitUpdate)\n }\n\n return commands.insertContentAt(\n { from: 0, to: doc.content.size },\n content,\n {\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n },\n )\n}\n","import { Mark, MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkType } from './getMarkType.js'\n\nexport function getMarkAttributes(\n state: EditorState,\n typeOrName: string | MarkType,\n): Record {\n const type = getMarkType(typeOrName, state.schema)\n const { from, to, empty } = state.selection\n const marks: Mark[] = []\n\n if (empty) {\n if (state.storedMarks) {\n marks.push(...state.storedMarks)\n }\n\n marks.push(...state.selection.$head.marks())\n } else {\n state.doc.nodesBetween(from, to, node => {\n marks.push(...node.marks)\n })\n }\n\n const mark = marks.find(markItem => markItem.type.name === type.name)\n\n if (!mark) {\n return {}\n }\n\n return { ...mark.attrs }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { Transform } from '@tiptap/pm/transform'\n\n/**\n * Returns a new `Transform` based on all steps of the passed transactions.\n * @param oldDoc The Prosemirror node to start from\n * @param transactions The transactions to combine\n * @returns A new `Transform` with all steps of the passed transactions\n */\nexport function combineTransactionSteps(\n oldDoc: ProseMirrorNode,\n transactions: Transaction[],\n): Transform {\n const transform = new Transform(oldDoc)\n\n transactions.forEach(transaction => {\n transaction.steps.forEach(step => {\n transform.step(step)\n })\n })\n\n return transform\n}\n","import { ContentMatch, NodeType } from '@tiptap/pm/model'\n\n/**\n * Gets the default block type at a given match\n * @param match The content match to get the default block type from\n * @returns The default block type or null\n */\nexport function defaultBlockAt(match: ContentMatch): NodeType | null {\n for (let i = 0; i < match.edgeCount; i += 1) {\n const { type } = match.edge(i)\n\n if (type.isTextblock && !type.hasRequiredAttrs()) {\n return type\n }\n }\n\n return null\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate } from '../types.js'\n\n/**\n * Find children inside a Prosemirror node that match a predicate.\n * @param node The Prosemirror node to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildren(node: ProseMirrorNode, predicate: Predicate): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n node.descendants((child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate, Range } from '../types.js'\n\n/**\n * Same as `findChildren` but searches only within a `range`.\n * @param node The Prosemirror node to search in\n * @param range The range to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildrenInRange(\n node: ProseMirrorNode,\n range: Range,\n predicate: Predicate,\n): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n // if (range.from === range.to) {\n // const nodeAt = node.nodeAt(range.from)\n\n // if (nodeAt) {\n // nodesWithPos.push({\n // node: nodeAt,\n // pos: range.from,\n // })\n // }\n // }\n\n node.nodesBetween(range.from, range.to, (child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Predicate } from '../types.js'\n\n/**\n * Finds the closest parent node to a resolved position that matches a predicate.\n * @param $pos The resolved position to search from\n * @param predicate The predicate to match\n * @returns The closest parent node to the resolved position that matches the predicate\n * @example ```js\n * findParentNodeClosestToPos($from, node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNodeClosestToPos(\n $pos: ResolvedPos,\n predicate: Predicate,\n):\n | {\n pos: number\n start: number\n depth: number\n node: ProseMirrorNode\n }\n | undefined {\n for (let i = $pos.depth; i > 0; i -= 1) {\n const node = $pos.node(i)\n\n if (predicate(node)) {\n return {\n pos: i > 0 ? $pos.before(i) : 0,\n start: $pos.start(i),\n depth: i,\n node,\n }\n }\n }\n}\n","import { Selection } from '@tiptap/pm/state'\n\nimport { Predicate } from '../types.js'\nimport { findParentNodeClosestToPos } from './findParentNodeClosestToPos.js'\n\n/**\n * Finds the closest parent node to the current selection that matches a predicate.\n * @param predicate The predicate to match\n * @returns A command that finds the closest parent node to the current selection that matches the predicate\n * @example ```js\n * findParentNode(node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNode(predicate: Predicate) {\n return (selection: Selection) => findParentNodeClosestToPos(selection.$from, predicate)\n}\n","import { DOMSerializer, Fragment, Schema } from '@tiptap/pm/model'\n\nexport function getHTMLFromFragment(fragment: Fragment, schema: Schema): string {\n const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment)\n\n const temporaryDocument = document.implementation.createHTMLDocument()\n const container = temporaryDocument.createElement('div')\n\n container.appendChild(documentFragment)\n\n return container.innerHTML\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { Editor } from '../Editor.js'\nimport { ExtensionManager } from '../ExtensionManager.js'\nimport { Extensions } from '../types.js'\nimport { getSchemaByResolvedExtensions } from './getSchemaByResolvedExtensions.js'\n\nexport function getSchema(extensions: Extensions, editor?: Editor): Schema {\n const resolvedExtensions = ExtensionManager.resolve(extensions)\n\n return getSchemaByResolvedExtensions(resolvedExtensions, editor)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent } from '../types.js'\nimport { getHTMLFromFragment } from './getHTMLFromFragment.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate HTML from a JSONContent\n * @param doc The JSONContent to generate HTML from\n * @param extensions The extensions to use for the schema\n * @returns The generated HTML\n */\nexport function generateHTML(doc: JSONContent, extensions: Extensions): string {\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getHTMLFromFragment(contentNode.content, schema)\n}\n","import { DOMParser } from '@tiptap/pm/model'\n\nimport { Extensions } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate JSONContent from HTML\n * @param html The HTML to generate JSONContent from\n * @param extensions The extensions to use for the schema\n * @returns The generated JSONContent\n */\nexport function generateJSON(html: string, extensions: Extensions): Record {\n const schema = getSchema(extensions)\n const dom = elementFromString(html)\n\n return DOMParser.fromSchema(schema).parse(dom).toJSON()\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\nimport { getTextBetween } from './getTextBetween.js'\n\n/**\n * Gets the text of a Prosemirror node\n * @param node The Prosemirror node\n * @param options Options for the text serializer & block separator\n * @returns The text of the node\n * @example ```js\n * const text = getText(node, { blockSeparator: '\\n' })\n * ```\n */\nexport function getText(\n node: ProseMirrorNode,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n) {\n const range = {\n from: 0,\n to: node.content.size,\n }\n\n return getTextBetween(node, range, options)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent, TextSerializer } from '../types.js'\nimport { getSchema } from './getSchema.js'\nimport { getText } from './getText.js'\nimport { getTextSerializersFromSchema } from './getTextSerializersFromSchema.js'\n\n/**\n * Generate raw text from a JSONContent\n * @param doc The JSONContent to generate text from\n * @param extensions The extensions to use for the schema\n * @param options Options for the text generation f.e. blockSeparator or textSerializers\n * @returns The generated text\n */\nexport function generateText(\n doc: JSONContent,\n extensions: Extensions,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getText(contentNode, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(schema),\n ...textSerializers,\n },\n })\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getNodeType } from './getNodeType.js'\n\nexport function getNodeAttributes(\n state: EditorState,\n typeOrName: string | NodeType,\n): Record {\n const type = getNodeType(typeOrName, state.schema)\n const { from, to } = state.selection\n const nodes: Node[] = []\n\n state.doc.nodesBetween(from, to, node => {\n nodes.push(node)\n })\n\n const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name)\n\n if (!node) {\n return {}\n }\n\n return { ...node.attrs }\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from './getMarkAttributes.js'\nimport { getNodeAttributes } from './getNodeAttributes.js'\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\n\n/**\n * Get node or mark attributes by type or name on the current editor state\n * @param state The current editor state\n * @param typeOrName The node or mark type or name\n * @returns The attributes of the node or mark or an empty object\n */\nexport function getAttributes(\n state: EditorState,\n typeOrName: string | NodeType | MarkType,\n): Record {\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (schemaType === 'node') {\n return getNodeAttributes(state, typeOrName as NodeType)\n }\n\n if (schemaType === 'mark') {\n return getMarkAttributes(state, typeOrName as MarkType)\n }\n\n return {}\n}\n","/**\n * Removes duplicated values within an array.\n * Supports numbers, strings and objects.\n */\nexport function removeDuplicates(array: T[], by = JSON.stringify): T[] {\n const seen: Record = {}\n\n return array.filter(item => {\n const key = by(item)\n\n return Object.prototype.hasOwnProperty.call(seen, key)\n ? false\n : (seen[key] = true)\n })\n}\n","import { Step, Transform } from '@tiptap/pm/transform'\n\nimport { Range } from '../types.js'\nimport { removeDuplicates } from '../utilities/removeDuplicates.js'\n\nexport type ChangedRange = {\n oldRange: Range,\n newRange: Range,\n}\n\n/**\n * Removes duplicated ranges and ranges that are\n * fully captured by other ranges.\n */\nfunction simplifyChangedRanges(changes: ChangedRange[]): ChangedRange[] {\n const uniqueChanges = removeDuplicates(changes)\n\n return uniqueChanges.length === 1\n ? uniqueChanges\n : uniqueChanges.filter((change, index) => {\n const rest = uniqueChanges.filter((_, i) => i !== index)\n\n return !rest.some(otherChange => {\n return change.oldRange.from >= otherChange.oldRange.from\n && change.oldRange.to <= otherChange.oldRange.to\n && change.newRange.from >= otherChange.newRange.from\n && change.newRange.to <= otherChange.newRange.to\n })\n })\n}\n\n/**\n * Returns a list of changed ranges\n * based on the first and last state of all steps.\n */\nexport function getChangedRanges(transform: Transform): ChangedRange[] {\n const { mapping, steps } = transform\n const changes: ChangedRange[] = []\n\n mapping.maps.forEach((stepMap, index) => {\n const ranges: Range[] = []\n\n // This accounts for step changes where no range was actually altered\n // e.g. when setting a mark, node attribute, etc.\n // @ts-ignore\n if (!stepMap.ranges.length) {\n const { from, to } = steps[index] as Step & {\n from?: number,\n to?: number,\n }\n\n if (from === undefined || to === undefined) {\n return\n }\n\n ranges.push({ from, to })\n } else {\n stepMap.forEach((from, to) => {\n ranges.push({ from, to })\n })\n }\n\n ranges.forEach(({ from, to }) => {\n const newStart = mapping.slice(index).map(from, -1)\n const newEnd = mapping.slice(index).map(to)\n const oldStart = mapping.invert().map(newStart, -1)\n const oldEnd = mapping.invert().map(newEnd)\n\n changes.push({\n oldRange: {\n from: oldStart,\n to: oldEnd,\n },\n newRange: {\n from: newStart,\n to: newEnd,\n },\n })\n })\n })\n\n return simplifyChangedRanges(changes)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { JSONContent } from '../types.js'\n\ninterface DebugJSONContent extends JSONContent {\n from: number\n to: number\n}\n\nexport function getDebugJSON(node: ProseMirrorNode, startOffset = 0): DebugJSONContent {\n const isTopNode = node.type === node.type.schema.topNodeType\n const increment = isTopNode ? 0 : 1\n const from = startOffset\n const to = from + node.nodeSize\n const marks = node.marks.map(mark => {\n const output: { type: string; attrs?: Record } = {\n type: mark.type.name,\n }\n\n if (Object.keys(mark.attrs).length) {\n output.attrs = { ...mark.attrs }\n }\n\n return output\n })\n const attrs = { ...node.attrs }\n const output: DebugJSONContent = {\n type: node.type.name,\n from,\n to,\n }\n\n if (Object.keys(attrs).length) {\n output.attrs = attrs\n }\n\n if (marks.length) {\n output.marks = marks\n }\n\n if (node.content.childCount) {\n output.content = []\n\n node.forEach((child, offset) => {\n output.content?.push(getDebugJSON(child, startOffset + offset + increment))\n })\n }\n\n if (node.text) {\n output.text = node.text\n }\n\n return output\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { MarkRange } from '../types.js'\nimport { getMarkRange } from './getMarkRange.js'\n\nexport function getMarksBetween(from: number, to: number, doc: ProseMirrorNode): MarkRange[] {\n const marks: MarkRange[] = []\n\n // get all inclusive marks on empty selection\n if (from === to) {\n doc\n .resolve(from)\n .marks()\n .forEach(mark => {\n const $pos = doc.resolve(from)\n const range = getMarkRange($pos, mark.type)\n\n if (!range) {\n return\n }\n\n marks.push({\n mark,\n ...range,\n })\n })\n } else {\n doc.nodesBetween(from, to, (node, pos) => {\n if (!node || node?.nodeSize === undefined) {\n return\n }\n\n marks.push(\n ...node.marks.map(mark => ({\n from: pos,\n to: pos + node.nodeSize,\n mark,\n })),\n )\n })\n }\n\n return marks\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\n/**\n * Finds the first node of a given type or name in the current selection.\n * @param state The editor state.\n * @param typeOrName The node type or name.\n * @param pos The position to start searching from.\n * @param maxDepth The maximum depth to search.\n * @returns The node and the depth as an array.\n */\nexport const getNodeAtPosition = (state: EditorState, typeOrName: string | NodeType, pos: number, maxDepth = 20) => {\n const $pos = state.doc.resolve(pos)\n\n let currentDepth = maxDepth\n let node: Node | null = null\n\n while (currentDepth > 0 && node === null) {\n const currentNode = $pos.node(currentDepth)\n\n if (currentNode?.type.name === typeOrName) {\n node = currentNode\n } else {\n currentDepth -= 1\n }\n }\n\n return [node, currentDepth] as [Node | null, number]\n}\n","import { ExtensionAttribute } from '../types.js'\n\n/**\n * Return attributes of an extension that should be splitted by keepOnSplit flag\n * @param extensionAttributes Array of extension attributes\n * @param typeName The type of the extension\n * @param attributes The attributes of the extension\n * @returns The splitted attributes\n */\nexport function getSplittedAttributes(\n extensionAttributes: ExtensionAttribute[],\n typeName: string,\n attributes: Record,\n): Record {\n return Object.fromEntries(Object\n .entries(attributes)\n .filter(([name]) => {\n const extensionAttribute = extensionAttributes.find(item => {\n return item.type === typeName && item.name === name\n })\n\n if (!extensionAttribute) {\n return false\n }\n\n return extensionAttribute.attribute.keepOnSplit\n }))\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { MarkRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getMarkType } from './getMarkType.js'\n\nexport function isMarkActive(\n state: EditorState,\n typeOrName: MarkType | string | null,\n attributes: Record = {},\n): boolean {\n const { empty, ranges } = state.selection\n const type = typeOrName ? getMarkType(typeOrName, state.schema) : null\n\n if (empty) {\n return !!(state.storedMarks || state.selection.$from.marks())\n .filter(mark => {\n if (!type) {\n return true\n }\n\n return type.name === mark.type.name\n })\n .find(mark => objectIncludes(mark.attrs, attributes, { strict: false }))\n }\n\n let selectionRange = 0\n const markRanges: MarkRange[] = []\n\n ranges.forEach(({ $from, $to }) => {\n const from = $from.pos\n const to = $to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isText && !node.marks.length) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n const range = relativeTo - relativeFrom\n\n selectionRange += range\n\n markRanges.push(\n ...node.marks.map(mark => ({\n mark,\n from: relativeFrom,\n to: relativeTo,\n })),\n )\n })\n })\n\n if (selectionRange === 0) {\n return false\n }\n\n // calculate range of matched mark\n const matchedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return type.name === markRange.mark.type.name\n })\n .filter(markRange => objectIncludes(markRange.mark.attrs, attributes, { strict: false }))\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // calculate range of marks that excludes the searched mark\n // for example `code` doesn’t allow any other marks\n const excludedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return markRange.mark.type !== type && markRange.mark.type.excludes(type)\n })\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // we only include the result of `excludedRange`\n // if there is a match at all\n const range = matchedRange > 0 ? matchedRange + excludedRange : matchedRange\n\n return range >= selectionRange\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\nimport { isMarkActive } from './isMarkActive.js'\nimport { isNodeActive } from './isNodeActive.js'\n\nexport function isActive(\n state: EditorState,\n name: string | null,\n attributes: Record = {},\n): boolean {\n if (!name) {\n return isNodeActive(state, null, attributes) || isMarkActive(state, null, attributes)\n }\n\n const schemaType = getSchemaTypeNameByName(name, state.schema)\n\n if (schemaType === 'node') {\n return isNodeActive(state, name, attributes)\n }\n\n if (schemaType === 'mark') {\n return isMarkActive(state, name, attributes)\n }\n\n return false\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { findParentNode } from './findParentNode.js'\n\nexport const isAtEndOfNode = (state: EditorState, nodeType?: string) => {\n const { $from, $to, $anchor } = state.selection\n\n if (nodeType) {\n const parentNode = findParentNode(node => node.type.name === nodeType)(state.selection)\n\n if (!parentNode) {\n return false\n }\n\n const $parentPos = state.doc.resolve(parentNode.pos + 1)\n\n if ($anchor.pos + 1 === $parentPos.end()) {\n return true\n }\n\n return false\n }\n\n if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nexport const isAtStartOfNode = (state: EditorState) => {\n const { $from, $to } = state.selection\n\n if ($from.parentOffset > 0 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { getExtensionField } from '../helpers/getExtensionField.js'\nimport { NodeConfig } from '../index.js'\nimport { Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nexport function isList(name: string, extensions: Extensions): boolean {\n const { nodeExtensions } = splitExtensions(extensions)\n const extension = nodeExtensions.find(item => item.name === name)\n\n if (!extension) {\n return false\n }\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n const group = callOrReturn(getExtensionField(extension, 'group', context))\n\n if (typeof group !== 'string') {\n return false\n }\n\n return group.split(' ').includes('list')\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\n/**\n * Returns true if the given prosemirror node is empty.\n */\nexport function isNodeEmpty(\n node: ProseMirrorNode,\n {\n checkChildren = true,\n ignoreWhitespace = false,\n }: {\n /**\n * When true (default), it will also check if all children are empty.\n */\n checkChildren?: boolean;\n /**\n * When true, it will ignore whitespace when checking for emptiness.\n */\n ignoreWhitespace?: boolean;\n } = {},\n): boolean {\n if (ignoreWhitespace) {\n if (node.type.name === 'hardBreak') {\n // Hard breaks are considered empty\n return true\n }\n if (node.isText) {\n return /^\\s*$/m.test(node.text ?? '')\n }\n }\n\n if (node.isText) {\n return !node.text\n }\n\n if (node.isAtom || node.isLeaf) {\n return false\n }\n\n if (node.content.childCount === 0) {\n return true\n }\n\n if (checkChildren) {\n let isContentEmpty = true\n\n node.content.forEach(childNode => {\n if (isContentEmpty === false) {\n // Exit early for perf\n return\n }\n\n if (!isNodeEmpty(childNode, { ignoreWhitespace, checkChildren })) {\n isContentEmpty = false\n }\n })\n\n return isContentEmpty\n }\n\n return false\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nexport function isNodeSelection(value: unknown): value is NodeSelection {\n return value instanceof NodeSelection\n}\n","import { EditorView } from '@tiptap/pm/view'\n\nimport { minMax } from '../utilities/minMax.js'\n\nexport function posToDOMRect(view: EditorView, from: number, to: number): DOMRect {\n const minPos = 0\n const maxPos = view.state.doc.content.size\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const start = view.coordsAtPos(resolvedFrom)\n const end = view.coordsAtPos(resolvedEnd, -1)\n const top = Math.min(start.top, end.top)\n const bottom = Math.max(start.bottom, end.bottom)\n const left = Math.min(start.left, end.left)\n const right = Math.max(start.right, end.right)\n const width = right - left\n const height = bottom - top\n const x = left\n const y = top\n const data = {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x,\n y,\n }\n\n return {\n ...data,\n toJSON: () => data,\n }\n}\n","import { MarkType, ResolvedPos } from '@tiptap/pm/model'\nimport { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from '../helpers/getMarkAttributes.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isTextSelection } from '../helpers/index.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMark: {\n /**\n * Add a mark with new attributes.\n * @param typeOrName The mark type or name.\n * @example editor.commands.setMark('bold', { level: 1 })\n */\n setMark: (typeOrName: string | MarkType, attributes?: Record) => ReturnType\n }\n }\n}\n\nfunction canSetMark(state: EditorState, tr: Transaction, newMarkType: MarkType) {\n const { selection } = tr\n let cursor: ResolvedPos | null = null\n\n if (isTextSelection(selection)) {\n cursor = selection.$cursor\n }\n\n if (cursor) {\n const currentMarks = state.storedMarks ?? cursor.marks()\n\n // There can be no current marks that exclude the new mark\n return (\n !!newMarkType.isInSet(currentMarks)\n || !currentMarks.some(mark => mark.type.excludes(newMarkType))\n )\n }\n\n const { ranges } = selection\n\n return ranges.some(({ $from, $to }) => {\n let someNodeSupportsMark = $from.depth === 0\n ? state.doc.inlineContent && state.doc.type.allowsMarkType(newMarkType)\n : false\n\n state.doc.nodesBetween($from.pos, $to.pos, (node, _pos, parent) => {\n // If we already found a mark that we can enable, return false to bypass the remaining search\n if (someNodeSupportsMark) {\n return false\n }\n\n if (node.isInline) {\n const parentAllowsMarkType = !parent || parent.type.allowsMarkType(newMarkType)\n const currentMarksAllowMarkType = !!newMarkType.isInSet(node.marks)\n || !node.marks.some(otherMark => otherMark.type.excludes(newMarkType))\n\n someNodeSupportsMark = parentAllowsMarkType && currentMarksAllowMarkType\n }\n return !someNodeSupportsMark\n })\n\n return someNodeSupportsMark\n })\n}\nexport const setMark: RawCommands['setMark'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n const type = getMarkType(typeOrName, state.schema)\n\n if (dispatch) {\n if (empty) {\n const oldAttributes = getMarkAttributes(state, type)\n\n tr.addStoredMark(\n type.create({\n ...oldAttributes,\n ...attributes,\n }),\n )\n } else {\n ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n const someHasMark = node.marks.find(mark => mark.type === type)\n\n // if there is already a mark of this type\n // we know that we have to merge its attributes\n // otherwise we add a fresh new mark\n if (someHasMark) {\n node.marks.forEach(mark => {\n if (type === mark.type) {\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n type.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n } else {\n tr.addMark(trimmedFrom, trimmedTo, type.create(attributes))\n }\n })\n })\n }\n }\n\n return canSetMark(state, tr, type)\n}\n","import type { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMeta: {\n /**\n * Store a metadata property in the current transaction.\n * @param key The key of the metadata property.\n * @param value The value to store.\n * @example editor.commands.setMeta('foo', 'bar')\n */\n setMeta: (key: string | Plugin | PluginKey, value: any) => ReturnType,\n }\n }\n}\n\nexport const setMeta: RawCommands['setMeta'] = (key, value) => ({ tr }) => {\n tr.setMeta(key, value)\n\n return true\n}\n","import { setBlockType } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNode: {\n /**\n * Replace a given range with a node.\n * @param typeOrName The type or name of the node\n * @param attributes The attributes of the node\n * @example editor.commands.setNode('paragraph')\n */\n setNode: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const setNode: RawCommands['setNode'] = (typeOrName, attributes = {}) => ({ state, dispatch, chain }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n // TODO: use a fallback like insertContent?\n if (!type.isTextblock) {\n console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.')\n\n return false\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(({ commands }) => {\n const canSetBlock = setBlockType(type, attributes)(state)\n\n if (canSetBlock) {\n return true\n }\n\n return commands.clearNodes()\n })\n .command(({ state: updatedState }) => {\n return setBlockType(type, attributes)(updatedState, dispatch)\n })\n .run()\n )\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNodeSelection: {\n /**\n * Creates a NodeSelection.\n * @param position - Position of the node.\n * @example editor.commands.setNodeSelection(10)\n */\n setNodeSelection: (position: number) => ReturnType\n }\n }\n}\n\nexport const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const from = minMax(position, 0, doc.content.size)\n const selection = NodeSelection.create(doc, from)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { Range, RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setTextSelection: {\n /**\n * Creates a TextSelection.\n * @param position The position of the selection.\n * @example editor.commands.setTextSelection(10)\n */\n setTextSelection: (position: number | Range) => ReturnType\n }\n }\n}\n\nexport const setTextSelection: RawCommands['setTextSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const { from, to } = typeof position === 'number' ? { from: position, to: position } : position\n const minPos = TextSelection.atStart(doc).from\n const maxPos = TextSelection.atEnd(doc).to\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { sinkListItem as originalSinkListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n sinkListItem: {\n /**\n * Sink the list item down into an inner list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.sinkListItem('listItem')\n */\n sinkListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const sinkListItem: RawCommands['sinkListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalSinkListItem(type)(state, dispatch)\n}\n","import { EditorState, NodeSelection, TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { defaultBlockAt } from '../helpers/defaultBlockAt.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\nfunction ensureMarks(state: EditorState, splittableMarks?: string[]) {\n const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks?.includes(mark.type.name))\n\n state.tr.ensureMarks(filteredMarks)\n }\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitBlock: {\n /**\n * Forks a new node from an existing node.\n * @param options.keepMarks Keep marks from the previous node.\n * @example editor.commands.splitBlock()\n * @example editor.commands.splitBlock({ keepMarks: true })\n */\n splitBlock: (options?: { keepMarks?: boolean }) => ReturnType\n }\n }\n}\n\nexport const splitBlock: RawCommands['splitBlock'] = ({ keepMarks = true } = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const { selection, doc } = tr\n const { $from, $to } = selection\n const extensionAttributes = editor.extensionManager.attributes\n const newAttributes = getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n )\n\n if (selection instanceof NodeSelection && selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(doc, $from.pos)) {\n return false\n }\n\n if (dispatch) {\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.split($from.pos).scrollIntoView()\n }\n\n return true\n }\n\n if (!$from.parent.isBlock) {\n return false\n }\n\n const atEnd = $to.parentOffset === $to.parent.content.size\n\n const deflt = $from.depth === 0\n ? undefined\n : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)))\n\n let types = atEnd && deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types)\n\n if (\n !types\n && !can\n && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)\n ) {\n can = true\n types = deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n }\n\n if (dispatch) {\n if (can) {\n if (selection instanceof TextSelection) {\n tr.deleteSelection()\n }\n\n tr.split(tr.mapping.map($from.pos), 1, types)\n\n if (deflt && !atEnd && !$from.parentOffset && $from.parent.type !== deflt) {\n const first = tr.mapping.map($from.before())\n const $first = tr.doc.resolve(first)\n\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt)) {\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt)\n }\n }\n }\n\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.scrollIntoView()\n }\n\n return can\n}\n","import {\n Fragment, Node as ProseMirrorNode, NodeType, Slice,\n} from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitListItem: {\n /**\n * Splits one list item into two list items.\n * @param typeOrName The type or name of the node.\n * @param overrideAttrs The attributes to ensure on the new node.\n * @example editor.commands.splitListItem('listItem')\n */\n splitListItem: (typeOrName: string | NodeType, overrideAttrs?: Record) => ReturnType\n }\n }\n}\n\nexport const splitListItem: RawCommands['splitListItem'] = (typeOrName, overrideAttrs = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const type = getNodeType(typeOrName, state.schema)\n const { $from, $to } = state.selection\n\n // @ts-ignore\n // eslint-disable-next-line\n const node: ProseMirrorNode = state.selection.node\n\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {\n return false\n }\n\n const grandParent = $from.node(-1)\n\n if (grandParent.type !== type) {\n return false\n }\n\n const extensionAttributes = editor.extensionManager.attributes\n\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if (\n $from.depth === 2\n || $from.node(-3).type !== type\n || $from.index(-2) !== $from.node(-2).childCount - 1\n ) {\n return false\n }\n\n if (dispatch) {\n let wrap = Fragment.empty\n // eslint-disable-next-line\n const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3\n\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {\n wrap = Fragment.from($from.node(d).copy(wrap))\n }\n\n // eslint-disable-next-line\n const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3\n\n // Add a second list item with an empty default start node\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n const nextType = type.contentMatch.defaultType?.createAndFill(newNextTypeAttributes) || undefined\n\n wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined))\n\n const start = $from.before($from.depth - (depthBefore - 1))\n\n tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0))\n\n let sel = -1\n\n tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {\n if (sel > -1) {\n return false\n }\n\n if (n.isTextblock && n.content.size === 0) {\n sel = pos + 1\n }\n })\n\n if (sel > -1) {\n tr.setSelection(TextSelection.near(tr.doc.resolve(sel)))\n }\n\n tr.scrollIntoView()\n }\n\n return true\n }\n\n const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null\n\n const newTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n grandParent.type.name,\n grandParent.attrs,\n ),\n ...overrideAttrs,\n }\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n\n tr.delete($from.pos, $to.pos)\n\n const types = nextType\n ? [\n { type, attrs: newTypeAttributes },\n { type: nextType, attrs: newNextTypeAttributes },\n ]\n : [{ type, attrs: newTypeAttributes }]\n\n if (!canSplit(tr.doc, $from.pos, 2)) {\n return false\n }\n\n if (dispatch) {\n const { selection, storedMarks } = state\n const { splittableMarks } = editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n tr.split($from.pos, 2, types).scrollIntoView()\n\n if (!marks || !dispatch) {\n return true\n }\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { canJoin } from '@tiptap/pm/transform'\n\nimport { findParentNode } from '../helpers/findParentNode.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isList } from '../helpers/isList.js'\nimport { RawCommands } from '../types.js'\n\nconst joinListBackwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const before = tr.doc.resolve(Math.max(0, list.pos - 1)).before(list.depth)\n\n if (before === undefined) {\n return true\n }\n\n const nodeBefore = tr.doc.nodeAt(before)\n const canJoinBackwards = list.node.type === nodeBefore?.type && canJoin(tr.doc, list.pos)\n\n if (!canJoinBackwards) {\n return true\n }\n\n tr.join(list.pos)\n\n return true\n}\n\nconst joinListForwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const after = tr.doc.resolve(list.start).after(list.depth)\n\n if (after === undefined) {\n return true\n }\n\n const nodeAfter = tr.doc.nodeAt(after)\n const canJoinForwards = list.node.type === nodeAfter?.type && canJoin(tr.doc, after)\n\n if (!canJoinForwards) {\n return true\n }\n\n tr.join(after)\n\n return true\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleList: {\n /**\n * Toggle between different list types.\n * @param listTypeOrName The type or name of the list.\n * @param itemTypeOrName The type or name of the list item.\n * @param keepMarks Keep marks when toggling.\n * @param attributes Attributes for the new list.\n * @example editor.commands.toggleList('bulletList', 'listItem')\n */\n toggleList: (listTypeOrName: string | NodeType, itemTypeOrName: string | NodeType, keepMarks?: boolean, attributes?: Record) => ReturnType;\n }\n }\n}\n\nexport const toggleList: RawCommands['toggleList'] = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({\n editor, tr, state, dispatch, chain, commands, can,\n}) => {\n const { extensions, splittableMarks } = editor.extensionManager\n const listType = getNodeType(listTypeOrName, state.schema)\n const itemType = getNodeType(itemTypeOrName, state.schema)\n const { selection, storedMarks } = state\n const { $from, $to } = selection\n const range = $from.blockRange($to)\n\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!range) {\n return false\n }\n\n const parentList = findParentNode(node => isList(node.type.name, extensions))(selection)\n\n if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {\n // remove list\n if (parentList.node.type === listType) {\n return commands.liftListItem(itemType)\n }\n\n // change list type\n if (\n isList(parentList.node.type.name, extensions)\n && listType.validContent(parentList.node.content)\n && dispatch\n ) {\n return chain()\n .command(() => {\n tr.setNodeMarkup(parentList.pos, listType)\n\n return true\n })\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n }\n if (!keepMarks || !marks || !dispatch) {\n\n return chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n )\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isMarkActive } from '../helpers/isMarkActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleMark: {\n /**\n * Toggle a mark on and off.\n * @param typeOrName The mark type or name.\n * @param attributes The attributes of the mark.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.toggleMark('bold')\n */\n toggleMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const toggleMark: RawCommands['toggleMark'] = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {\n const { extendEmptyMarkRange = false } = options\n const type = getMarkType(typeOrName, state.schema)\n const isActive = isMarkActive(state, type, attributes)\n\n if (isActive) {\n return commands.unsetMark(type, { extendEmptyMarkRange })\n }\n\n return commands.setMark(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleNode: {\n /**\n * Toggle a node with another node.\n * @param typeOrName The type or name of the node.\n * @param toggleTypeOrName The type or name of the node to toggle.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleNode('heading', 'paragraph')\n */\n toggleNode: (\n typeOrName: string | NodeType,\n toggleTypeOrName: string | NodeType,\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const toggleNode: RawCommands['toggleNode'] = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const toggleType = getNodeType(toggleTypeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.setNode(toggleType)\n }\n\n return commands.setNode(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleWrap: {\n /**\n * Wraps nodes in another node, or removes an existing wrap.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleWrap('blockquote')\n */\n toggleWrap: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const toggleWrap: RawCommands['toggleWrap'] = (typeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.lift(type)\n }\n\n return commands.wrapIn(type, attributes)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n undoInputRule: {\n /**\n * Undo an input rule.\n * @example editor.commands.undoInputRule()\n */\n undoInputRule: () => ReturnType,\n }\n }\n}\n\nexport const undoInputRule: RawCommands['undoInputRule'] = () => ({ state, dispatch }) => {\n const plugins = state.plugins\n\n for (let i = 0; i < plugins.length; i += 1) {\n const plugin = plugins[i]\n let undoable\n\n // @ts-ignore\n // eslint-disable-next-line\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n const tr = state.tr\n const toUndo = undoable.transform\n\n for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]))\n }\n\n if (undoable.text) {\n const marks = tr.doc.resolve(undoable.from).marks()\n\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks))\n } else {\n tr.delete(undoable.from, undoable.to)\n }\n }\n\n return true\n }\n }\n\n return false\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetAllMarks: {\n /**\n * Remove all marks in the current selection.\n * @example editor.commands.unsetAllMarks()\n */\n unsetAllMarks: () => ReturnType,\n }\n }\n}\n\nexport const unsetAllMarks: RawCommands['unsetAllMarks'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n\n if (empty) {\n return true\n }\n\n if (dispatch) {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos)\n })\n }\n\n return true\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetMark: {\n /**\n * Remove all marks in the current selection.\n * @param typeOrName The mark type or name.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.unsetMark('bold')\n */\n unsetMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const unsetMark: RawCommands['unsetMark'] = (typeOrName, options = {}) => ({ tr, state, dispatch }) => {\n const { extendEmptyMarkRange = false } = options\n const { selection } = tr\n const type = getMarkType(typeOrName, state.schema)\n const { $from, empty, ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n if (empty && extendEmptyMarkRange) {\n let { from, to } = selection\n const attrs = $from.marks().find(mark => mark.type === type)?.attrs\n const range = getMarkRange($from, type, attrs)\n\n if (range) {\n from = range.from\n to = range.to\n }\n\n tr.removeMark(from, to, type)\n } else {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos, type)\n })\n }\n\n tr.removeStoredMark(type)\n\n return true\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n updateAttributes: {\n /**\n * Update attributes of a node or mark.\n * @param typeOrName The type or name of the node or mark.\n * @param attributes The attributes of the node or mark.\n * @example editor.commands.updateAttributes('mention', { userId: \"2\" })\n */\n updateAttributes: (\n /**\n * The type or name of the node or mark.\n */\n typeOrName: string | NodeType | MarkType,\n\n /**\n * The attributes of the node or mark.\n */\n attributes: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const updateAttributes: RawCommands['updateAttributes'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...attributes,\n })\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n markType.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { wrapIn as originalWrapIn } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapIn: {\n /**\n * Wraps nodes in another node.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapIn('blockquote')\n */\n wrapIn: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapIn: RawCommands['wrapIn'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapIn(type, attributes)(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { wrapInList as originalWrapInList } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapInList: {\n /**\n * Wrap a node in a list.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapInList('bulletList')\n */\n wrapInList: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapInList: RawCommands['wrapInList'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapInList(type, attributes)(state, dispatch)\n}\n","import * as commands from '../commands/index.js'\nimport { Extension } from '../Extension.js'\n\nexport * from '../commands/index.js'\n\nexport const Commands = Extension.create({\n name: 'commands',\n\n addCommands() {\n return {\n ...commands,\n }\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Editable = Extension.create({\n name: 'editable',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('editable'),\n props: {\n editable: () => this.editor.options.editable,\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const FocusEvents = Extension.create({\n name: 'focusEvents',\n\n addProseMirrorPlugins() {\n const { editor } = this\n\n return [\n new Plugin({\n key: new PluginKey('focusEvents'),\n props: {\n handleDOMEvents: {\n focus: (view, event: Event) => {\n editor.isFocused = true\n\n const transaction = editor.state.tr\n .setMeta('focus', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n blur: (view, event: Event) => {\n editor.isFocused = false\n\n const transaction = editor.state.tr\n .setMeta('blur', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n },\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey, Selection } from '@tiptap/pm/state'\n\nimport { CommandManager } from '../CommandManager.js'\nimport { Extension } from '../Extension.js'\nimport { createChainableState } from '../helpers/createChainableState.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nexport const Keymap = Extension.create({\n name: 'keymap',\n\n addKeyboardShortcuts() {\n const handleBackspace = () => this.editor.commands.first(({ commands }) => [\n () => commands.undoInputRule(),\n\n // maybe convert first text block node to default node\n () => commands.command(({ tr }) => {\n const { selection, doc } = tr\n const { empty, $anchor } = selection\n const { pos, parent } = $anchor\n const $parentPos = $anchor.parent.isTextblock && pos > 0 ? tr.doc.resolve(pos - 1) : $anchor\n const parentIsIsolating = $parentPos.parent.type.spec.isolating\n\n const parentPos = $anchor.pos - $anchor.parentOffset\n\n const isAtStart = (parentIsIsolating && $parentPos.parent.childCount === 1)\n ? parentPos === $anchor.pos\n : Selection.atStart(doc).from === pos\n\n if (\n !empty\n || !parent.type.isTextblock\n || parent.textContent.length\n || !isAtStart\n || (isAtStart && $anchor.parent.type.name === 'paragraph') // prevent clearNodes when no nodes to clear, otherwise history stack is appended\n ) {\n return false\n }\n\n return commands.clearNodes()\n }),\n\n () => commands.deleteSelection(),\n () => commands.joinBackward(),\n () => commands.selectNodeBackward(),\n ])\n\n const handleDelete = () => this.editor.commands.first(({ commands }) => [\n () => commands.deleteSelection(),\n () => commands.deleteCurrentNode(),\n () => commands.joinForward(),\n () => commands.selectNodeForward(),\n ])\n\n const handleEnter = () => this.editor.commands.first(({ commands }) => [\n () => commands.newlineInCode(),\n () => commands.createParagraphNear(),\n () => commands.liftEmptyBlock(),\n () => commands.splitBlock(),\n ])\n\n const baseKeymap = {\n Enter: handleEnter,\n 'Mod-Enter': () => this.editor.commands.exitCode(),\n Backspace: handleBackspace,\n 'Mod-Backspace': handleBackspace,\n 'Shift-Backspace': handleBackspace,\n Delete: handleDelete,\n 'Mod-Delete': handleDelete,\n 'Mod-a': () => this.editor.commands.selectAll(),\n }\n\n const pcKeymap = {\n ...baseKeymap,\n }\n\n const macKeymap = {\n ...baseKeymap,\n 'Ctrl-h': handleBackspace,\n 'Alt-Backspace': handleBackspace,\n 'Ctrl-d': handleDelete,\n 'Ctrl-Alt-Backspace': handleDelete,\n 'Alt-Delete': handleDelete,\n 'Alt-d': handleDelete,\n 'Ctrl-a': () => this.editor.commands.selectTextblockStart(),\n 'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),\n }\n\n if (isiOS() || isMacOS()) {\n return macKeymap\n }\n\n return pcKeymap\n },\n\n addProseMirrorPlugins() {\n return [\n // With this plugin we check if the whole document was selected and deleted.\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\n // to a paragraph if necessary.\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\n // with many other commands.\n new Plugin({\n key: new PluginKey('clearDocument'),\n appendTransaction: (transactions, oldState, newState) => {\n const docChanges = transactions.some(transaction => transaction.docChanged)\n && !oldState.doc.eq(newState.doc)\n\n if (!docChanges) {\n return\n }\n\n const { empty, from, to } = oldState.selection\n const allFrom = Selection.atStart(oldState.doc).from\n const allEnd = Selection.atEnd(oldState.doc).to\n const allWasSelected = from === allFrom && to === allEnd\n\n if (empty || !allWasSelected) {\n return\n }\n\n const isEmpty = newState.doc.textBetween(0, newState.doc.content.size, ' ', ' ').length === 0\n\n if (!isEmpty) {\n return\n }\n\n const tr = newState.tr\n const state = createChainableState({\n state: newState,\n transaction: tr,\n })\n const { commands } = new CommandManager({\n editor: this.editor,\n state,\n })\n\n commands.clearNodes()\n\n if (!tr.steps.length) {\n return\n }\n\n return tr\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Tabindex = Extension.create({\n name: 'tabindex',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tabindex'),\n props: {\n attributes: (): { [name: string]: string; } => (this.editor.isEditable ? { tabindex: '0' } : {}),\n },\n }),\n ]\n },\n})\n","import {\n Fragment, Node, ResolvedPos,\n} from '@tiptap/pm/model'\n\nimport { Editor } from './Editor.js'\nimport { Content, Range } from './types.js'\n\nexport class NodePos {\n private resolvedPos: ResolvedPos\n\n private isBlock: boolean\n\n private editor: Editor\n\n private get name(): string {\n return this.node.type.name\n }\n\n constructor(pos: ResolvedPos, editor: Editor, isBlock = false, node: Node | null = null) {\n this.isBlock = isBlock\n this.resolvedPos = pos\n this.editor = editor\n this.currentNode = node\n }\n\n private currentNode: Node | null = null\n\n get node(): Node {\n return this.currentNode || this.resolvedPos.node()\n }\n\n get element(): HTMLElement {\n return this.editor.view.domAtPos(this.pos).node as HTMLElement\n }\n\n public actualDepth: number | null = null\n\n get depth(): number {\n return this.actualDepth ?? this.resolvedPos.depth\n }\n\n get pos(): number {\n return this.resolvedPos.pos\n }\n\n get content(): Fragment {\n return this.node.content\n }\n\n set content(content: Content) {\n let from = this.from\n let to = this.to\n\n if (this.isBlock) {\n if (this.content.size === 0) {\n console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`)\n return\n }\n\n from = this.from + 1\n to = this.to - 1\n }\n\n this.editor.commands.insertContentAt({ from, to }, content)\n }\n\n get attributes(): { [key: string]: any } {\n return this.node.attrs\n }\n\n get textContent(): string {\n return this.node.textContent\n }\n\n get size(): number {\n return this.node.nodeSize\n }\n\n get from(): number {\n if (this.isBlock) {\n return this.pos\n }\n\n return this.resolvedPos.start(this.resolvedPos.depth)\n }\n\n get range(): Range {\n return {\n from: this.from,\n to: this.to,\n }\n }\n\n get to(): number {\n if (this.isBlock) {\n return this.pos + this.size\n }\n\n return this.resolvedPos.end(this.resolvedPos.depth) + (this.node.isText ? 0 : 1)\n }\n\n get parent(): NodePos | null {\n if (this.depth === 0) {\n return null\n }\n\n const parentPos = this.resolvedPos.start(this.resolvedPos.depth - 1)\n const $pos = this.resolvedPos.doc.resolve(parentPos)\n\n return new NodePos($pos, this.editor)\n }\n\n get before(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.from - (this.isBlock ? 1 : 2))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.from - 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get after(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.to + (this.isBlock ? 2 : 1))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.to + 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get children(): NodePos[] {\n const children: NodePos[] = []\n\n this.node.content.forEach((node, offset) => {\n const isBlock = node.isBlock && !node.isTextblock\n\n const targetPos = this.pos + offset + 1\n const $pos = this.resolvedPos.doc.resolve(targetPos)\n\n if (!isBlock && $pos.depth <= this.depth) {\n return\n }\n\n const childNodePos = new NodePos($pos, this.editor, isBlock, isBlock ? node : null)\n\n if (isBlock) {\n childNodePos.actualDepth = this.depth + 1\n }\n\n children.push(new NodePos($pos, this.editor, isBlock, isBlock ? node : null))\n })\n\n return children\n }\n\n get firstChild(): NodePos | null {\n return this.children[0] || null\n }\n\n get lastChild(): NodePos | null {\n const children = this.children\n\n return children[children.length - 1] || null\n }\n\n closest(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n let node: NodePos | null = null\n let currentNode = this.parent\n\n while (currentNode && !node) {\n if (currentNode.node.type.name === selector) {\n if (Object.keys(attributes).length > 0) {\n const nodeAttributes = currentNode.node.attrs\n const attrKeys = Object.keys(attributes)\n\n for (let index = 0; index < attrKeys.length; index += 1) {\n const key = attrKeys[index]\n\n if (nodeAttributes[key] !== attributes[key]) {\n break\n }\n }\n } else {\n node = currentNode\n }\n }\n\n currentNode = currentNode.parent\n }\n\n return node\n }\n\n querySelector(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n return this.querySelectorAll(selector, attributes, true)[0] || null\n }\n\n querySelectorAll(selector: string, attributes: { [key: string]: any } = {}, firstItemOnly = false): NodePos[] {\n let nodes: NodePos[] = []\n\n if (!this.children || this.children.length === 0) {\n return nodes\n }\n const attrKeys = Object.keys(attributes)\n\n /**\n * Finds all children recursively that match the selector and attributes\n * If firstItemOnly is true, it will return the first item found\n */\n this.children.forEach(childPos => {\n // If we already found a node and we only want the first item, we dont need to keep going\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n if (childPos.node.type.name === selector) {\n const doesAllAttributesMatch = attrKeys.every(key => attributes[key] === childPos.node.attrs[key])\n\n if (doesAllAttributesMatch) {\n nodes.push(childPos)\n }\n }\n\n // If we already found a node and we only want the first item, we can stop here and skip the recursion\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n nodes = nodes.concat(childPos.querySelectorAll(selector, attributes, firstItemOnly))\n })\n\n return nodes\n }\n\n setAttribute(attributes: { [key: string]: any }) {\n const oldSelection = this.editor.state.selection\n\n this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from)\n .run()\n }\n}\n","export const style = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n.tippy-box[data-animation=fade][data-state=hidden] {\n opacity: 0\n}`\n","export function createStyleTag(style: string, nonce?: string, suffix?: string): HTMLStyleElement {\n const tiptapStyleTag = (document.querySelector(`style[data-tiptap-style${suffix ? `-${suffix}` : ''}]`))\n\n if (tiptapStyleTag !== null) {\n return tiptapStyleTag\n }\n\n const styleNode = document.createElement('style')\n\n if (nonce) {\n styleNode.setAttribute('nonce', nonce)\n }\n\n styleNode.setAttribute(`data-tiptap-style${suffix ? `-${suffix}` : ''}`, '')\n styleNode.innerHTML = style\n document.getElementsByTagName('head')[0].appendChild(styleNode)\n\n return styleNode\n}\n","import {\n MarkType,\n Node as ProseMirrorNode,\n NodeType,\n Schema,\n} from '@tiptap/pm/model'\nimport {\n EditorState, Plugin, PluginKey, Transaction,\n} from '@tiptap/pm/state'\nimport { EditorView } from '@tiptap/pm/view'\n\nimport { CommandManager } from './CommandManager.js'\nimport { EventEmitter } from './EventEmitter.js'\nimport { ExtensionManager } from './ExtensionManager.js'\nimport {\n ClipboardTextSerializer, Commands, Editable, FocusEvents, Keymap, Tabindex,\n} from './extensions/index.js'\nimport { createDocument } from './helpers/createDocument.js'\nimport { getAttributes } from './helpers/getAttributes.js'\nimport { getHTMLFromFragment } from './helpers/getHTMLFromFragment.js'\nimport { getText } from './helpers/getText.js'\nimport { getTextSerializersFromSchema } from './helpers/getTextSerializersFromSchema.js'\nimport { isActive } from './helpers/isActive.js'\nimport { isNodeEmpty } from './helpers/isNodeEmpty.js'\nimport { resolveFocusPosition } from './helpers/resolveFocusPosition.js'\nimport { NodePos } from './NodePos.js'\nimport { style } from './style.js'\nimport {\n CanCommands,\n ChainedCommands,\n EditorEvents,\n EditorOptions,\n JSONContent,\n SingleCommands,\n TextSerializer,\n} from './types.js'\nimport { createStyleTag } from './utilities/createStyleTag.js'\nimport { isFunction } from './utilities/isFunction.js'\n\nexport * as extensions from './extensions/index.js'\n\n// @ts-ignore\nexport interface TiptapEditorHTMLElement extends HTMLElement {\n editor?: Editor\n}\n\nexport class Editor extends EventEmitter {\n private commandManager!: CommandManager\n\n public extensionManager!: ExtensionManager\n\n private css!: HTMLStyleElement\n\n public schema!: Schema\n\n public view!: EditorView\n\n public isFocused = false\n\n /**\n * The editor is considered initialized after the `create` event has been emitted.\n */\n public isInitialized = false\n\n public extensionStorage: Record = {}\n\n public options: EditorOptions = {\n element: document.createElement('div'),\n content: '',\n injectCSS: true,\n injectNonce: undefined,\n extensions: [],\n autofocus: false,\n editable: true,\n editorProps: {},\n parseOptions: {},\n coreExtensionOptions: {},\n enableInputRules: true,\n enablePasteRules: true,\n enableCoreExtensions: true,\n enableContentCheck: false,\n onBeforeCreate: () => null,\n onCreate: () => null,\n onUpdate: () => null,\n onSelectionUpdate: () => null,\n onTransaction: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onDestroy: () => null,\n onContentError: ({ error }) => { throw error },\n }\n\n constructor(options: Partial = {}) {\n super()\n this.setOptions(options)\n this.createExtensionManager()\n this.createCommandManager()\n this.createSchema()\n this.on('beforeCreate', this.options.onBeforeCreate)\n this.emit('beforeCreate', { editor: this })\n this.on('contentError', this.options.onContentError)\n this.createView()\n this.injectCSS()\n this.on('create', this.options.onCreate)\n this.on('update', this.options.onUpdate)\n this.on('selectionUpdate', this.options.onSelectionUpdate)\n this.on('transaction', this.options.onTransaction)\n this.on('focus', this.options.onFocus)\n this.on('blur', this.options.onBlur)\n this.on('destroy', this.options.onDestroy)\n\n window.setTimeout(() => {\n if (this.isDestroyed) {\n return\n }\n\n this.commands.focus(this.options.autofocus)\n this.emit('create', { editor: this })\n this.isInitialized = true\n }, 0)\n }\n\n /**\n * Returns the editor storage.\n */\n public get storage(): Record {\n return this.extensionStorage\n }\n\n /**\n * An object of all registered commands.\n */\n public get commands(): SingleCommands {\n return this.commandManager.commands\n }\n\n /**\n * Create a command chain to call multiple commands at once.\n */\n public chain(): ChainedCommands {\n return this.commandManager.chain()\n }\n\n /**\n * Check if a command or a command chain can be executed. Without executing it.\n */\n public can(): CanCommands {\n return this.commandManager.can()\n }\n\n /**\n * Inject CSS styles.\n */\n private injectCSS(): void {\n if (this.options.injectCSS && document) {\n this.css = createStyleTag(style, this.options.injectNonce)\n }\n }\n\n /**\n * Update editor options.\n *\n * @param options A list of options\n */\n public setOptions(options: Partial = {}): void {\n this.options = {\n ...this.options,\n ...options,\n }\n\n if (!this.view || !this.state || this.isDestroyed) {\n return\n }\n\n if (this.options.editorProps) {\n this.view.setProps(this.options.editorProps)\n }\n\n this.view.updateState(this.state)\n }\n\n /**\n * Update editable state of the editor.\n */\n public setEditable(editable: boolean, emitUpdate = true): void {\n this.setOptions({ editable })\n\n if (emitUpdate) {\n this.emit('update', { editor: this, transaction: this.state.tr })\n }\n }\n\n /**\n * Returns whether the editor is editable.\n */\n public get isEditable(): boolean {\n // since plugins are applied after creating the view\n // `editable` is always `true` for one tick.\n // that’s why we also have to check for `options.editable`\n return this.options.editable && this.view && this.view.editable\n }\n\n /**\n * Returns the editor state.\n */\n public get state(): EditorState {\n return this.view.state\n }\n\n /**\n * Register a ProseMirror plugin.\n *\n * @param plugin A ProseMirror plugin\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\n */\n public registerPlugin(\n plugin: Plugin,\n handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[],\n ): void {\n const plugins = isFunction(handlePlugins)\n ? handlePlugins(plugin, [...this.state.plugins])\n : [...this.state.plugins, plugin]\n\n const state = this.state.reconfigure({ plugins })\n\n this.view.updateState(state)\n }\n\n /**\n * Unregister a ProseMirror plugin.\n *\n * @param nameOrPluginKey The plugins name\n */\n public unregisterPlugin(nameOrPluginKey: string | PluginKey): void {\n if (this.isDestroyed) {\n return\n }\n\n // @ts-ignore\n const name = typeof nameOrPluginKey === 'string' ? `${nameOrPluginKey}$` : nameOrPluginKey.key\n\n const state = this.state.reconfigure({\n // @ts-ignore\n plugins: this.state.plugins.filter(plugin => !plugin.key.startsWith(name)),\n })\n\n this.view.updateState(state)\n }\n\n /**\n * Creates an extension manager.\n */\n private createExtensionManager(): void {\n\n const coreExtensions = this.options.enableCoreExtensions ? [\n Editable,\n ClipboardTextSerializer.configure({\n blockSeparator: this.options.coreExtensionOptions?.clipboardTextSerializer?.blockSeparator,\n }),\n Commands,\n FocusEvents,\n Keymap,\n Tabindex,\n ] : []\n const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {\n return ['extension', 'node', 'mark'].includes(extension?.type)\n })\n\n this.extensionManager = new ExtensionManager(allExtensions, this)\n }\n\n /**\n * Creates an command manager.\n */\n private createCommandManager(): void {\n this.commandManager = new CommandManager({\n editor: this,\n })\n }\n\n /**\n * Creates a ProseMirror schema.\n */\n private createSchema(): void {\n this.schema = this.extensionManager.schema\n }\n\n /**\n * Creates a ProseMirror view.\n */\n private createView(): void {\n let doc: ProseMirrorNode\n\n try {\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: this.options.enableContentCheck },\n )\n } catch (e) {\n if (!(e instanceof Error) || !['[tiptap error]: Invalid JSON content', '[tiptap error]: Invalid HTML content'].includes(e.message)) {\n // Not the content error we were expecting\n throw e\n }\n this.emit('contentError', {\n editor: this,\n error: e as Error,\n disableCollaboration: () => {\n // To avoid syncing back invalid content, reinitialize the extensions without the collaboration extension\n this.options.extensions = this.options.extensions.filter(extension => extension.name !== 'collaboration')\n\n // Restart the initialization process by recreating the extension manager with the new set of extensions\n this.createExtensionManager()\n },\n })\n\n // Content is invalid, but attempt to create it anyway, stripping out the invalid parts\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: false },\n )\n }\n const selection = resolveFocusPosition(doc, this.options.autofocus)\n\n this.view = new EditorView(this.options.element, {\n ...this.options.editorProps,\n dispatchTransaction: this.dispatchTransaction.bind(this),\n state: EditorState.create({\n doc,\n selection: selection || undefined,\n }),\n })\n\n // `editor.view` is not yet available at this time.\n // Therefore we will add all plugins and node views directly afterwards.\n const newState = this.state.reconfigure({\n plugins: this.extensionManager.plugins,\n })\n\n this.view.updateState(newState)\n\n this.createNodeViews()\n this.prependClass()\n\n // Let’s store the editor instance in the DOM element.\n // So we’ll have access to it for tests.\n // @ts-ignore\n const dom = this.view.dom as TiptapEditorHTMLElement\n\n dom.editor = this\n }\n\n /**\n * Creates all node views.\n */\n public createNodeViews(): void {\n if (this.view.isDestroyed) {\n return\n }\n\n this.view.setProps({\n nodeViews: this.extensionManager.nodeViews,\n })\n }\n\n /**\n * Prepend class name to element.\n */\n public prependClass(): void {\n this.view.dom.className = `tiptap ${this.view.dom.className}`\n }\n\n public isCapturingTransaction = false\n\n private capturedTransaction: Transaction | null = null\n\n public captureTransaction(fn: Function) {\n this.isCapturingTransaction = true\n fn()\n this.isCapturingTransaction = false\n\n const tr = this.capturedTransaction\n\n this.capturedTransaction = null\n\n return tr\n }\n\n /**\n * The callback over which to send transactions (state updates) produced by the view.\n *\n * @param transaction An editor state transaction\n */\n private dispatchTransaction(transaction: Transaction): void {\n // if the editor / the view of the editor was destroyed\n // the transaction should not be dispatched as there is no view anymore.\n if (this.view.isDestroyed) {\n return\n }\n\n if (this.isCapturingTransaction) {\n if (!this.capturedTransaction) {\n this.capturedTransaction = transaction\n\n return\n }\n\n transaction.steps.forEach(step => this.capturedTransaction?.step(step))\n\n return\n }\n\n const state = this.state.apply(transaction)\n const selectionHasChanged = !this.state.selection.eq(state.selection)\n\n this.emit('beforeTransaction', {\n editor: this,\n transaction,\n nextState: state,\n })\n this.view.updateState(state)\n this.emit('transaction', {\n editor: this,\n transaction,\n })\n\n if (selectionHasChanged) {\n this.emit('selectionUpdate', {\n editor: this,\n transaction,\n })\n }\n\n const focus = transaction.getMeta('focus')\n const blur = transaction.getMeta('blur')\n\n if (focus) {\n this.emit('focus', {\n editor: this,\n event: focus.event,\n transaction,\n })\n }\n\n if (blur) {\n this.emit('blur', {\n editor: this,\n event: blur.event,\n transaction,\n })\n }\n\n if (!transaction.docChanged || transaction.getMeta('preventUpdate')) {\n return\n }\n\n this.emit('update', {\n editor: this,\n transaction,\n })\n }\n\n /**\n * Get attributes of the currently selected node or mark.\n */\n public getAttributes(nameOrType: string | NodeType | MarkType): Record {\n return getAttributes(this.state, nameOrType)\n }\n\n /**\n * Returns if the currently selected node or mark is active.\n *\n * @param name Name of the node or mark\n * @param attributes Attributes of the node or mark\n */\n public isActive(name: string, attributes?: {}): boolean\n public isActive(attributes: {}): boolean\n public isActive(nameOrAttributes: string, attributesOrUndefined?: {}): boolean {\n const name = typeof nameOrAttributes === 'string' ? nameOrAttributes : null\n\n const attributes = typeof nameOrAttributes === 'string' ? attributesOrUndefined : nameOrAttributes\n\n return isActive(this.state, name, attributes)\n }\n\n /**\n * Get the document as JSON.\n */\n public getJSON(): JSONContent {\n return this.state.doc.toJSON()\n }\n\n /**\n * Get the document as HTML.\n */\n public getHTML(): string {\n return getHTMLFromFragment(this.state.doc.content, this.schema)\n }\n\n /**\n * Get the document as text.\n */\n public getText(options?: {\n blockSeparator?: string\n textSerializers?: Record\n }): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n\n return getText(this.state.doc, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(this.schema),\n ...textSerializers,\n },\n })\n }\n\n /**\n * Check if there is no content.\n */\n public get isEmpty(): boolean {\n return isNodeEmpty(this.state.doc)\n }\n\n /**\n * Get the number of characters for the current document.\n *\n * @deprecated\n */\n public getCharacterCount(): number {\n console.warn(\n '[tiptap warn]: \"editor.getCharacterCount()\" is deprecated. Please use \"editor.storage.characterCount.characters()\" instead.',\n )\n\n return this.state.doc.content.size - 2\n }\n\n /**\n * Destroy the editor.\n */\n public destroy(): void {\n this.emit('destroy')\n\n if (this.view) {\n this.view.destroy()\n }\n\n this.removeAllListeners()\n }\n\n /**\n * Check if the editor is already destroyed.\n */\n public get isDestroyed(): boolean {\n // @ts-ignore\n return !this.view?.docView\n }\n\n public $node(selector: string, attributes?: { [key: string]: any }): NodePos | null {\n return this.$doc?.querySelector(selector, attributes) || null\n }\n\n public $nodes(selector: string, attributes?: { [key: string]: any }): NodePos[] | null {\n return this.$doc?.querySelectorAll(selector, attributes) || null\n }\n\n public $pos(pos: number) {\n const $pos = this.state.doc.resolve(pos)\n\n return new NodePos($pos, this)\n }\n\n get $doc() {\n return this.$pos(0)\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a mark when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function markInputRule(config: {\n find: InputRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n const markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a node when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function nodeInputRule(config: {\n /**\n * The regex to match.\n */\n find: InputRuleFinder\n\n /**\n * The node type to add.\n */\n type: NodeType\n\n /**\n * A function that returns the attributes for the node\n * can also be an object of attributes\n */\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const { tr } = state\n const start = range.from\n let end = range.to\n\n const newNode = config.type.create(attributes)\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n let matchStart = start + offset\n\n if (matchStart > end) {\n matchStart = end\n } else {\n end = matchStart + match[1].length\n }\n\n // insert last typed character\n const lastChar = match[0][match[0].length - 1]\n\n tr.insertText(lastChar, start + match[0].length - 1)\n\n // insert node from input rule\n tr.replaceWith(matchStart, end, newNode)\n } else if (match[0]) {\n const insertionStart = config.type.isInline ? start : start - 1\n\n tr.insert(insertionStart, config.type.create(attributes)).delete(\n tr.mapping.map(start),\n tr.mapping.map(end),\n )\n }\n\n tr.scrollIntoView()\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that changes the type of a textblock when the\n * matched text is typed into it. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textblockTypeInputRule(config: {\n find: InputRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const $start = state.doc.resolve(range.from)\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), config.type)) {\n return null\n }\n\n state.tr\n .delete(range.from, range.to)\n .setBlockType(range.from, range.from, config.type, attributes)\n },\n })\n}\n","import { InputRule, InputRuleFinder } from '../InputRule.js'\n\n/**\n * Build an input rule that replaces text when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textInputRule(config: {\n find: InputRuleFinder,\n replace: string,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Node as ProseMirrorNode, NodeType } from '@tiptap/pm/model'\nimport { canJoin, findWrapping } from '@tiptap/pm/transform'\n\nimport { Editor } from '../Editor.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule for automatically wrapping a textblock when a\n * given string is typed. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n *\n * `type` is the type of node to wrap in.\n *\n * By default, if there’s a node with the same type above the newly\n * wrapped node, the rule will try to join those\n * two nodes. You can pass a join predicate, which takes a regular\n * expression match and the node before the wrapped node, and can\n * return a boolean to indicate whether a join should happen.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function wrappingInputRule(config: {\n find: InputRuleFinder,\n type: NodeType,\n keepMarks?: boolean,\n keepAttributes?: boolean,\n editor?: Editor\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n ,\n joinPredicate?: (match: ExtendedRegExpMatchArray, node: ProseMirrorNode) => boolean,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({\n state, range, match, chain,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const tr = state.tr.delete(range.from, range.to)\n const $start = tr.doc.resolve(range.from)\n const blockRange = $start.blockRange()\n const wrapping = blockRange && findWrapping(blockRange, config.type, attributes)\n\n if (!wrapping) {\n return null\n }\n\n tr.wrap(blockRange, wrapping)\n\n if (config.keepMarks && config.editor) {\n const { selection, storedMarks } = state\n const { splittableMarks } = config.editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n }\n if (config.keepAttributes) {\n /** If the nodeType is `bulletList` or `orderedList` set the `nodeType` as `listItem` */\n const nodeType = config.type.name === 'bulletList' || config.type.name === 'orderedList' ? 'listItem' : 'taskList'\n\n chain().updateAttributes(nodeType, attributes).run()\n }\n\n const before = tr.doc.resolve(range.from - 1).nodeBefore\n\n if (\n before\n && before.type === config.type\n && canJoin(tr.doc, range.from - 1)\n && (!config.joinPredicate || config.joinPredicate(match, before))\n ) {\n tr.join(range.from - 1)\n }\n },\n })\n}\n","import {\n DOMOutputSpec, Mark as ProseMirrorMark, MarkSpec, MarkType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { MarkConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n export interface MarkConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Keep mark after split node\n */\n keepOnSplit?: boolean | (() => boolean)\n\n /**\n * Inclusive\n */\n inclusive?:\n | MarkSpec['inclusive']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inclusive']\n editor?: Editor\n }) => MarkSpec['inclusive'])\n\n /**\n * Excludes\n */\n excludes?:\n | MarkSpec['excludes']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['excludes']\n editor?: Editor\n }) => MarkSpec['excludes'])\n\n /**\n * Marks this Mark as exitable\n */\n exitable?: boolean | (() => boolean)\n\n /**\n * Group\n */\n group?:\n | MarkSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => MarkSpec['group'])\n\n /**\n * Spanning\n */\n spanning?:\n | MarkSpec['spanning']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['spanning']\n editor?: Editor\n }) => MarkSpec['spanning'])\n\n /**\n * Code\n */\n code?:\n | boolean\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => boolean)\n\n /**\n * Parse HTML\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => MarkSpec['parseDOM']\n\n /**\n * Render HTML\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n mark: ProseMirrorMark\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * Attributes\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Mark class is used to create custom mark extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Mark {\n type = 'mark'\n\n name = 'mark'\n\n parent: Mark | null = null\n\n child: Mark | null = null\n\n options: Options\n\n storage: Storage\n\n config: MarkConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Mark(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Mark(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n\n static handleExit({ editor, mark }: { editor: Editor; mark: Mark }) {\n const { tr } = editor.state\n const currentPos = editor.state.selection.$from\n const isAtEnd = currentPos.pos === currentPos.end()\n\n if (isAtEnd) {\n const currentMarks = currentPos.marks()\n const isInMark = !!currentMarks.find(m => m?.type.name === mark.name)\n\n if (!isInMark) {\n return false\n }\n\n const removeMark = currentMarks.find(m => m?.type.name === mark.name)\n\n if (removeMark) {\n tr.removeStoredMark(removeMark)\n }\n tr.insertText(' ', currentPos.pos)\n\n editor.view.dispatch(tr)\n\n return true\n }\n\n return false\n }\n}\n","import {\n DOMOutputSpec, Node as ProseMirrorNode, NodeSpec, NodeType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { NodeConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n NodeViewRenderer,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface NodeConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n editor?: Editor\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Node View\n */\n addNodeView?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addNodeView']\n }) => NodeViewRenderer)\n | null\n\n /**\n * Defines if this node should be a top level node (doc)\n * @default false\n * @example true\n */\n topNode?: boolean\n\n /**\n * The content expression for this node, as described in the [schema\n * guide](/docs/guide/#schema.content_expressions). When not given,\n * the node does not allow any content.\n *\n * You can read more about it on the Prosemirror documentation here\n * @see https://prosemirror.net/docs/guide/#schema.content_expressions\n * @default undefined\n * @example content: 'block+'\n * @example content: 'headline paragraph block*'\n */\n content?:\n | NodeSpec['content']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['content']\n editor?: Editor\n }) => NodeSpec['content'])\n\n /**\n * The marks that are allowed inside of this node. May be a\n * space-separated string referring to mark names or groups, `\"_\"`\n * to explicitly allow all marks, or `\"\"` to disallow marks. When\n * not given, nodes with inline content default to allowing all\n * marks, other nodes default to not allowing marks.\n *\n * @example marks: 'strong em'\n */\n marks?:\n | NodeSpec['marks']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['marks']\n editor?: Editor\n }) => NodeSpec['marks'])\n\n /**\n * The group or space-separated groups to which this node belongs,\n * which can be referred to in the content expressions for the\n * schema.\n *\n * By default Tiptap uses the groups 'block' and 'inline' for nodes. You\n * can also use custom groups if you want to group specific nodes together\n * and handle them in your schema.\n * @example group: 'block'\n * @example group: 'inline'\n * @example group: 'customBlock' // this uses a custom group\n */\n group?:\n | NodeSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => NodeSpec['group'])\n\n /**\n * Should be set to true for inline nodes. (Implied for text nodes.)\n */\n inline?:\n | NodeSpec['inline']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inline']\n editor?: Editor\n }) => NodeSpec['inline'])\n\n /**\n * Can be set to true to indicate that, though this isn't a [leaf\n * node](https://prosemirror.net/docs/ref/#model.NodeType.isLeaf), it doesn't have directly editable\n * content and should be treated as a single unit in the view.\n *\n * @example atom: true\n */\n atom?:\n | NodeSpec['atom']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['atom']\n editor?: Editor\n }) => NodeSpec['atom'])\n\n /**\n * Controls whether nodes of this type can be selected as a [node\n * selection](https://prosemirror.net/docs/ref/#state.NodeSelection). Defaults to true for non-text\n * nodes.\n *\n * @default true\n * @example selectable: false\n */\n selectable?:\n | NodeSpec['selectable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['selectable']\n editor?: Editor\n }) => NodeSpec['selectable'])\n\n /**\n * Determines whether nodes of this type can be dragged without\n * being selected. Defaults to false.\n *\n * @default: false\n * @example: draggable: true\n */\n draggable?:\n | NodeSpec['draggable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['draggable']\n editor?: Editor\n }) => NodeSpec['draggable'])\n\n /**\n * Can be used to indicate that this node contains code, which\n * causes some commands to behave differently.\n */\n code?:\n | NodeSpec['code']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => NodeSpec['code'])\n\n /**\n * Controls way whitespace in this a node is parsed. The default is\n * `\"normal\"`, which causes the [DOM parser](https://prosemirror.net/docs/ref/#model.DOMParser) to\n * collapse whitespace in normal mode, and normalize it (replacing\n * newlines and such with spaces) otherwise. `\"pre\"` causes the\n * parser to preserve spaces inside the node. When this option isn't\n * given, but [`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) is true, `whitespace`\n * will default to `\"pre\"`. Note that this option doesn't influence\n * the way the node is rendered—that should be handled by `toDOM`\n * and/or styling.\n */\n whitespace?:\n | NodeSpec['whitespace']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['whitespace']\n editor?: Editor\n }) => NodeSpec['whitespace'])\n\n /**\n * When enabled, enables both\n * [`definingAsContext`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext) and\n * [`definingForContent`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n *\n * @default false\n * @example isolating: true\n */\n defining?:\n | NodeSpec['defining']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['defining']\n editor?: Editor\n }) => NodeSpec['defining'])\n\n /**\n * When enabled (default is false), the sides of nodes of this type\n * count as boundaries that regular editing operations, like\n * backspacing or lifting, won't cross. An example of a node that\n * should probably have this enabled is a table cell.\n */\n isolating?:\n | NodeSpec['isolating']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['isolating']\n editor?: Editor\n }) => NodeSpec['isolating'])\n\n /**\n * Associates DOM parser information with this node, which can be\n * used by [`DOMParser.fromSchema`](https://prosemirror.net/docs/ref/#model.DOMParser^fromSchema) to\n * automatically derive a parser. The `node` field in the rules is\n * implied (the name of this node will be filled in automatically).\n * If you supply your own parser, you do not need to also specify\n * parsing rules in your schema.\n *\n * @example parseHTML: [{ tag: 'div', attrs: { 'data-id': 'my-block' } }]\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => NodeSpec['parseDOM']\n\n /**\n * A description of a DOM structure. Can be either a string, which is\n * interpreted as a text node, a DOM node, which is interpreted as\n * itself, a `{dom, contentDOM}` object, or an array.\n *\n * An array describes a DOM element. The first value in the array\n * should be a string—the name of the DOM element, optionally prefixed\n * by a namespace URL and a space. If the second element is plain\n * object, it is interpreted as a set of attributes for the element.\n * Any elements after that (including the 2nd if it's not an attribute\n * object) are interpreted as children of the DOM elements, and must\n * either be valid `DOMOutputSpec` values, or the number zero.\n *\n * The number zero (pronounced “hole”) is used to indicate the place\n * where a node's child nodes should be inserted. If it occurs in an\n * output spec, it should be the only child element in its parent\n * node.\n *\n * @example toDOM: ['div[data-id=\"my-block\"]', { class: 'my-block' }, 0]\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * renders the node as text\n * @example renderText: () => 'foo\n */\n renderText?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderText']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n pos: number\n parent: ProseMirrorNode\n index: number\n },\n ) => string)\n | null\n\n /**\n * Add attributes to the node\n * @example addAttributes: () => ({ class: 'foo' })\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Node class is used to create custom node extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Node {\n type = 'node'\n\n name = 'node'\n\n parent: Node | null = null\n\n child: Node | null = null\n\n options: Options\n\n storage: Storage\n\n config: NodeConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Node(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Node(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","export function isAndroid(): boolean {\n return navigator.platform === 'Android' || /android/i.test(navigator.userAgent)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { NodeSelection } from '@tiptap/pm/state'\nimport { NodeView as ProseMirrorNodeView } from '@tiptap/pm/view'\n\nimport { Editor as CoreEditor } from './Editor.js'\nimport { Node } from './Node.js'\nimport { DecorationWithType, NodeViewRendererOptions, NodeViewRendererProps } from './types.js'\nimport { isAndroid } from './utilities/isAndroid.js'\nimport { isiOS } from './utilities/isiOS.js'\n\n/**\n * Node views are used to customize the rendered DOM structure of a node.\n * @see https://tiptap.dev/guide/node-views\n */\nexport class NodeView<\n Component,\n NodeEditor extends CoreEditor = CoreEditor,\n Options extends NodeViewRendererOptions = NodeViewRendererOptions,\n> implements ProseMirrorNodeView {\n component: Component\n\n editor: NodeEditor\n\n options: Options\n\n extension: Node\n\n node: ProseMirrorNode\n\n decorations: DecorationWithType[]\n\n getPos: any\n\n isDragging = false\n\n constructor(component: Component, props: NodeViewRendererProps, options?: Partial) {\n this.component = component\n this.editor = props.editor as NodeEditor\n this.options = {\n stopEvent: null,\n ignoreMutation: null,\n ...options,\n } as Options\n this.extension = props.extension\n this.node = props.node\n this.decorations = props.decorations as DecorationWithType[]\n this.getPos = props.getPos\n this.mount()\n }\n\n mount() {\n // eslint-disable-next-line\n return\n }\n\n get dom(): HTMLElement {\n return this.editor.view.dom as HTMLElement\n }\n\n get contentDOM(): HTMLElement | null {\n return null\n }\n\n onDragStart(event: DragEvent) {\n const { view } = this.editor\n const target = event.target as HTMLElement\n\n // get the drag handle element\n // `closest` is not available for text nodes so we may have to use its parent\n const dragHandle = target.nodeType === 3\n ? target.parentElement?.closest('[data-drag-handle]')\n : target.closest('[data-drag-handle]')\n\n if (!this.dom || this.contentDOM?.contains(target) || !dragHandle) {\n return\n }\n\n let x = 0\n let y = 0\n\n // calculate offset for drag element if we use a different drag handle element\n if (this.dom !== dragHandle) {\n const domBox = this.dom.getBoundingClientRect()\n const handleBox = dragHandle.getBoundingClientRect()\n\n // In React, we have to go through nativeEvent to reach offsetX/offsetY.\n const offsetX = event.offsetX ?? (event as any).nativeEvent?.offsetX\n const offsetY = event.offsetY ?? (event as any).nativeEvent?.offsetY\n\n x = handleBox.x - domBox.x + offsetX\n y = handleBox.y - domBox.y + offsetY\n }\n\n event.dataTransfer?.setDragImage(this.dom, x, y)\n\n // we need to tell ProseMirror that we want to move the whole node\n // so we create a NodeSelection\n const selection = NodeSelection.create(view.state.doc, this.getPos())\n const transaction = view.state.tr.setSelection(selection)\n\n view.dispatch(transaction)\n }\n\n stopEvent(event: Event) {\n if (!this.dom) {\n return false\n }\n\n if (typeof this.options.stopEvent === 'function') {\n return this.options.stopEvent({ event })\n }\n\n const target = event.target as HTMLElement\n const isInElement = this.dom.contains(target) && !this.contentDOM?.contains(target)\n\n // any event from child nodes should be handled by ProseMirror\n if (!isInElement) {\n return false\n }\n\n const isDragEvent = event.type.startsWith('drag')\n const isDropEvent = event.type === 'drop'\n const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable\n\n // any input event within node views should be ignored by ProseMirror\n if (isInput && !isDropEvent && !isDragEvent) {\n return true\n }\n\n const { isEditable } = this.editor\n const { isDragging } = this\n const isDraggable = !!this.node.type.spec.draggable\n const isSelectable = NodeSelection.isSelectable(this.node)\n const isCopyEvent = event.type === 'copy'\n const isPasteEvent = event.type === 'paste'\n const isCutEvent = event.type === 'cut'\n const isClickEvent = event.type === 'mousedown'\n\n // ProseMirror tries to drag selectable nodes\n // even if `draggable` is set to `false`\n // this fix prevents that\n if (!isDraggable && isSelectable && isDragEvent) {\n event.preventDefault()\n }\n\n if (isDraggable && isDragEvent && !isDragging) {\n event.preventDefault()\n return false\n }\n\n // we have to store that dragging started\n if (isDraggable && isEditable && !isDragging && isClickEvent) {\n const dragHandle = target.closest('[data-drag-handle]')\n const isValidDragHandle = dragHandle && (this.dom === dragHandle || this.dom.contains(dragHandle))\n\n if (isValidDragHandle) {\n this.isDragging = true\n\n document.addEventListener(\n 'dragend',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'drop',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'mouseup',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n }\n }\n\n // these events are handled by prosemirror\n if (\n isDragging\n || isDropEvent\n || isCopyEvent\n || isPasteEvent\n || isCutEvent\n || (isClickEvent && isSelectable)\n ) {\n return false\n }\n\n return true\n }\n\n ignoreMutation(mutation: MutationRecord | { type: 'selection'; target: Element }) {\n if (!this.dom || !this.contentDOM) {\n return true\n }\n\n if (typeof this.options.ignoreMutation === 'function') {\n return this.options.ignoreMutation({ mutation })\n }\n\n // a leaf/atom node is like a black box for ProseMirror\n // and should be fully handled by the node view\n if (this.node.isLeaf || this.node.isAtom) {\n return true\n }\n\n // ProseMirror should handle any selections\n if (mutation.type === 'selection') {\n return false\n }\n\n // try to prevent a bug on iOS and Android that will break node views on enter\n // this is because ProseMirror can’t preventDispatch on enter\n // this will lead to a re-render of the node view on enter\n // see: https://github.com/ueberdosis/tiptap/issues/1214\n // see: https://github.com/ueberdosis/tiptap/issues/2534\n if (\n this.dom.contains(mutation.target)\n && mutation.type === 'childList'\n && (isiOS() || isAndroid())\n && this.editor.isFocused\n ) {\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ] as HTMLElement[]\n\n // we’ll check if every changed node is contentEditable\n // to make sure it’s probably mutated by ProseMirror\n if (changedNodes.every(node => node.isContentEditable)) {\n return false\n }\n }\n\n // we will allow mutation contentDOM with attributes\n // so we can for example adding classes within our node view\n if (this.contentDOM === mutation.target && mutation.type === 'attributes') {\n return true\n }\n\n // ProseMirror should handle any changes within contentDOM\n if (this.contentDOM.contains(mutation.target)) {\n return false\n }\n\n return true\n }\n\n updateAttributes(attributes: {}) {\n this.editor.commands.command(({ tr }) => {\n const pos = this.getPos()\n\n tr.setNodeMarkup(pos, undefined, {\n ...this.node.attrs,\n ...attributes,\n })\n\n return true\n })\n }\n\n deleteNode(): void {\n const from = this.getPos()\n const to = from + this.node.nodeSize\n\n this.editor.commands.deleteRange({ from, to })\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an paste rule that adds a mark when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function markPasteRule(config: {\n find: PasteRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({\n state, range, match, pasteEvent,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n let markEnd = range.to\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","// source: https://stackoverflow.com/a/6969486\nexport function escapeForRegEx(string: string): string {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n}\n","export function isString(value: any): value is string {\n return typeof value === 'string'\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray, JSONContent } from '../types.js'\nimport { callOrReturn } from '../utilities/index.js'\n\n/**\n * Build an paste rule that adds a node when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function nodePasteRule(config: {\n find: PasteRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n getContent?:\n | JSONContent[]\n | ((attrs: Record) => JSONContent[])\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler({\n match, chain, range, pasteEvent,\n }) {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n const content = callOrReturn(config.getContent, undefined, attributes)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const node = { type: config.type.name, attrs: attributes } as JSONContent\n\n if (content) {\n node.content = content\n }\n\n if (match.input) {\n chain().deleteRange(range).insertContentAt(range.from, node)\n }\n },\n })\n}\n","import { PasteRule, PasteRuleFinder } from '../PasteRule.js'\n\n/**\n * Build an paste rule that replaces text when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function textPasteRule(config: {\n find: PasteRuleFinder,\n replace: string,\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Transaction } from '@tiptap/pm/state'\n\nexport interface TrackerResult {\n position: number\n deleted: boolean\n}\n\nexport class Tracker {\n transaction: Transaction\n\n currentStep: number\n\n constructor(transaction: Transaction) {\n this.transaction = transaction\n this.currentStep = this.transaction.steps.length\n }\n\n map(position: number): TrackerResult {\n let deleted = false\n\n const mappedPosition = this.transaction.steps\n .slice(this.currentStep)\n .reduce((newPosition, step) => {\n const mapResult = step.getMap().mapResult(newPosition)\n\n if (mapResult.deleted) {\n deleted = true\n }\n\n return mapResult.pos\n }, position)\n\n return {\n position: mappedPosition,\n deleted,\n }\n }\n}\n"],"names":["Schema","run","Plugin","keymap","PluginKey","liftTarget","originalCreateParagraphNear","state","TextSelection","originalDeleteSelection","originalExitCode","Selection","Fragment","DOMParser","ReplaceStep","ReplaceAroundStep","originalJoinUp","originalJoinDown","originalJoinBackward","originalJoinForward","joinPoint","originalCommand","originalLift","originalLiftEmptyBlock","originalLiftListItem","originalNewlineInCode","originalSelectNodeBackward","originalSelectNodeForward","originalSelectParentNode","originalSelectTextblockEnd","originalSelectTextblockStart","transform","Transform","DOMSerializer","Node","NodeSelection","setBlockType","originalSinkListItem","canSplit","Slice","canJoin","originalWrapIn","originalWrapInList","EditorView","EditorState","findWrapping"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.cjs","sources":["../src/helpers/createChainableState.ts","../src/CommandManager.ts","../src/EventEmitter.ts","../src/helpers/getExtensionField.ts","../src/helpers/splitExtensions.ts","../src/helpers/getAttributesFromExtensions.ts","../src/helpers/getNodeType.ts","../src/utilities/mergeAttributes.ts","../src/helpers/getRenderedAttributes.ts","../src/utilities/isFunction.ts","../src/utilities/callOrReturn.ts","../src/utilities/isEmptyObject.ts","../src/utilities/fromString.ts","../src/helpers/injectExtensionAttributesToParseRule.ts","../src/helpers/getSchemaByResolvedExtensions.ts","../src/helpers/getSchemaTypeByName.ts","../src/helpers/isExtensionRulesEnabled.ts","../src/helpers/getTextContentFromNodes.ts","../src/utilities/isRegExp.ts","../src/InputRule.ts","../src/utilities/isNumber.ts","../src/PasteRule.ts","../src/utilities/findDuplicates.ts","../src/ExtensionManager.ts","../src/utilities/isPlainObject.ts","../src/utilities/mergeDeep.ts","../src/Extension.ts","../src/helpers/getTextBetween.ts","../src/helpers/getTextSerializersFromSchema.ts","../src/extensions/clipboardTextSerializer.ts","../src/commands/blur.ts","../src/commands/clearContent.ts","../src/commands/clearNodes.ts","../src/commands/command.ts","../src/commands/createParagraphNear.ts","../src/commands/cut.ts","../src/commands/deleteCurrentNode.ts","../src/commands/deleteNode.ts","../src/commands/deleteRange.ts","../src/commands/deleteSelection.ts","../src/commands/enter.ts","../src/commands/exitCode.ts","../src/utilities/objectIncludes.ts","../src/helpers/getMarkRange.ts","../src/helpers/getMarkType.ts","../src/commands/extendMarkRange.ts","../src/commands/first.ts","../src/helpers/isTextSelection.ts","../src/utilities/minMax.ts","../src/helpers/resolveFocusPosition.ts","../src/utilities/isiOS.ts","../src/commands/focus.ts","../src/commands/forEach.ts","../src/commands/insertContent.ts","../src/utilities/elementFromString.ts","../src/helpers/createNodeFromContent.ts","../src/helpers/selectionToInsertionEnd.ts","../src/commands/insertContentAt.ts","../src/commands/join.ts","../src/commands/joinItemBackward.ts","../src/commands/joinItemForward.ts","../src/commands/joinTextblockBackward.ts","../src/commands/joinTextblockForward.ts","../src/utilities/isMacOS.ts","../src/commands/keyboardShortcut.ts","../src/helpers/isNodeActive.ts","../src/commands/lift.ts","../src/commands/liftEmptyBlock.ts","../src/commands/liftListItem.ts","../src/commands/newlineInCode.ts","../src/helpers/getSchemaTypeNameByName.ts","../src/utilities/deleteProps.ts","../src/commands/resetAttributes.ts","../src/commands/scrollIntoView.ts","../src/commands/selectAll.ts","../src/commands/selectNodeBackward.ts","../src/commands/selectNodeForward.ts","../src/commands/selectParentNode.ts","../src/commands/selectTextblockEnd.ts","../src/commands/selectTextblockStart.ts","../src/helpers/createDocument.ts","../src/commands/setContent.ts","../src/helpers/getMarkAttributes.ts","../src/helpers/combineTransactionSteps.ts","../src/helpers/defaultBlockAt.ts","../src/helpers/findChildren.ts","../src/helpers/findChildrenInRange.ts","../src/helpers/findParentNodeClosestToPos.ts","../src/helpers/findParentNode.ts","../src/helpers/getHTMLFromFragment.ts","../src/helpers/getSchema.ts","../src/helpers/generateHTML.ts","../src/helpers/generateJSON.ts","../src/helpers/getText.ts","../src/helpers/generateText.ts","../src/helpers/getNodeAttributes.ts","../src/helpers/getAttributes.ts","../src/utilities/removeDuplicates.ts","../src/helpers/getChangedRanges.ts","../src/helpers/getDebugJSON.ts","../src/helpers/getMarksBetween.ts","../src/helpers/getNodeAtPosition.ts","../src/helpers/getSplittedAttributes.ts","../src/helpers/isMarkActive.ts","../src/helpers/isActive.ts","../src/helpers/isAtEndOfNode.ts","../src/helpers/isAtStartOfNode.ts","../src/helpers/isList.ts","../src/helpers/isNodeEmpty.ts","../src/helpers/isNodeSelection.ts","../src/helpers/posToDOMRect.ts","../src/commands/setMark.ts","../src/commands/setMeta.ts","../src/commands/setNode.ts","../src/commands/setNodeSelection.ts","../src/commands/setTextSelection.ts","../src/commands/sinkListItem.ts","../src/commands/splitBlock.ts","../src/commands/splitListItem.ts","../src/commands/toggleList.ts","../src/commands/toggleMark.ts","../src/commands/toggleNode.ts","../src/commands/toggleWrap.ts","../src/commands/undoInputRule.ts","../src/commands/unsetAllMarks.ts","../src/commands/unsetMark.ts","../src/commands/updateAttributes.ts","../src/commands/wrapIn.ts","../src/commands/wrapInList.ts","../src/extensions/commands.ts","../src/extensions/editable.ts","../src/extensions/focusEvents.ts","../src/extensions/keymap.ts","../src/extensions/tabindex.ts","../src/NodePos.ts","../src/style.ts","../src/utilities/createStyleTag.ts","../src/Editor.ts","../src/inputRules/markInputRule.ts","../src/inputRules/nodeInputRule.ts","../src/inputRules/textblockTypeInputRule.ts","../src/inputRules/textInputRule.ts","../src/inputRules/wrappingInputRule.ts","../src/Mark.ts","../src/Node.ts","../src/utilities/isAndroid.ts","../src/NodeView.ts","../src/pasteRules/markPasteRule.ts","../src/utilities/escapeForRegEx.ts","../src/utilities/isString.ts","../src/pasteRules/nodePasteRule.ts","../src/pasteRules/textPasteRule.ts","../src/Tracker.ts"],"sourcesContent":["import { EditorState, Transaction } from '@tiptap/pm/state'\n\n/**\n * Takes a Transaction & Editor State and turns it into a chainable state object\n * @param config The transaction and state to create the chainable state from\n * @returns A chainable Editor state object\n */\nexport function createChainableState(config: {\n transaction: Transaction\n state: EditorState\n}): EditorState {\n const { state, transaction } = config\n let { selection } = transaction\n let { doc } = transaction\n let { storedMarks } = transaction\n\n return {\n ...state,\n apply: state.apply.bind(state),\n applyTransaction: state.applyTransaction.bind(state),\n plugins: state.plugins,\n schema: state.schema,\n reconfigure: state.reconfigure.bind(state),\n toJSON: state.toJSON.bind(state),\n get storedMarks() {\n return storedMarks\n },\n get selection() {\n return selection\n },\n get doc() {\n return doc\n },\n get tr() {\n selection = transaction.selection\n doc = transaction.doc\n storedMarks = transaction.storedMarks\n\n return transaction\n },\n }\n}\n","import { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n AnyCommands, CanCommands, ChainedCommands, CommandProps, SingleCommands,\n} from './types.js'\n\nexport class CommandManager {\n editor: Editor\n\n rawCommands: AnyCommands\n\n customState?: EditorState\n\n constructor(props: { editor: Editor; state?: EditorState }) {\n this.editor = props.editor\n this.rawCommands = this.editor.extensionManager.commands\n this.customState = props.state\n }\n\n get hasCustomState(): boolean {\n return !!this.customState\n }\n\n get state(): EditorState {\n return this.customState || this.editor.state\n }\n\n get commands(): SingleCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const { tr } = state\n const props = this.buildProps(tr)\n\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const method = (...args: any[]) => {\n const callback = command(...args)(props)\n\n if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {\n view.dispatch(tr)\n }\n\n return callback\n }\n\n return [name, method]\n }),\n ) as unknown as SingleCommands\n }\n\n get chain(): () => ChainedCommands {\n return () => this.createChain()\n }\n\n get can(): () => CanCommands {\n return () => this.createCan()\n }\n\n public createChain(startTr?: Transaction, shouldDispatch = true): ChainedCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const callbacks: boolean[] = []\n const hasStartTransaction = !!startTr\n const tr = startTr || state.tr\n\n const run = () => {\n if (\n !hasStartTransaction\n && shouldDispatch\n && !tr.getMeta('preventDispatch')\n && !this.hasCustomState\n ) {\n view.dispatch(tr)\n }\n\n return callbacks.every(callback => callback === true)\n }\n\n const chain = {\n ...Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const chainedCommand = (...args: never[]) => {\n const props = this.buildProps(tr, shouldDispatch)\n const callback = command(...args)(props)\n\n callbacks.push(callback)\n\n return chain\n }\n\n return [name, chainedCommand]\n }),\n ),\n run,\n } as unknown as ChainedCommands\n\n return chain\n }\n\n public createCan(startTr?: Transaction): CanCommands {\n const { rawCommands, state } = this\n const dispatch = false\n const tr = startTr || state.tr\n const props = this.buildProps(tr, dispatch)\n const formattedCommands = Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)({ ...props, dispatch: undefined })]\n }),\n ) as unknown as SingleCommands\n\n return {\n ...formattedCommands,\n chain: () => this.createChain(tr, dispatch),\n } as CanCommands\n }\n\n public buildProps(tr: Transaction, shouldDispatch = true): CommandProps {\n const { rawCommands, editor, state } = this\n const { view } = editor\n\n const props: CommandProps = {\n tr,\n editor,\n view,\n state: createChainableState({\n state,\n transaction: tr,\n }),\n dispatch: shouldDispatch ? () => undefined : undefined,\n chain: () => this.createChain(tr, shouldDispatch),\n can: () => this.createCan(tr),\n get commands() {\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)(props)]\n }),\n ) as unknown as SingleCommands\n },\n }\n\n return props\n }\n}\n","type StringKeyOf = Extract\ntype CallbackType<\n T extends Record,\n EventName extends StringKeyOf,\n> = T[EventName] extends any[] ? T[EventName] : [T[EventName]]\ntype CallbackFunction<\n T extends Record,\n EventName extends StringKeyOf,\n> = (...props: CallbackType) => any\n\nexport class EventEmitter> {\n\n private callbacks: { [key: string]: Function[] } = {}\n\n public on>(event: EventName, fn: CallbackFunction): this {\n if (!this.callbacks[event]) {\n this.callbacks[event] = []\n }\n\n this.callbacks[event].push(fn)\n\n return this\n }\n\n public emit>(event: EventName, ...args: CallbackType): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n callbacks.forEach(callback => callback.apply(this, args))\n }\n\n return this\n }\n\n public off>(event: EventName, fn?: CallbackFunction): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n if (fn) {\n this.callbacks[event] = callbacks.filter(callback => callback !== fn)\n } else {\n delete this.callbacks[event]\n }\n }\n\n return this\n }\n\n public removeAllListeners(): void {\n this.callbacks = {}\n }\n}\n","import { AnyExtension, MaybeThisParameterType, RemoveThis } from '../types.js'\n\n/**\n * Returns a field from an extension\n * @param extension The Tiptap extension\n * @param field The field, for example `renderHTML` or `priority`\n * @param context The context object that should be passed as `this` into the function\n * @returns The field value\n */\nexport function getExtensionField(\n extension: AnyExtension,\n field: string,\n context?: Omit, 'parent'>,\n): RemoveThis {\n\n if (extension.config[field] === undefined && extension.parent) {\n return getExtensionField(extension.parent, field, context)\n }\n\n if (typeof extension.config[field] === 'function') {\n const value = extension.config[field].bind({\n ...context,\n parent: extension.parent\n ? getExtensionField(extension.parent, field, context)\n : null,\n })\n\n return value\n }\n\n return extension.config[field]\n}\n","import { Extension } from '../Extension.js'\nimport { Mark } from '../Mark.js'\nimport { Node } from '../Node.js'\nimport { Extensions } from '../types.js'\n\nexport function splitExtensions(extensions: Extensions) {\n const baseExtensions = extensions.filter(extension => extension.type === 'extension') as Extension[]\n const nodeExtensions = extensions.filter(extension => extension.type === 'node') as Node[]\n const markExtensions = extensions.filter(extension => extension.type === 'mark') as Mark[]\n\n return {\n baseExtensions,\n nodeExtensions,\n markExtensions,\n }\n}\n","import { MarkConfig, NodeConfig } from '../index.js'\nimport {\n AnyConfig,\n Attribute,\n Attributes,\n ExtensionAttribute,\n Extensions,\n} from '../types.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { splitExtensions } from './splitExtensions.js'\n\n/**\n * Get a list of all extension attributes defined in `addAttribute` and `addGlobalAttribute`.\n * @param extensions List of extensions\n */\nexport function getAttributesFromExtensions(extensions: Extensions): ExtensionAttribute[] {\n const extensionAttributes: ExtensionAttribute[] = []\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const nodeAndMarkExtensions = [...nodeExtensions, ...markExtensions]\n const defaultAttribute: Required = {\n default: null,\n rendered: true,\n renderHTML: null,\n parseHTML: null,\n keepOnSplit: true,\n isRequired: false,\n }\n\n extensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n extensions: nodeAndMarkExtensions,\n }\n\n const addGlobalAttributes = getExtensionField(\n extension,\n 'addGlobalAttributes',\n context,\n )\n\n if (!addGlobalAttributes) {\n return\n }\n\n const globalAttributes = addGlobalAttributes()\n\n globalAttributes.forEach(globalAttribute => {\n globalAttribute.types.forEach(type => {\n Object\n .entries(globalAttribute.attributes)\n .forEach(([name, attribute]) => {\n extensionAttributes.push({\n type,\n name,\n attribute: {\n ...defaultAttribute,\n ...attribute,\n },\n })\n })\n })\n })\n })\n\n nodeAndMarkExtensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addAttributes = getExtensionField(\n extension,\n 'addAttributes',\n context,\n )\n\n if (!addAttributes) {\n return\n }\n\n // TODO: remove `as Attributes`\n const attributes = addAttributes() as Attributes\n\n Object\n .entries(attributes)\n .forEach(([name, attribute]) => {\n const mergedAttr = {\n ...defaultAttribute,\n ...attribute,\n }\n\n if (typeof mergedAttr?.default === 'function') {\n mergedAttr.default = mergedAttr.default()\n }\n\n if (mergedAttr?.isRequired && mergedAttr?.default === undefined) {\n delete mergedAttr.default\n }\n\n extensionAttributes.push({\n type: extension.name,\n name,\n attribute: mergedAttr,\n })\n })\n })\n\n return extensionAttributes\n}\n","import { NodeType, Schema } from '@tiptap/pm/model'\n\nexport function getNodeType(nameOrType: string | NodeType, schema: Schema): NodeType {\n if (typeof nameOrType === 'string') {\n if (!schema.nodes[nameOrType]) {\n throw Error(\n `There is no node type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.nodes[nameOrType]\n }\n\n return nameOrType\n}\n","export function mergeAttributes(...objects: Record[]): Record {\n return objects\n .filter(item => !!item)\n .reduce((items, item) => {\n const mergedAttributes = { ...items }\n\n Object.entries(item).forEach(([key, value]) => {\n const exists = mergedAttributes[key]\n\n if (!exists) {\n mergedAttributes[key] = value\n\n return\n }\n\n if (key === 'class') {\n const valueClasses: string[] = value ? value.split(' ') : []\n const existingClasses: string[] = mergedAttributes[key] ? mergedAttributes[key].split(' ') : []\n\n const insertClasses = valueClasses.filter(\n valueClass => !existingClasses.includes(valueClass),\n )\n\n mergedAttributes[key] = [...existingClasses, ...insertClasses].join(' ')\n } else if (key === 'style') {\n mergedAttributes[key] = [mergedAttributes[key], value].join('; ')\n } else {\n mergedAttributes[key] = value\n }\n })\n\n return mergedAttributes\n }, {})\n}\n","import { Mark, Node } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { mergeAttributes } from '../utilities/mergeAttributes.js'\n\nexport function getRenderedAttributes(\n nodeOrMark: Node | Mark,\n extensionAttributes: ExtensionAttribute[],\n): Record {\n return extensionAttributes\n .filter(item => item.attribute.rendered)\n .map(item => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: nodeOrMark.attrs[item.name],\n }\n }\n\n return item.attribute.renderHTML(nodeOrMark.attrs) || {}\n })\n .reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {})\n}\n","export function isFunction(value: any): value is Function {\n return typeof value === 'function'\n}\n","import { MaybeReturnType } from '../types.js'\nimport { isFunction } from './isFunction.js'\n\n/**\n * Optionally calls `value` as a function.\n * Otherwise it is returned directly.\n * @param value Function or any value.\n * @param context Optional context to bind to function.\n * @param props Optional props to pass to function.\n */\nexport function callOrReturn(value: T, context: any = undefined, ...props: any[]): MaybeReturnType {\n if (isFunction(value)) {\n if (context) {\n return value.bind(context)(...props)\n }\n\n return value(...props)\n }\n\n return value as MaybeReturnType\n}\n","export function isEmptyObject(value = {}): boolean {\n return Object.keys(value).length === 0 && value.constructor === Object\n}\n","export function fromString(value: any): any {\n if (typeof value !== 'string') {\n return value\n }\n\n if (value.match(/^[+-]?(?:\\d*\\.)?\\d+$/)) {\n return Number(value)\n }\n\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n return value\n}\n","import { ParseRule } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { fromString } from '../utilities/fromString.js'\n\n/**\n * This function merges extension attributes into parserule attributes (`attrs` or `getAttrs`).\n * Cancels when `getAttrs` returned `false`.\n * @param parseRule ProseMirror ParseRule\n * @param extensionAttributes List of attributes to inject\n */\nexport function injectExtensionAttributesToParseRule(\n parseRule: ParseRule,\n extensionAttributes: ExtensionAttribute[],\n): ParseRule {\n if ('style' in parseRule || (!parseRule.attrs && !parseRule.getAttrs && extensionAttributes.length === 0)) {\n return parseRule\n }\n\n return {\n ...parseRule,\n getAttrs: (node: HTMLElement) => {\n const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs\n\n if (oldAttributes === false) {\n return false\n }\n\n const newAttributes = extensionAttributes.reduce((items, item) => {\n const value = item.attribute.parseHTML\n ? item.attribute.parseHTML(node)\n : fromString((node).getAttribute(item.name))\n\n if (value === null || value === undefined) {\n return items\n }\n // @ts-expect-error for perf reasons\n items[item.name] = value\n return items\n }, oldAttributes || {})\n\n return newAttributes\n },\n }\n}\n","import {\n MarkSpec, NodeSpec, Schema, TagParseRule,\n} from '@tiptap/pm/model'\n\nimport { Editor, MarkConfig, NodeConfig } from '../index.js'\nimport { AnyConfig, Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { isEmptyObject } from '../utilities/isEmptyObject.js'\nimport { getAttributesFromExtensions } from './getAttributesFromExtensions.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { getRenderedAttributes } from './getRenderedAttributes.js'\nimport { injectExtensionAttributesToParseRule } from './injectExtensionAttributesToParseRule.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nfunction cleanUpSchemaItem(data: T) {\n return Object.fromEntries(\n // @ts-ignore\n Object.entries(data).filter(([key, value]) => {\n if (key === 'attrs' && isEmptyObject(value as {} | undefined)) {\n return false\n }\n\n return value !== null && value !== undefined\n }),\n ) as T\n}\n\n/**\n * Creates a new Prosemirror schema based on the given extensions.\n * @param extensions An array of Tiptap extensions\n * @param editor The editor instance\n * @returns A Prosemirror schema\n */\nexport function getSchemaByResolvedExtensions(extensions: Extensions, editor?: Editor): Schema {\n const allAttributes = getAttributesFromExtensions(extensions)\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const topNode = nodeExtensions.find(extension => getExtensionField(extension, 'topNode'))?.name\n\n const nodes = Object.fromEntries(\n nodeExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraNodeFields = extensions.reduce((fields, e) => {\n const extendNodeSchema = getExtensionField(\n e,\n 'extendNodeSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendNodeSchema ? extendNodeSchema(extension) : {}),\n }\n }, {})\n\n const schema: NodeSpec = cleanUpSchemaItem({\n ...extraNodeFields,\n content: callOrReturn(\n getExtensionField(extension, 'content', context),\n ),\n marks: callOrReturn(getExtensionField(extension, 'marks', context)),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n inline: callOrReturn(getExtensionField(extension, 'inline', context)),\n atom: callOrReturn(getExtensionField(extension, 'atom', context)),\n selectable: callOrReturn(\n getExtensionField(extension, 'selectable', context),\n ),\n draggable: callOrReturn(\n getExtensionField(extension, 'draggable', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n whitespace: callOrReturn(getExtensionField(extension, 'whitespace', context)),\n defining: callOrReturn(\n getExtensionField(extension, 'defining', context),\n ),\n isolating: callOrReturn(\n getExtensionField(extension, 'isolating', context),\n ),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes)) as TagParseRule[]\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = node => renderHTML({\n node,\n HTMLAttributes: getRenderedAttributes(node, extensionAttributes),\n })\n }\n\n const renderText = getExtensionField(\n extension,\n 'renderText',\n context,\n )\n\n if (renderText) {\n schema.toText = renderText\n }\n\n return [extension.name, schema]\n }),\n )\n\n const marks = Object.fromEntries(\n markExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraMarkFields = extensions.reduce((fields, e) => {\n const extendMarkSchema = getExtensionField(\n e,\n 'extendMarkSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendMarkSchema ? extendMarkSchema(extension) : {}),\n }\n }, {})\n\n const schema: MarkSpec = cleanUpSchemaItem({\n ...extraMarkFields,\n inclusive: callOrReturn(\n getExtensionField(extension, 'inclusive', context),\n ),\n excludes: callOrReturn(\n getExtensionField(extension, 'excludes', context),\n ),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n spanning: callOrReturn(\n getExtensionField(extension, 'spanning', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes))\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = mark => renderHTML({\n mark,\n HTMLAttributes: getRenderedAttributes(mark, extensionAttributes),\n })\n }\n\n return [extension.name, schema]\n }),\n )\n\n return new Schema({\n topNode,\n nodes,\n marks,\n })\n}\n","import { MarkType, NodeType, Schema } from '@tiptap/pm/model'\n\n/**\n * Tries to get a node or mark type by its name.\n * @param name The name of the node or mark type\n * @param schema The Prosemiror schema to search in\n * @returns The node or mark type, or null if it doesn't exist\n */\nexport function getSchemaTypeByName(name: string, schema: Schema): NodeType | MarkType | null {\n return schema.nodes[name] || schema.marks[name] || null\n}\n","import { AnyExtension, EnableRules } from '../types.js'\n\nexport function isExtensionRulesEnabled(extension: AnyExtension, enabled: EnableRules): boolean {\n if (Array.isArray(enabled)) {\n return enabled.some(enabledExtension => {\n const name = typeof enabledExtension === 'string'\n ? enabledExtension\n : enabledExtension.name\n\n return name === extension.name\n })\n }\n\n return enabled\n}\n","import { ResolvedPos } from '@tiptap/pm/model'\n\n/**\n * Returns the text content of a resolved prosemirror position\n * @param $from The resolved position to get the text content from\n * @param maxMatch The maximum number of characters to match\n * @returns The text content\n */\nexport const getTextContentFromNodes = ($from: ResolvedPos, maxMatch = 500) => {\n let textBefore = ''\n\n const sliceEndPos = $from.parentOffset\n\n $from.parent.nodesBetween(\n Math.max(0, sliceEndPos - maxMatch),\n sliceEndPos,\n (node, pos, parent, index) => {\n const chunk = node.type.spec.toText?.({\n node,\n pos,\n parent,\n index,\n })\n || node.textContent\n || '%leaf%'\n\n textBefore += node.isAtom && !node.isText ? chunk : chunk.slice(0, Math.max(0, sliceEndPos - pos))\n },\n )\n\n return textBefore\n}\n","export function isRegExp(value: any): value is RegExp {\n return Object.prototype.toString.call(value) === '[object RegExp]'\n}\n","import { EditorState, Plugin, TextSelection } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport { getTextContentFromNodes } from './helpers/getTextContentFromNodes.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type InputRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type InputRuleFinder = RegExp | ((text: string) => InputRuleMatch | null)\n\nexport class InputRule {\n find: InputRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n\n constructor(config: {\n find: InputRuleFinder\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst inputRuleMatcherHandler = (\n text: string,\n find: InputRuleFinder,\n): ExtendedRegExpMatchArray | null => {\n if (isRegExp(find)) {\n return find.exec(text)\n }\n\n const inputRuleMatch = find(text)\n\n if (!inputRuleMatch) {\n return null\n }\n\n const result: ExtendedRegExpMatchArray = [inputRuleMatch.text]\n\n result.index = inputRuleMatch.index\n result.input = text\n result.data = inputRuleMatch.data\n\n if (inputRuleMatch.replaceWith) {\n if (!inputRuleMatch.text.includes(inputRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".',\n )\n }\n\n result.push(inputRuleMatch.replaceWith)\n }\n\n return result\n}\n\nfunction run(config: {\n editor: Editor\n from: number\n to: number\n text: string\n rules: InputRule[]\n plugin: Plugin\n}): boolean {\n const {\n editor, from, to, text, rules, plugin,\n } = config\n const { view } = editor\n\n if (view.composing) {\n return false\n }\n\n const $from = view.state.doc.resolve(from)\n\n if (\n // check for code node\n $from.parent.type.spec.code\n // check for code mark\n || !!($from.nodeBefore || $from.nodeAfter)?.marks.find(mark => mark.type.spec.code)\n ) {\n return false\n }\n\n let matched = false\n\n const textBefore = getTextContentFromNodes($from) + text\n\n rules.forEach(rule => {\n if (matched) {\n return\n }\n\n const match = inputRuleMatcherHandler(textBefore, rule.find)\n\n if (!match) {\n return\n }\n\n const tr = view.state.tr\n const state = createChainableState({\n state: view.state,\n transaction: tr,\n })\n const range = {\n from: from - (match[0].length - text.length),\n to,\n }\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n })\n\n // stop if there are no changes\n if (handler === null || !tr.steps.length) {\n return\n }\n\n // store transform as meta data\n // so we can undo input rules within the `undoInputRules` command\n tr.setMeta(plugin, {\n transform: tr,\n from,\n to,\n text,\n })\n\n view.dispatch(tr)\n matched = true\n })\n\n return matched\n}\n\n/**\n * Create an input rules plugin. When enabled, it will cause text\n * input that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function inputRulesPlugin(props: { editor: Editor; rules: InputRule[] }): Plugin {\n const { editor, rules } = props\n const plugin = new Plugin({\n state: {\n init() {\n return null\n },\n apply(tr, prev) {\n const stored = tr.getMeta(plugin)\n\n if (stored) {\n return stored\n }\n\n // if InputRule is triggered by insertContent()\n const simulatedInputMeta = tr.getMeta('applyInputRules')\n const isSimulatedInput = !!simulatedInputMeta\n\n if (isSimulatedInput) {\n setTimeout(() => {\n const { from, text } = simulatedInputMeta\n const to = from + text.length\n\n run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n })\n }\n\n return tr.selectionSet || tr.docChanged ? null : prev\n },\n },\n\n props: {\n handleTextInput(view, from, to, text) {\n return run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n },\n\n handleDOMEvents: {\n compositionend: view => {\n setTimeout(() => {\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '',\n rules,\n plugin,\n })\n }\n })\n\n return false\n },\n },\n\n // add support for input rules to trigger on enter\n // this is useful for example for code blocks\n handleKeyDown(view, event) {\n if (event.key !== 'Enter') {\n return false\n }\n\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n return run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '\\n',\n rules,\n plugin,\n })\n }\n\n return false\n },\n },\n\n // @ts-ignore\n isInputRules: true,\n }) as Plugin\n\n return plugin\n}\n","export function isNumber(value: any): value is number {\n return typeof value === 'number'\n}\n","import { EditorState, Plugin } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isNumber } from './utilities/isNumber.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type PasteRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type PasteRuleFinder = RegExp | ((text: string, event?: ClipboardEvent | null) => PasteRuleMatch[] | null | undefined)\n\n/**\n * Paste rules are used to react to pasted content.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport class PasteRule {\n find: PasteRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n }) => void | null\n\n constructor(config: {\n find: PasteRuleFinder\n handler: (props: {\n can: () => CanCommands\n chain: () => ChainedCommands\n commands: SingleCommands\n dropEvent: DragEvent | null\n match: ExtendedRegExpMatchArray\n pasteEvent: ClipboardEvent | null\n range: Range\n state: EditorState\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst pasteRuleMatcherHandler = (\n text: string,\n find: PasteRuleFinder,\n event?: ClipboardEvent | null,\n): ExtendedRegExpMatchArray[] => {\n if (isRegExp(find)) {\n return [...text.matchAll(find)]\n }\n\n const matches = find(text, event)\n\n if (!matches) {\n return []\n }\n\n return matches.map(pasteRuleMatch => {\n const result: ExtendedRegExpMatchArray = [pasteRuleMatch.text]\n\n result.index = pasteRuleMatch.index\n result.input = text\n result.data = pasteRuleMatch.data\n\n if (pasteRuleMatch.replaceWith) {\n if (!pasteRuleMatch.text.includes(pasteRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".',\n )\n }\n\n result.push(pasteRuleMatch.replaceWith)\n }\n\n return result\n })\n}\n\nfunction run(config: {\n editor: Editor\n state: EditorState\n from: number\n to: number\n rule: PasteRule\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n}): boolean {\n const {\n editor, state, from, to, rule, pasteEvent, dropEvent,\n } = config\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handlers: (void | null)[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isTextblock || node.type.spec.code) {\n return\n }\n\n const resolvedFrom = Math.max(from, pos)\n const resolvedTo = Math.min(to, pos + node.content.size)\n const textToMatch = node.textBetween(resolvedFrom - pos, resolvedTo - pos, undefined, '\\ufffc')\n\n const matches = pasteRuleMatcherHandler(textToMatch, rule.find, pasteEvent)\n\n matches.forEach(match => {\n if (match.index === undefined) {\n return\n }\n\n const start = resolvedFrom + match.index + 1\n const end = start + match[0].length\n const range = {\n from: state.tr.mapping.map(start),\n to: state.tr.mapping.map(end),\n }\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n pasteEvent,\n dropEvent,\n })\n\n handlers.push(handler)\n })\n })\n\n const success = handlers.every(handler => handler !== null)\n\n return success\n}\n\nconst createClipboardPasteEvent = (text: string) => {\n const event = new ClipboardEvent('paste', {\n clipboardData: new DataTransfer(),\n })\n\n event.clipboardData?.setData('text/html', text)\n\n return event\n}\n\n/**\n * Create an paste rules plugin. When enabled, it will cause pasted\n * text that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function pasteRulesPlugin(props: { editor: Editor; rules: PasteRule[] }): Plugin[] {\n const { editor, rules } = props\n let dragSourceElement: Element | null = null\n let isPastedFromProseMirror = false\n let isDroppedFromProseMirror = false\n let pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n let dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n\n const processEvent = ({\n state,\n from,\n to,\n rule,\n pasteEvt,\n }: {\n state: EditorState\n from: number\n to: { b: number }\n rule: PasteRule\n pasteEvt: ClipboardEvent | null\n }) => {\n const tr = state.tr\n const chainableState = createChainableState({\n state,\n transaction: tr,\n })\n\n const handler = run({\n editor,\n state: chainableState,\n from: Math.max(from - 1, 0),\n to: to.b - 1,\n rule,\n pasteEvent: pasteEvt,\n dropEvent,\n })\n\n if (!handler || !tr.steps.length) {\n return\n }\n\n dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n\n return tr\n }\n\n const plugins = rules.map(rule => {\n return new Plugin({\n // we register a global drag handler to track the current drag source element\n view(view) {\n const handleDragstart = (event: DragEvent) => {\n dragSourceElement = view.dom.parentElement?.contains(event.target as Element)\n ? view.dom.parentElement\n : null\n }\n\n window.addEventListener('dragstart', handleDragstart)\n\n return {\n destroy() {\n window.removeEventListener('dragstart', handleDragstart)\n },\n }\n },\n\n props: {\n handleDOMEvents: {\n drop: (view, event: Event) => {\n isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement\n dropEvent = event as DragEvent\n\n return false\n },\n\n paste: (_view, event: Event) => {\n const html = (event as ClipboardEvent).clipboardData?.getData('text/html')\n\n pasteEvent = event as ClipboardEvent\n\n isPastedFromProseMirror = !!html?.includes('data-pm-slice')\n\n return false\n },\n },\n },\n\n appendTransaction: (transactions, oldState, state) => {\n const transaction = transactions[0]\n const isPaste = transaction.getMeta('uiEvent') === 'paste' && !isPastedFromProseMirror\n const isDrop = transaction.getMeta('uiEvent') === 'drop' && !isDroppedFromProseMirror\n\n // if PasteRule is triggered by insertContent()\n const simulatedPasteMeta = transaction.getMeta('applyPasteRules')\n const isSimulatedPaste = !!simulatedPasteMeta\n\n if (!isPaste && !isDrop && !isSimulatedPaste) {\n return\n }\n\n // Handle simulated paste\n if (isSimulatedPaste) {\n const { from, text } = simulatedPasteMeta\n const to = from + text.length\n const pasteEvt = createClipboardPasteEvent(text)\n\n return processEvent({\n rule,\n state,\n from,\n to: { b: to },\n pasteEvt,\n })\n }\n\n // handle actual paste/drop\n const from = oldState.doc.content.findDiffStart(state.doc.content)\n const to = oldState.doc.content.findDiffEnd(state.doc.content)\n\n // stop if there is no changed range\n if (!isNumber(from) || !to || from === to.b) {\n return\n }\n\n return processEvent({\n rule,\n state,\n from,\n to,\n pasteEvt: pasteEvent,\n })\n },\n })\n })\n\n return plugins\n}\n","export function findDuplicates(items: any[]): any[] {\n const filtered = items.filter((el, index) => items.indexOf(el) !== index)\n\n return Array.from(new Set(filtered))\n}\n","import { keymap } from '@tiptap/pm/keymap'\nimport { Node as ProsemirrorNode, Schema } from '@tiptap/pm/model'\nimport { Plugin } from '@tiptap/pm/state'\nimport { Decoration, EditorView } from '@tiptap/pm/view'\n\nimport type { Editor } from './Editor.js'\nimport { getAttributesFromExtensions } from './helpers/getAttributesFromExtensions.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { getNodeType } from './helpers/getNodeType.js'\nimport { getRenderedAttributes } from './helpers/getRenderedAttributes.js'\nimport { getSchemaByResolvedExtensions } from './helpers/getSchemaByResolvedExtensions.js'\nimport { getSchemaTypeByName } from './helpers/getSchemaTypeByName.js'\nimport { isExtensionRulesEnabled } from './helpers/isExtensionRulesEnabled.js'\nimport { splitExtensions } from './helpers/splitExtensions.js'\nimport { Mark, NodeConfig } from './index.js'\nimport { InputRule, inputRulesPlugin } from './InputRule.js'\nimport { PasteRule, pasteRulesPlugin } from './PasteRule.js'\nimport { AnyConfig, Extensions, RawCommands } from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { findDuplicates } from './utilities/findDuplicates.js'\n\nexport class ExtensionManager {\n editor: Editor\n\n schema: Schema\n\n extensions: Extensions\n\n splittableMarks: string[] = []\n\n constructor(extensions: Extensions, editor: Editor) {\n this.editor = editor\n this.extensions = ExtensionManager.resolve(extensions)\n this.schema = getSchemaByResolvedExtensions(this.extensions, editor)\n this.setupExtensions()\n }\n\n /**\n * Returns a flattened and sorted extension list while\n * also checking for duplicated extensions and warns the user.\n * @param extensions An array of Tiptap extensions\n * @returns An flattened and sorted array of Tiptap extensions\n */\n static resolve(extensions: Extensions): Extensions {\n const resolvedExtensions = ExtensionManager.sort(ExtensionManager.flatten(extensions))\n const duplicatedNames = findDuplicates(resolvedExtensions.map(extension => extension.name))\n\n if (duplicatedNames.length) {\n console.warn(\n `[tiptap warn]: Duplicate extension names found: [${duplicatedNames\n .map(item => `'${item}'`)\n .join(', ')}]. This can lead to issues.`,\n )\n }\n\n return resolvedExtensions\n }\n\n /**\n * Create a flattened array of extensions by traversing the `addExtensions` field.\n * @param extensions An array of Tiptap extensions\n * @returns A flattened array of Tiptap extensions\n */\n static flatten(extensions: Extensions): Extensions {\n return (\n extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addExtensions = getExtensionField(\n extension,\n 'addExtensions',\n context,\n )\n\n if (addExtensions) {\n return [extension, ...this.flatten(addExtensions())]\n }\n\n return extension\n })\n // `Infinity` will break TypeScript so we set a number that is probably high enough\n .flat(10)\n )\n }\n\n /**\n * Sort extensions by priority.\n * @param extensions An array of Tiptap extensions\n * @returns A sorted array of Tiptap extensions by priority\n */\n static sort(extensions: Extensions): Extensions {\n const defaultPriority = 100\n\n return extensions.sort((a, b) => {\n const priorityA = getExtensionField(a, 'priority') || defaultPriority\n const priorityB = getExtensionField(b, 'priority') || defaultPriority\n\n if (priorityA > priorityB) {\n return -1\n }\n\n if (priorityA < priorityB) {\n return 1\n }\n\n return 0\n })\n }\n\n /**\n * Get all commands from the extensions.\n * @returns An object with all commands where the key is the command name and the value is the command function\n */\n get commands(): RawCommands {\n return this.extensions.reduce((commands, extension) => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const addCommands = getExtensionField(\n extension,\n 'addCommands',\n context,\n )\n\n if (!addCommands) {\n return commands\n }\n\n return {\n ...commands,\n ...addCommands(),\n }\n }, {} as RawCommands)\n }\n\n /**\n * Get all registered Prosemirror plugins from the extensions.\n * @returns An array of Prosemirror plugins\n */\n get plugins(): Plugin[] {\n const { editor } = this\n\n // With ProseMirror, first plugins within an array are executed first.\n // In Tiptap, we provide the ability to override plugins,\n // so it feels more natural to run plugins at the end of an array first.\n // That’s why we have to reverse the `extensions` array and sort again\n // based on the `priority` option.\n const extensions = ExtensionManager.sort([...this.extensions].reverse())\n\n const inputRules: InputRule[] = []\n const pasteRules: PasteRule[] = []\n\n const allPlugins = extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const plugins: Plugin[] = []\n\n const addKeyboardShortcuts = getExtensionField(\n extension,\n 'addKeyboardShortcuts',\n context,\n )\n\n let defaultBindings: Record boolean> = {}\n\n // bind exit handling\n if (extension.type === 'mark' && getExtensionField(extension, 'exitable', context)) {\n defaultBindings.ArrowRight = () => Mark.handleExit({ editor, mark: extension as Mark })\n }\n\n if (addKeyboardShortcuts) {\n const bindings = Object.fromEntries(\n Object.entries(addKeyboardShortcuts()).map(([shortcut, method]) => {\n return [shortcut, () => method({ editor })]\n }),\n )\n\n defaultBindings = { ...defaultBindings, ...bindings }\n }\n\n const keyMapPlugin = keymap(defaultBindings)\n\n plugins.push(keyMapPlugin)\n\n const addInputRules = getExtensionField(\n extension,\n 'addInputRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enableInputRules) && addInputRules) {\n inputRules.push(...addInputRules())\n }\n\n const addPasteRules = getExtensionField(\n extension,\n 'addPasteRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enablePasteRules) && addPasteRules) {\n pasteRules.push(...addPasteRules())\n }\n\n const addProseMirrorPlugins = getExtensionField(\n extension,\n 'addProseMirrorPlugins',\n context,\n )\n\n if (addProseMirrorPlugins) {\n const proseMirrorPlugins = addProseMirrorPlugins()\n\n plugins.push(...proseMirrorPlugins)\n }\n\n return plugins\n })\n .flat()\n\n return [\n inputRulesPlugin({\n editor,\n rules: inputRules,\n }),\n ...pasteRulesPlugin({\n editor,\n rules: pasteRules,\n }),\n ...allPlugins,\n ]\n }\n\n /**\n * Get all attributes from the extensions.\n * @returns An array of attributes\n */\n get attributes() {\n return getAttributesFromExtensions(this.extensions)\n }\n\n /**\n * Get all node views from the extensions.\n * @returns An object with all node views where the key is the node name and the value is the node view function\n */\n get nodeViews() {\n const { editor } = this\n const { nodeExtensions } = splitExtensions(this.extensions)\n\n return Object.fromEntries(\n nodeExtensions\n .filter(extension => !!getExtensionField(extension, 'addNodeView'))\n .map(extension => {\n const extensionAttributes = this.attributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getNodeType(extension.name, this.schema),\n }\n const addNodeView = getExtensionField(\n extension,\n 'addNodeView',\n context,\n )\n\n if (!addNodeView) {\n return []\n }\n\n const nodeview = (\n node: ProsemirrorNode,\n view: EditorView,\n getPos: (() => number) | boolean,\n decorations: Decoration[],\n ) => {\n const HTMLAttributes = getRenderedAttributes(node, extensionAttributes)\n\n return addNodeView()({\n editor,\n node,\n getPos,\n decorations,\n HTMLAttributes,\n extension,\n })\n }\n\n return [extension.name, nodeview]\n }),\n )\n }\n\n /**\n * Go through all extensions, create extension storages & setup marks\n * & bind editor event listener.\n */\n private setupExtensions() {\n this.extensions.forEach(extension => {\n // store extension storage in editor\n this.editor.extensionStorage[extension.name] = extension.storage\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n if (extension.type === 'mark') {\n const keepOnSplit = callOrReturn(getExtensionField(extension, 'keepOnSplit', context)) ?? true\n\n if (keepOnSplit) {\n this.splittableMarks.push(extension.name)\n }\n }\n\n const onBeforeCreate = getExtensionField(\n extension,\n 'onBeforeCreate',\n context,\n )\n const onCreate = getExtensionField(extension, 'onCreate', context)\n const onUpdate = getExtensionField(extension, 'onUpdate', context)\n const onSelectionUpdate = getExtensionField(\n extension,\n 'onSelectionUpdate',\n context,\n )\n const onTransaction = getExtensionField(\n extension,\n 'onTransaction',\n context,\n )\n const onFocus = getExtensionField(extension, 'onFocus', context)\n const onBlur = getExtensionField(extension, 'onBlur', context)\n const onDestroy = getExtensionField(extension, 'onDestroy', context)\n\n if (onBeforeCreate) {\n this.editor.on('beforeCreate', onBeforeCreate)\n }\n\n if (onCreate) {\n this.editor.on('create', onCreate)\n }\n\n if (onUpdate) {\n this.editor.on('update', onUpdate)\n }\n\n if (onSelectionUpdate) {\n this.editor.on('selectionUpdate', onSelectionUpdate)\n }\n\n if (onTransaction) {\n this.editor.on('transaction', onTransaction)\n }\n\n if (onFocus) {\n this.editor.on('focus', onFocus)\n }\n\n if (onBlur) {\n this.editor.on('blur', onBlur)\n }\n\n if (onDestroy) {\n this.editor.on('destroy', onDestroy)\n }\n })\n }\n}\n","// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nfunction getType(value: any): string {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nexport function isPlainObject(value: any): value is Record {\n if (getType(value) !== 'Object') {\n return false\n }\n\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype\n}\n","import { isPlainObject } from './isPlainObject.js'\n\nexport function mergeDeep(target: Record, source: Record): Record {\n const output = { ...target }\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n output[key] = mergeDeep(target[key], source[key])\n } else {\n output[key] = source[key]\n }\n })\n }\n\n return output\n}\n","import { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { ExtensionConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface ExtensionConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#commands\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n }\n}\n\n/**\n * The Extension class is the base class for all extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Extension {\n type = 'extension'\n\n name = 'extension'\n\n parent: Extension | null = null\n\n child: Extension | null = null\n\n options: Options\n\n storage: Storage\n\n config: ExtensionConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Extension(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Extension({ ...this.config, ...extendedConfig })\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { Range, TextSerializer } from '../types.js'\n\n/**\n * Gets the text between two positions in a Prosemirror node\n * and serializes it using the given text serializers and block separator (see getText)\n * @param startNode The Prosemirror node to start from\n * @param range The range of the text to get\n * @param options Options for the text serializer & block separator\n * @returns The text between the two positions\n */\nexport function getTextBetween(\n startNode: ProseMirrorNode,\n range: Range,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { from, to } = range\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n let text = ''\n\n startNode.nodesBetween(from, to, (node, pos, parent, index) => {\n if (node.isBlock && pos > from) {\n text += blockSeparator\n }\n\n const textSerializer = textSerializers?.[node.type.name]\n\n if (textSerializer) {\n if (parent) {\n text += textSerializer({\n node,\n pos,\n parent,\n index,\n range,\n })\n }\n // do not descend into child nodes when there exists a serializer\n return false\n }\n\n if (node.isText) {\n text += node?.text?.slice(Math.max(from, pos) - pos, to - pos) // eslint-disable-line\n }\n })\n\n return text\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\n\n/**\n * Find text serializers `toText` in a Prosemirror schema\n * @param schema The Prosemirror schema to search in\n * @returns A record of text serializers by node name\n */\nexport function getTextSerializersFromSchema(schema: Schema): Record {\n return Object.fromEntries(\n Object.entries(schema.nodes)\n .filter(([, node]) => node.spec.toText)\n .map(([name, node]) => [name, node.spec.toText]),\n )\n}\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\nimport { getTextBetween } from '../helpers/getTextBetween.js'\nimport { getTextSerializersFromSchema } from '../helpers/getTextSerializersFromSchema.js'\n\nexport type ClipboardTextSerializerOptions = {\n blockSeparator?: string,\n}\n\nexport const ClipboardTextSerializer = Extension.create({\n name: 'clipboardTextSerializer',\n\n addOptions() {\n return {\n blockSeparator: undefined,\n }\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('clipboardTextSerializer'),\n props: {\n clipboardTextSerializer: () => {\n const { editor } = this\n const { state, schema } = editor\n const { doc, selection } = state\n const { ranges } = selection\n const from = Math.min(...ranges.map(range => range.$from.pos))\n const to = Math.max(...ranges.map(range => range.$to.pos))\n const textSerializers = getTextSerializersFromSchema(schema)\n const range = { from, to }\n\n return getTextBetween(doc, range, {\n ...(this.options.blockSeparator !== undefined\n ? { blockSeparator: this.options.blockSeparator }\n : {}),\n textSerializers,\n })\n },\n },\n }),\n ]\n },\n})\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n blur: {\n /**\n * Removes focus from the editor.\n * @example editor.commands.blur()\n */\n blur: () => ReturnType,\n }\n }\n}\n\nexport const blur: RawCommands['blur'] = () => ({ editor, view }) => {\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n (view.dom as HTMLElement).blur()\n\n // Browsers should remove the caret on blur but safari does not.\n // See: https://github.com/ueberdosis/tiptap/issues/2405\n window?.getSelection()?.removeAllRanges()\n }\n })\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearContent: {\n /**\n * Clear the whole document.\n * @param emitUpdate Whether to emit an update event.\n * @example editor.commands.clearContent()\n */\n clearContent: (emitUpdate?: boolean) => ReturnType,\n }\n }\n}\n\nexport const clearContent: RawCommands['clearContent'] = (emitUpdate = false) => ({ commands }) => {\n return commands.setContent('', emitUpdate)\n}\n","import { liftTarget } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearNodes: {\n /**\n * Normalize nodes to a simple paragraph.\n * @example editor.commands.clearNodes()\n */\n clearNodes: () => ReturnType,\n }\n }\n}\n\nexport const clearNodes: RawCommands['clearNodes'] = () => ({ state, tr, dispatch }) => {\n const { selection } = tr\n const { ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n ranges.forEach(({ $from, $to }) => {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.type.isText) {\n return\n }\n\n const { doc, mapping } = tr\n const $mappedFrom = doc.resolve(mapping.map(pos))\n const $mappedTo = doc.resolve(mapping.map(pos + node.nodeSize))\n const nodeRange = $mappedFrom.blockRange($mappedTo)\n\n if (!nodeRange) {\n return\n }\n\n const targetLiftDepth = liftTarget(nodeRange)\n\n if (node.type.isTextblock) {\n const { defaultType } = $mappedFrom.parent.contentMatchAt($mappedFrom.index())\n\n tr.setNodeMarkup(nodeRange.start, defaultType)\n }\n\n if (targetLiftDepth || targetLiftDepth === 0) {\n tr.lift(nodeRange, targetLiftDepth)\n }\n })\n })\n\n return true\n}\n","import { Command, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n command: {\n /**\n * Define a command inline.\n * @param fn The command function.\n * @example\n * editor.commands.command(({ tr, state }) => {\n * ...\n * return true\n * })\n */\n command: (fn: (props: Parameters[0]) => boolean) => ReturnType,\n }\n }\n}\n\nexport const command: RawCommands['command'] = fn => props => {\n return fn(props)\n}\n","import { createParagraphNear as originalCreateParagraphNear } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n createParagraphNear: {\n /**\n * Create a paragraph nearby.\n * @example editor.commands.createParagraphNear()\n */\n createParagraphNear: () => ReturnType\n }\n }\n}\n\nexport const createParagraphNear: RawCommands['createParagraphNear'] = () => ({ state, dispatch }) => {\n return originalCreateParagraphNear(state, dispatch)\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n cut: {\n /**\n * Cuts content from a range and inserts it at a given position.\n * @param range The range to cut.\n * @param range.from The start position of the range.\n * @param range.to The end position of the range.\n * @param targetPos The position to insert the content at.\n * @example editor.commands.cut({ from: 1, to: 3 }, 5)\n */\n cut: ({ from, to }: { from: number, to: number }, targetPos: number) => ReturnType,\n }\n }\n}\n\nexport const cut: RawCommands['cut'] = (originRange, targetPos) => ({ editor, tr }) => {\n const { state } = editor\n\n const contentSlice = state.doc.slice(originRange.from, originRange.to)\n\n tr.deleteRange(originRange.from, originRange.to)\n const newPos = tr.mapping.map(targetPos)\n\n tr.insert(newPos, contentSlice.content)\n\n tr.setSelection(new TextSelection(tr.doc.resolve(Math.max(0, newPos - 1))))\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteCurrentNode: {\n /**\n * Delete the node that currently has the selection anchor.\n * @example editor.commands.deleteCurrentNode()\n */\n deleteCurrentNode: () => ReturnType,\n }\n }\n}\n\nexport const deleteCurrentNode: RawCommands['deleteCurrentNode'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const currentNode = selection.$anchor.node()\n\n // if there is content inside the current node, break out of this command\n if (currentNode.content.size > 0) {\n return false\n }\n\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === currentNode.type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteNode: {\n /**\n * Delete a node with a given type or name.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.deleteNode('paragraph')\n */\n deleteNode: (typeOrName: string | NodeType) => ReturnType,\n }\n }\n}\n\nexport const deleteNode: RawCommands['deleteNode'] = typeOrName => ({ tr, state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteRange: {\n /**\n * Delete a given range.\n * @param range The range to delete.\n * @example editor.commands.deleteRange({ from: 1, to: 3 })\n */\n deleteRange: (range: Range) => ReturnType,\n }\n }\n}\n\nexport const deleteRange: RawCommands['deleteRange'] = range => ({ tr, dispatch }) => {\n const { from, to } = range\n\n if (dispatch) {\n tr.delete(from, to)\n }\n\n return true\n}\n","import { deleteSelection as originalDeleteSelection } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteSelection: {\n /**\n * Delete the selection, if there is one.\n * @example editor.commands.deleteSelection()\n */\n deleteSelection: () => ReturnType\n }\n }\n}\n\nexport const deleteSelection: RawCommands['deleteSelection'] = () => ({ state, dispatch }) => {\n return originalDeleteSelection(state, dispatch)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n enter: {\n /**\n * Trigger enter.\n * @example editor.commands.enter()\n */\n enter: () => ReturnType,\n }\n }\n}\n\nexport const enter: RawCommands['enter'] = () => ({ commands }) => {\n return commands.keyboardShortcut('Enter')\n}\n","import { exitCode as originalExitCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n exitCode: {\n /**\n * Exit from a code block.\n * @example editor.commands.exitCode()\n */\n exitCode: () => ReturnType\n }\n }\n}\n\nexport const exitCode: RawCommands['exitCode'] = () => ({ state, dispatch }) => {\n return originalExitCode(state, dispatch)\n}\n","import { isRegExp } from './isRegExp.js'\n\n/**\n * Check if object1 includes object2\n * @param object1 Object\n * @param object2 Object\n */\nexport function objectIncludes(\n object1: Record,\n object2: Record,\n options: { strict: boolean } = { strict: true },\n): boolean {\n const keys = Object.keys(object2)\n\n if (!keys.length) {\n return true\n }\n\n return keys.every(key => {\n if (options.strict) {\n return object2[key] === object1[key]\n }\n\n if (isRegExp(object2[key])) {\n return object2[key].test(object1[key])\n }\n\n return object2[key] === object1[key]\n })\n}\n","import { Mark as ProseMirrorMark, MarkType, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Range } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\n\nfunction findMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): ProseMirrorMark | undefined {\n return marks.find(item => {\n return item.type === type && objectIncludes(item.attrs, attributes)\n })\n}\n\nfunction isMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): boolean {\n return !!findMarkInSet(marks, type, attributes)\n}\n\nexport function getMarkRange(\n $pos: ResolvedPos,\n type: MarkType,\n attributes: Record = {},\n): Range | void {\n if (!$pos || !type) {\n return\n }\n\n let start = $pos.parent.childAfter($pos.parentOffset)\n\n if ($pos.parentOffset === start.offset && start.offset !== 0) {\n start = $pos.parent.childBefore($pos.parentOffset)\n }\n\n if (!start.node) {\n return\n }\n\n const mark = findMarkInSet([...start.node.marks], type, attributes)\n\n if (!mark) {\n return\n }\n\n let startIndex = start.index\n let startPos = $pos.start() + start.offset\n let endIndex = startIndex + 1\n let endPos = startPos + start.node.nodeSize\n\n findMarkInSet([...start.node.marks], type, attributes)\n\n while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {\n startIndex -= 1\n startPos -= $pos.parent.child(startIndex).nodeSize\n }\n\n while (\n endIndex < $pos.parent.childCount\n && isMarkInSet([...$pos.parent.child(endIndex).marks], type, attributes)\n ) {\n endPos += $pos.parent.child(endIndex).nodeSize\n endIndex += 1\n }\n\n return {\n from: startPos,\n to: endPos,\n }\n}\n","import { MarkType, Schema } from '@tiptap/pm/model'\n\nexport function getMarkType(nameOrType: string | MarkType, schema: Schema): MarkType {\n if (typeof nameOrType === 'string') {\n if (!schema.marks[nameOrType]) {\n throw Error(\n `There is no mark type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.marks[nameOrType]\n }\n\n return nameOrType\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n extendMarkRange: {\n /**\n * Extends the text selection to the current mark by type or name.\n * @param typeOrName The type or name of the mark.\n * @param attributes The attributes of the mark.\n * @example editor.commands.extendMarkRange('bold')\n * @example editor.commands.extendMarkRange('mention', { userId: \"1\" })\n */\n extendMarkRange: (\n /**\n * The type or name of the mark.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const extendMarkRange: RawCommands['extendMarkRange'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const type = getMarkType(typeOrName, state.schema)\n const { doc, selection } = tr\n const { $from, from, to } = selection\n\n if (dispatch) {\n const range = getMarkRange($from, type, attributes)\n\n if (range && range.from <= from && range.to >= to) {\n const newSelection = TextSelection.create(doc, range.from, range.to)\n\n tr.setSelection(newSelection)\n }\n }\n\n return true\n}\n","import { Command, CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n first: {\n /**\n * Runs one command after the other and stops at the first which returns true.\n * @param commands The commands to run.\n * @example editor.commands.first([command1, command2])\n */\n first: (commands: Command[] | ((props: CommandProps) => Command[])) => ReturnType,\n }\n }\n}\n\nexport const first: RawCommands['first'] = commands => props => {\n const items = typeof commands === 'function'\n ? commands(props)\n : commands\n\n for (let i = 0; i < items.length; i += 1) {\n if (items[i](props)) {\n return true\n }\n }\n\n return false\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nexport function isTextSelection(value: unknown): value is TextSelection {\n return value instanceof TextSelection\n}\n","export function minMax(value = 0, min = 0, max = 0): number {\n return Math.min(Math.max(value, min), max)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Selection, TextSelection } from '@tiptap/pm/state'\n\nimport { FocusPosition } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\nexport function resolveFocusPosition(\n doc: ProseMirrorNode,\n position: FocusPosition = null,\n): Selection | null {\n if (!position) {\n return null\n }\n\n const selectionAtStart = Selection.atStart(doc)\n const selectionAtEnd = Selection.atEnd(doc)\n\n if (position === 'start' || position === true) {\n return selectionAtStart\n }\n\n if (position === 'end') {\n return selectionAtEnd\n }\n\n const minPos = selectionAtStart.from\n const maxPos = selectionAtEnd.to\n\n if (position === 'all') {\n return TextSelection.create(\n doc,\n minMax(0, minPos, maxPos),\n minMax(doc.content.size, minPos, maxPos),\n )\n }\n\n return TextSelection.create(\n doc,\n minMax(position, minPos, maxPos),\n minMax(position, minPos, maxPos),\n )\n}\n","export function isiOS(): boolean {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod',\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n}\n","import { isTextSelection } from '../helpers/isTextSelection.js'\nimport { resolveFocusPosition } from '../helpers/resolveFocusPosition.js'\nimport { FocusPosition, RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n focus: {\n /**\n * Focus the editor at the given position.\n * @param position The position to focus at.\n * @param options.scrollIntoView Scroll the focused position into view after focusing\n * @example editor.commands.focus()\n * @example editor.commands.focus(32, { scrollIntoView: false })\n */\n focus: (\n /**\n * The position to focus at.\n */\n position?: FocusPosition,\n\n /**\n * Optional options\n * @default { scrollIntoView: true }\n */\n options?: {\n scrollIntoView?: boolean,\n },\n ) => ReturnType,\n }\n }\n}\n\nexport const focus: RawCommands['focus'] = (position = null, options = {}) => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n options = {\n scrollIntoView: true,\n ...options,\n }\n\n const delayedFocus = () => {\n // focus within `requestAnimationFrame` breaks focus on iOS\n // so we have to call this\n if (isiOS()) {\n (view.dom as HTMLElement).focus()\n }\n\n // For React we have to focus asynchronously. Otherwise wild things happen.\n // see: https://github.com/ueberdosis/tiptap/issues/1520\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n view.focus()\n\n if (options?.scrollIntoView) {\n editor.commands.scrollIntoView()\n }\n }\n })\n }\n\n if ((view.hasFocus() && position === null) || position === false) {\n return true\n }\n\n // we don’t try to resolve a NodeSelection or CellSelection\n if (dispatch && position === null && !isTextSelection(editor.state.selection)) {\n delayedFocus()\n return true\n }\n\n // pass through tr.doc instead of editor.state.doc\n // since transactions could change the editors state before this command has been run\n const selection = resolveFocusPosition(tr.doc, position) || editor.state.selection\n const isSameSelection = editor.state.selection.eq(selection)\n\n if (dispatch) {\n if (!isSameSelection) {\n tr.setSelection(selection)\n }\n\n // `tr.setSelection` resets the stored marks\n // so we’ll restore them if the selection is the same as before\n if (isSameSelection && tr.storedMarks) {\n tr.setStoredMarks(tr.storedMarks)\n }\n\n delayedFocus()\n }\n\n return true\n}\n","import { CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n forEach: {\n /**\n * Loop through an array of items.\n */\n forEach: (\n items: T[],\n fn: (\n item: T,\n props: CommandProps & {\n index: number,\n },\n ) => boolean,\n ) => ReturnType,\n }\n }\n}\n\nexport const forEach: RawCommands['forEach'] = (items, fn) => props => {\n return items.every((item, index) => fn(item, { ...props, index }))\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContent: {\n /**\n * Insert a node or string of HTML at the current position.\n * @example editor.commands.insertContent('

Example

')\n * @example editor.commands.insertContent('

Example

', { updateSelection: false })\n */\n insertContent: (\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n applyInputRules?: boolean\n applyPasteRules?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const insertContent: RawCommands['insertContent'] = (value, options) => ({ tr, commands }) => {\n return commands.insertContentAt(\n { from: tr.selection.from, to: tr.selection.to },\n value,\n options,\n )\n}\n","export function elementFromString(value: string): HTMLElement {\n // add a wrapper to preserve leading and trailing whitespace\n const wrappedValue = `${value}`\n\n const html = new window.DOMParser().parseFromString(wrappedValue, 'text/html').body\n\n return html\n}\n","import {\n DOMParser,\n Fragment,\n Node as ProseMirrorNode,\n ParseOptions,\n Schema,\n} from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\n\nexport type CreateNodeFromContentOptions = {\n slice?: boolean\n parseOptions?: ParseOptions\n errorOnInvalidContent?: boolean\n}\n\n/**\n * Takes a JSON or HTML content and creates a Prosemirror node or fragment from it.\n * @param content The JSON or HTML content to create the node from\n * @param schema The Prosemirror schema to use for the node\n * @param options Options for the parser\n * @returns The created Prosemirror node or fragment\n */\nexport function createNodeFromContent(\n content: Content,\n schema: Schema,\n options?: CreateNodeFromContentOptions,\n): ProseMirrorNode | Fragment {\n options = {\n slice: true,\n parseOptions: {},\n ...options,\n }\n\n const isJSONContent = typeof content === 'object' && content !== null\n const isTextContent = typeof content === 'string'\n\n if (isJSONContent) {\n try {\n const isArrayContent = Array.isArray(content) && content.length > 0\n\n // if the JSON Content is an array of nodes, create a fragment for each node\n if (isArrayContent) {\n return Fragment.fromArray(content.map(item => schema.nodeFromJSON(item)))\n }\n\n const node = schema.nodeFromJSON(content)\n\n if (options.errorOnInvalidContent) {\n node.check()\n }\n\n return node\n } catch (error) {\n if (options.errorOnInvalidContent) {\n throw new Error('[tiptap error]: Invalid JSON content', { cause: error as Error })\n }\n\n console.warn('[tiptap warn]: Invalid content.', 'Passed value:', content, 'Error:', error)\n\n return createNodeFromContent('', schema, options)\n }\n }\n\n if (isTextContent) {\n\n // Check for invalid content\n if (options.errorOnInvalidContent) {\n let hasInvalidContent = false\n let invalidContent = ''\n\n // A copy of the current schema with a catch-all node at the end\n const contentCheckSchema = new Schema({\n topNode: schema.spec.topNode,\n marks: schema.spec.marks,\n // Prosemirror's schemas are executed such that: the last to execute, matches last\n // This means that we can add a catch-all node at the end of the schema to catch any content that we don't know how to handle\n nodes: schema.spec.nodes.append({\n __tiptap__private__unknown__catch__all__node: {\n content: 'inline*',\n group: 'block',\n parseDOM: [\n {\n tag: '*',\n getAttrs: e => {\n // If this is ever called, we know that the content has something that we don't know how to handle in the schema\n hasInvalidContent = true\n // Try to stringify the element for a more helpful error message\n invalidContent = typeof e === 'string' ? e : e.outerHTML\n return null\n },\n },\n ],\n },\n }),\n })\n\n if (options.slice) {\n DOMParser.fromSchema(contentCheckSchema).parseSlice(elementFromString(content), options.parseOptions)\n } else {\n DOMParser.fromSchema(contentCheckSchema).parse(elementFromString(content), options.parseOptions)\n }\n\n if (options.errorOnInvalidContent && hasInvalidContent) {\n throw new Error('[tiptap error]: Invalid HTML content', { cause: new Error(`Invalid element found: ${invalidContent}`) })\n }\n }\n\n const parser = DOMParser.fromSchema(schema)\n\n if (options.slice) {\n return parser.parseSlice(elementFromString(content), options.parseOptions).content\n }\n\n return parser.parse(elementFromString(content), options.parseOptions)\n\n }\n\n return createNodeFromContent('', schema, options)\n}\n","import { Selection, Transaction } from '@tiptap/pm/state'\nimport { ReplaceAroundStep, ReplaceStep } from '@tiptap/pm/transform'\n\n// source: https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.js#L466\nexport function selectionToInsertionEnd(tr: Transaction, startLen: number, bias: number) {\n const last = tr.steps.length - 1\n\n if (last < startLen) {\n return\n }\n\n const step = tr.steps[last]\n\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\n return\n }\n\n const map = tr.mapping.maps[last]\n let end = 0\n\n map.forEach((_from, _to, _newFrom, newTo) => {\n if (end === 0) {\n end = newTo\n }\n })\n\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias))\n}\n","import { Fragment, Node as ProseMirrorNode, ParseOptions } from '@tiptap/pm/model'\n\nimport { createNodeFromContent } from '../helpers/createNodeFromContent.js'\nimport { selectionToInsertionEnd } from '../helpers/selectionToInsertionEnd.js'\nimport { Content, Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContentAt: {\n /**\n * Insert a node or string of HTML at a specific position.\n * @example editor.commands.insertContentAt(0, '

Example

')\n */\n insertContentAt: (\n /**\n * The position to insert the content at.\n */\n position: number | Range,\n\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n\n /**\n * Whether to apply input rules after inserting the content.\n */\n applyInputRules?: boolean\n\n /**\n * Whether to apply paste rules after inserting the content.\n */\n applyPasteRules?: boolean\n\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nconst isFragment = (nodeOrFragment: ProseMirrorNode | Fragment): nodeOrFragment is Fragment => {\n return !('type' in nodeOrFragment)\n}\n\nexport const insertContentAt: RawCommands['insertContentAt'] = (position, value, options) => ({ tr, dispatch, editor }) => {\n if (dispatch) {\n options = {\n parseOptions: {},\n updateSelection: true,\n applyInputRules: false,\n applyPasteRules: false,\n ...options,\n }\n\n let content: Fragment | ProseMirrorNode\n\n try {\n content = createNodeFromContent(value, editor.schema, {\n parseOptions: {\n preserveWhitespace: 'full',\n ...options.parseOptions,\n },\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n } catch (e) {\n editor.emit('contentError', {\n editor,\n error: e as Error,\n disableCollaboration: () => {\n console.error('[tiptap error]: Unable to disable collaboration at this point in time')\n },\n })\n return false\n }\n\n let { from, to } = typeof position === 'number' ? { from: position, to: position } : { from: position.from, to: position.to }\n\n let isOnlyTextContent = true\n let isOnlyBlockContent = true\n const nodes = isFragment(content) ? content : [content]\n\n nodes.forEach(node => {\n // check if added node is valid\n node.check()\n\n isOnlyTextContent = isOnlyTextContent ? node.isText && node.marks.length === 0 : false\n\n isOnlyBlockContent = isOnlyBlockContent ? node.isBlock : false\n })\n\n // check if we can replace the wrapping node by\n // the newly inserted content\n // example:\n // replace an empty paragraph by an inserted image\n // instead of inserting the image below the paragraph\n if (from === to && isOnlyBlockContent) {\n const { parent } = tr.doc.resolve(from)\n const isEmptyTextBlock = parent.isTextblock && !parent.type.spec.code && !parent.childCount\n\n if (isEmptyTextBlock) {\n from -= 1\n to += 1\n }\n }\n\n let newContent\n\n // if there is only plain text we have to use `insertText`\n // because this will keep the current marks\n if (isOnlyTextContent) {\n // if value is string, we can use it directly\n // otherwise if it is an array, we have to join it\n if (Array.isArray(value)) {\n newContent = value.map(v => v.text || '').join('')\n } else if (typeof value === 'object' && !!value && !!value.text) {\n newContent = value.text\n } else {\n newContent = value as string\n }\n\n tr.insertText(newContent, from, to)\n } else {\n newContent = content\n\n tr.replaceWith(from, to, newContent)\n }\n\n // set cursor at end of inserted content\n if (options.updateSelection) {\n selectionToInsertionEnd(tr, tr.steps.length - 1, -1)\n }\n\n if (options.applyInputRules) {\n tr.setMeta('applyInputRules', { from, text: newContent })\n }\n\n if (options.applyPasteRules) {\n tr.setMeta('applyPasteRules', { from, text: newContent })\n }\n }\n\n return true\n}\n","import {\n joinBackward as originalJoinBackward,\n joinDown as originalJoinDown,\n joinForward as originalJoinForward,\n joinUp as originalJoinUp,\n} from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinUp: {\n /**\n * Join the selected block or, if there is a text selection, the closest ancestor block of the selection that can be joined, with the sibling above it.\n * @example editor.commands.joinUp()\n */\n joinUp: () => ReturnType\n }\n joinDown: {\n /**\n * Join the selected block, or the closest ancestor of the selection that can be joined, with the sibling after it.\n * @example editor.commands.joinDown()\n */\n joinDown: () => ReturnType\n }\n joinBackward: {\n /**\n * If the selection is empty and at the start of a textblock, try to reduce the distance between that block and the one before it—if there's a block directly before it that can be joined, join them.\n * If not, try to move the selected block closer to the next one in the document structure by lifting it out of its\n * parent or moving it into a parent of the previous block. Will use the view for accurate (bidi-aware) start-of-textblock detection if given.\n * @example editor.commands.joinBackward()\n */\n joinBackward: () => ReturnType\n }\n joinForward: {\n /**\n * If the selection is empty and the cursor is at the end of a textblock, try to reduce or remove the boundary between that block and the one after it,\n * either by joining them or by moving the other block closer to this one in the tree structure.\n * Will use the view for accurate start-of-textblock detection if given.\n * @example editor.commands.joinForward()\n */\n joinForward: () => ReturnType\n }\n }\n}\n\nexport const joinUp: RawCommands['joinUp'] = () => ({ state, dispatch }) => {\n return originalJoinUp(state, dispatch)\n}\n\nexport const joinDown: RawCommands['joinDown'] = () => ({ state, dispatch }) => {\n return originalJoinDown(state, dispatch)\n}\n\nexport const joinBackward: RawCommands['joinBackward'] = () => ({ state, dispatch }) => {\n return originalJoinBackward(state, dispatch)\n}\n\nexport const joinForward: RawCommands['joinForward'] = () => ({ state, dispatch }) => {\n return originalJoinForward(state, dispatch)\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemBackward: {\n /**\n * Join two items backward.\n * @example editor.commands.joinItemBackward()\n */\n joinItemBackward: () => ReturnType\n }\n }\n}\n\nexport const joinItemBackward: RawCommands['joinItemBackward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, -1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemForward: {\n /**\n * Join two items Forwards.\n * @example editor.commands.joinItemForward()\n */\n joinItemForward: () => ReturnType\n }\n }\n}\n\nexport const joinItemForward: RawCommands['joinItemForward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, +1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinTextblockBackward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockBackward: {\n /**\n * A more limited form of joinBackward that only tries to join the current textblock to the one before it, if the cursor is at the start of a textblock.\n */\n joinTextblockBackward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockBackward: RawCommands['joinTextblockBackward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","import { joinTextblockForward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockForward: {\n /**\n * A more limited form of joinForward that only tries to join the current textblock to the one after it, if the cursor is at the end of a textblock.\n */\n joinTextblockForward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockForward: RawCommands['joinTextblockForward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","export function isMacOS(): boolean {\n return typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n}\n","import { RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nfunction normalizeKeyName(name: string) {\n const parts = name.split(/-(?!$)/)\n let result = parts[parts.length - 1]\n\n if (result === 'Space') {\n result = ' '\n }\n\n let alt\n let ctrl\n let shift\n let meta\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const mod = parts[i]\n\n if (/^(cmd|meta|m)$/i.test(mod)) {\n meta = true\n } else if (/^a(lt)?$/i.test(mod)) {\n alt = true\n } else if (/^(c|ctrl|control)$/i.test(mod)) {\n ctrl = true\n } else if (/^s(hift)?$/i.test(mod)) {\n shift = true\n } else if (/^mod$/i.test(mod)) {\n if (isiOS() || isMacOS()) {\n meta = true\n } else {\n ctrl = true\n }\n } else {\n throw new Error(`Unrecognized modifier name: ${mod}`)\n }\n }\n\n if (alt) {\n result = `Alt-${result}`\n }\n\n if (ctrl) {\n result = `Ctrl-${result}`\n }\n\n if (meta) {\n result = `Meta-${result}`\n }\n\n if (shift) {\n result = `Shift-${result}`\n }\n\n return result\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n keyboardShortcut: {\n /**\n * Trigger a keyboard shortcut.\n * @param name The name of the keyboard shortcut.\n * @example editor.commands.keyboardShortcut('Mod-b')\n */\n keyboardShortcut: (name: string) => ReturnType,\n }\n }\n}\n\nexport const keyboardShortcut: RawCommands['keyboardShortcut'] = name => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n const keys = normalizeKeyName(name).split(/-(?!$)/)\n const key = keys.find(item => !['Alt', 'Ctrl', 'Meta', 'Shift'].includes(item))\n const event = new KeyboardEvent('keydown', {\n key: key === 'Space'\n ? ' '\n : key,\n altKey: keys.includes('Alt'),\n ctrlKey: keys.includes('Ctrl'),\n metaKey: keys.includes('Meta'),\n shiftKey: keys.includes('Shift'),\n bubbles: true,\n cancelable: true,\n })\n\n const capturedTransaction = editor.captureTransaction(() => {\n view.someProp('handleKeyDown', f => f(view, event))\n })\n\n capturedTransaction?.steps.forEach(step => {\n const newStep = step.map(tr.mapping)\n\n if (newStep && dispatch) {\n tr.maybeStep(newStep)\n }\n })\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { NodeRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getNodeType } from './getNodeType.js'\n\nexport function isNodeActive(\n state: EditorState,\n typeOrName: NodeType | string | null,\n attributes: Record = {},\n): boolean {\n const { from, to, empty } = state.selection\n const type = typeOrName ? getNodeType(typeOrName, state.schema) : null\n\n const nodeRanges: NodeRange[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isText) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n\n nodeRanges.push({\n node,\n from: relativeFrom,\n to: relativeTo,\n })\n })\n\n const selectionRange = to - from\n const matchedNodeRanges = nodeRanges\n .filter(nodeRange => {\n if (!type) {\n return true\n }\n\n return type.name === nodeRange.node.type.name\n })\n .filter(nodeRange => objectIncludes(nodeRange.node.attrs, attributes, { strict: false }))\n\n if (empty) {\n return !!matchedNodeRanges.length\n }\n\n const range = matchedNodeRanges.reduce((sum, nodeRange) => sum + nodeRange.to - nodeRange.from, 0)\n\n return range >= selectionRange\n}\n","import { lift as originalLift } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n lift: {\n /**\n * Removes an existing wrap if possible lifting the node out of it\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.lift('paragraph')\n * @example editor.commands.lift('heading', { level: 1 })\n */\n lift: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const lift: RawCommands['lift'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (!isActive) {\n return false\n }\n\n return originalLift(state, dispatch)\n}\n","import { liftEmptyBlock as originalLiftEmptyBlock } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftEmptyBlock: {\n /**\n * If the cursor is in an empty textblock that can be lifted, lift the block.\n * @example editor.commands.liftEmptyBlock()\n */\n liftEmptyBlock: () => ReturnType,\n }\n }\n}\n\nexport const liftEmptyBlock: RawCommands['liftEmptyBlock'] = () => ({ state, dispatch, editor }) => {\n return originalLiftEmptyBlock(state, tr => {\n if (!dispatch) {\n return true\n }\n\n const { selection, storedMarks } = state\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!marks) { return dispatch(tr) }\n\n const { splittableMarks } = editor.extensionManager\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n return dispatch(tr)\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { liftListItem as originalLiftListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftListItem: {\n /**\n * Create a command to lift the list item around the selection up into a wrapping list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.liftListItem('listItem')\n */\n liftListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const liftListItem: RawCommands['liftListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalLiftListItem(type)(state, dispatch)\n}\n","import { newlineInCode as originalNewlineInCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n newlineInCode: {\n /**\n * Add a newline character in code.\n * @example editor.commands.newlineInCode()\n */\n newlineInCode: () => ReturnType\n }\n }\n}\n\nexport const newlineInCode: RawCommands['newlineInCode'] = () => ({ state, dispatch }) => {\n return originalNewlineInCode(state, dispatch)\n}\n","import { Schema } from '@tiptap/pm/model'\n\n/**\n * Get the type of a schema item by its name.\n * @param name The name of the schema item\n * @param schema The Prosemiror schema to search in\n * @returns The type of the schema item (`node` or `mark`), or null if it doesn't exist\n */\nexport function getSchemaTypeNameByName(name: string, schema: Schema): 'node' | 'mark' | null {\n if (schema.nodes[name]) {\n return 'node'\n }\n\n if (schema.marks[name]) {\n return 'mark'\n }\n\n return null\n}\n","/**\n * Remove a property or an array of properties from an object\n * @param obj Object\n * @param key Key to remove\n */\nexport function deleteProps(obj: Record, propOrProps: string | string[]): Record {\n const props = typeof propOrProps === 'string'\n ? [propOrProps]\n : propOrProps\n\n return Object\n .keys(obj)\n .reduce((newObj: Record, prop) => {\n if (!props.includes(prop)) {\n newObj[prop] = obj[prop]\n }\n\n return newObj\n }, {})\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\nimport { deleteProps } from '../utilities/deleteProps.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n resetAttributes: {\n /**\n * Resets some node attributes to the default value.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node to reset.\n * @example editor.commands.resetAttributes('heading', 'level')\n */\n resetAttributes: (\n typeOrName: string | NodeType | MarkType,\n attributes: string | string[],\n ) => ReturnType\n }\n }\n}\n\nexport const resetAttributes: RawCommands['resetAttributes'] = (typeOrName, attributes) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n state.doc.nodesBetween(range.$from.pos, range.$to.pos, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, deleteProps(node.attrs, attributes))\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n tr.addMark(\n pos,\n pos + node.nodeSize,\n markType.create(deleteProps(mark.attrs, attributes)),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n scrollIntoView: {\n /**\n * Scroll the selection into view.\n * @example editor.commands.scrollIntoView()\n */\n scrollIntoView: () => ReturnType,\n }\n }\n}\n\nexport const scrollIntoView: RawCommands['scrollIntoView'] = () => ({ tr, dispatch }) => {\n if (dispatch) {\n tr.scrollIntoView()\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectAll: {\n /**\n * Select the whole document.\n * @example editor.commands.selectAll()\n */\n selectAll: () => ReturnType,\n }\n }\n}\n\nexport const selectAll: RawCommands['selectAll'] = () => ({ tr, commands }) => {\n return commands.setTextSelection({\n from: 0,\n to: tr.doc.content.size,\n })\n}\n","import { selectNodeBackward as originalSelectNodeBackward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeBackward: {\n /**\n * Select a node backward.\n * @example editor.commands.selectNodeBackward()\n */\n selectNodeBackward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeBackward: RawCommands['selectNodeBackward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeBackward(state, dispatch)\n}\n","import { selectNodeForward as originalSelectNodeForward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeForward: {\n /**\n * Select a node forward.\n * @example editor.commands.selectNodeForward()\n */\n selectNodeForward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeForward: RawCommands['selectNodeForward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeForward(state, dispatch)\n}\n","import { selectParentNode as originalSelectParentNode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectParentNode: {\n /**\n * Select the parent node.\n * @example editor.commands.selectParentNode()\n */\n selectParentNode: () => ReturnType\n }\n }\n}\n\nexport const selectParentNode: RawCommands['selectParentNode'] = () => ({ state, dispatch }) => {\n return originalSelectParentNode(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockEnd as originalSelectTextblockEnd } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockEnd: {\n /**\n * Moves the cursor to the end of current text block.\n * @example editor.commands.selectTextblockEnd()\n */\n selectTextblockEnd: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockEnd: RawCommands['selectTextblockEnd'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockEnd(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockStart as originalSelectTextblockStart } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockStart: {\n /**\n * Moves the cursor to the start of current text block.\n * @example editor.commands.selectTextblockStart()\n */\n selectTextblockStart: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockStart: RawCommands['selectTextblockStart'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockStart(state, dispatch)\n}\n","import { Node as ProseMirrorNode, ParseOptions, Schema } from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { createNodeFromContent } from './createNodeFromContent.js'\n\n/**\n * Create a new Prosemirror document node from content.\n * @param content The JSON or HTML content to create the document from\n * @param schema The Prosemirror schema to use for the document\n * @param parseOptions Options for the parser\n * @returns The created Prosemirror document node\n */\nexport function createDocument(\n content: Content,\n schema: Schema,\n parseOptions: ParseOptions = {},\n options: { errorOnInvalidContent?: boolean } = {},\n): ProseMirrorNode {\n return createNodeFromContent(content, schema, {\n slice: false,\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent,\n }) as ProseMirrorNode\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { createDocument } from '../helpers/createDocument.js'\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setContent: {\n /**\n * Replace the whole document with new content.\n * @param content The new content.\n * @param emitUpdate Whether to emit an update event.\n * @param parseOptions Options for parsing the content.\n * @example editor.commands.setContent('

Example text

')\n */\n setContent: (\n /**\n * The new content.\n */\n content: Content,\n\n /**\n * Whether to emit an update event.\n * @default false\n */\n emitUpdate?: boolean,\n\n /**\n * Options for parsing the content.\n * @default {}\n */\n parseOptions?: ParseOptions,\n /**\n * Options for `setContent`.\n */\n options?: {\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const setContent: RawCommands['setContent'] = (content, emitUpdate = false, parseOptions = {}, options = {}) => ({\n editor, tr, dispatch, commands,\n}) => {\n const { doc } = tr\n\n // This is to keep backward compatibility with the previous behavior\n // TODO remove this in the next major version\n if (parseOptions.preserveWhitespace !== 'full') {\n const document = createDocument(content, editor.schema, parseOptions, {\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n\n if (dispatch) {\n tr.replaceWith(0, doc.content.size, document).setMeta('preventUpdate', !emitUpdate)\n }\n return true\n }\n\n if (dispatch) {\n tr.setMeta('preventUpdate', !emitUpdate)\n }\n\n return commands.insertContentAt(\n { from: 0, to: doc.content.size },\n content,\n {\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n },\n )\n}\n","import { Mark, MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkType } from './getMarkType.js'\n\nexport function getMarkAttributes(\n state: EditorState,\n typeOrName: string | MarkType,\n): Record {\n const type = getMarkType(typeOrName, state.schema)\n const { from, to, empty } = state.selection\n const marks: Mark[] = []\n\n if (empty) {\n if (state.storedMarks) {\n marks.push(...state.storedMarks)\n }\n\n marks.push(...state.selection.$head.marks())\n } else {\n state.doc.nodesBetween(from, to, node => {\n marks.push(...node.marks)\n })\n }\n\n const mark = marks.find(markItem => markItem.type.name === type.name)\n\n if (!mark) {\n return {}\n }\n\n return { ...mark.attrs }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { Transform } from '@tiptap/pm/transform'\n\n/**\n * Returns a new `Transform` based on all steps of the passed transactions.\n * @param oldDoc The Prosemirror node to start from\n * @param transactions The transactions to combine\n * @returns A new `Transform` with all steps of the passed transactions\n */\nexport function combineTransactionSteps(\n oldDoc: ProseMirrorNode,\n transactions: Transaction[],\n): Transform {\n const transform = new Transform(oldDoc)\n\n transactions.forEach(transaction => {\n transaction.steps.forEach(step => {\n transform.step(step)\n })\n })\n\n return transform\n}\n","import { ContentMatch, NodeType } from '@tiptap/pm/model'\n\n/**\n * Gets the default block type at a given match\n * @param match The content match to get the default block type from\n * @returns The default block type or null\n */\nexport function defaultBlockAt(match: ContentMatch): NodeType | null {\n for (let i = 0; i < match.edgeCount; i += 1) {\n const { type } = match.edge(i)\n\n if (type.isTextblock && !type.hasRequiredAttrs()) {\n return type\n }\n }\n\n return null\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate } from '../types.js'\n\n/**\n * Find children inside a Prosemirror node that match a predicate.\n * @param node The Prosemirror node to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildren(node: ProseMirrorNode, predicate: Predicate): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n node.descendants((child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate, Range } from '../types.js'\n\n/**\n * Same as `findChildren` but searches only within a `range`.\n * @param node The Prosemirror node to search in\n * @param range The range to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildrenInRange(\n node: ProseMirrorNode,\n range: Range,\n predicate: Predicate,\n): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n // if (range.from === range.to) {\n // const nodeAt = node.nodeAt(range.from)\n\n // if (nodeAt) {\n // nodesWithPos.push({\n // node: nodeAt,\n // pos: range.from,\n // })\n // }\n // }\n\n node.nodesBetween(range.from, range.to, (child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Predicate } from '../types.js'\n\n/**\n * Finds the closest parent node to a resolved position that matches a predicate.\n * @param $pos The resolved position to search from\n * @param predicate The predicate to match\n * @returns The closest parent node to the resolved position that matches the predicate\n * @example ```js\n * findParentNodeClosestToPos($from, node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNodeClosestToPos(\n $pos: ResolvedPos,\n predicate: Predicate,\n):\n | {\n pos: number\n start: number\n depth: number\n node: ProseMirrorNode\n }\n | undefined {\n for (let i = $pos.depth; i > 0; i -= 1) {\n const node = $pos.node(i)\n\n if (predicate(node)) {\n return {\n pos: i > 0 ? $pos.before(i) : 0,\n start: $pos.start(i),\n depth: i,\n node,\n }\n }\n }\n}\n","import { Selection } from '@tiptap/pm/state'\n\nimport { Predicate } from '../types.js'\nimport { findParentNodeClosestToPos } from './findParentNodeClosestToPos.js'\n\n/**\n * Finds the closest parent node to the current selection that matches a predicate.\n * @param predicate The predicate to match\n * @returns A command that finds the closest parent node to the current selection that matches the predicate\n * @example ```js\n * findParentNode(node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNode(predicate: Predicate) {\n return (selection: Selection) => findParentNodeClosestToPos(selection.$from, predicate)\n}\n","import { DOMSerializer, Fragment, Schema } from '@tiptap/pm/model'\n\nexport function getHTMLFromFragment(fragment: Fragment, schema: Schema): string {\n const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment)\n\n const temporaryDocument = document.implementation.createHTMLDocument()\n const container = temporaryDocument.createElement('div')\n\n container.appendChild(documentFragment)\n\n return container.innerHTML\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { Editor } from '../Editor.js'\nimport { ExtensionManager } from '../ExtensionManager.js'\nimport { Extensions } from '../types.js'\nimport { getSchemaByResolvedExtensions } from './getSchemaByResolvedExtensions.js'\n\nexport function getSchema(extensions: Extensions, editor?: Editor): Schema {\n const resolvedExtensions = ExtensionManager.resolve(extensions)\n\n return getSchemaByResolvedExtensions(resolvedExtensions, editor)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent } from '../types.js'\nimport { getHTMLFromFragment } from './getHTMLFromFragment.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate HTML from a JSONContent\n * @param doc The JSONContent to generate HTML from\n * @param extensions The extensions to use for the schema\n * @returns The generated HTML\n */\nexport function generateHTML(doc: JSONContent, extensions: Extensions): string {\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getHTMLFromFragment(contentNode.content, schema)\n}\n","import { DOMParser } from '@tiptap/pm/model'\n\nimport { Extensions } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate JSONContent from HTML\n * @param html The HTML to generate JSONContent from\n * @param extensions The extensions to use for the schema\n * @returns The generated JSONContent\n */\nexport function generateJSON(html: string, extensions: Extensions): Record {\n const schema = getSchema(extensions)\n const dom = elementFromString(html)\n\n return DOMParser.fromSchema(schema).parse(dom).toJSON()\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\nimport { getTextBetween } from './getTextBetween.js'\n\n/**\n * Gets the text of a Prosemirror node\n * @param node The Prosemirror node\n * @param options Options for the text serializer & block separator\n * @returns The text of the node\n * @example ```js\n * const text = getText(node, { blockSeparator: '\\n' })\n * ```\n */\nexport function getText(\n node: ProseMirrorNode,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n) {\n const range = {\n from: 0,\n to: node.content.size,\n }\n\n return getTextBetween(node, range, options)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent, TextSerializer } from '../types.js'\nimport { getSchema } from './getSchema.js'\nimport { getText } from './getText.js'\nimport { getTextSerializersFromSchema } from './getTextSerializersFromSchema.js'\n\n/**\n * Generate raw text from a JSONContent\n * @param doc The JSONContent to generate text from\n * @param extensions The extensions to use for the schema\n * @param options Options for the text generation f.e. blockSeparator or textSerializers\n * @returns The generated text\n */\nexport function generateText(\n doc: JSONContent,\n extensions: Extensions,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getText(contentNode, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(schema),\n ...textSerializers,\n },\n })\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getNodeType } from './getNodeType.js'\n\nexport function getNodeAttributes(\n state: EditorState,\n typeOrName: string | NodeType,\n): Record {\n const type = getNodeType(typeOrName, state.schema)\n const { from, to } = state.selection\n const nodes: Node[] = []\n\n state.doc.nodesBetween(from, to, node => {\n nodes.push(node)\n })\n\n const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name)\n\n if (!node) {\n return {}\n }\n\n return { ...node.attrs }\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from './getMarkAttributes.js'\nimport { getNodeAttributes } from './getNodeAttributes.js'\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\n\n/**\n * Get node or mark attributes by type or name on the current editor state\n * @param state The current editor state\n * @param typeOrName The node or mark type or name\n * @returns The attributes of the node or mark or an empty object\n */\nexport function getAttributes(\n state: EditorState,\n typeOrName: string | NodeType | MarkType,\n): Record {\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (schemaType === 'node') {\n return getNodeAttributes(state, typeOrName as NodeType)\n }\n\n if (schemaType === 'mark') {\n return getMarkAttributes(state, typeOrName as MarkType)\n }\n\n return {}\n}\n","/**\n * Removes duplicated values within an array.\n * Supports numbers, strings and objects.\n */\nexport function removeDuplicates(array: T[], by = JSON.stringify): T[] {\n const seen: Record = {}\n\n return array.filter(item => {\n const key = by(item)\n\n return Object.prototype.hasOwnProperty.call(seen, key)\n ? false\n : (seen[key] = true)\n })\n}\n","import { Step, Transform } from '@tiptap/pm/transform'\n\nimport { Range } from '../types.js'\nimport { removeDuplicates } from '../utilities/removeDuplicates.js'\n\nexport type ChangedRange = {\n oldRange: Range,\n newRange: Range,\n}\n\n/**\n * Removes duplicated ranges and ranges that are\n * fully captured by other ranges.\n */\nfunction simplifyChangedRanges(changes: ChangedRange[]): ChangedRange[] {\n const uniqueChanges = removeDuplicates(changes)\n\n return uniqueChanges.length === 1\n ? uniqueChanges\n : uniqueChanges.filter((change, index) => {\n const rest = uniqueChanges.filter((_, i) => i !== index)\n\n return !rest.some(otherChange => {\n return change.oldRange.from >= otherChange.oldRange.from\n && change.oldRange.to <= otherChange.oldRange.to\n && change.newRange.from >= otherChange.newRange.from\n && change.newRange.to <= otherChange.newRange.to\n })\n })\n}\n\n/**\n * Returns a list of changed ranges\n * based on the first and last state of all steps.\n */\nexport function getChangedRanges(transform: Transform): ChangedRange[] {\n const { mapping, steps } = transform\n const changes: ChangedRange[] = []\n\n mapping.maps.forEach((stepMap, index) => {\n const ranges: Range[] = []\n\n // This accounts for step changes where no range was actually altered\n // e.g. when setting a mark, node attribute, etc.\n // @ts-ignore\n if (!stepMap.ranges.length) {\n const { from, to } = steps[index] as Step & {\n from?: number,\n to?: number,\n }\n\n if (from === undefined || to === undefined) {\n return\n }\n\n ranges.push({ from, to })\n } else {\n stepMap.forEach((from, to) => {\n ranges.push({ from, to })\n })\n }\n\n ranges.forEach(({ from, to }) => {\n const newStart = mapping.slice(index).map(from, -1)\n const newEnd = mapping.slice(index).map(to)\n const oldStart = mapping.invert().map(newStart, -1)\n const oldEnd = mapping.invert().map(newEnd)\n\n changes.push({\n oldRange: {\n from: oldStart,\n to: oldEnd,\n },\n newRange: {\n from: newStart,\n to: newEnd,\n },\n })\n })\n })\n\n return simplifyChangedRanges(changes)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { JSONContent } from '../types.js'\n\ninterface DebugJSONContent extends JSONContent {\n from: number\n to: number\n}\n\nexport function getDebugJSON(node: ProseMirrorNode, startOffset = 0): DebugJSONContent {\n const isTopNode = node.type === node.type.schema.topNodeType\n const increment = isTopNode ? 0 : 1\n const from = startOffset\n const to = from + node.nodeSize\n const marks = node.marks.map(mark => {\n const output: { type: string; attrs?: Record } = {\n type: mark.type.name,\n }\n\n if (Object.keys(mark.attrs).length) {\n output.attrs = { ...mark.attrs }\n }\n\n return output\n })\n const attrs = { ...node.attrs }\n const output: DebugJSONContent = {\n type: node.type.name,\n from,\n to,\n }\n\n if (Object.keys(attrs).length) {\n output.attrs = attrs\n }\n\n if (marks.length) {\n output.marks = marks\n }\n\n if (node.content.childCount) {\n output.content = []\n\n node.forEach((child, offset) => {\n output.content?.push(getDebugJSON(child, startOffset + offset + increment))\n })\n }\n\n if (node.text) {\n output.text = node.text\n }\n\n return output\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { MarkRange } from '../types.js'\nimport { getMarkRange } from './getMarkRange.js'\n\nexport function getMarksBetween(from: number, to: number, doc: ProseMirrorNode): MarkRange[] {\n const marks: MarkRange[] = []\n\n // get all inclusive marks on empty selection\n if (from === to) {\n doc\n .resolve(from)\n .marks()\n .forEach(mark => {\n const $pos = doc.resolve(from)\n const range = getMarkRange($pos, mark.type)\n\n if (!range) {\n return\n }\n\n marks.push({\n mark,\n ...range,\n })\n })\n } else {\n doc.nodesBetween(from, to, (node, pos) => {\n if (!node || node?.nodeSize === undefined) {\n return\n }\n\n marks.push(\n ...node.marks.map(mark => ({\n from: pos,\n to: pos + node.nodeSize,\n mark,\n })),\n )\n })\n }\n\n return marks\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\n/**\n * Finds the first node of a given type or name in the current selection.\n * @param state The editor state.\n * @param typeOrName The node type or name.\n * @param pos The position to start searching from.\n * @param maxDepth The maximum depth to search.\n * @returns The node and the depth as an array.\n */\nexport const getNodeAtPosition = (state: EditorState, typeOrName: string | NodeType, pos: number, maxDepth = 20) => {\n const $pos = state.doc.resolve(pos)\n\n let currentDepth = maxDepth\n let node: Node | null = null\n\n while (currentDepth > 0 && node === null) {\n const currentNode = $pos.node(currentDepth)\n\n if (currentNode?.type.name === typeOrName) {\n node = currentNode\n } else {\n currentDepth -= 1\n }\n }\n\n return [node, currentDepth] as [Node | null, number]\n}\n","import { ExtensionAttribute } from '../types.js'\n\n/**\n * Return attributes of an extension that should be splitted by keepOnSplit flag\n * @param extensionAttributes Array of extension attributes\n * @param typeName The type of the extension\n * @param attributes The attributes of the extension\n * @returns The splitted attributes\n */\nexport function getSplittedAttributes(\n extensionAttributes: ExtensionAttribute[],\n typeName: string,\n attributes: Record,\n): Record {\n return Object.fromEntries(Object\n .entries(attributes)\n .filter(([name]) => {\n const extensionAttribute = extensionAttributes.find(item => {\n return item.type === typeName && item.name === name\n })\n\n if (!extensionAttribute) {\n return false\n }\n\n return extensionAttribute.attribute.keepOnSplit\n }))\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { MarkRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getMarkType } from './getMarkType.js'\n\nexport function isMarkActive(\n state: EditorState,\n typeOrName: MarkType | string | null,\n attributes: Record = {},\n): boolean {\n const { empty, ranges } = state.selection\n const type = typeOrName ? getMarkType(typeOrName, state.schema) : null\n\n if (empty) {\n return !!(state.storedMarks || state.selection.$from.marks())\n .filter(mark => {\n if (!type) {\n return true\n }\n\n return type.name === mark.type.name\n })\n .find(mark => objectIncludes(mark.attrs, attributes, { strict: false }))\n }\n\n let selectionRange = 0\n const markRanges: MarkRange[] = []\n\n ranges.forEach(({ $from, $to }) => {\n const from = $from.pos\n const to = $to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isText && !node.marks.length) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n const range = relativeTo - relativeFrom\n\n selectionRange += range\n\n markRanges.push(\n ...node.marks.map(mark => ({\n mark,\n from: relativeFrom,\n to: relativeTo,\n })),\n )\n })\n })\n\n if (selectionRange === 0) {\n return false\n }\n\n // calculate range of matched mark\n const matchedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return type.name === markRange.mark.type.name\n })\n .filter(markRange => objectIncludes(markRange.mark.attrs, attributes, { strict: false }))\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // calculate range of marks that excludes the searched mark\n // for example `code` doesn’t allow any other marks\n const excludedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return markRange.mark.type !== type && markRange.mark.type.excludes(type)\n })\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // we only include the result of `excludedRange`\n // if there is a match at all\n const range = matchedRange > 0 ? matchedRange + excludedRange : matchedRange\n\n return range >= selectionRange\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\nimport { isMarkActive } from './isMarkActive.js'\nimport { isNodeActive } from './isNodeActive.js'\n\nexport function isActive(\n state: EditorState,\n name: string | null,\n attributes: Record = {},\n): boolean {\n if (!name) {\n return isNodeActive(state, null, attributes) || isMarkActive(state, null, attributes)\n }\n\n const schemaType = getSchemaTypeNameByName(name, state.schema)\n\n if (schemaType === 'node') {\n return isNodeActive(state, name, attributes)\n }\n\n if (schemaType === 'mark') {\n return isMarkActive(state, name, attributes)\n }\n\n return false\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { findParentNode } from './findParentNode.js'\n\nexport const isAtEndOfNode = (state: EditorState, nodeType?: string) => {\n const { $from, $to, $anchor } = state.selection\n\n if (nodeType) {\n const parentNode = findParentNode(node => node.type.name === nodeType)(state.selection)\n\n if (!parentNode) {\n return false\n }\n\n const $parentPos = state.doc.resolve(parentNode.pos + 1)\n\n if ($anchor.pos + 1 === $parentPos.end()) {\n return true\n }\n\n return false\n }\n\n if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nexport const isAtStartOfNode = (state: EditorState) => {\n const { $from, $to } = state.selection\n\n if ($from.parentOffset > 0 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { getExtensionField } from '../helpers/getExtensionField.js'\nimport { NodeConfig } from '../index.js'\nimport { Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nexport function isList(name: string, extensions: Extensions): boolean {\n const { nodeExtensions } = splitExtensions(extensions)\n const extension = nodeExtensions.find(item => item.name === name)\n\n if (!extension) {\n return false\n }\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n const group = callOrReturn(getExtensionField(extension, 'group', context))\n\n if (typeof group !== 'string') {\n return false\n }\n\n return group.split(' ').includes('list')\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\n/**\n * Returns true if the given prosemirror node is empty.\n */\nexport function isNodeEmpty(\n node: ProseMirrorNode,\n {\n checkChildren = true,\n ignoreWhitespace = false,\n }: {\n /**\n * When true (default), it will also check if all children are empty.\n */\n checkChildren?: boolean;\n /**\n * When true, it will ignore whitespace when checking for emptiness.\n */\n ignoreWhitespace?: boolean;\n } = {},\n): boolean {\n if (ignoreWhitespace) {\n if (node.type.name === 'hardBreak') {\n // Hard breaks are considered empty\n return true\n }\n if (node.isText) {\n return /^\\s*$/m.test(node.text ?? '')\n }\n }\n\n if (node.isText) {\n return !node.text\n }\n\n if (node.isAtom || node.isLeaf) {\n return false\n }\n\n if (node.content.childCount === 0) {\n return true\n }\n\n if (checkChildren) {\n let isContentEmpty = true\n\n node.content.forEach(childNode => {\n if (isContentEmpty === false) {\n // Exit early for perf\n return\n }\n\n if (!isNodeEmpty(childNode, { ignoreWhitespace, checkChildren })) {\n isContentEmpty = false\n }\n })\n\n return isContentEmpty\n }\n\n return false\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nexport function isNodeSelection(value: unknown): value is NodeSelection {\n return value instanceof NodeSelection\n}\n","import { EditorView } from '@tiptap/pm/view'\n\nimport { minMax } from '../utilities/minMax.js'\n\nexport function posToDOMRect(view: EditorView, from: number, to: number): DOMRect {\n const minPos = 0\n const maxPos = view.state.doc.content.size\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const start = view.coordsAtPos(resolvedFrom)\n const end = view.coordsAtPos(resolvedEnd, -1)\n const top = Math.min(start.top, end.top)\n const bottom = Math.max(start.bottom, end.bottom)\n const left = Math.min(start.left, end.left)\n const right = Math.max(start.right, end.right)\n const width = right - left\n const height = bottom - top\n const x = left\n const y = top\n const data = {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x,\n y,\n }\n\n return {\n ...data,\n toJSON: () => data,\n }\n}\n","import { MarkType, ResolvedPos } from '@tiptap/pm/model'\nimport { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from '../helpers/getMarkAttributes.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isTextSelection } from '../helpers/index.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMark: {\n /**\n * Add a mark with new attributes.\n * @param typeOrName The mark type or name.\n * @example editor.commands.setMark('bold', { level: 1 })\n */\n setMark: (typeOrName: string | MarkType, attributes?: Record) => ReturnType\n }\n }\n}\n\nfunction canSetMark(state: EditorState, tr: Transaction, newMarkType: MarkType) {\n const { selection } = tr\n let cursor: ResolvedPos | null = null\n\n if (isTextSelection(selection)) {\n cursor = selection.$cursor\n }\n\n if (cursor) {\n const currentMarks = state.storedMarks ?? cursor.marks()\n\n // There can be no current marks that exclude the new mark\n return (\n !!newMarkType.isInSet(currentMarks)\n || !currentMarks.some(mark => mark.type.excludes(newMarkType))\n )\n }\n\n const { ranges } = selection\n\n return ranges.some(({ $from, $to }) => {\n let someNodeSupportsMark = $from.depth === 0\n ? state.doc.inlineContent && state.doc.type.allowsMarkType(newMarkType)\n : false\n\n state.doc.nodesBetween($from.pos, $to.pos, (node, _pos, parent) => {\n // If we already found a mark that we can enable, return false to bypass the remaining search\n if (someNodeSupportsMark) {\n return false\n }\n\n if (node.isInline) {\n const parentAllowsMarkType = !parent || parent.type.allowsMarkType(newMarkType)\n const currentMarksAllowMarkType = !!newMarkType.isInSet(node.marks)\n || !node.marks.some(otherMark => otherMark.type.excludes(newMarkType))\n\n someNodeSupportsMark = parentAllowsMarkType && currentMarksAllowMarkType\n }\n return !someNodeSupportsMark\n })\n\n return someNodeSupportsMark\n })\n}\nexport const setMark: RawCommands['setMark'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n const type = getMarkType(typeOrName, state.schema)\n\n if (dispatch) {\n if (empty) {\n const oldAttributes = getMarkAttributes(state, type)\n\n tr.addStoredMark(\n type.create({\n ...oldAttributes,\n ...attributes,\n }),\n )\n } else {\n ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n const someHasMark = node.marks.find(mark => mark.type === type)\n\n // if there is already a mark of this type\n // we know that we have to merge its attributes\n // otherwise we add a fresh new mark\n if (someHasMark) {\n node.marks.forEach(mark => {\n if (type === mark.type) {\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n type.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n } else {\n tr.addMark(trimmedFrom, trimmedTo, type.create(attributes))\n }\n })\n })\n }\n }\n\n return canSetMark(state, tr, type)\n}\n","import type { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMeta: {\n /**\n * Store a metadata property in the current transaction.\n * @param key The key of the metadata property.\n * @param value The value to store.\n * @example editor.commands.setMeta('foo', 'bar')\n */\n setMeta: (key: string | Plugin | PluginKey, value: any) => ReturnType,\n }\n }\n}\n\nexport const setMeta: RawCommands['setMeta'] = (key, value) => ({ tr }) => {\n tr.setMeta(key, value)\n\n return true\n}\n","import { setBlockType } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNode: {\n /**\n * Replace a given range with a node.\n * @param typeOrName The type or name of the node\n * @param attributes The attributes of the node\n * @example editor.commands.setNode('paragraph')\n */\n setNode: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const setNode: RawCommands['setNode'] = (typeOrName, attributes = {}) => ({ state, dispatch, chain }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n // TODO: use a fallback like insertContent?\n if (!type.isTextblock) {\n console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.')\n\n return false\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(({ commands }) => {\n const canSetBlock = setBlockType(type, attributes)(state)\n\n if (canSetBlock) {\n return true\n }\n\n return commands.clearNodes()\n })\n .command(({ state: updatedState }) => {\n return setBlockType(type, attributes)(updatedState, dispatch)\n })\n .run()\n )\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNodeSelection: {\n /**\n * Creates a NodeSelection.\n * @param position - Position of the node.\n * @example editor.commands.setNodeSelection(10)\n */\n setNodeSelection: (position: number) => ReturnType\n }\n }\n}\n\nexport const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const from = minMax(position, 0, doc.content.size)\n const selection = NodeSelection.create(doc, from)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { Range, RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setTextSelection: {\n /**\n * Creates a TextSelection.\n * @param position The position of the selection.\n * @example editor.commands.setTextSelection(10)\n */\n setTextSelection: (position: number | Range) => ReturnType\n }\n }\n}\n\nexport const setTextSelection: RawCommands['setTextSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const { from, to } = typeof position === 'number' ? { from: position, to: position } : position\n const minPos = TextSelection.atStart(doc).from\n const maxPos = TextSelection.atEnd(doc).to\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { sinkListItem as originalSinkListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n sinkListItem: {\n /**\n * Sink the list item down into an inner list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.sinkListItem('listItem')\n */\n sinkListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const sinkListItem: RawCommands['sinkListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalSinkListItem(type)(state, dispatch)\n}\n","import { EditorState, NodeSelection, TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { defaultBlockAt } from '../helpers/defaultBlockAt.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\nfunction ensureMarks(state: EditorState, splittableMarks?: string[]) {\n const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks?.includes(mark.type.name))\n\n state.tr.ensureMarks(filteredMarks)\n }\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitBlock: {\n /**\n * Forks a new node from an existing node.\n * @param options.keepMarks Keep marks from the previous node.\n * @example editor.commands.splitBlock()\n * @example editor.commands.splitBlock({ keepMarks: true })\n */\n splitBlock: (options?: { keepMarks?: boolean }) => ReturnType\n }\n }\n}\n\nexport const splitBlock: RawCommands['splitBlock'] = ({ keepMarks = true } = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const { selection, doc } = tr\n const { $from, $to } = selection\n const extensionAttributes = editor.extensionManager.attributes\n const newAttributes = getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n )\n\n if (selection instanceof NodeSelection && selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(doc, $from.pos)) {\n return false\n }\n\n if (dispatch) {\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.split($from.pos).scrollIntoView()\n }\n\n return true\n }\n\n if (!$from.parent.isBlock) {\n return false\n }\n\n const atEnd = $to.parentOffset === $to.parent.content.size\n\n const deflt = $from.depth === 0\n ? undefined\n : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)))\n\n let types = atEnd && deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types)\n\n if (\n !types\n && !can\n && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)\n ) {\n can = true\n types = deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n }\n\n if (dispatch) {\n if (can) {\n if (selection instanceof TextSelection) {\n tr.deleteSelection()\n }\n\n tr.split(tr.mapping.map($from.pos), 1, types)\n\n if (deflt && !atEnd && !$from.parentOffset && $from.parent.type !== deflt) {\n const first = tr.mapping.map($from.before())\n const $first = tr.doc.resolve(first)\n\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt)) {\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt)\n }\n }\n }\n\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.scrollIntoView()\n }\n\n return can\n}\n","import {\n Fragment, Node as ProseMirrorNode, NodeType, Slice,\n} from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitListItem: {\n /**\n * Splits one list item into two list items.\n * @param typeOrName The type or name of the node.\n * @param overrideAttrs The attributes to ensure on the new node.\n * @example editor.commands.splitListItem('listItem')\n */\n splitListItem: (typeOrName: string | NodeType, overrideAttrs?: Record) => ReturnType\n }\n }\n}\n\nexport const splitListItem: RawCommands['splitListItem'] = (typeOrName, overrideAttrs = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const type = getNodeType(typeOrName, state.schema)\n const { $from, $to } = state.selection\n\n // @ts-ignore\n // eslint-disable-next-line\n const node: ProseMirrorNode = state.selection.node\n\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {\n return false\n }\n\n const grandParent = $from.node(-1)\n\n if (grandParent.type !== type) {\n return false\n }\n\n const extensionAttributes = editor.extensionManager.attributes\n\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if (\n $from.depth === 2\n || $from.node(-3).type !== type\n || $from.index(-2) !== $from.node(-2).childCount - 1\n ) {\n return false\n }\n\n if (dispatch) {\n let wrap = Fragment.empty\n // eslint-disable-next-line\n const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3\n\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {\n wrap = Fragment.from($from.node(d).copy(wrap))\n }\n\n // eslint-disable-next-line\n const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3\n\n // Add a second list item with an empty default start node\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n const nextType = type.contentMatch.defaultType?.createAndFill(newNextTypeAttributes) || undefined\n\n wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined))\n\n const start = $from.before($from.depth - (depthBefore - 1))\n\n tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0))\n\n let sel = -1\n\n tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {\n if (sel > -1) {\n return false\n }\n\n if (n.isTextblock && n.content.size === 0) {\n sel = pos + 1\n }\n })\n\n if (sel > -1) {\n tr.setSelection(TextSelection.near(tr.doc.resolve(sel)))\n }\n\n tr.scrollIntoView()\n }\n\n return true\n }\n\n const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null\n\n const newTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n grandParent.type.name,\n grandParent.attrs,\n ),\n ...overrideAttrs,\n }\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n\n tr.delete($from.pos, $to.pos)\n\n const types = nextType\n ? [\n { type, attrs: newTypeAttributes },\n { type: nextType, attrs: newNextTypeAttributes },\n ]\n : [{ type, attrs: newTypeAttributes }]\n\n if (!canSplit(tr.doc, $from.pos, 2)) {\n return false\n }\n\n if (dispatch) {\n const { selection, storedMarks } = state\n const { splittableMarks } = editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n tr.split($from.pos, 2, types).scrollIntoView()\n\n if (!marks || !dispatch) {\n return true\n }\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { canJoin } from '@tiptap/pm/transform'\n\nimport { findParentNode } from '../helpers/findParentNode.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isList } from '../helpers/isList.js'\nimport { RawCommands } from '../types.js'\n\nconst joinListBackwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const before = tr.doc.resolve(Math.max(0, list.pos - 1)).before(list.depth)\n\n if (before === undefined) {\n return true\n }\n\n const nodeBefore = tr.doc.nodeAt(before)\n const canJoinBackwards = list.node.type === nodeBefore?.type && canJoin(tr.doc, list.pos)\n\n if (!canJoinBackwards) {\n return true\n }\n\n tr.join(list.pos)\n\n return true\n}\n\nconst joinListForwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const after = tr.doc.resolve(list.start).after(list.depth)\n\n if (after === undefined) {\n return true\n }\n\n const nodeAfter = tr.doc.nodeAt(after)\n const canJoinForwards = list.node.type === nodeAfter?.type && canJoin(tr.doc, after)\n\n if (!canJoinForwards) {\n return true\n }\n\n tr.join(after)\n\n return true\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleList: {\n /**\n * Toggle between different list types.\n * @param listTypeOrName The type or name of the list.\n * @param itemTypeOrName The type or name of the list item.\n * @param keepMarks Keep marks when toggling.\n * @param attributes Attributes for the new list.\n * @example editor.commands.toggleList('bulletList', 'listItem')\n */\n toggleList: (listTypeOrName: string | NodeType, itemTypeOrName: string | NodeType, keepMarks?: boolean, attributes?: Record) => ReturnType;\n }\n }\n}\n\nexport const toggleList: RawCommands['toggleList'] = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({\n editor, tr, state, dispatch, chain, commands, can,\n}) => {\n const { extensions, splittableMarks } = editor.extensionManager\n const listType = getNodeType(listTypeOrName, state.schema)\n const itemType = getNodeType(itemTypeOrName, state.schema)\n const { selection, storedMarks } = state\n const { $from, $to } = selection\n const range = $from.blockRange($to)\n\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!range) {\n return false\n }\n\n const parentList = findParentNode(node => isList(node.type.name, extensions))(selection)\n\n if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {\n // remove list\n if (parentList.node.type === listType) {\n return commands.liftListItem(itemType)\n }\n\n // change list type\n if (\n isList(parentList.node.type.name, extensions)\n && listType.validContent(parentList.node.content)\n && dispatch\n ) {\n return chain()\n .command(() => {\n tr.setNodeMarkup(parentList.pos, listType)\n\n return true\n })\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n }\n if (!keepMarks || !marks || !dispatch) {\n\n return chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n )\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isMarkActive } from '../helpers/isMarkActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleMark: {\n /**\n * Toggle a mark on and off.\n * @param typeOrName The mark type or name.\n * @param attributes The attributes of the mark.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.toggleMark('bold')\n */\n toggleMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const toggleMark: RawCommands['toggleMark'] = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {\n const { extendEmptyMarkRange = false } = options\n const type = getMarkType(typeOrName, state.schema)\n const isActive = isMarkActive(state, type, attributes)\n\n if (isActive) {\n return commands.unsetMark(type, { extendEmptyMarkRange })\n }\n\n return commands.setMark(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleNode: {\n /**\n * Toggle a node with another node.\n * @param typeOrName The type or name of the node.\n * @param toggleTypeOrName The type or name of the node to toggle.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleNode('heading', 'paragraph')\n */\n toggleNode: (\n typeOrName: string | NodeType,\n toggleTypeOrName: string | NodeType,\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const toggleNode: RawCommands['toggleNode'] = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const toggleType = getNodeType(toggleTypeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.setNode(toggleType)\n }\n\n return commands.setNode(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleWrap: {\n /**\n * Wraps nodes in another node, or removes an existing wrap.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleWrap('blockquote')\n */\n toggleWrap: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const toggleWrap: RawCommands['toggleWrap'] = (typeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.lift(type)\n }\n\n return commands.wrapIn(type, attributes)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n undoInputRule: {\n /**\n * Undo an input rule.\n * @example editor.commands.undoInputRule()\n */\n undoInputRule: () => ReturnType,\n }\n }\n}\n\nexport const undoInputRule: RawCommands['undoInputRule'] = () => ({ state, dispatch }) => {\n const plugins = state.plugins\n\n for (let i = 0; i < plugins.length; i += 1) {\n const plugin = plugins[i]\n let undoable\n\n // @ts-ignore\n // eslint-disable-next-line\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n const tr = state.tr\n const toUndo = undoable.transform\n\n for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]))\n }\n\n if (undoable.text) {\n const marks = tr.doc.resolve(undoable.from).marks()\n\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks))\n } else {\n tr.delete(undoable.from, undoable.to)\n }\n }\n\n return true\n }\n }\n\n return false\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetAllMarks: {\n /**\n * Remove all marks in the current selection.\n * @example editor.commands.unsetAllMarks()\n */\n unsetAllMarks: () => ReturnType,\n }\n }\n}\n\nexport const unsetAllMarks: RawCommands['unsetAllMarks'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n\n if (empty) {\n return true\n }\n\n if (dispatch) {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos)\n })\n }\n\n return true\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetMark: {\n /**\n * Remove all marks in the current selection.\n * @param typeOrName The mark type or name.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.unsetMark('bold')\n */\n unsetMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const unsetMark: RawCommands['unsetMark'] = (typeOrName, options = {}) => ({ tr, state, dispatch }) => {\n const { extendEmptyMarkRange = false } = options\n const { selection } = tr\n const type = getMarkType(typeOrName, state.schema)\n const { $from, empty, ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n if (empty && extendEmptyMarkRange) {\n let { from, to } = selection\n const attrs = $from.marks().find(mark => mark.type === type)?.attrs\n const range = getMarkRange($from, type, attrs)\n\n if (range) {\n from = range.from\n to = range.to\n }\n\n tr.removeMark(from, to, type)\n } else {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos, type)\n })\n }\n\n tr.removeStoredMark(type)\n\n return true\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n updateAttributes: {\n /**\n * Update attributes of a node or mark.\n * @param typeOrName The type or name of the node or mark.\n * @param attributes The attributes of the node or mark.\n * @example editor.commands.updateAttributes('mention', { userId: \"2\" })\n */\n updateAttributes: (\n /**\n * The type or name of the node or mark.\n */\n typeOrName: string | NodeType | MarkType,\n\n /**\n * The attributes of the node or mark.\n */\n attributes: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const updateAttributes: RawCommands['updateAttributes'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...attributes,\n })\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n markType.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { wrapIn as originalWrapIn } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapIn: {\n /**\n * Wraps nodes in another node.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapIn('blockquote')\n */\n wrapIn: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapIn: RawCommands['wrapIn'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapIn(type, attributes)(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { wrapInList as originalWrapInList } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapInList: {\n /**\n * Wrap a node in a list.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapInList('bulletList')\n */\n wrapInList: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapInList: RawCommands['wrapInList'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapInList(type, attributes)(state, dispatch)\n}\n","import * as commands from '../commands/index.js'\nimport { Extension } from '../Extension.js'\n\nexport * from '../commands/index.js'\n\nexport const Commands = Extension.create({\n name: 'commands',\n\n addCommands() {\n return {\n ...commands,\n }\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Editable = Extension.create({\n name: 'editable',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('editable'),\n props: {\n editable: () => this.editor.options.editable,\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const FocusEvents = Extension.create({\n name: 'focusEvents',\n\n addProseMirrorPlugins() {\n const { editor } = this\n\n return [\n new Plugin({\n key: new PluginKey('focusEvents'),\n props: {\n handleDOMEvents: {\n focus: (view, event: Event) => {\n editor.isFocused = true\n\n const transaction = editor.state.tr\n .setMeta('focus', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n blur: (view, event: Event) => {\n editor.isFocused = false\n\n const transaction = editor.state.tr\n .setMeta('blur', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n },\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey, Selection } from '@tiptap/pm/state'\n\nimport { CommandManager } from '../CommandManager.js'\nimport { Extension } from '../Extension.js'\nimport { createChainableState } from '../helpers/createChainableState.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nexport const Keymap = Extension.create({\n name: 'keymap',\n\n addKeyboardShortcuts() {\n const handleBackspace = () => this.editor.commands.first(({ commands }) => [\n () => commands.undoInputRule(),\n\n // maybe convert first text block node to default node\n () => commands.command(({ tr }) => {\n const { selection, doc } = tr\n const { empty, $anchor } = selection\n const { pos, parent } = $anchor\n const $parentPos = $anchor.parent.isTextblock && pos > 0 ? tr.doc.resolve(pos - 1) : $anchor\n const parentIsIsolating = $parentPos.parent.type.spec.isolating\n\n const parentPos = $anchor.pos - $anchor.parentOffset\n\n const isAtStart = (parentIsIsolating && $parentPos.parent.childCount === 1)\n ? parentPos === $anchor.pos\n : Selection.atStart(doc).from === pos\n\n if (\n !empty\n || !parent.type.isTextblock\n || parent.textContent.length\n || !isAtStart\n || (isAtStart && $anchor.parent.type.name === 'paragraph') // prevent clearNodes when no nodes to clear, otherwise history stack is appended\n ) {\n return false\n }\n\n return commands.clearNodes()\n }),\n\n () => commands.deleteSelection(),\n () => commands.joinBackward(),\n () => commands.selectNodeBackward(),\n ])\n\n const handleDelete = () => this.editor.commands.first(({ commands }) => [\n () => commands.deleteSelection(),\n () => commands.deleteCurrentNode(),\n () => commands.joinForward(),\n () => commands.selectNodeForward(),\n ])\n\n const handleEnter = () => this.editor.commands.first(({ commands }) => [\n () => commands.newlineInCode(),\n () => commands.createParagraphNear(),\n () => commands.liftEmptyBlock(),\n () => commands.splitBlock(),\n ])\n\n const baseKeymap = {\n Enter: handleEnter,\n 'Mod-Enter': () => this.editor.commands.exitCode(),\n Backspace: handleBackspace,\n 'Mod-Backspace': handleBackspace,\n 'Shift-Backspace': handleBackspace,\n Delete: handleDelete,\n 'Mod-Delete': handleDelete,\n 'Mod-a': () => this.editor.commands.selectAll(),\n }\n\n const pcKeymap = {\n ...baseKeymap,\n }\n\n const macKeymap = {\n ...baseKeymap,\n 'Ctrl-h': handleBackspace,\n 'Alt-Backspace': handleBackspace,\n 'Ctrl-d': handleDelete,\n 'Ctrl-Alt-Backspace': handleDelete,\n 'Alt-Delete': handleDelete,\n 'Alt-d': handleDelete,\n 'Ctrl-a': () => this.editor.commands.selectTextblockStart(),\n 'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),\n }\n\n if (isiOS() || isMacOS()) {\n return macKeymap\n }\n\n return pcKeymap\n },\n\n addProseMirrorPlugins() {\n return [\n // With this plugin we check if the whole document was selected and deleted.\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\n // to a paragraph if necessary.\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\n // with many other commands.\n new Plugin({\n key: new PluginKey('clearDocument'),\n appendTransaction: (transactions, oldState, newState) => {\n const { empty, from, to } = oldState.selection\n\n if (empty) {\n return\n }\n\n const docChanges = transactions.some(transaction => transaction.docChanged)\n && oldState.doc.nodeSize !== newState.doc.nodeSize\n\n if (!docChanges) {\n return\n }\n\n const allFrom = Selection.atStart(oldState.doc).from\n const allEnd = Selection.atEnd(oldState.doc).to\n const allWasSelected = from === allFrom && to === allEnd\n\n if (!allWasSelected) {\n return\n }\n\n const isEmpty = newState.doc.textBetween(0, newState.doc.content.size, ' ', ' ').length === 0\n\n if (!isEmpty) {\n return\n }\n\n const tr = newState.tr\n const state = createChainableState({\n state: newState,\n transaction: tr,\n })\n const { commands } = new CommandManager({\n editor: this.editor,\n state,\n })\n\n commands.clearNodes()\n\n if (!tr.steps.length) {\n return\n }\n\n return tr\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Tabindex = Extension.create({\n name: 'tabindex',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tabindex'),\n props: {\n attributes: (): { [name: string]: string; } => (this.editor.isEditable ? { tabindex: '0' } : {}),\n },\n }),\n ]\n },\n})\n","import {\n Fragment, Node, ResolvedPos,\n} from '@tiptap/pm/model'\n\nimport { Editor } from './Editor.js'\nimport { Content, Range } from './types.js'\n\nexport class NodePos {\n private resolvedPos: ResolvedPos\n\n private isBlock: boolean\n\n private editor: Editor\n\n private get name(): string {\n return this.node.type.name\n }\n\n constructor(pos: ResolvedPos, editor: Editor, isBlock = false, node: Node | null = null) {\n this.isBlock = isBlock\n this.resolvedPos = pos\n this.editor = editor\n this.currentNode = node\n }\n\n private currentNode: Node | null = null\n\n get node(): Node {\n return this.currentNode || this.resolvedPos.node()\n }\n\n get element(): HTMLElement {\n return this.editor.view.domAtPos(this.pos).node as HTMLElement\n }\n\n public actualDepth: number | null = null\n\n get depth(): number {\n return this.actualDepth ?? this.resolvedPos.depth\n }\n\n get pos(): number {\n return this.resolvedPos.pos\n }\n\n get content(): Fragment {\n return this.node.content\n }\n\n set content(content: Content) {\n let from = this.from\n let to = this.to\n\n if (this.isBlock) {\n if (this.content.size === 0) {\n console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`)\n return\n }\n\n from = this.from + 1\n to = this.to - 1\n }\n\n this.editor.commands.insertContentAt({ from, to }, content)\n }\n\n get attributes(): { [key: string]: any } {\n return this.node.attrs\n }\n\n get textContent(): string {\n return this.node.textContent\n }\n\n get size(): number {\n return this.node.nodeSize\n }\n\n get from(): number {\n if (this.isBlock) {\n return this.pos\n }\n\n return this.resolvedPos.start(this.resolvedPos.depth)\n }\n\n get range(): Range {\n return {\n from: this.from,\n to: this.to,\n }\n }\n\n get to(): number {\n if (this.isBlock) {\n return this.pos + this.size\n }\n\n return this.resolvedPos.end(this.resolvedPos.depth) + (this.node.isText ? 0 : 1)\n }\n\n get parent(): NodePos | null {\n if (this.depth === 0) {\n return null\n }\n\n const parentPos = this.resolvedPos.start(this.resolvedPos.depth - 1)\n const $pos = this.resolvedPos.doc.resolve(parentPos)\n\n return new NodePos($pos, this.editor)\n }\n\n get before(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.from - (this.isBlock ? 1 : 2))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.from - 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get after(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.to + (this.isBlock ? 2 : 1))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.to + 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get children(): NodePos[] {\n const children: NodePos[] = []\n\n this.node.content.forEach((node, offset) => {\n const isBlock = node.isBlock && !node.isTextblock\n\n const targetPos = this.pos + offset + 1\n const $pos = this.resolvedPos.doc.resolve(targetPos)\n\n if (!isBlock && $pos.depth <= this.depth) {\n return\n }\n\n const childNodePos = new NodePos($pos, this.editor, isBlock, isBlock ? node : null)\n\n if (isBlock) {\n childNodePos.actualDepth = this.depth + 1\n }\n\n children.push(new NodePos($pos, this.editor, isBlock, isBlock ? node : null))\n })\n\n return children\n }\n\n get firstChild(): NodePos | null {\n return this.children[0] || null\n }\n\n get lastChild(): NodePos | null {\n const children = this.children\n\n return children[children.length - 1] || null\n }\n\n closest(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n let node: NodePos | null = null\n let currentNode = this.parent\n\n while (currentNode && !node) {\n if (currentNode.node.type.name === selector) {\n if (Object.keys(attributes).length > 0) {\n const nodeAttributes = currentNode.node.attrs\n const attrKeys = Object.keys(attributes)\n\n for (let index = 0; index < attrKeys.length; index += 1) {\n const key = attrKeys[index]\n\n if (nodeAttributes[key] !== attributes[key]) {\n break\n }\n }\n } else {\n node = currentNode\n }\n }\n\n currentNode = currentNode.parent\n }\n\n return node\n }\n\n querySelector(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n return this.querySelectorAll(selector, attributes, true)[0] || null\n }\n\n querySelectorAll(selector: string, attributes: { [key: string]: any } = {}, firstItemOnly = false): NodePos[] {\n let nodes: NodePos[] = []\n\n if (!this.children || this.children.length === 0) {\n return nodes\n }\n const attrKeys = Object.keys(attributes)\n\n /**\n * Finds all children recursively that match the selector and attributes\n * If firstItemOnly is true, it will return the first item found\n */\n this.children.forEach(childPos => {\n // If we already found a node and we only want the first item, we dont need to keep going\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n if (childPos.node.type.name === selector) {\n const doesAllAttributesMatch = attrKeys.every(key => attributes[key] === childPos.node.attrs[key])\n\n if (doesAllAttributesMatch) {\n nodes.push(childPos)\n }\n }\n\n // If we already found a node and we only want the first item, we can stop here and skip the recursion\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n nodes = nodes.concat(childPos.querySelectorAll(selector, attributes, firstItemOnly))\n })\n\n return nodes\n }\n\n setAttribute(attributes: { [key: string]: any }) {\n const oldSelection = this.editor.state.selection\n\n this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from)\n .run()\n }\n}\n","export const style = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n.tippy-box[data-animation=fade][data-state=hidden] {\n opacity: 0\n}`\n","export function createStyleTag(style: string, nonce?: string, suffix?: string): HTMLStyleElement {\n const tiptapStyleTag = (document.querySelector(`style[data-tiptap-style${suffix ? `-${suffix}` : ''}]`))\n\n if (tiptapStyleTag !== null) {\n return tiptapStyleTag\n }\n\n const styleNode = document.createElement('style')\n\n if (nonce) {\n styleNode.setAttribute('nonce', nonce)\n }\n\n styleNode.setAttribute(`data-tiptap-style${suffix ? `-${suffix}` : ''}`, '')\n styleNode.innerHTML = style\n document.getElementsByTagName('head')[0].appendChild(styleNode)\n\n return styleNode\n}\n","import {\n MarkType,\n Node as ProseMirrorNode,\n NodeType,\n Schema,\n} from '@tiptap/pm/model'\nimport {\n EditorState, Plugin, PluginKey, Transaction,\n} from '@tiptap/pm/state'\nimport { EditorView } from '@tiptap/pm/view'\n\nimport { CommandManager } from './CommandManager.js'\nimport { EventEmitter } from './EventEmitter.js'\nimport { ExtensionManager } from './ExtensionManager.js'\nimport {\n ClipboardTextSerializer, Commands, Editable, FocusEvents, Keymap, Tabindex,\n} from './extensions/index.js'\nimport { createDocument } from './helpers/createDocument.js'\nimport { getAttributes } from './helpers/getAttributes.js'\nimport { getHTMLFromFragment } from './helpers/getHTMLFromFragment.js'\nimport { getText } from './helpers/getText.js'\nimport { getTextSerializersFromSchema } from './helpers/getTextSerializersFromSchema.js'\nimport { isActive } from './helpers/isActive.js'\nimport { isNodeEmpty } from './helpers/isNodeEmpty.js'\nimport { resolveFocusPosition } from './helpers/resolveFocusPosition.js'\nimport { NodePos } from './NodePos.js'\nimport { style } from './style.js'\nimport {\n CanCommands,\n ChainedCommands,\n EditorEvents,\n EditorOptions,\n JSONContent,\n SingleCommands,\n TextSerializer,\n} from './types.js'\nimport { createStyleTag } from './utilities/createStyleTag.js'\nimport { isFunction } from './utilities/isFunction.js'\n\nexport * as extensions from './extensions/index.js'\n\nexport interface EditorStorage extends Record { }\n// @ts-ignore\nexport interface TiptapEditorHTMLElement extends HTMLElement {\n editor?: Editor\n}\n\nexport class Editor extends EventEmitter {\n private commandManager!: CommandManager\n\n public extensionManager!: ExtensionManager\n\n private css!: HTMLStyleElement\n\n public schema!: Schema\n\n public view!: EditorView\n\n public isFocused = false\n\n /**\n * The editor is considered initialized after the `create` event has been emitted.\n */\n public isInitialized = false\n\n public extensionStorage: Record = {}\n\n public options: EditorOptions = {\n element: document.createElement('div'),\n content: '',\n injectCSS: true,\n injectNonce: undefined,\n extensions: [],\n autofocus: false,\n editable: true,\n editorProps: {},\n parseOptions: {},\n coreExtensionOptions: {},\n enableInputRules: true,\n enablePasteRules: true,\n enableCoreExtensions: true,\n enableContentCheck: false,\n onBeforeCreate: () => null,\n onCreate: () => null,\n onUpdate: () => null,\n onSelectionUpdate: () => null,\n onTransaction: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onDestroy: () => null,\n onContentError: ({ error }) => { throw error },\n }\n\n constructor(options: Partial = {}) {\n super()\n this.setOptions(options)\n this.createExtensionManager()\n this.createCommandManager()\n this.createSchema()\n this.on('beforeCreate', this.options.onBeforeCreate)\n this.emit('beforeCreate', { editor: this })\n this.on('contentError', this.options.onContentError)\n this.createView()\n this.injectCSS()\n this.on('create', this.options.onCreate)\n this.on('update', this.options.onUpdate)\n this.on('selectionUpdate', this.options.onSelectionUpdate)\n this.on('transaction', this.options.onTransaction)\n this.on('focus', this.options.onFocus)\n this.on('blur', this.options.onBlur)\n this.on('destroy', this.options.onDestroy)\n\n window.setTimeout(() => {\n if (this.isDestroyed) {\n return\n }\n\n this.commands.focus(this.options.autofocus)\n this.emit('create', { editor: this })\n this.isInitialized = true\n }, 0)\n }\n\n /**\n * Returns the editor storage.\n */\n public get storage(): EditorStorage {\n return this.extensionStorage\n }\n\n /**\n * An object of all registered commands.\n */\n public get commands(): SingleCommands {\n return this.commandManager.commands\n }\n\n /**\n * Create a command chain to call multiple commands at once.\n */\n public chain(): ChainedCommands {\n return this.commandManager.chain()\n }\n\n /**\n * Check if a command or a command chain can be executed. Without executing it.\n */\n public can(): CanCommands {\n return this.commandManager.can()\n }\n\n /**\n * Inject CSS styles.\n */\n private injectCSS(): void {\n if (this.options.injectCSS && document) {\n this.css = createStyleTag(style, this.options.injectNonce)\n }\n }\n\n /**\n * Update editor options.\n *\n * @param options A list of options\n */\n public setOptions(options: Partial = {}): void {\n this.options = {\n ...this.options,\n ...options,\n }\n\n if (!this.view || !this.state || this.isDestroyed) {\n return\n }\n\n if (this.options.editorProps) {\n this.view.setProps(this.options.editorProps)\n }\n\n this.view.updateState(this.state)\n }\n\n /**\n * Update editable state of the editor.\n */\n public setEditable(editable: boolean, emitUpdate = true): void {\n this.setOptions({ editable })\n\n if (emitUpdate) {\n this.emit('update', { editor: this, transaction: this.state.tr })\n }\n }\n\n /**\n * Returns whether the editor is editable.\n */\n public get isEditable(): boolean {\n // since plugins are applied after creating the view\n // `editable` is always `true` for one tick.\n // that’s why we also have to check for `options.editable`\n return this.options.editable && this.view && this.view.editable\n }\n\n /**\n * Returns the editor state.\n */\n public get state(): EditorState {\n return this.view.state\n }\n\n /**\n * Register a ProseMirror plugin.\n *\n * @param plugin A ProseMirror plugin\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\n */\n public registerPlugin(\n plugin: Plugin,\n handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[],\n ): void {\n const plugins = isFunction(handlePlugins)\n ? handlePlugins(plugin, [...this.state.plugins])\n : [...this.state.plugins, plugin]\n\n const state = this.state.reconfigure({ plugins })\n\n this.view.updateState(state)\n }\n\n /**\n * Unregister a ProseMirror plugin.\n *\n * @param nameOrPluginKey The plugins name\n */\n public unregisterPlugin(nameOrPluginKey: string | PluginKey): void {\n if (this.isDestroyed) {\n return\n }\n\n // @ts-ignore\n const name = typeof nameOrPluginKey === 'string' ? `${nameOrPluginKey}$` : nameOrPluginKey.key\n\n const state = this.state.reconfigure({\n // @ts-ignore\n plugins: this.state.plugins.filter(plugin => !plugin.key.startsWith(name)),\n })\n\n this.view.updateState(state)\n }\n\n /**\n * Creates an extension manager.\n */\n private createExtensionManager(): void {\n\n const coreExtensions = this.options.enableCoreExtensions ? [\n Editable,\n ClipboardTextSerializer.configure({\n blockSeparator: this.options.coreExtensionOptions?.clipboardTextSerializer?.blockSeparator,\n }),\n Commands,\n FocusEvents,\n Keymap,\n Tabindex,\n ] : []\n const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {\n return ['extension', 'node', 'mark'].includes(extension?.type)\n })\n\n this.extensionManager = new ExtensionManager(allExtensions, this)\n }\n\n /**\n * Creates an command manager.\n */\n private createCommandManager(): void {\n this.commandManager = new CommandManager({\n editor: this,\n })\n }\n\n /**\n * Creates a ProseMirror schema.\n */\n private createSchema(): void {\n this.schema = this.extensionManager.schema\n }\n\n /**\n * Creates a ProseMirror view.\n */\n private createView(): void {\n this.view = new EditorView(this.options.element, {\n ...this.options.editorProps,\n dispatchTransaction: this.dispatchTransaction.bind(this),\n state: EditorState.create({\n doc: this.schema.topNodeType.create(),\n }),\n })\n\n let doc: ProseMirrorNode\n\n try {\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: this.options.enableContentCheck },\n )\n } catch (e) {\n if (!(e instanceof Error) || !['[tiptap error]: Invalid JSON content', '[tiptap error]: Invalid HTML content'].includes(e.message)) {\n // Not the content error we were expecting\n throw e\n }\n this.emit('contentError', {\n editor: this,\n error: e as Error,\n disableCollaboration: () => {\n // To avoid syncing back invalid content, reinitialize the extensions without the collaboration extension\n this.options.extensions = this.options.extensions.filter(extension => extension.name !== 'collaboration')\n\n // Restart the initialization process by recreating the extension manager with the new set of extensions\n this.createExtensionManager()\n },\n })\n\n // Content is invalid, but attempt to create it anyway, stripping out the invalid parts\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: false },\n )\n }\n const selection = resolveFocusPosition(doc, this.options.autofocus) || undefined\n // `editor.view` is not yet available at this time.\n // Therefore we will add all plugins and node views directly afterwards.\n const newState = EditorState.create({\n plugins: this.extensionManager.plugins,\n doc,\n selection,\n })\n\n this.view.setProps({\n state: newState,\n nodeViews: this.extensionManager.nodeViews,\n })\n this.prependClass()\n\n // Let’s store the editor instance in the DOM element.\n // So we’ll have access to it for tests.\n // @ts-ignore\n const dom = this.view.dom as TiptapEditorHTMLElement\n\n dom.editor = this\n }\n\n /**\n * Creates all node views.\n */\n public createNodeViews(): void {\n if (this.view.isDestroyed) {\n return\n }\n\n this.view.setProps({\n nodeViews: this.extensionManager.nodeViews,\n })\n }\n\n /**\n * Prepend class name to element.\n */\n public prependClass(): void {\n this.view.dom.className = `tiptap ${this.view.dom.className}`\n }\n\n public isCapturingTransaction = false\n\n private capturedTransaction: Transaction | null = null\n\n public captureTransaction(fn: Function) {\n this.isCapturingTransaction = true\n fn()\n this.isCapturingTransaction = false\n\n const tr = this.capturedTransaction\n\n this.capturedTransaction = null\n\n return tr\n }\n\n /**\n * The callback over which to send transactions (state updates) produced by the view.\n *\n * @param transaction An editor state transaction\n */\n private dispatchTransaction(transaction: Transaction): void {\n // if the editor / the view of the editor was destroyed\n // the transaction should not be dispatched as there is no view anymore.\n if (this.view.isDestroyed) {\n return\n }\n\n if (this.isCapturingTransaction) {\n if (!this.capturedTransaction) {\n this.capturedTransaction = transaction\n\n return\n }\n\n transaction.steps.forEach(step => this.capturedTransaction?.step(step))\n\n return\n }\n\n const state = this.state.apply(transaction)\n const selectionHasChanged = !this.state.selection.eq(state.selection)\n\n this.emit('beforeTransaction', {\n editor: this,\n transaction,\n nextState: state,\n })\n this.view.updateState(state)\n this.emit('transaction', {\n editor: this,\n transaction,\n })\n\n if (selectionHasChanged) {\n this.emit('selectionUpdate', {\n editor: this,\n transaction,\n })\n }\n\n const focus = transaction.getMeta('focus')\n const blur = transaction.getMeta('blur')\n\n if (focus) {\n this.emit('focus', {\n editor: this,\n event: focus.event,\n transaction,\n })\n }\n\n if (blur) {\n this.emit('blur', {\n editor: this,\n event: blur.event,\n transaction,\n })\n }\n\n if (!transaction.docChanged || transaction.getMeta('preventUpdate')) {\n return\n }\n\n this.emit('update', {\n editor: this,\n transaction,\n })\n }\n\n /**\n * Get attributes of the currently selected node or mark.\n */\n public getAttributes(nameOrType: string | NodeType | MarkType): Record {\n return getAttributes(this.state, nameOrType)\n }\n\n /**\n * Returns if the currently selected node or mark is active.\n *\n * @param name Name of the node or mark\n * @param attributes Attributes of the node or mark\n */\n public isActive(name: string, attributes?: {}): boolean\n public isActive(attributes: {}): boolean\n public isActive(nameOrAttributes: string, attributesOrUndefined?: {}): boolean {\n const name = typeof nameOrAttributes === 'string' ? nameOrAttributes : null\n\n const attributes = typeof nameOrAttributes === 'string' ? attributesOrUndefined : nameOrAttributes\n\n return isActive(this.state, name, attributes)\n }\n\n /**\n * Get the document as JSON.\n */\n public getJSON(): JSONContent {\n return this.state.doc.toJSON()\n }\n\n /**\n * Get the document as HTML.\n */\n public getHTML(): string {\n return getHTMLFromFragment(this.state.doc.content, this.schema)\n }\n\n /**\n * Get the document as text.\n */\n public getText(options?: {\n blockSeparator?: string\n textSerializers?: Record\n }): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n\n return getText(this.state.doc, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(this.schema),\n ...textSerializers,\n },\n })\n }\n\n /**\n * Check if there is no content.\n */\n public get isEmpty(): boolean {\n return isNodeEmpty(this.state.doc)\n }\n\n /**\n * Get the number of characters for the current document.\n *\n * @deprecated\n */\n public getCharacterCount(): number {\n console.warn(\n '[tiptap warn]: \"editor.getCharacterCount()\" is deprecated. Please use \"editor.storage.characterCount.characters()\" instead.',\n )\n\n return this.state.doc.content.size - 2\n }\n\n /**\n * Destroy the editor.\n */\n public destroy(): void {\n this.emit('destroy')\n\n if (this.view) {\n this.view.destroy()\n }\n\n this.removeAllListeners()\n }\n\n /**\n * Check if the editor is already destroyed.\n */\n public get isDestroyed(): boolean {\n // @ts-ignore\n return !this.view?.docView\n }\n\n public $node(selector: string, attributes?: { [key: string]: any }): NodePos | null {\n return this.$doc?.querySelector(selector, attributes) || null\n }\n\n public $nodes(selector: string, attributes?: { [key: string]: any }): NodePos[] | null {\n return this.$doc?.querySelectorAll(selector, attributes) || null\n }\n\n public $pos(pos: number) {\n const $pos = this.state.doc.resolve(pos)\n\n return new NodePos($pos, this)\n }\n\n get $doc() {\n return this.$pos(0)\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a mark when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function markInputRule(config: {\n find: InputRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n const markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a node when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function nodeInputRule(config: {\n /**\n * The regex to match.\n */\n find: InputRuleFinder\n\n /**\n * The node type to add.\n */\n type: NodeType\n\n /**\n * A function that returns the attributes for the node\n * can also be an object of attributes\n */\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const { tr } = state\n const start = range.from\n let end = range.to\n\n const newNode = config.type.create(attributes)\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n let matchStart = start + offset\n\n if (matchStart > end) {\n matchStart = end\n } else {\n end = matchStart + match[1].length\n }\n\n // insert last typed character\n const lastChar = match[0][match[0].length - 1]\n\n tr.insertText(lastChar, start + match[0].length - 1)\n\n // insert node from input rule\n tr.replaceWith(matchStart, end, newNode)\n } else if (match[0]) {\n const insertionStart = config.type.isInline ? start : start - 1\n\n tr.insert(insertionStart, config.type.create(attributes)).delete(\n tr.mapping.map(start),\n tr.mapping.map(end),\n )\n }\n\n tr.scrollIntoView()\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that changes the type of a textblock when the\n * matched text is typed into it. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textblockTypeInputRule(config: {\n find: InputRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const $start = state.doc.resolve(range.from)\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), config.type)) {\n return null\n }\n\n state.tr\n .delete(range.from, range.to)\n .setBlockType(range.from, range.from, config.type, attributes)\n },\n })\n}\n","import { InputRule, InputRuleFinder } from '../InputRule.js'\n\n/**\n * Build an input rule that replaces text when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textInputRule(config: {\n find: InputRuleFinder,\n replace: string,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Node as ProseMirrorNode, NodeType } from '@tiptap/pm/model'\nimport { canJoin, findWrapping } from '@tiptap/pm/transform'\n\nimport { Editor } from '../Editor.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule for automatically wrapping a textblock when a\n * given string is typed. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n *\n * `type` is the type of node to wrap in.\n *\n * By default, if there’s a node with the same type above the newly\n * wrapped node, the rule will try to join those\n * two nodes. You can pass a join predicate, which takes a regular\n * expression match and the node before the wrapped node, and can\n * return a boolean to indicate whether a join should happen.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function wrappingInputRule(config: {\n find: InputRuleFinder,\n type: NodeType,\n keepMarks?: boolean,\n keepAttributes?: boolean,\n editor?: Editor\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n ,\n joinPredicate?: (match: ExtendedRegExpMatchArray, node: ProseMirrorNode) => boolean,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({\n state, range, match, chain,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const tr = state.tr.delete(range.from, range.to)\n const $start = tr.doc.resolve(range.from)\n const blockRange = $start.blockRange()\n const wrapping = blockRange && findWrapping(blockRange, config.type, attributes)\n\n if (!wrapping) {\n return null\n }\n\n tr.wrap(blockRange, wrapping)\n\n if (config.keepMarks && config.editor) {\n const { selection, storedMarks } = state\n const { splittableMarks } = config.editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n }\n if (config.keepAttributes) {\n /** If the nodeType is `bulletList` or `orderedList` set the `nodeType` as `listItem` */\n const nodeType = config.type.name === 'bulletList' || config.type.name === 'orderedList' ? 'listItem' : 'taskList'\n\n chain().updateAttributes(nodeType, attributes).run()\n }\n\n const before = tr.doc.resolve(range.from - 1).nodeBefore\n\n if (\n before\n && before.type === config.type\n && canJoin(tr.doc, range.from - 1)\n && (!config.joinPredicate || config.joinPredicate(match, before))\n ) {\n tr.join(range.from - 1)\n }\n },\n })\n}\n","import {\n DOMOutputSpec, Mark as ProseMirrorMark, MarkSpec, MarkType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { MarkConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n export interface MarkConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Keep mark after split node\n */\n keepOnSplit?: boolean | (() => boolean)\n\n /**\n * Inclusive\n */\n inclusive?:\n | MarkSpec['inclusive']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inclusive']\n editor?: Editor\n }) => MarkSpec['inclusive'])\n\n /**\n * Excludes\n */\n excludes?:\n | MarkSpec['excludes']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['excludes']\n editor?: Editor\n }) => MarkSpec['excludes'])\n\n /**\n * Marks this Mark as exitable\n */\n exitable?: boolean | (() => boolean)\n\n /**\n * Group\n */\n group?:\n | MarkSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => MarkSpec['group'])\n\n /**\n * Spanning\n */\n spanning?:\n | MarkSpec['spanning']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['spanning']\n editor?: Editor\n }) => MarkSpec['spanning'])\n\n /**\n * Code\n */\n code?:\n | boolean\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => boolean)\n\n /**\n * Parse HTML\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => MarkSpec['parseDOM']\n\n /**\n * Render HTML\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n mark: ProseMirrorMark\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * Attributes\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Mark class is used to create custom mark extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Mark {\n type = 'mark'\n\n name = 'mark'\n\n parent: Mark | null = null\n\n child: Mark | null = null\n\n options: Options\n\n storage: Storage\n\n config: MarkConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Mark(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Mark(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n\n static handleExit({ editor, mark }: { editor: Editor; mark: Mark }) {\n const { tr } = editor.state\n const currentPos = editor.state.selection.$from\n const isAtEnd = currentPos.pos === currentPos.end()\n\n if (isAtEnd) {\n const currentMarks = currentPos.marks()\n const isInMark = !!currentMarks.find(m => m?.type.name === mark.name)\n\n if (!isInMark) {\n return false\n }\n\n const removeMark = currentMarks.find(m => m?.type.name === mark.name)\n\n if (removeMark) {\n tr.removeStoredMark(removeMark)\n }\n tr.insertText(' ', currentPos.pos)\n\n editor.view.dispatch(tr)\n\n return true\n }\n\n return false\n }\n}\n","import {\n DOMOutputSpec, Node as ProseMirrorNode, NodeSpec, NodeType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { NodeConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n NodeViewRenderer,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface NodeConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n editor?: Editor\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Node View\n */\n addNodeView?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addNodeView']\n }) => NodeViewRenderer)\n | null\n\n /**\n * Defines if this node should be a top level node (doc)\n * @default false\n * @example true\n */\n topNode?: boolean\n\n /**\n * The content expression for this node, as described in the [schema\n * guide](/docs/guide/#schema.content_expressions). When not given,\n * the node does not allow any content.\n *\n * You can read more about it on the Prosemirror documentation here\n * @see https://prosemirror.net/docs/guide/#schema.content_expressions\n * @default undefined\n * @example content: 'block+'\n * @example content: 'headline paragraph block*'\n */\n content?:\n | NodeSpec['content']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['content']\n editor?: Editor\n }) => NodeSpec['content'])\n\n /**\n * The marks that are allowed inside of this node. May be a\n * space-separated string referring to mark names or groups, `\"_\"`\n * to explicitly allow all marks, or `\"\"` to disallow marks. When\n * not given, nodes with inline content default to allowing all\n * marks, other nodes default to not allowing marks.\n *\n * @example marks: 'strong em'\n */\n marks?:\n | NodeSpec['marks']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['marks']\n editor?: Editor\n }) => NodeSpec['marks'])\n\n /**\n * The group or space-separated groups to which this node belongs,\n * which can be referred to in the content expressions for the\n * schema.\n *\n * By default Tiptap uses the groups 'block' and 'inline' for nodes. You\n * can also use custom groups if you want to group specific nodes together\n * and handle them in your schema.\n * @example group: 'block'\n * @example group: 'inline'\n * @example group: 'customBlock' // this uses a custom group\n */\n group?:\n | NodeSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => NodeSpec['group'])\n\n /**\n * Should be set to true for inline nodes. (Implied for text nodes.)\n */\n inline?:\n | NodeSpec['inline']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inline']\n editor?: Editor\n }) => NodeSpec['inline'])\n\n /**\n * Can be set to true to indicate that, though this isn't a [leaf\n * node](https://prosemirror.net/docs/ref/#model.NodeType.isLeaf), it doesn't have directly editable\n * content and should be treated as a single unit in the view.\n *\n * @example atom: true\n */\n atom?:\n | NodeSpec['atom']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['atom']\n editor?: Editor\n }) => NodeSpec['atom'])\n\n /**\n * Controls whether nodes of this type can be selected as a [node\n * selection](https://prosemirror.net/docs/ref/#state.NodeSelection). Defaults to true for non-text\n * nodes.\n *\n * @default true\n * @example selectable: false\n */\n selectable?:\n | NodeSpec['selectable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['selectable']\n editor?: Editor\n }) => NodeSpec['selectable'])\n\n /**\n * Determines whether nodes of this type can be dragged without\n * being selected. Defaults to false.\n *\n * @default: false\n * @example: draggable: true\n */\n draggable?:\n | NodeSpec['draggable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['draggable']\n editor?: Editor\n }) => NodeSpec['draggable'])\n\n /**\n * Can be used to indicate that this node contains code, which\n * causes some commands to behave differently.\n */\n code?:\n | NodeSpec['code']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => NodeSpec['code'])\n\n /**\n * Controls way whitespace in this a node is parsed. The default is\n * `\"normal\"`, which causes the [DOM parser](https://prosemirror.net/docs/ref/#model.DOMParser) to\n * collapse whitespace in normal mode, and normalize it (replacing\n * newlines and such with spaces) otherwise. `\"pre\"` causes the\n * parser to preserve spaces inside the node. When this option isn't\n * given, but [`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) is true, `whitespace`\n * will default to `\"pre\"`. Note that this option doesn't influence\n * the way the node is rendered—that should be handled by `toDOM`\n * and/or styling.\n */\n whitespace?:\n | NodeSpec['whitespace']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['whitespace']\n editor?: Editor\n }) => NodeSpec['whitespace'])\n\n /**\n * When enabled, enables both\n * [`definingAsContext`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext) and\n * [`definingForContent`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n *\n * @default false\n * @example isolating: true\n */\n defining?:\n | NodeSpec['defining']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['defining']\n editor?: Editor\n }) => NodeSpec['defining'])\n\n /**\n * When enabled (default is false), the sides of nodes of this type\n * count as boundaries that regular editing operations, like\n * backspacing or lifting, won't cross. An example of a node that\n * should probably have this enabled is a table cell.\n */\n isolating?:\n | NodeSpec['isolating']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['isolating']\n editor?: Editor\n }) => NodeSpec['isolating'])\n\n /**\n * Associates DOM parser information with this node, which can be\n * used by [`DOMParser.fromSchema`](https://prosemirror.net/docs/ref/#model.DOMParser^fromSchema) to\n * automatically derive a parser. The `node` field in the rules is\n * implied (the name of this node will be filled in automatically).\n * If you supply your own parser, you do not need to also specify\n * parsing rules in your schema.\n *\n * @example parseHTML: [{ tag: 'div', attrs: { 'data-id': 'my-block' } }]\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => NodeSpec['parseDOM']\n\n /**\n * A description of a DOM structure. Can be either a string, which is\n * interpreted as a text node, a DOM node, which is interpreted as\n * itself, a `{dom, contentDOM}` object, or an array.\n *\n * An array describes a DOM element. The first value in the array\n * should be a string—the name of the DOM element, optionally prefixed\n * by a namespace URL and a space. If the second element is plain\n * object, it is interpreted as a set of attributes for the element.\n * Any elements after that (including the 2nd if it's not an attribute\n * object) are interpreted as children of the DOM elements, and must\n * either be valid `DOMOutputSpec` values, or the number zero.\n *\n * The number zero (pronounced “hole”) is used to indicate the place\n * where a node's child nodes should be inserted. If it occurs in an\n * output spec, it should be the only child element in its parent\n * node.\n *\n * @example toDOM: ['div[data-id=\"my-block\"]', { class: 'my-block' }, 0]\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * renders the node as text\n * @example renderText: () => 'foo\n */\n renderText?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderText']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n pos: number\n parent: ProseMirrorNode\n index: number\n },\n ) => string)\n | null\n\n /**\n * Add attributes to the node\n * @example addAttributes: () => ({ class: 'foo' })\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Node class is used to create custom node extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Node {\n type = 'node'\n\n name = 'node'\n\n parent: Node | null = null\n\n child: Node | null = null\n\n options: Options\n\n storage: Storage\n\n config: NodeConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Node(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Node(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","export function isAndroid(): boolean {\n return navigator.platform === 'Android' || /android/i.test(navigator.userAgent)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { NodeSelection } from '@tiptap/pm/state'\nimport { NodeView as ProseMirrorNodeView } from '@tiptap/pm/view'\n\nimport { Editor as CoreEditor } from './Editor.js'\nimport { Node } from './Node.js'\nimport { DecorationWithType, NodeViewRendererOptions, NodeViewRendererProps } from './types.js'\nimport { isAndroid } from './utilities/isAndroid.js'\nimport { isiOS } from './utilities/isiOS.js'\n\n/**\n * Node views are used to customize the rendered DOM structure of a node.\n * @see https://tiptap.dev/guide/node-views\n */\nexport class NodeView<\n Component,\n NodeEditor extends CoreEditor = CoreEditor,\n Options extends NodeViewRendererOptions = NodeViewRendererOptions,\n> implements ProseMirrorNodeView {\n component: Component\n\n editor: NodeEditor\n\n options: Options\n\n extension: Node\n\n node: ProseMirrorNode\n\n decorations: DecorationWithType[]\n\n getPos: any\n\n isDragging = false\n\n constructor(component: Component, props: NodeViewRendererProps, options?: Partial) {\n this.component = component\n this.editor = props.editor as NodeEditor\n this.options = {\n stopEvent: null,\n ignoreMutation: null,\n ...options,\n } as Options\n this.extension = props.extension\n this.node = props.node\n this.decorations = props.decorations as DecorationWithType[]\n this.getPos = props.getPos\n this.mount()\n }\n\n mount() {\n // eslint-disable-next-line\n return\n }\n\n get dom(): HTMLElement {\n return this.editor.view.dom as HTMLElement\n }\n\n get contentDOM(): HTMLElement | null {\n return null\n }\n\n onDragStart(event: DragEvent) {\n const { view } = this.editor\n const target = event.target as HTMLElement\n\n // get the drag handle element\n // `closest` is not available for text nodes so we may have to use its parent\n const dragHandle = target.nodeType === 3\n ? target.parentElement?.closest('[data-drag-handle]')\n : target.closest('[data-drag-handle]')\n\n if (!this.dom || this.contentDOM?.contains(target) || !dragHandle) {\n return\n }\n\n let x = 0\n let y = 0\n\n // calculate offset for drag element if we use a different drag handle element\n if (this.dom !== dragHandle) {\n const domBox = this.dom.getBoundingClientRect()\n const handleBox = dragHandle.getBoundingClientRect()\n\n // In React, we have to go through nativeEvent to reach offsetX/offsetY.\n const offsetX = event.offsetX ?? (event as any).nativeEvent?.offsetX\n const offsetY = event.offsetY ?? (event as any).nativeEvent?.offsetY\n\n x = handleBox.x - domBox.x + offsetX\n y = handleBox.y - domBox.y + offsetY\n }\n\n event.dataTransfer?.setDragImage(this.dom, x, y)\n\n // we need to tell ProseMirror that we want to move the whole node\n // so we create a NodeSelection\n const selection = NodeSelection.create(view.state.doc, this.getPos())\n const transaction = view.state.tr.setSelection(selection)\n\n view.dispatch(transaction)\n }\n\n stopEvent(event: Event) {\n if (!this.dom) {\n return false\n }\n\n if (typeof this.options.stopEvent === 'function') {\n return this.options.stopEvent({ event })\n }\n\n const target = event.target as HTMLElement\n const isInElement = this.dom.contains(target) && !this.contentDOM?.contains(target)\n\n // any event from child nodes should be handled by ProseMirror\n if (!isInElement) {\n return false\n }\n\n const isDragEvent = event.type.startsWith('drag')\n const isDropEvent = event.type === 'drop'\n const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable\n\n // any input event within node views should be ignored by ProseMirror\n if (isInput && !isDropEvent && !isDragEvent) {\n return true\n }\n\n const { isEditable } = this.editor\n const { isDragging } = this\n const isDraggable = !!this.node.type.spec.draggable\n const isSelectable = NodeSelection.isSelectable(this.node)\n const isCopyEvent = event.type === 'copy'\n const isPasteEvent = event.type === 'paste'\n const isCutEvent = event.type === 'cut'\n const isClickEvent = event.type === 'mousedown'\n\n // ProseMirror tries to drag selectable nodes\n // even if `draggable` is set to `false`\n // this fix prevents that\n if (!isDraggable && isSelectable && isDragEvent) {\n event.preventDefault()\n }\n\n if (isDraggable && isDragEvent && !isDragging) {\n event.preventDefault()\n return false\n }\n\n // we have to store that dragging started\n if (isDraggable && isEditable && !isDragging && isClickEvent) {\n const dragHandle = target.closest('[data-drag-handle]')\n const isValidDragHandle = dragHandle && (this.dom === dragHandle || this.dom.contains(dragHandle))\n\n if (isValidDragHandle) {\n this.isDragging = true\n\n document.addEventListener(\n 'dragend',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'drop',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'mouseup',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n }\n }\n\n // these events are handled by prosemirror\n if (\n isDragging\n || isDropEvent\n || isCopyEvent\n || isPasteEvent\n || isCutEvent\n || (isClickEvent && isSelectable)\n ) {\n return false\n }\n\n return true\n }\n\n ignoreMutation(mutation: MutationRecord | { type: 'selection'; target: Element }) {\n if (!this.dom || !this.contentDOM) {\n return true\n }\n\n if (typeof this.options.ignoreMutation === 'function') {\n return this.options.ignoreMutation({ mutation })\n }\n\n // a leaf/atom node is like a black box for ProseMirror\n // and should be fully handled by the node view\n if (this.node.isLeaf || this.node.isAtom) {\n return true\n }\n\n // ProseMirror should handle any selections\n if (mutation.type === 'selection') {\n return false\n }\n\n // try to prevent a bug on iOS and Android that will break node views on enter\n // this is because ProseMirror can’t preventDispatch on enter\n // this will lead to a re-render of the node view on enter\n // see: https://github.com/ueberdosis/tiptap/issues/1214\n // see: https://github.com/ueberdosis/tiptap/issues/2534\n if (\n this.dom.contains(mutation.target)\n && mutation.type === 'childList'\n && (isiOS() || isAndroid())\n && this.editor.isFocused\n ) {\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ] as HTMLElement[]\n\n // we’ll check if every changed node is contentEditable\n // to make sure it’s probably mutated by ProseMirror\n if (changedNodes.every(node => node.isContentEditable)) {\n return false\n }\n }\n\n // we will allow mutation contentDOM with attributes\n // so we can for example adding classes within our node view\n if (this.contentDOM === mutation.target && mutation.type === 'attributes') {\n return true\n }\n\n // ProseMirror should handle any changes within contentDOM\n if (this.contentDOM.contains(mutation.target)) {\n return false\n }\n\n return true\n }\n\n updateAttributes(attributes: {}) {\n this.editor.commands.command(({ tr }) => {\n const pos = this.getPos()\n\n tr.setNodeMarkup(pos, undefined, {\n ...this.node.attrs,\n ...attributes,\n })\n\n return true\n })\n }\n\n deleteNode(): void {\n const from = this.getPos()\n const to = from + this.node.nodeSize\n\n this.editor.commands.deleteRange({ from, to })\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an paste rule that adds a mark when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function markPasteRule(config: {\n find: PasteRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({\n state, range, match, pasteEvent,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n let markEnd = range.to\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","// source: https://stackoverflow.com/a/6969486\nexport function escapeForRegEx(string: string): string {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n}\n","export function isString(value: any): value is string {\n return typeof value === 'string'\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray, JSONContent } from '../types.js'\nimport { callOrReturn } from '../utilities/index.js'\n\n/**\n * Build an paste rule that adds a node when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function nodePasteRule(config: {\n find: PasteRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n getContent?:\n | JSONContent[]\n | ((attrs: Record) => JSONContent[])\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler({\n match, chain, range, pasteEvent,\n }) {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n const content = callOrReturn(config.getContent, undefined, attributes)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const node = { type: config.type.name, attrs: attributes } as JSONContent\n\n if (content) {\n node.content = content\n }\n\n if (match.input) {\n chain().deleteRange(range).insertContentAt(range.from, node)\n }\n },\n })\n}\n","import { PasteRule, PasteRuleFinder } from '../PasteRule.js'\n\n/**\n * Build an paste rule that replaces text when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function textPasteRule(config: {\n find: PasteRuleFinder,\n replace: string,\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Transaction } from '@tiptap/pm/state'\n\nexport interface TrackerResult {\n position: number\n deleted: boolean\n}\n\nexport class Tracker {\n transaction: Transaction\n\n currentStep: number\n\n constructor(transaction: Transaction) {\n this.transaction = transaction\n this.currentStep = this.transaction.steps.length\n }\n\n map(position: number): TrackerResult {\n let deleted = false\n\n const mappedPosition = this.transaction.steps\n .slice(this.currentStep)\n .reduce((newPosition, step) => {\n const mapResult = step.getMap().mapResult(newPosition)\n\n if (mapResult.deleted) {\n deleted = true\n }\n\n return mapResult.pos\n }, position)\n\n return {\n position: mappedPosition,\n deleted,\n }\n }\n}\n"],"names":["Schema","run","Plugin","keymap","PluginKey","liftTarget","originalCreateParagraphNear","state","TextSelection","originalDeleteSelection","originalExitCode","Selection","Fragment","DOMParser","ReplaceStep","ReplaceAroundStep","originalJoinUp","originalJoinDown","originalJoinBackward","originalJoinForward","joinPoint","originalCommand","originalLift","originalLiftEmptyBlock","originalLiftListItem","originalNewlineInCode","originalSelectNodeBackward","originalSelectNodeForward","originalSelectParentNode","originalSelectTextblockEnd","originalSelectTextblockStart","transform","Transform","DOMSerializer","Node","NodeSelection","setBlockType","originalSinkListItem","canSplit","Slice","canJoin","originalWrapIn","originalWrapInList","EditorView","EditorState","findWrapping"],"mappings":"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"} \ No newline at end of file -diff --git a/node_modules/@tiptap/core/dist/index.js b/node_modules/@tiptap/core/dist/index.js +diff --git a/dist/index.js b/dist/index.js index 03323f5..b8a7547 100644 ---- a/node_modules/@tiptap/core/dist/index.js -+++ b/node_modules/@tiptap/core/dist/index.js +--- a/dist/index.js ++++ b/dist/index.js @@ -302,47 +302,62 @@ function getNodeType(nameOrType, schema) { } @@ -659,19 +659,19 @@ index 03323f5..b8a7547 100644 this.prependClass(); // Let’s store the editor instance in the DOM element. // So we’ll have access to it for tests. -diff --git a/node_modules/@tiptap/core/dist/index.js.map b/node_modules/@tiptap/core/dist/index.js.map +diff --git a/dist/index.js.map b/dist/index.js.map index cfe5341..73ec5bc 100644 ---- a/node_modules/@tiptap/core/dist/index.js.map -+++ b/node_modules/@tiptap/core/dist/index.js.map +--- a/dist/index.js.map ++++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/helpers/createChainableState.ts","../src/CommandManager.ts","../src/EventEmitter.ts","../src/helpers/getExtensionField.ts","../src/helpers/splitExtensions.ts","../src/helpers/getAttributesFromExtensions.ts","../src/helpers/getNodeType.ts","../src/utilities/mergeAttributes.ts","../src/helpers/getRenderedAttributes.ts","../src/utilities/isFunction.ts","../src/utilities/callOrReturn.ts","../src/utilities/isEmptyObject.ts","../src/utilities/fromString.ts","../src/helpers/injectExtensionAttributesToParseRule.ts","../src/helpers/getSchemaByResolvedExtensions.ts","../src/helpers/getSchemaTypeByName.ts","../src/helpers/isExtensionRulesEnabled.ts","../src/helpers/getTextContentFromNodes.ts","../src/utilities/isRegExp.ts","../src/InputRule.ts","../src/utilities/isNumber.ts","../src/PasteRule.ts","../src/utilities/findDuplicates.ts","../src/ExtensionManager.ts","../src/utilities/isPlainObject.ts","../src/utilities/mergeDeep.ts","../src/Extension.ts","../src/helpers/getTextBetween.ts","../src/helpers/getTextSerializersFromSchema.ts","../src/extensions/clipboardTextSerializer.ts","../src/commands/blur.ts","../src/commands/clearContent.ts","../src/commands/clearNodes.ts","../src/commands/command.ts","../src/commands/createParagraphNear.ts","../src/commands/cut.ts","../src/commands/deleteCurrentNode.ts","../src/commands/deleteNode.ts","../src/commands/deleteRange.ts","../src/commands/deleteSelection.ts","../src/commands/enter.ts","../src/commands/exitCode.ts","../src/utilities/objectIncludes.ts","../src/helpers/getMarkRange.ts","../src/helpers/getMarkType.ts","../src/commands/extendMarkRange.ts","../src/commands/first.ts","../src/helpers/isTextSelection.ts","../src/utilities/minMax.ts","../src/helpers/resolveFocusPosition.ts","../src/utilities/isiOS.ts","../src/commands/focus.ts","../src/commands/forEach.ts","../src/commands/insertContent.ts","../src/utilities/elementFromString.ts","../src/helpers/createNodeFromContent.ts","../src/helpers/selectionToInsertionEnd.ts","../src/commands/insertContentAt.ts","../src/commands/join.ts","../src/commands/joinItemBackward.ts","../src/commands/joinItemForward.ts","../src/commands/joinTextblockBackward.ts","../src/commands/joinTextblockForward.ts","../src/utilities/isMacOS.ts","../src/commands/keyboardShortcut.ts","../src/helpers/isNodeActive.ts","../src/commands/lift.ts","../src/commands/liftEmptyBlock.ts","../src/commands/liftListItem.ts","../src/commands/newlineInCode.ts","../src/helpers/getSchemaTypeNameByName.ts","../src/utilities/deleteProps.ts","../src/commands/resetAttributes.ts","../src/commands/scrollIntoView.ts","../src/commands/selectAll.ts","../src/commands/selectNodeBackward.ts","../src/commands/selectNodeForward.ts","../src/commands/selectParentNode.ts","../src/commands/selectTextblockEnd.ts","../src/commands/selectTextblockStart.ts","../src/helpers/createDocument.ts","../src/commands/setContent.ts","../src/helpers/getMarkAttributes.ts","../src/helpers/combineTransactionSteps.ts","../src/helpers/defaultBlockAt.ts","../src/helpers/findChildren.ts","../src/helpers/findChildrenInRange.ts","../src/helpers/findParentNodeClosestToPos.ts","../src/helpers/findParentNode.ts","../src/helpers/getHTMLFromFragment.ts","../src/helpers/getSchema.ts","../src/helpers/generateHTML.ts","../src/helpers/generateJSON.ts","../src/helpers/getText.ts","../src/helpers/generateText.ts","../src/helpers/getNodeAttributes.ts","../src/helpers/getAttributes.ts","../src/utilities/removeDuplicates.ts","../src/helpers/getChangedRanges.ts","../src/helpers/getDebugJSON.ts","../src/helpers/getMarksBetween.ts","../src/helpers/getNodeAtPosition.ts","../src/helpers/getSplittedAttributes.ts","../src/helpers/isMarkActive.ts","../src/helpers/isActive.ts","../src/helpers/isAtEndOfNode.ts","../src/helpers/isAtStartOfNode.ts","../src/helpers/isList.ts","../src/helpers/isNodeEmpty.ts","../src/helpers/isNodeSelection.ts","../src/helpers/posToDOMRect.ts","../src/commands/setMark.ts","../src/commands/setMeta.ts","../src/commands/setNode.ts","../src/commands/setNodeSelection.ts","../src/commands/setTextSelection.ts","../src/commands/sinkListItem.ts","../src/commands/splitBlock.ts","../src/commands/splitListItem.ts","../src/commands/toggleList.ts","../src/commands/toggleMark.ts","../src/commands/toggleNode.ts","../src/commands/toggleWrap.ts","../src/commands/undoInputRule.ts","../src/commands/unsetAllMarks.ts","../src/commands/unsetMark.ts","../src/commands/updateAttributes.ts","../src/commands/wrapIn.ts","../src/commands/wrapInList.ts","../src/extensions/commands.ts","../src/extensions/editable.ts","../src/extensions/focusEvents.ts","../src/extensions/keymap.ts","../src/extensions/tabindex.ts","../src/NodePos.ts","../src/style.ts","../src/utilities/createStyleTag.ts","../src/Editor.ts","../src/inputRules/markInputRule.ts","../src/inputRules/nodeInputRule.ts","../src/inputRules/textblockTypeInputRule.ts","../src/inputRules/textInputRule.ts","../src/inputRules/wrappingInputRule.ts","../src/Mark.ts","../src/Node.ts","../src/utilities/isAndroid.ts","../src/NodeView.ts","../src/pasteRules/markPasteRule.ts","../src/utilities/escapeForRegEx.ts","../src/utilities/isString.ts","../src/pasteRules/nodePasteRule.ts","../src/pasteRules/textPasteRule.ts","../src/Tracker.ts"],"sourcesContent":["import { EditorState, Transaction } from '@tiptap/pm/state'\n\n/**\n * Takes a Transaction & Editor State and turns it into a chainable state object\n * @param config The transaction and state to create the chainable state from\n * @returns A chainable Editor state object\n */\nexport function createChainableState(config: {\n transaction: Transaction\n state: EditorState\n}): EditorState {\n const { state, transaction } = config\n let { selection } = transaction\n let { doc } = transaction\n let { storedMarks } = transaction\n\n return {\n ...state,\n apply: state.apply.bind(state),\n applyTransaction: state.applyTransaction.bind(state),\n plugins: state.plugins,\n schema: state.schema,\n reconfigure: state.reconfigure.bind(state),\n toJSON: state.toJSON.bind(state),\n get storedMarks() {\n return storedMarks\n },\n get selection() {\n return selection\n },\n get doc() {\n return doc\n },\n get tr() {\n selection = transaction.selection\n doc = transaction.doc\n storedMarks = transaction.storedMarks\n\n return transaction\n },\n }\n}\n","import { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n AnyCommands, CanCommands, ChainedCommands, CommandProps, SingleCommands,\n} from './types.js'\n\nexport class CommandManager {\n editor: Editor\n\n rawCommands: AnyCommands\n\n customState?: EditorState\n\n constructor(props: { editor: Editor; state?: EditorState }) {\n this.editor = props.editor\n this.rawCommands = this.editor.extensionManager.commands\n this.customState = props.state\n }\n\n get hasCustomState(): boolean {\n return !!this.customState\n }\n\n get state(): EditorState {\n return this.customState || this.editor.state\n }\n\n get commands(): SingleCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const { tr } = state\n const props = this.buildProps(tr)\n\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const method = (...args: any[]) => {\n const callback = command(...args)(props)\n\n if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {\n view.dispatch(tr)\n }\n\n return callback\n }\n\n return [name, method]\n }),\n ) as unknown as SingleCommands\n }\n\n get chain(): () => ChainedCommands {\n return () => this.createChain()\n }\n\n get can(): () => CanCommands {\n return () => this.createCan()\n }\n\n public createChain(startTr?: Transaction, shouldDispatch = true): ChainedCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const callbacks: boolean[] = []\n const hasStartTransaction = !!startTr\n const tr = startTr || state.tr\n\n const run = () => {\n if (\n !hasStartTransaction\n && shouldDispatch\n && !tr.getMeta('preventDispatch')\n && !this.hasCustomState\n ) {\n view.dispatch(tr)\n }\n\n return callbacks.every(callback => callback === true)\n }\n\n const chain = {\n ...Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const chainedCommand = (...args: never[]) => {\n const props = this.buildProps(tr, shouldDispatch)\n const callback = command(...args)(props)\n\n callbacks.push(callback)\n\n return chain\n }\n\n return [name, chainedCommand]\n }),\n ),\n run,\n } as unknown as ChainedCommands\n\n return chain\n }\n\n public createCan(startTr?: Transaction): CanCommands {\n const { rawCommands, state } = this\n const dispatch = false\n const tr = startTr || state.tr\n const props = this.buildProps(tr, dispatch)\n const formattedCommands = Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)({ ...props, dispatch: undefined })]\n }),\n ) as unknown as SingleCommands\n\n return {\n ...formattedCommands,\n chain: () => this.createChain(tr, dispatch),\n } as CanCommands\n }\n\n public buildProps(tr: Transaction, shouldDispatch = true): CommandProps {\n const { rawCommands, editor, state } = this\n const { view } = editor\n\n const props: CommandProps = {\n tr,\n editor,\n view,\n state: createChainableState({\n state,\n transaction: tr,\n }),\n dispatch: shouldDispatch ? () => undefined : undefined,\n chain: () => this.createChain(tr, shouldDispatch),\n can: () => this.createCan(tr),\n get commands() {\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)(props)]\n }),\n ) as unknown as SingleCommands\n },\n }\n\n return props\n }\n}\n","type StringKeyOf = Extract\ntype CallbackType<\n T extends Record,\n EventName extends StringKeyOf,\n> = T[EventName] extends any[] ? T[EventName] : [T[EventName]]\ntype CallbackFunction<\n T extends Record,\n EventName extends StringKeyOf,\n> = (...props: CallbackType) => any\n\nexport class EventEmitter> {\n\n private callbacks: { [key: string]: Function[] } = {}\n\n public on>(event: EventName, fn: CallbackFunction): this {\n if (!this.callbacks[event]) {\n this.callbacks[event] = []\n }\n\n this.callbacks[event].push(fn)\n\n return this\n }\n\n public emit>(event: EventName, ...args: CallbackType): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n callbacks.forEach(callback => callback.apply(this, args))\n }\n\n return this\n }\n\n public off>(event: EventName, fn?: CallbackFunction): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n if (fn) {\n this.callbacks[event] = callbacks.filter(callback => callback !== fn)\n } else {\n delete this.callbacks[event]\n }\n }\n\n return this\n }\n\n public removeAllListeners(): void {\n this.callbacks = {}\n }\n}\n","import { AnyExtension, MaybeThisParameterType, RemoveThis } from '../types.js'\n\n/**\n * Returns a field from an extension\n * @param extension The Tiptap extension\n * @param field The field, for example `renderHTML` or `priority`\n * @param context The context object that should be passed as `this` into the function\n * @returns The field value\n */\nexport function getExtensionField(\n extension: AnyExtension,\n field: string,\n context?: Omit, 'parent'>,\n): RemoveThis {\n\n if (extension.config[field] === undefined && extension.parent) {\n return getExtensionField(extension.parent, field, context)\n }\n\n if (typeof extension.config[field] === 'function') {\n const value = extension.config[field].bind({\n ...context,\n parent: extension.parent\n ? getExtensionField(extension.parent, field, context)\n : null,\n })\n\n return value\n }\n\n return extension.config[field]\n}\n","import { Extension } from '../Extension.js'\nimport { Mark } from '../Mark.js'\nimport { Node } from '../Node.js'\nimport { Extensions } from '../types.js'\n\nexport function splitExtensions(extensions: Extensions) {\n const baseExtensions = extensions.filter(extension => extension.type === 'extension') as Extension[]\n const nodeExtensions = extensions.filter(extension => extension.type === 'node') as Node[]\n const markExtensions = extensions.filter(extension => extension.type === 'mark') as Mark[]\n\n return {\n baseExtensions,\n nodeExtensions,\n markExtensions,\n }\n}\n","import { MarkConfig, NodeConfig } from '../index.js'\nimport {\n AnyConfig,\n Attribute,\n Attributes,\n ExtensionAttribute,\n Extensions,\n} from '../types.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { splitExtensions } from './splitExtensions.js'\n\n/**\n * Get a list of all extension attributes defined in `addAttribute` and `addGlobalAttribute`.\n * @param extensions List of extensions\n */\nexport function getAttributesFromExtensions(extensions: Extensions): ExtensionAttribute[] {\n const extensionAttributes: ExtensionAttribute[] = []\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const nodeAndMarkExtensions = [...nodeExtensions, ...markExtensions]\n const defaultAttribute: Required = {\n default: null,\n rendered: true,\n renderHTML: null,\n parseHTML: null,\n keepOnSplit: true,\n isRequired: false,\n }\n\n extensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n extensions: nodeAndMarkExtensions,\n }\n\n const addGlobalAttributes = getExtensionField(\n extension,\n 'addGlobalAttributes',\n context,\n )\n\n if (!addGlobalAttributes) {\n return\n }\n\n const globalAttributes = addGlobalAttributes()\n\n globalAttributes.forEach(globalAttribute => {\n globalAttribute.types.forEach(type => {\n Object\n .entries(globalAttribute.attributes)\n .forEach(([name, attribute]) => {\n extensionAttributes.push({\n type,\n name,\n attribute: {\n ...defaultAttribute,\n ...attribute,\n },\n })\n })\n })\n })\n })\n\n nodeAndMarkExtensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addAttributes = getExtensionField(\n extension,\n 'addAttributes',\n context,\n )\n\n if (!addAttributes) {\n return\n }\n\n // TODO: remove `as Attributes`\n const attributes = addAttributes() as Attributes\n\n Object\n .entries(attributes)\n .forEach(([name, attribute]) => {\n const mergedAttr = {\n ...defaultAttribute,\n ...attribute,\n }\n\n if (typeof mergedAttr?.default === 'function') {\n mergedAttr.default = mergedAttr.default()\n }\n\n if (mergedAttr?.isRequired && mergedAttr?.default === undefined) {\n delete mergedAttr.default\n }\n\n extensionAttributes.push({\n type: extension.name,\n name,\n attribute: mergedAttr,\n })\n })\n })\n\n return extensionAttributes\n}\n","import { NodeType, Schema } from '@tiptap/pm/model'\n\nexport function getNodeType(nameOrType: string | NodeType, schema: Schema): NodeType {\n if (typeof nameOrType === 'string') {\n if (!schema.nodes[nameOrType]) {\n throw Error(\n `There is no node type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.nodes[nameOrType]\n }\n\n return nameOrType\n}\n","export function mergeAttributes(...objects: Record[]): Record {\n return objects\n .filter(item => !!item)\n .reduce((items, item) => {\n const mergedAttributes = { ...items }\n\n Object.entries(item).forEach(([key, value]) => {\n const exists = mergedAttributes[key]\n\n if (!exists) {\n mergedAttributes[key] = value\n\n return\n }\n\n if (key === 'class') {\n const valueClasses: string[] = value ? value.split(' ') : []\n const existingClasses: string[] = mergedAttributes[key] ? mergedAttributes[key].split(' ') : []\n\n const insertClasses = valueClasses.filter(\n valueClass => !existingClasses.includes(valueClass),\n )\n\n mergedAttributes[key] = [...existingClasses, ...insertClasses].join(' ')\n } else if (key === 'style') {\n mergedAttributes[key] = [mergedAttributes[key], value].join('; ')\n } else {\n mergedAttributes[key] = value\n }\n })\n\n return mergedAttributes\n }, {})\n}\n","import { Mark, Node } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { mergeAttributes } from '../utilities/mergeAttributes.js'\n\nexport function getRenderedAttributes(\n nodeOrMark: Node | Mark,\n extensionAttributes: ExtensionAttribute[],\n): Record {\n return extensionAttributes\n .filter(item => item.attribute.rendered)\n .map(item => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: nodeOrMark.attrs[item.name],\n }\n }\n\n return item.attribute.renderHTML(nodeOrMark.attrs) || {}\n })\n .reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {})\n}\n","export function isFunction(value: any): value is Function {\n return typeof value === 'function'\n}\n","import { MaybeReturnType } from '../types.js'\nimport { isFunction } from './isFunction.js'\n\n/**\n * Optionally calls `value` as a function.\n * Otherwise it is returned directly.\n * @param value Function or any value.\n * @param context Optional context to bind to function.\n * @param props Optional props to pass to function.\n */\nexport function callOrReturn(value: T, context: any = undefined, ...props: any[]): MaybeReturnType {\n if (isFunction(value)) {\n if (context) {\n return value.bind(context)(...props)\n }\n\n return value(...props)\n }\n\n return value as MaybeReturnType\n}\n","export function isEmptyObject(value = {}): boolean {\n return Object.keys(value).length === 0 && value.constructor === Object\n}\n","export function fromString(value: any): any {\n if (typeof value !== 'string') {\n return value\n }\n\n if (value.match(/^[+-]?(?:\\d*\\.)?\\d+$/)) {\n return Number(value)\n }\n\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n return value\n}\n","import { ParseRule } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { fromString } from '../utilities/fromString.js'\n\n/**\n * This function merges extension attributes into parserule attributes (`attrs` or `getAttrs`).\n * Cancels when `getAttrs` returned `false`.\n * @param parseRule ProseMirror ParseRule\n * @param extensionAttributes List of attributes to inject\n */\nexport function injectExtensionAttributesToParseRule(\n parseRule: ParseRule,\n extensionAttributes: ExtensionAttribute[],\n): ParseRule {\n if ('style' in parseRule) {\n return parseRule\n }\n\n return {\n ...parseRule,\n getAttrs: (node: HTMLElement) => {\n const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs\n\n if (oldAttributes === false) {\n return false\n }\n\n const newAttributes = extensionAttributes.reduce((items, item) => {\n const value = item.attribute.parseHTML\n ? item.attribute.parseHTML(node)\n : fromString((node).getAttribute(item.name))\n\n if (value === null || value === undefined) {\n return items\n }\n\n return {\n ...items,\n [item.name]: value,\n }\n }, {})\n\n return { ...oldAttributes, ...newAttributes }\n },\n }\n}\n","import {\n MarkSpec, NodeSpec, Schema, TagParseRule,\n} from '@tiptap/pm/model'\n\nimport { Editor, MarkConfig, NodeConfig } from '../index.js'\nimport { AnyConfig, Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { isEmptyObject } from '../utilities/isEmptyObject.js'\nimport { getAttributesFromExtensions } from './getAttributesFromExtensions.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { getRenderedAttributes } from './getRenderedAttributes.js'\nimport { injectExtensionAttributesToParseRule } from './injectExtensionAttributesToParseRule.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nfunction cleanUpSchemaItem(data: T) {\n return Object.fromEntries(\n // @ts-ignore\n Object.entries(data).filter(([key, value]) => {\n if (key === 'attrs' && isEmptyObject(value as {} | undefined)) {\n return false\n }\n\n return value !== null && value !== undefined\n }),\n ) as T\n}\n\n/**\n * Creates a new Prosemirror schema based on the given extensions.\n * @param extensions An array of Tiptap extensions\n * @param editor The editor instance\n * @returns A Prosemirror schema\n */\nexport function getSchemaByResolvedExtensions(extensions: Extensions, editor?: Editor): Schema {\n const allAttributes = getAttributesFromExtensions(extensions)\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const topNode = nodeExtensions.find(extension => getExtensionField(extension, 'topNode'))?.name\n\n const nodes = Object.fromEntries(\n nodeExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraNodeFields = extensions.reduce((fields, e) => {\n const extendNodeSchema = getExtensionField(\n e,\n 'extendNodeSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendNodeSchema ? extendNodeSchema(extension) : {}),\n }\n }, {})\n\n const schema: NodeSpec = cleanUpSchemaItem({\n ...extraNodeFields,\n content: callOrReturn(\n getExtensionField(extension, 'content', context),\n ),\n marks: callOrReturn(getExtensionField(extension, 'marks', context)),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n inline: callOrReturn(getExtensionField(extension, 'inline', context)),\n atom: callOrReturn(getExtensionField(extension, 'atom', context)),\n selectable: callOrReturn(\n getExtensionField(extension, 'selectable', context),\n ),\n draggable: callOrReturn(\n getExtensionField(extension, 'draggable', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n whitespace: callOrReturn(getExtensionField(extension, 'whitespace', context)),\n defining: callOrReturn(\n getExtensionField(extension, 'defining', context),\n ),\n isolating: callOrReturn(\n getExtensionField(extension, 'isolating', context),\n ),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes)) as TagParseRule[]\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = node => renderHTML({\n node,\n HTMLAttributes: getRenderedAttributes(node, extensionAttributes),\n })\n }\n\n const renderText = getExtensionField(\n extension,\n 'renderText',\n context,\n )\n\n if (renderText) {\n schema.toText = renderText\n }\n\n return [extension.name, schema]\n }),\n )\n\n const marks = Object.fromEntries(\n markExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraMarkFields = extensions.reduce((fields, e) => {\n const extendMarkSchema = getExtensionField(\n e,\n 'extendMarkSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendMarkSchema ? extendMarkSchema(extension) : {}),\n }\n }, {})\n\n const schema: MarkSpec = cleanUpSchemaItem({\n ...extraMarkFields,\n inclusive: callOrReturn(\n getExtensionField(extension, 'inclusive', context),\n ),\n excludes: callOrReturn(\n getExtensionField(extension, 'excludes', context),\n ),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n spanning: callOrReturn(\n getExtensionField(extension, 'spanning', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes))\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = mark => renderHTML({\n mark,\n HTMLAttributes: getRenderedAttributes(mark, extensionAttributes),\n })\n }\n\n return [extension.name, schema]\n }),\n )\n\n return new Schema({\n topNode,\n nodes,\n marks,\n })\n}\n","import { MarkType, NodeType, Schema } from '@tiptap/pm/model'\n\n/**\n * Tries to get a node or mark type by its name.\n * @param name The name of the node or mark type\n * @param schema The Prosemiror schema to search in\n * @returns The node or mark type, or null if it doesn't exist\n */\nexport function getSchemaTypeByName(name: string, schema: Schema): NodeType | MarkType | null {\n return schema.nodes[name] || schema.marks[name] || null\n}\n","import { AnyExtension, EnableRules } from '../types.js'\n\nexport function isExtensionRulesEnabled(extension: AnyExtension, enabled: EnableRules): boolean {\n if (Array.isArray(enabled)) {\n return enabled.some(enabledExtension => {\n const name = typeof enabledExtension === 'string'\n ? enabledExtension\n : enabledExtension.name\n\n return name === extension.name\n })\n }\n\n return enabled\n}\n","import { ResolvedPos } from '@tiptap/pm/model'\n\n/**\n * Returns the text content of a resolved prosemirror position\n * @param $from The resolved position to get the text content from\n * @param maxMatch The maximum number of characters to match\n * @returns The text content\n */\nexport const getTextContentFromNodes = ($from: ResolvedPos, maxMatch = 500) => {\n let textBefore = ''\n\n const sliceEndPos = $from.parentOffset\n\n $from.parent.nodesBetween(\n Math.max(0, sliceEndPos - maxMatch),\n sliceEndPos,\n (node, pos, parent, index) => {\n const chunk = node.type.spec.toText?.({\n node,\n pos,\n parent,\n index,\n })\n || node.textContent\n || '%leaf%'\n\n textBefore += node.isAtom && !node.isText ? chunk : chunk.slice(0, Math.max(0, sliceEndPos - pos))\n },\n )\n\n return textBefore\n}\n","export function isRegExp(value: any): value is RegExp {\n return Object.prototype.toString.call(value) === '[object RegExp]'\n}\n","import { EditorState, Plugin, TextSelection } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport { getTextContentFromNodes } from './helpers/getTextContentFromNodes.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type InputRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type InputRuleFinder = RegExp | ((text: string) => InputRuleMatch | null)\n\nexport class InputRule {\n find: InputRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n\n constructor(config: {\n find: InputRuleFinder\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst inputRuleMatcherHandler = (\n text: string,\n find: InputRuleFinder,\n): ExtendedRegExpMatchArray | null => {\n if (isRegExp(find)) {\n return find.exec(text)\n }\n\n const inputRuleMatch = find(text)\n\n if (!inputRuleMatch) {\n return null\n }\n\n const result: ExtendedRegExpMatchArray = [inputRuleMatch.text]\n\n result.index = inputRuleMatch.index\n result.input = text\n result.data = inputRuleMatch.data\n\n if (inputRuleMatch.replaceWith) {\n if (!inputRuleMatch.text.includes(inputRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".',\n )\n }\n\n result.push(inputRuleMatch.replaceWith)\n }\n\n return result\n}\n\nfunction run(config: {\n editor: Editor\n from: number\n to: number\n text: string\n rules: InputRule[]\n plugin: Plugin\n}): boolean {\n const {\n editor, from, to, text, rules, plugin,\n } = config\n const { view } = editor\n\n if (view.composing) {\n return false\n }\n\n const $from = view.state.doc.resolve(from)\n\n if (\n // check for code node\n $from.parent.type.spec.code\n // check for code mark\n || !!($from.nodeBefore || $from.nodeAfter)?.marks.find(mark => mark.type.spec.code)\n ) {\n return false\n }\n\n let matched = false\n\n const textBefore = getTextContentFromNodes($from) + text\n\n rules.forEach(rule => {\n if (matched) {\n return\n }\n\n const match = inputRuleMatcherHandler(textBefore, rule.find)\n\n if (!match) {\n return\n }\n\n const tr = view.state.tr\n const state = createChainableState({\n state: view.state,\n transaction: tr,\n })\n const range = {\n from: from - (match[0].length - text.length),\n to,\n }\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n })\n\n // stop if there are no changes\n if (handler === null || !tr.steps.length) {\n return\n }\n\n // store transform as meta data\n // so we can undo input rules within the `undoInputRules` command\n tr.setMeta(plugin, {\n transform: tr,\n from,\n to,\n text,\n })\n\n view.dispatch(tr)\n matched = true\n })\n\n return matched\n}\n\n/**\n * Create an input rules plugin. When enabled, it will cause text\n * input that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function inputRulesPlugin(props: { editor: Editor; rules: InputRule[] }): Plugin {\n const { editor, rules } = props\n const plugin = new Plugin({\n state: {\n init() {\n return null\n },\n apply(tr, prev) {\n const stored = tr.getMeta(plugin)\n\n if (stored) {\n return stored\n }\n\n // if InputRule is triggered by insertContent()\n const simulatedInputMeta = tr.getMeta('applyInputRules')\n const isSimulatedInput = !!simulatedInputMeta\n\n if (isSimulatedInput) {\n setTimeout(() => {\n const { from, text } = simulatedInputMeta\n const to = from + text.length\n\n run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n })\n }\n\n return tr.selectionSet || tr.docChanged ? null : prev\n },\n },\n\n props: {\n handleTextInput(view, from, to, text) {\n return run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n },\n\n handleDOMEvents: {\n compositionend: view => {\n setTimeout(() => {\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '',\n rules,\n plugin,\n })\n }\n })\n\n return false\n },\n },\n\n // add support for input rules to trigger on enter\n // this is useful for example for code blocks\n handleKeyDown(view, event) {\n if (event.key !== 'Enter') {\n return false\n }\n\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n return run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '\\n',\n rules,\n plugin,\n })\n }\n\n return false\n },\n },\n\n // @ts-ignore\n isInputRules: true,\n }) as Plugin\n\n return plugin\n}\n","export function isNumber(value: any): value is number {\n return typeof value === 'number'\n}\n","import { EditorState, Plugin } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isNumber } from './utilities/isNumber.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type PasteRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type PasteRuleFinder = RegExp | ((text: string, event?: ClipboardEvent | null) => PasteRuleMatch[] | null | undefined)\n\n/**\n * Paste rules are used to react to pasted content.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport class PasteRule {\n find: PasteRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n }) => void | null\n\n constructor(config: {\n find: PasteRuleFinder\n handler: (props: {\n can: () => CanCommands\n chain: () => ChainedCommands\n commands: SingleCommands\n dropEvent: DragEvent | null\n match: ExtendedRegExpMatchArray\n pasteEvent: ClipboardEvent | null\n range: Range\n state: EditorState\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst pasteRuleMatcherHandler = (\n text: string,\n find: PasteRuleFinder,\n event?: ClipboardEvent | null,\n): ExtendedRegExpMatchArray[] => {\n if (isRegExp(find)) {\n return [...text.matchAll(find)]\n }\n\n const matches = find(text, event)\n\n if (!matches) {\n return []\n }\n\n return matches.map(pasteRuleMatch => {\n const result: ExtendedRegExpMatchArray = [pasteRuleMatch.text]\n\n result.index = pasteRuleMatch.index\n result.input = text\n result.data = pasteRuleMatch.data\n\n if (pasteRuleMatch.replaceWith) {\n if (!pasteRuleMatch.text.includes(pasteRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".',\n )\n }\n\n result.push(pasteRuleMatch.replaceWith)\n }\n\n return result\n })\n}\n\nfunction run(config: {\n editor: Editor\n state: EditorState\n from: number\n to: number\n rule: PasteRule\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n}): boolean {\n const {\n editor, state, from, to, rule, pasteEvent, dropEvent,\n } = config\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handlers: (void | null)[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isTextblock || node.type.spec.code) {\n return\n }\n\n const resolvedFrom = Math.max(from, pos)\n const resolvedTo = Math.min(to, pos + node.content.size)\n const textToMatch = node.textBetween(resolvedFrom - pos, resolvedTo - pos, undefined, '\\ufffc')\n\n const matches = pasteRuleMatcherHandler(textToMatch, rule.find, pasteEvent)\n\n matches.forEach(match => {\n if (match.index === undefined) {\n return\n }\n\n const start = resolvedFrom + match.index + 1\n const end = start + match[0].length\n const range = {\n from: state.tr.mapping.map(start),\n to: state.tr.mapping.map(end),\n }\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n pasteEvent,\n dropEvent,\n })\n\n handlers.push(handler)\n })\n })\n\n const success = handlers.every(handler => handler !== null)\n\n return success\n}\n\nconst createClipboardPasteEvent = (text: string) => {\n const event = new ClipboardEvent('paste', {\n clipboardData: new DataTransfer(),\n })\n\n event.clipboardData?.setData('text/html', text)\n\n return event\n}\n\n/**\n * Create an paste rules plugin. When enabled, it will cause pasted\n * text that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function pasteRulesPlugin(props: { editor: Editor; rules: PasteRule[] }): Plugin[] {\n const { editor, rules } = props\n let dragSourceElement: Element | null = null\n let isPastedFromProseMirror = false\n let isDroppedFromProseMirror = false\n let pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n let dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n\n const processEvent = ({\n state,\n from,\n to,\n rule,\n pasteEvt,\n }: {\n state: EditorState\n from: number\n to: { b: number }\n rule: PasteRule\n pasteEvt: ClipboardEvent | null\n }) => {\n const tr = state.tr\n const chainableState = createChainableState({\n state,\n transaction: tr,\n })\n\n const handler = run({\n editor,\n state: chainableState,\n from: Math.max(from - 1, 0),\n to: to.b - 1,\n rule,\n pasteEvent: pasteEvt,\n dropEvent,\n })\n\n if (!handler || !tr.steps.length) {\n return\n }\n\n dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n\n return tr\n }\n\n const plugins = rules.map(rule => {\n return new Plugin({\n // we register a global drag handler to track the current drag source element\n view(view) {\n const handleDragstart = (event: DragEvent) => {\n dragSourceElement = view.dom.parentElement?.contains(event.target as Element)\n ? view.dom.parentElement\n : null\n }\n\n window.addEventListener('dragstart', handleDragstart)\n\n return {\n destroy() {\n window.removeEventListener('dragstart', handleDragstart)\n },\n }\n },\n\n props: {\n handleDOMEvents: {\n drop: (view, event: Event) => {\n isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement\n dropEvent = event as DragEvent\n\n return false\n },\n\n paste: (_view, event: Event) => {\n const html = (event as ClipboardEvent).clipboardData?.getData('text/html')\n\n pasteEvent = event as ClipboardEvent\n\n isPastedFromProseMirror = !!html?.includes('data-pm-slice')\n\n return false\n },\n },\n },\n\n appendTransaction: (transactions, oldState, state) => {\n const transaction = transactions[0]\n const isPaste = transaction.getMeta('uiEvent') === 'paste' && !isPastedFromProseMirror\n const isDrop = transaction.getMeta('uiEvent') === 'drop' && !isDroppedFromProseMirror\n\n // if PasteRule is triggered by insertContent()\n const simulatedPasteMeta = transaction.getMeta('applyPasteRules')\n const isSimulatedPaste = !!simulatedPasteMeta\n\n if (!isPaste && !isDrop && !isSimulatedPaste) {\n return\n }\n\n // Handle simulated paste\n if (isSimulatedPaste) {\n const { from, text } = simulatedPasteMeta\n const to = from + text.length\n const pasteEvt = createClipboardPasteEvent(text)\n\n return processEvent({\n rule,\n state,\n from,\n to: { b: to },\n pasteEvt,\n })\n }\n\n // handle actual paste/drop\n const from = oldState.doc.content.findDiffStart(state.doc.content)\n const to = oldState.doc.content.findDiffEnd(state.doc.content)\n\n // stop if there is no changed range\n if (!isNumber(from) || !to || from === to.b) {\n return\n }\n\n return processEvent({\n rule,\n state,\n from,\n to,\n pasteEvt: pasteEvent,\n })\n },\n })\n })\n\n return plugins\n}\n","export function findDuplicates(items: any[]): any[] {\n const filtered = items.filter((el, index) => items.indexOf(el) !== index)\n\n return Array.from(new Set(filtered))\n}\n","import { keymap } from '@tiptap/pm/keymap'\nimport { Node as ProsemirrorNode, Schema } from '@tiptap/pm/model'\nimport { Plugin } from '@tiptap/pm/state'\nimport { Decoration, EditorView } from '@tiptap/pm/view'\n\nimport type { Editor } from './Editor.js'\nimport { getAttributesFromExtensions } from './helpers/getAttributesFromExtensions.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { getNodeType } from './helpers/getNodeType.js'\nimport { getRenderedAttributes } from './helpers/getRenderedAttributes.js'\nimport { getSchemaByResolvedExtensions } from './helpers/getSchemaByResolvedExtensions.js'\nimport { getSchemaTypeByName } from './helpers/getSchemaTypeByName.js'\nimport { isExtensionRulesEnabled } from './helpers/isExtensionRulesEnabled.js'\nimport { splitExtensions } from './helpers/splitExtensions.js'\nimport { Mark, NodeConfig } from './index.js'\nimport { InputRule, inputRulesPlugin } from './InputRule.js'\nimport { PasteRule, pasteRulesPlugin } from './PasteRule.js'\nimport { AnyConfig, Extensions, RawCommands } from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { findDuplicates } from './utilities/findDuplicates.js'\n\nexport class ExtensionManager {\n editor: Editor\n\n schema: Schema\n\n extensions: Extensions\n\n splittableMarks: string[] = []\n\n constructor(extensions: Extensions, editor: Editor) {\n this.editor = editor\n this.extensions = ExtensionManager.resolve(extensions)\n this.schema = getSchemaByResolvedExtensions(this.extensions, editor)\n this.setupExtensions()\n }\n\n /**\n * Returns a flattened and sorted extension list while\n * also checking for duplicated extensions and warns the user.\n * @param extensions An array of Tiptap extensions\n * @returns An flattened and sorted array of Tiptap extensions\n */\n static resolve(extensions: Extensions): Extensions {\n const resolvedExtensions = ExtensionManager.sort(ExtensionManager.flatten(extensions))\n const duplicatedNames = findDuplicates(resolvedExtensions.map(extension => extension.name))\n\n if (duplicatedNames.length) {\n console.warn(\n `[tiptap warn]: Duplicate extension names found: [${duplicatedNames\n .map(item => `'${item}'`)\n .join(', ')}]. This can lead to issues.`,\n )\n }\n\n return resolvedExtensions\n }\n\n /**\n * Create a flattened array of extensions by traversing the `addExtensions` field.\n * @param extensions An array of Tiptap extensions\n * @returns A flattened array of Tiptap extensions\n */\n static flatten(extensions: Extensions): Extensions {\n return (\n extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addExtensions = getExtensionField(\n extension,\n 'addExtensions',\n context,\n )\n\n if (addExtensions) {\n return [extension, ...this.flatten(addExtensions())]\n }\n\n return extension\n })\n // `Infinity` will break TypeScript so we set a number that is probably high enough\n .flat(10)\n )\n }\n\n /**\n * Sort extensions by priority.\n * @param extensions An array of Tiptap extensions\n * @returns A sorted array of Tiptap extensions by priority\n */\n static sort(extensions: Extensions): Extensions {\n const defaultPriority = 100\n\n return extensions.sort((a, b) => {\n const priorityA = getExtensionField(a, 'priority') || defaultPriority\n const priorityB = getExtensionField(b, 'priority') || defaultPriority\n\n if (priorityA > priorityB) {\n return -1\n }\n\n if (priorityA < priorityB) {\n return 1\n }\n\n return 0\n })\n }\n\n /**\n * Get all commands from the extensions.\n * @returns An object with all commands where the key is the command name and the value is the command function\n */\n get commands(): RawCommands {\n return this.extensions.reduce((commands, extension) => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const addCommands = getExtensionField(\n extension,\n 'addCommands',\n context,\n )\n\n if (!addCommands) {\n return commands\n }\n\n return {\n ...commands,\n ...addCommands(),\n }\n }, {} as RawCommands)\n }\n\n /**\n * Get all registered Prosemirror plugins from the extensions.\n * @returns An array of Prosemirror plugins\n */\n get plugins(): Plugin[] {\n const { editor } = this\n\n // With ProseMirror, first plugins within an array are executed first.\n // In Tiptap, we provide the ability to override plugins,\n // so it feels more natural to run plugins at the end of an array first.\n // That’s why we have to reverse the `extensions` array and sort again\n // based on the `priority` option.\n const extensions = ExtensionManager.sort([...this.extensions].reverse())\n\n const inputRules: InputRule[] = []\n const pasteRules: PasteRule[] = []\n\n const allPlugins = extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const plugins: Plugin[] = []\n\n const addKeyboardShortcuts = getExtensionField(\n extension,\n 'addKeyboardShortcuts',\n context,\n )\n\n let defaultBindings: Record boolean> = {}\n\n // bind exit handling\n if (extension.type === 'mark' && getExtensionField(extension, 'exitable', context)) {\n defaultBindings.ArrowRight = () => Mark.handleExit({ editor, mark: extension as Mark })\n }\n\n if (addKeyboardShortcuts) {\n const bindings = Object.fromEntries(\n Object.entries(addKeyboardShortcuts()).map(([shortcut, method]) => {\n return [shortcut, () => method({ editor })]\n }),\n )\n\n defaultBindings = { ...defaultBindings, ...bindings }\n }\n\n const keyMapPlugin = keymap(defaultBindings)\n\n plugins.push(keyMapPlugin)\n\n const addInputRules = getExtensionField(\n extension,\n 'addInputRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enableInputRules) && addInputRules) {\n inputRules.push(...addInputRules())\n }\n\n const addPasteRules = getExtensionField(\n extension,\n 'addPasteRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enablePasteRules) && addPasteRules) {\n pasteRules.push(...addPasteRules())\n }\n\n const addProseMirrorPlugins = getExtensionField(\n extension,\n 'addProseMirrorPlugins',\n context,\n )\n\n if (addProseMirrorPlugins) {\n const proseMirrorPlugins = addProseMirrorPlugins()\n\n plugins.push(...proseMirrorPlugins)\n }\n\n return plugins\n })\n .flat()\n\n return [\n inputRulesPlugin({\n editor,\n rules: inputRules,\n }),\n ...pasteRulesPlugin({\n editor,\n rules: pasteRules,\n }),\n ...allPlugins,\n ]\n }\n\n /**\n * Get all attributes from the extensions.\n * @returns An array of attributes\n */\n get attributes() {\n return getAttributesFromExtensions(this.extensions)\n }\n\n /**\n * Get all node views from the extensions.\n * @returns An object with all node views where the key is the node name and the value is the node view function\n */\n get nodeViews() {\n const { editor } = this\n const { nodeExtensions } = splitExtensions(this.extensions)\n\n return Object.fromEntries(\n nodeExtensions\n .filter(extension => !!getExtensionField(extension, 'addNodeView'))\n .map(extension => {\n const extensionAttributes = this.attributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getNodeType(extension.name, this.schema),\n }\n const addNodeView = getExtensionField(\n extension,\n 'addNodeView',\n context,\n )\n\n if (!addNodeView) {\n return []\n }\n\n const nodeview = (\n node: ProsemirrorNode,\n view: EditorView,\n getPos: (() => number) | boolean,\n decorations: Decoration[],\n ) => {\n const HTMLAttributes = getRenderedAttributes(node, extensionAttributes)\n\n return addNodeView()({\n editor,\n node,\n getPos,\n decorations,\n HTMLAttributes,\n extension,\n })\n }\n\n return [extension.name, nodeview]\n }),\n )\n }\n\n /**\n * Go through all extensions, create extension storages & setup marks\n * & bind editor event listener.\n */\n private setupExtensions() {\n this.extensions.forEach(extension => {\n // store extension storage in editor\n this.editor.extensionStorage[extension.name] = extension.storage\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n if (extension.type === 'mark') {\n const keepOnSplit = callOrReturn(getExtensionField(extension, 'keepOnSplit', context)) ?? true\n\n if (keepOnSplit) {\n this.splittableMarks.push(extension.name)\n }\n }\n\n const onBeforeCreate = getExtensionField(\n extension,\n 'onBeforeCreate',\n context,\n )\n const onCreate = getExtensionField(extension, 'onCreate', context)\n const onUpdate = getExtensionField(extension, 'onUpdate', context)\n const onSelectionUpdate = getExtensionField(\n extension,\n 'onSelectionUpdate',\n context,\n )\n const onTransaction = getExtensionField(\n extension,\n 'onTransaction',\n context,\n )\n const onFocus = getExtensionField(extension, 'onFocus', context)\n const onBlur = getExtensionField(extension, 'onBlur', context)\n const onDestroy = getExtensionField(extension, 'onDestroy', context)\n\n if (onBeforeCreate) {\n this.editor.on('beforeCreate', onBeforeCreate)\n }\n\n if (onCreate) {\n this.editor.on('create', onCreate)\n }\n\n if (onUpdate) {\n this.editor.on('update', onUpdate)\n }\n\n if (onSelectionUpdate) {\n this.editor.on('selectionUpdate', onSelectionUpdate)\n }\n\n if (onTransaction) {\n this.editor.on('transaction', onTransaction)\n }\n\n if (onFocus) {\n this.editor.on('focus', onFocus)\n }\n\n if (onBlur) {\n this.editor.on('blur', onBlur)\n }\n\n if (onDestroy) {\n this.editor.on('destroy', onDestroy)\n }\n })\n }\n}\n","// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nfunction getType(value: any): string {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nexport function isPlainObject(value: any): value is Record {\n if (getType(value) !== 'Object') {\n return false\n }\n\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype\n}\n","import { isPlainObject } from './isPlainObject.js'\n\nexport function mergeDeep(target: Record, source: Record): Record {\n const output = { ...target }\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n output[key] = mergeDeep(target[key], source[key])\n } else {\n output[key] = source[key]\n }\n })\n }\n\n return output\n}\n","import { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { ExtensionConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface ExtensionConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#commands\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n }\n}\n\n/**\n * The Extension class is the base class for all extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Extension {\n type = 'extension'\n\n name = 'extension'\n\n parent: Extension | null = null\n\n child: Extension | null = null\n\n options: Options\n\n storage: Storage\n\n config: ExtensionConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Extension(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Extension({ ...this.config, ...extendedConfig })\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { Range, TextSerializer } from '../types.js'\n\n/**\n * Gets the text between two positions in a Prosemirror node\n * and serializes it using the given text serializers and block separator (see getText)\n * @param startNode The Prosemirror node to start from\n * @param range The range of the text to get\n * @param options Options for the text serializer & block separator\n * @returns The text between the two positions\n */\nexport function getTextBetween(\n startNode: ProseMirrorNode,\n range: Range,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { from, to } = range\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n let text = ''\n\n startNode.nodesBetween(from, to, (node, pos, parent, index) => {\n if (node.isBlock && pos > from) {\n text += blockSeparator\n }\n\n const textSerializer = textSerializers?.[node.type.name]\n\n if (textSerializer) {\n if (parent) {\n text += textSerializer({\n node,\n pos,\n parent,\n index,\n range,\n })\n }\n // do not descend into child nodes when there exists a serializer\n return false\n }\n\n if (node.isText) {\n text += node?.text?.slice(Math.max(from, pos) - pos, to - pos) // eslint-disable-line\n }\n })\n\n return text\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\n\n/**\n * Find text serializers `toText` in a Prosemirror schema\n * @param schema The Prosemirror schema to search in\n * @returns A record of text serializers by node name\n */\nexport function getTextSerializersFromSchema(schema: Schema): Record {\n return Object.fromEntries(\n Object.entries(schema.nodes)\n .filter(([, node]) => node.spec.toText)\n .map(([name, node]) => [name, node.spec.toText]),\n )\n}\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\nimport { getTextBetween } from '../helpers/getTextBetween.js'\nimport { getTextSerializersFromSchema } from '../helpers/getTextSerializersFromSchema.js'\n\nexport type ClipboardTextSerializerOptions = {\n blockSeparator?: string,\n}\n\nexport const ClipboardTextSerializer = Extension.create({\n name: 'clipboardTextSerializer',\n\n addOptions() {\n return {\n blockSeparator: undefined,\n }\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('clipboardTextSerializer'),\n props: {\n clipboardTextSerializer: () => {\n const { editor } = this\n const { state, schema } = editor\n const { doc, selection } = state\n const { ranges } = selection\n const from = Math.min(...ranges.map(range => range.$from.pos))\n const to = Math.max(...ranges.map(range => range.$to.pos))\n const textSerializers = getTextSerializersFromSchema(schema)\n const range = { from, to }\n\n return getTextBetween(doc, range, {\n ...(this.options.blockSeparator !== undefined\n ? { blockSeparator: this.options.blockSeparator }\n : {}),\n textSerializers,\n })\n },\n },\n }),\n ]\n },\n})\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n blur: {\n /**\n * Removes focus from the editor.\n * @example editor.commands.blur()\n */\n blur: () => ReturnType,\n }\n }\n}\n\nexport const blur: RawCommands['blur'] = () => ({ editor, view }) => {\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n (view.dom as HTMLElement).blur()\n\n // Browsers should remove the caret on blur but safari does not.\n // See: https://github.com/ueberdosis/tiptap/issues/2405\n window?.getSelection()?.removeAllRanges()\n }\n })\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearContent: {\n /**\n * Clear the whole document.\n * @param emitUpdate Whether to emit an update event.\n * @example editor.commands.clearContent()\n */\n clearContent: (emitUpdate?: boolean) => ReturnType,\n }\n }\n}\n\nexport const clearContent: RawCommands['clearContent'] = (emitUpdate = false) => ({ commands }) => {\n return commands.setContent('', emitUpdate)\n}\n","import { liftTarget } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearNodes: {\n /**\n * Normalize nodes to a simple paragraph.\n * @example editor.commands.clearNodes()\n */\n clearNodes: () => ReturnType,\n }\n }\n}\n\nexport const clearNodes: RawCommands['clearNodes'] = () => ({ state, tr, dispatch }) => {\n const { selection } = tr\n const { ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n ranges.forEach(({ $from, $to }) => {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.type.isText) {\n return\n }\n\n const { doc, mapping } = tr\n const $mappedFrom = doc.resolve(mapping.map(pos))\n const $mappedTo = doc.resolve(mapping.map(pos + node.nodeSize))\n const nodeRange = $mappedFrom.blockRange($mappedTo)\n\n if (!nodeRange) {\n return\n }\n\n const targetLiftDepth = liftTarget(nodeRange)\n\n if (node.type.isTextblock) {\n const { defaultType } = $mappedFrom.parent.contentMatchAt($mappedFrom.index())\n\n tr.setNodeMarkup(nodeRange.start, defaultType)\n }\n\n if (targetLiftDepth || targetLiftDepth === 0) {\n tr.lift(nodeRange, targetLiftDepth)\n }\n })\n })\n\n return true\n}\n","import { Command, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n command: {\n /**\n * Define a command inline.\n * @param fn The command function.\n * @example\n * editor.commands.command(({ tr, state }) => {\n * ...\n * return true\n * })\n */\n command: (fn: (props: Parameters[0]) => boolean) => ReturnType,\n }\n }\n}\n\nexport const command: RawCommands['command'] = fn => props => {\n return fn(props)\n}\n","import { createParagraphNear as originalCreateParagraphNear } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n createParagraphNear: {\n /**\n * Create a paragraph nearby.\n * @example editor.commands.createParagraphNear()\n */\n createParagraphNear: () => ReturnType\n }\n }\n}\n\nexport const createParagraphNear: RawCommands['createParagraphNear'] = () => ({ state, dispatch }) => {\n return originalCreateParagraphNear(state, dispatch)\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n cut: {\n /**\n * Cuts content from a range and inserts it at a given position.\n * @param range The range to cut.\n * @param range.from The start position of the range.\n * @param range.to The end position of the range.\n * @param targetPos The position to insert the content at.\n * @example editor.commands.cut({ from: 1, to: 3 }, 5)\n */\n cut: ({ from, to }: { from: number, to: number }, targetPos: number) => ReturnType,\n }\n }\n}\n\nexport const cut: RawCommands['cut'] = (originRange, targetPos) => ({ editor, tr }) => {\n const { state } = editor\n\n const contentSlice = state.doc.slice(originRange.from, originRange.to)\n\n tr.deleteRange(originRange.from, originRange.to)\n const newPos = tr.mapping.map(targetPos)\n\n tr.insert(newPos, contentSlice.content)\n\n tr.setSelection(new TextSelection(tr.doc.resolve(newPos - 1)))\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteCurrentNode: {\n /**\n * Delete the node that currently has the selection anchor.\n * @example editor.commands.deleteCurrentNode()\n */\n deleteCurrentNode: () => ReturnType,\n }\n }\n}\n\nexport const deleteCurrentNode: RawCommands['deleteCurrentNode'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const currentNode = selection.$anchor.node()\n\n // if there is content inside the current node, break out of this command\n if (currentNode.content.size > 0) {\n return false\n }\n\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === currentNode.type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteNode: {\n /**\n * Delete a node with a given type or name.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.deleteNode('paragraph')\n */\n deleteNode: (typeOrName: string | NodeType) => ReturnType,\n }\n }\n}\n\nexport const deleteNode: RawCommands['deleteNode'] = typeOrName => ({ tr, state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteRange: {\n /**\n * Delete a given range.\n * @param range The range to delete.\n * @example editor.commands.deleteRange({ from: 1, to: 3 })\n */\n deleteRange: (range: Range) => ReturnType,\n }\n }\n}\n\nexport const deleteRange: RawCommands['deleteRange'] = range => ({ tr, dispatch }) => {\n const { from, to } = range\n\n if (dispatch) {\n tr.delete(from, to)\n }\n\n return true\n}\n","import { deleteSelection as originalDeleteSelection } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteSelection: {\n /**\n * Delete the selection, if there is one.\n * @example editor.commands.deleteSelection()\n */\n deleteSelection: () => ReturnType\n }\n }\n}\n\nexport const deleteSelection: RawCommands['deleteSelection'] = () => ({ state, dispatch }) => {\n return originalDeleteSelection(state, dispatch)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n enter: {\n /**\n * Trigger enter.\n * @example editor.commands.enter()\n */\n enter: () => ReturnType,\n }\n }\n}\n\nexport const enter: RawCommands['enter'] = () => ({ commands }) => {\n return commands.keyboardShortcut('Enter')\n}\n","import { exitCode as originalExitCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n exitCode: {\n /**\n * Exit from a code block.\n * @example editor.commands.exitCode()\n */\n exitCode: () => ReturnType\n }\n }\n}\n\nexport const exitCode: RawCommands['exitCode'] = () => ({ state, dispatch }) => {\n return originalExitCode(state, dispatch)\n}\n","import { isRegExp } from './isRegExp.js'\n\n/**\n * Check if object1 includes object2\n * @param object1 Object\n * @param object2 Object\n */\nexport function objectIncludes(\n object1: Record,\n object2: Record,\n options: { strict: boolean } = { strict: true },\n): boolean {\n const keys = Object.keys(object2)\n\n if (!keys.length) {\n return true\n }\n\n return keys.every(key => {\n if (options.strict) {\n return object2[key] === object1[key]\n }\n\n if (isRegExp(object2[key])) {\n return object2[key].test(object1[key])\n }\n\n return object2[key] === object1[key]\n })\n}\n","import { Mark as ProseMirrorMark, MarkType, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Range } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\n\nfunction findMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): ProseMirrorMark | undefined {\n return marks.find(item => {\n return item.type === type && objectIncludes(item.attrs, attributes)\n })\n}\n\nfunction isMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): boolean {\n return !!findMarkInSet(marks, type, attributes)\n}\n\nexport function getMarkRange(\n $pos: ResolvedPos,\n type: MarkType,\n attributes: Record = {},\n): Range | void {\n if (!$pos || !type) {\n return\n }\n\n let start = $pos.parent.childAfter($pos.parentOffset)\n\n if ($pos.parentOffset === start.offset && start.offset !== 0) {\n start = $pos.parent.childBefore($pos.parentOffset)\n }\n\n if (!start.node) {\n return\n }\n\n const mark = findMarkInSet([...start.node.marks], type, attributes)\n\n if (!mark) {\n return\n }\n\n let startIndex = start.index\n let startPos = $pos.start() + start.offset\n let endIndex = startIndex + 1\n let endPos = startPos + start.node.nodeSize\n\n findMarkInSet([...start.node.marks], type, attributes)\n\n while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {\n startIndex -= 1\n startPos -= $pos.parent.child(startIndex).nodeSize\n }\n\n while (\n endIndex < $pos.parent.childCount\n && isMarkInSet([...$pos.parent.child(endIndex).marks], type, attributes)\n ) {\n endPos += $pos.parent.child(endIndex).nodeSize\n endIndex += 1\n }\n\n return {\n from: startPos,\n to: endPos,\n }\n}\n","import { MarkType, Schema } from '@tiptap/pm/model'\n\nexport function getMarkType(nameOrType: string | MarkType, schema: Schema): MarkType {\n if (typeof nameOrType === 'string') {\n if (!schema.marks[nameOrType]) {\n throw Error(\n `There is no mark type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.marks[nameOrType]\n }\n\n return nameOrType\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n extendMarkRange: {\n /**\n * Extends the text selection to the current mark by type or name.\n * @param typeOrName The type or name of the mark.\n * @param attributes The attributes of the mark.\n * @example editor.commands.extendMarkRange('bold')\n * @example editor.commands.extendMarkRange('mention', { userId: \"1\" })\n */\n extendMarkRange: (\n /**\n * The type or name of the mark.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const extendMarkRange: RawCommands['extendMarkRange'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const type = getMarkType(typeOrName, state.schema)\n const { doc, selection } = tr\n const { $from, from, to } = selection\n\n if (dispatch) {\n const range = getMarkRange($from, type, attributes)\n\n if (range && range.from <= from && range.to >= to) {\n const newSelection = TextSelection.create(doc, range.from, range.to)\n\n tr.setSelection(newSelection)\n }\n }\n\n return true\n}\n","import { Command, CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n first: {\n /**\n * Runs one command after the other and stops at the first which returns true.\n * @param commands The commands to run.\n * @example editor.commands.first([command1, command2])\n */\n first: (commands: Command[] | ((props: CommandProps) => Command[])) => ReturnType,\n }\n }\n}\n\nexport const first: RawCommands['first'] = commands => props => {\n const items = typeof commands === 'function'\n ? commands(props)\n : commands\n\n for (let i = 0; i < items.length; i += 1) {\n if (items[i](props)) {\n return true\n }\n }\n\n return false\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nexport function isTextSelection(value: unknown): value is TextSelection {\n return value instanceof TextSelection\n}\n","export function minMax(value = 0, min = 0, max = 0): number {\n return Math.min(Math.max(value, min), max)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Selection, TextSelection } from '@tiptap/pm/state'\n\nimport { FocusPosition } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\nexport function resolveFocusPosition(\n doc: ProseMirrorNode,\n position: FocusPosition = null,\n): Selection | null {\n if (!position) {\n return null\n }\n\n const selectionAtStart = Selection.atStart(doc)\n const selectionAtEnd = Selection.atEnd(doc)\n\n if (position === 'start' || position === true) {\n return selectionAtStart\n }\n\n if (position === 'end') {\n return selectionAtEnd\n }\n\n const minPos = selectionAtStart.from\n const maxPos = selectionAtEnd.to\n\n if (position === 'all') {\n return TextSelection.create(\n doc,\n minMax(0, minPos, maxPos),\n minMax(doc.content.size, minPos, maxPos),\n )\n }\n\n return TextSelection.create(\n doc,\n minMax(position, minPos, maxPos),\n minMax(position, minPos, maxPos),\n )\n}\n","export function isiOS(): boolean {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod',\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n}\n","import { isTextSelection } from '../helpers/isTextSelection.js'\nimport { resolveFocusPosition } from '../helpers/resolveFocusPosition.js'\nimport { FocusPosition, RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n focus: {\n /**\n * Focus the editor at the given position.\n * @param position The position to focus at.\n * @param options.scrollIntoView Scroll the focused position into view after focusing\n * @example editor.commands.focus()\n * @example editor.commands.focus(32, { scrollIntoView: false })\n */\n focus: (\n /**\n * The position to focus at.\n */\n position?: FocusPosition,\n\n /**\n * Optional options\n * @default { scrollIntoView: true }\n */\n options?: {\n scrollIntoView?: boolean,\n },\n ) => ReturnType,\n }\n }\n}\n\nexport const focus: RawCommands['focus'] = (position = null, options = {}) => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n options = {\n scrollIntoView: true,\n ...options,\n }\n\n const delayedFocus = () => {\n // focus within `requestAnimationFrame` breaks focus on iOS\n // so we have to call this\n if (isiOS()) {\n (view.dom as HTMLElement).focus()\n }\n\n // For React we have to focus asynchronously. Otherwise wild things happen.\n // see: https://github.com/ueberdosis/tiptap/issues/1520\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n view.focus()\n\n if (options?.scrollIntoView) {\n editor.commands.scrollIntoView()\n }\n }\n })\n }\n\n if ((view.hasFocus() && position === null) || position === false) {\n return true\n }\n\n // we don’t try to resolve a NodeSelection or CellSelection\n if (dispatch && position === null && !isTextSelection(editor.state.selection)) {\n delayedFocus()\n return true\n }\n\n // pass through tr.doc instead of editor.state.doc\n // since transactions could change the editors state before this command has been run\n const selection = resolveFocusPosition(tr.doc, position) || editor.state.selection\n const isSameSelection = editor.state.selection.eq(selection)\n\n if (dispatch) {\n if (!isSameSelection) {\n tr.setSelection(selection)\n }\n\n // `tr.setSelection` resets the stored marks\n // so we’ll restore them if the selection is the same as before\n if (isSameSelection && tr.storedMarks) {\n tr.setStoredMarks(tr.storedMarks)\n }\n\n delayedFocus()\n }\n\n return true\n}\n","import { CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n forEach: {\n /**\n * Loop through an array of items.\n */\n forEach: (\n items: T[],\n fn: (\n item: T,\n props: CommandProps & {\n index: number,\n },\n ) => boolean,\n ) => ReturnType,\n }\n }\n}\n\nexport const forEach: RawCommands['forEach'] = (items, fn) => props => {\n return items.every((item, index) => fn(item, { ...props, index }))\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContent: {\n /**\n * Insert a node or string of HTML at the current position.\n * @example editor.commands.insertContent('

Example

')\n * @example editor.commands.insertContent('

Example

', { updateSelection: false })\n */\n insertContent: (\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n applyInputRules?: boolean\n applyPasteRules?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const insertContent: RawCommands['insertContent'] = (value, options) => ({ tr, commands }) => {\n return commands.insertContentAt(\n { from: tr.selection.from, to: tr.selection.to },\n value,\n options,\n )\n}\n","const removeWhitespaces = (node: HTMLElement) => {\n const children = node.childNodes\n\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i]\n\n if (child.nodeType === 3 && child.nodeValue && /^(\\n\\s\\s|\\n)$/.test(child.nodeValue)) {\n node.removeChild(child)\n } else if (child.nodeType === 1) {\n removeWhitespaces(child as HTMLElement)\n }\n }\n\n return node\n}\n\nexport function elementFromString(value: string): HTMLElement {\n // add a wrapper to preserve leading and trailing whitespace\n const wrappedValue = `${value}`\n\n const html = new window.DOMParser().parseFromString(wrappedValue, 'text/html').body\n\n return removeWhitespaces(html)\n}\n","import {\n DOMParser,\n Fragment,\n Node as ProseMirrorNode,\n ParseOptions,\n Schema,\n} from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\n\nexport type CreateNodeFromContentOptions = {\n slice?: boolean\n parseOptions?: ParseOptions\n errorOnInvalidContent?: boolean\n}\n\n/**\n * Takes a JSON or HTML content and creates a Prosemirror node or fragment from it.\n * @param content The JSON or HTML content to create the node from\n * @param schema The Prosemirror schema to use for the node\n * @param options Options for the parser\n * @returns The created Prosemirror node or fragment\n */\nexport function createNodeFromContent(\n content: Content,\n schema: Schema,\n options?: CreateNodeFromContentOptions,\n): ProseMirrorNode | Fragment {\n options = {\n slice: true,\n parseOptions: {},\n ...options,\n }\n\n const isJSONContent = typeof content === 'object' && content !== null\n const isTextContent = typeof content === 'string'\n\n if (isJSONContent) {\n try {\n const isArrayContent = Array.isArray(content) && content.length > 0\n\n // if the JSON Content is an array of nodes, create a fragment for each node\n if (isArrayContent) {\n return Fragment.fromArray(content.map(item => schema.nodeFromJSON(item)))\n }\n\n const node = schema.nodeFromJSON(content)\n\n if (options.errorOnInvalidContent) {\n node.check()\n }\n\n return node\n } catch (error) {\n if (options.errorOnInvalidContent) {\n throw new Error('[tiptap error]: Invalid JSON content', { cause: error as Error })\n }\n\n console.warn('[tiptap warn]: Invalid content.', 'Passed value:', content, 'Error:', error)\n\n return createNodeFromContent('', schema, options)\n }\n }\n\n if (isTextContent) {\n\n // Check for invalid content\n if (options.errorOnInvalidContent) {\n let hasInvalidContent = false\n let invalidContent = ''\n\n // A copy of the current schema with a catch-all node at the end\n const contentCheckSchema = new Schema({\n topNode: schema.spec.topNode,\n marks: schema.spec.marks,\n // Prosemirror's schemas are executed such that: the last to execute, matches last\n // This means that we can add a catch-all node at the end of the schema to catch any content that we don't know how to handle\n nodes: schema.spec.nodes.append({\n __tiptap__private__unknown__catch__all__node: {\n content: 'inline*',\n group: 'block',\n parseDOM: [\n {\n tag: '*',\n getAttrs: e => {\n // If this is ever called, we know that the content has something that we don't know how to handle in the schema\n hasInvalidContent = true\n // Try to stringify the element for a more helpful error message\n invalidContent = typeof e === 'string' ? e : e.outerHTML\n return null\n },\n },\n ],\n },\n }),\n })\n\n if (options.slice) {\n DOMParser.fromSchema(contentCheckSchema).parseSlice(elementFromString(content), options.parseOptions)\n } else {\n DOMParser.fromSchema(contentCheckSchema).parse(elementFromString(content), options.parseOptions)\n }\n\n if (options.errorOnInvalidContent && hasInvalidContent) {\n throw new Error('[tiptap error]: Invalid HTML content', { cause: new Error(`Invalid element found: ${invalidContent}`) })\n }\n }\n\n const parser = DOMParser.fromSchema(schema)\n\n if (options.slice) {\n return parser.parseSlice(elementFromString(content), options.parseOptions).content\n }\n\n return parser.parse(elementFromString(content), options.parseOptions)\n\n }\n\n return createNodeFromContent('', schema, options)\n}\n","import { Selection, Transaction } from '@tiptap/pm/state'\nimport { ReplaceAroundStep, ReplaceStep } from '@tiptap/pm/transform'\n\n// source: https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.js#L466\nexport function selectionToInsertionEnd(tr: Transaction, startLen: number, bias: number) {\n const last = tr.steps.length - 1\n\n if (last < startLen) {\n return\n }\n\n const step = tr.steps[last]\n\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\n return\n }\n\n const map = tr.mapping.maps[last]\n let end = 0\n\n map.forEach((_from, _to, _newFrom, newTo) => {\n if (end === 0) {\n end = newTo\n }\n })\n\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias))\n}\n","import { Fragment, Node as ProseMirrorNode, ParseOptions } from '@tiptap/pm/model'\n\nimport { createNodeFromContent } from '../helpers/createNodeFromContent.js'\nimport { selectionToInsertionEnd } from '../helpers/selectionToInsertionEnd.js'\nimport { Content, Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContentAt: {\n /**\n * Insert a node or string of HTML at a specific position.\n * @example editor.commands.insertContentAt(0, '

Example

')\n */\n insertContentAt: (\n /**\n * The position to insert the content at.\n */\n position: number | Range,\n\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n\n /**\n * Whether to apply input rules after inserting the content.\n */\n applyInputRules?: boolean\n\n /**\n * Whether to apply paste rules after inserting the content.\n */\n applyPasteRules?: boolean\n\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nconst isFragment = (nodeOrFragment: ProseMirrorNode | Fragment): nodeOrFragment is Fragment => {\n return !('type' in nodeOrFragment)\n}\n\nexport const insertContentAt: RawCommands['insertContentAt'] = (position, value, options) => ({ tr, dispatch, editor }) => {\n if (dispatch) {\n options = {\n parseOptions: {},\n updateSelection: true,\n applyInputRules: false,\n applyPasteRules: false,\n ...options,\n }\n\n let content: Fragment | ProseMirrorNode\n\n try {\n content = createNodeFromContent(value, editor.schema, {\n parseOptions: {\n preserveWhitespace: 'full',\n ...options.parseOptions,\n },\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n } catch (e) {\n editor.emit('contentError', {\n editor,\n error: e as Error,\n disableCollaboration: () => {\n console.error('[tiptap error]: Unable to disable collaboration at this point in time')\n },\n })\n return false\n }\n\n let { from, to } = typeof position === 'number' ? { from: position, to: position } : { from: position.from, to: position.to }\n\n let isOnlyTextContent = true\n let isOnlyBlockContent = true\n const nodes = isFragment(content) ? content : [content]\n\n nodes.forEach(node => {\n // check if added node is valid\n node.check()\n\n isOnlyTextContent = isOnlyTextContent ? node.isText && node.marks.length === 0 : false\n\n isOnlyBlockContent = isOnlyBlockContent ? node.isBlock : false\n })\n\n // check if we can replace the wrapping node by\n // the newly inserted content\n // example:\n // replace an empty paragraph by an inserted image\n // instead of inserting the image below the paragraph\n if (from === to && isOnlyBlockContent) {\n const { parent } = tr.doc.resolve(from)\n const isEmptyTextBlock = parent.isTextblock && !parent.type.spec.code && !parent.childCount\n\n if (isEmptyTextBlock) {\n from -= 1\n to += 1\n }\n }\n\n let newContent\n\n // if there is only plain text we have to use `insertText`\n // because this will keep the current marks\n if (isOnlyTextContent) {\n // if value is string, we can use it directly\n // otherwise if it is an array, we have to join it\n if (Array.isArray(value)) {\n newContent = value.map(v => v.text || '').join('')\n } else if (typeof value === 'object' && !!value && !!value.text) {\n newContent = value.text\n } else {\n newContent = value as string\n }\n\n tr.insertText(newContent, from, to)\n } else {\n newContent = content\n\n tr.replaceWith(from, to, newContent)\n }\n\n // set cursor at end of inserted content\n if (options.updateSelection) {\n selectionToInsertionEnd(tr, tr.steps.length - 1, -1)\n }\n\n if (options.applyInputRules) {\n tr.setMeta('applyInputRules', { from, text: newContent })\n }\n\n if (options.applyPasteRules) {\n tr.setMeta('applyPasteRules', { from, text: newContent })\n }\n }\n\n return true\n}\n","import {\n joinBackward as originalJoinBackward,\n joinDown as originalJoinDown,\n joinForward as originalJoinForward,\n joinUp as originalJoinUp,\n} from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinUp: {\n /**\n * Join the selected block or, if there is a text selection, the closest ancestor block of the selection that can be joined, with the sibling above it.\n * @example editor.commands.joinUp()\n */\n joinUp: () => ReturnType\n }\n joinDown: {\n /**\n * Join the selected block, or the closest ancestor of the selection that can be joined, with the sibling after it.\n * @example editor.commands.joinDown()\n */\n joinDown: () => ReturnType\n }\n joinBackward: {\n /**\n * If the selection is empty and at the start of a textblock, try to reduce the distance between that block and the one before it—if there's a block directly before it that can be joined, join them.\n * If not, try to move the selected block closer to the next one in the document structure by lifting it out of its\n * parent or moving it into a parent of the previous block. Will use the view for accurate (bidi-aware) start-of-textblock detection if given.\n * @example editor.commands.joinBackward()\n */\n joinBackward: () => ReturnType\n }\n joinForward: {\n /**\n * If the selection is empty and the cursor is at the end of a textblock, try to reduce or remove the boundary between that block and the one after it,\n * either by joining them or by moving the other block closer to this one in the tree structure.\n * Will use the view for accurate start-of-textblock detection if given.\n * @example editor.commands.joinForward()\n */\n joinForward: () => ReturnType\n }\n }\n}\n\nexport const joinUp: RawCommands['joinUp'] = () => ({ state, dispatch }) => {\n return originalJoinUp(state, dispatch)\n}\n\nexport const joinDown: RawCommands['joinDown'] = () => ({ state, dispatch }) => {\n return originalJoinDown(state, dispatch)\n}\n\nexport const joinBackward: RawCommands['joinBackward'] = () => ({ state, dispatch }) => {\n return originalJoinBackward(state, dispatch)\n}\n\nexport const joinForward: RawCommands['joinForward'] = () => ({ state, dispatch }) => {\n return originalJoinForward(state, dispatch)\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemBackward: {\n /**\n * Join two items backward.\n * @example editor.commands.joinItemBackward()\n */\n joinItemBackward: () => ReturnType\n }\n }\n}\n\nexport const joinItemBackward: RawCommands['joinItemBackward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, -1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemForward: {\n /**\n * Join two items Forwards.\n * @example editor.commands.joinItemForward()\n */\n joinItemForward: () => ReturnType\n }\n }\n}\n\nexport const joinItemForward: RawCommands['joinItemForward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, +1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinTextblockBackward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockBackward: {\n /**\n * A more limited form of joinBackward that only tries to join the current textblock to the one before it, if the cursor is at the start of a textblock.\n */\n joinTextblockBackward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockBackward: RawCommands['joinTextblockBackward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","import { joinTextblockForward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockForward: {\n /**\n * A more limited form of joinForward that only tries to join the current textblock to the one after it, if the cursor is at the end of a textblock.\n */\n joinTextblockForward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockForward: RawCommands['joinTextblockForward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","export function isMacOS(): boolean {\n return typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n}\n","import { RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nfunction normalizeKeyName(name: string) {\n const parts = name.split(/-(?!$)/)\n let result = parts[parts.length - 1]\n\n if (result === 'Space') {\n result = ' '\n }\n\n let alt\n let ctrl\n let shift\n let meta\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const mod = parts[i]\n\n if (/^(cmd|meta|m)$/i.test(mod)) {\n meta = true\n } else if (/^a(lt)?$/i.test(mod)) {\n alt = true\n } else if (/^(c|ctrl|control)$/i.test(mod)) {\n ctrl = true\n } else if (/^s(hift)?$/i.test(mod)) {\n shift = true\n } else if (/^mod$/i.test(mod)) {\n if (isiOS() || isMacOS()) {\n meta = true\n } else {\n ctrl = true\n }\n } else {\n throw new Error(`Unrecognized modifier name: ${mod}`)\n }\n }\n\n if (alt) {\n result = `Alt-${result}`\n }\n\n if (ctrl) {\n result = `Ctrl-${result}`\n }\n\n if (meta) {\n result = `Meta-${result}`\n }\n\n if (shift) {\n result = `Shift-${result}`\n }\n\n return result\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n keyboardShortcut: {\n /**\n * Trigger a keyboard shortcut.\n * @param name The name of the keyboard shortcut.\n * @example editor.commands.keyboardShortcut('Mod-b')\n */\n keyboardShortcut: (name: string) => ReturnType,\n }\n }\n}\n\nexport const keyboardShortcut: RawCommands['keyboardShortcut'] = name => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n const keys = normalizeKeyName(name).split(/-(?!$)/)\n const key = keys.find(item => !['Alt', 'Ctrl', 'Meta', 'Shift'].includes(item))\n const event = new KeyboardEvent('keydown', {\n key: key === 'Space'\n ? ' '\n : key,\n altKey: keys.includes('Alt'),\n ctrlKey: keys.includes('Ctrl'),\n metaKey: keys.includes('Meta'),\n shiftKey: keys.includes('Shift'),\n bubbles: true,\n cancelable: true,\n })\n\n const capturedTransaction = editor.captureTransaction(() => {\n view.someProp('handleKeyDown', f => f(view, event))\n })\n\n capturedTransaction?.steps.forEach(step => {\n const newStep = step.map(tr.mapping)\n\n if (newStep && dispatch) {\n tr.maybeStep(newStep)\n }\n })\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { NodeRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getNodeType } from './getNodeType.js'\n\nexport function isNodeActive(\n state: EditorState,\n typeOrName: NodeType | string | null,\n attributes: Record = {},\n): boolean {\n const { from, to, empty } = state.selection\n const type = typeOrName ? getNodeType(typeOrName, state.schema) : null\n\n const nodeRanges: NodeRange[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isText) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n\n nodeRanges.push({\n node,\n from: relativeFrom,\n to: relativeTo,\n })\n })\n\n const selectionRange = to - from\n const matchedNodeRanges = nodeRanges\n .filter(nodeRange => {\n if (!type) {\n return true\n }\n\n return type.name === nodeRange.node.type.name\n })\n .filter(nodeRange => objectIncludes(nodeRange.node.attrs, attributes, { strict: false }))\n\n if (empty) {\n return !!matchedNodeRanges.length\n }\n\n const range = matchedNodeRanges.reduce((sum, nodeRange) => sum + nodeRange.to - nodeRange.from, 0)\n\n return range >= selectionRange\n}\n","import { lift as originalLift } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n lift: {\n /**\n * Removes an existing wrap if possible lifting the node out of it\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.lift('paragraph')\n * @example editor.commands.lift('heading', { level: 1 })\n */\n lift: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const lift: RawCommands['lift'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (!isActive) {\n return false\n }\n\n return originalLift(state, dispatch)\n}\n","import { liftEmptyBlock as originalLiftEmptyBlock } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftEmptyBlock: {\n /**\n * If the cursor is in an empty textblock that can be lifted, lift the block.\n * @example editor.commands.liftEmptyBlock()\n */\n liftEmptyBlock: () => ReturnType,\n }\n }\n}\n\nexport const liftEmptyBlock: RawCommands['liftEmptyBlock'] = () => ({ state, dispatch }) => {\n return originalLiftEmptyBlock(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { liftListItem as originalLiftListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftListItem: {\n /**\n * Create a command to lift the list item around the selection up into a wrapping list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.liftListItem('listItem')\n */\n liftListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const liftListItem: RawCommands['liftListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalLiftListItem(type)(state, dispatch)\n}\n","import { newlineInCode as originalNewlineInCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n newlineInCode: {\n /**\n * Add a newline character in code.\n * @example editor.commands.newlineInCode()\n */\n newlineInCode: () => ReturnType\n }\n }\n}\n\nexport const newlineInCode: RawCommands['newlineInCode'] = () => ({ state, dispatch }) => {\n return originalNewlineInCode(state, dispatch)\n}\n","import { Schema } from '@tiptap/pm/model'\n\n/**\n * Get the type of a schema item by its name.\n * @param name The name of the schema item\n * @param schema The Prosemiror schema to search in\n * @returns The type of the schema item (`node` or `mark`), or null if it doesn't exist\n */\nexport function getSchemaTypeNameByName(name: string, schema: Schema): 'node' | 'mark' | null {\n if (schema.nodes[name]) {\n return 'node'\n }\n\n if (schema.marks[name]) {\n return 'mark'\n }\n\n return null\n}\n","/**\n * Remove a property or an array of properties from an object\n * @param obj Object\n * @param key Key to remove\n */\nexport function deleteProps(obj: Record, propOrProps: string | string[]): Record {\n const props = typeof propOrProps === 'string'\n ? [propOrProps]\n : propOrProps\n\n return Object\n .keys(obj)\n .reduce((newObj: Record, prop) => {\n if (!props.includes(prop)) {\n newObj[prop] = obj[prop]\n }\n\n return newObj\n }, {})\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\nimport { deleteProps } from '../utilities/deleteProps.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n resetAttributes: {\n /**\n * Resets some node attributes to the default value.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node to reset.\n * @example editor.commands.resetAttributes('heading', 'level')\n */\n resetAttributes: (\n typeOrName: string | NodeType | MarkType,\n attributes: string | string[],\n ) => ReturnType\n }\n }\n}\n\nexport const resetAttributes: RawCommands['resetAttributes'] = (typeOrName, attributes) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n state.doc.nodesBetween(range.$from.pos, range.$to.pos, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, deleteProps(node.attrs, attributes))\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n tr.addMark(\n pos,\n pos + node.nodeSize,\n markType.create(deleteProps(mark.attrs, attributes)),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n scrollIntoView: {\n /**\n * Scroll the selection into view.\n * @example editor.commands.scrollIntoView()\n */\n scrollIntoView: () => ReturnType,\n }\n }\n}\n\nexport const scrollIntoView: RawCommands['scrollIntoView'] = () => ({ tr, dispatch }) => {\n if (dispatch) {\n tr.scrollIntoView()\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectAll: {\n /**\n * Select the whole document.\n * @example editor.commands.selectAll()\n */\n selectAll: () => ReturnType,\n }\n }\n}\n\nexport const selectAll: RawCommands['selectAll'] = () => ({ tr, commands }) => {\n return commands.setTextSelection({\n from: 0,\n to: tr.doc.content.size,\n })\n}\n","import { selectNodeBackward as originalSelectNodeBackward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeBackward: {\n /**\n * Select a node backward.\n * @example editor.commands.selectNodeBackward()\n */\n selectNodeBackward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeBackward: RawCommands['selectNodeBackward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeBackward(state, dispatch)\n}\n","import { selectNodeForward as originalSelectNodeForward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeForward: {\n /**\n * Select a node forward.\n * @example editor.commands.selectNodeForward()\n */\n selectNodeForward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeForward: RawCommands['selectNodeForward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeForward(state, dispatch)\n}\n","import { selectParentNode as originalSelectParentNode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectParentNode: {\n /**\n * Select the parent node.\n * @example editor.commands.selectParentNode()\n */\n selectParentNode: () => ReturnType\n }\n }\n}\n\nexport const selectParentNode: RawCommands['selectParentNode'] = () => ({ state, dispatch }) => {\n return originalSelectParentNode(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockEnd as originalSelectTextblockEnd } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockEnd: {\n /**\n * Moves the cursor to the end of current text block.\n * @example editor.commands.selectTextblockEnd()\n */\n selectTextblockEnd: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockEnd: RawCommands['selectTextblockEnd'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockEnd(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockStart as originalSelectTextblockStart } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockStart: {\n /**\n * Moves the cursor to the start of current text block.\n * @example editor.commands.selectTextblockStart()\n */\n selectTextblockStart: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockStart: RawCommands['selectTextblockStart'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockStart(state, dispatch)\n}\n","import { Node as ProseMirrorNode, ParseOptions, Schema } from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { createNodeFromContent } from './createNodeFromContent.js'\n\n/**\n * Create a new Prosemirror document node from content.\n * @param content The JSON or HTML content to create the document from\n * @param schema The Prosemirror schema to use for the document\n * @param parseOptions Options for the parser\n * @returns The created Prosemirror document node\n */\nexport function createDocument(\n content: Content,\n schema: Schema,\n parseOptions: ParseOptions = {},\n options: { errorOnInvalidContent?: boolean } = {},\n): ProseMirrorNode {\n return createNodeFromContent(content, schema, {\n slice: false,\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent,\n }) as ProseMirrorNode\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { createDocument } from '../helpers/createDocument.js'\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setContent: {\n /**\n * Replace the whole document with new content.\n * @param content The new content.\n * @param emitUpdate Whether to emit an update event.\n * @param parseOptions Options for parsing the content.\n * @example editor.commands.setContent('

Example text

')\n */\n setContent: (\n /**\n * The new content.\n */\n content: Content,\n\n /**\n * Whether to emit an update event.\n * @default false\n */\n emitUpdate?: boolean,\n\n /**\n * Options for parsing the content.\n * @default {}\n */\n parseOptions?: ParseOptions,\n /**\n * Options for `setContent`.\n */\n options?: {\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const setContent: RawCommands['setContent'] = (content, emitUpdate = false, parseOptions = {}, options = {}) => ({\n editor, tr, dispatch, commands,\n}) => {\n const { doc } = tr\n\n // This is to keep backward compatibility with the previous behavior\n // TODO remove this in the next major version\n if (parseOptions.preserveWhitespace !== 'full') {\n const document = createDocument(content, editor.schema, parseOptions, {\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n\n if (dispatch) {\n tr.replaceWith(0, doc.content.size, document).setMeta('preventUpdate', !emitUpdate)\n }\n return true\n }\n\n if (dispatch) {\n tr.setMeta('preventUpdate', !emitUpdate)\n }\n\n return commands.insertContentAt(\n { from: 0, to: doc.content.size },\n content,\n {\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n },\n )\n}\n","import { Mark, MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkType } from './getMarkType.js'\n\nexport function getMarkAttributes(\n state: EditorState,\n typeOrName: string | MarkType,\n): Record {\n const type = getMarkType(typeOrName, state.schema)\n const { from, to, empty } = state.selection\n const marks: Mark[] = []\n\n if (empty) {\n if (state.storedMarks) {\n marks.push(...state.storedMarks)\n }\n\n marks.push(...state.selection.$head.marks())\n } else {\n state.doc.nodesBetween(from, to, node => {\n marks.push(...node.marks)\n })\n }\n\n const mark = marks.find(markItem => markItem.type.name === type.name)\n\n if (!mark) {\n return {}\n }\n\n return { ...mark.attrs }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { Transform } from '@tiptap/pm/transform'\n\n/**\n * Returns a new `Transform` based on all steps of the passed transactions.\n * @param oldDoc The Prosemirror node to start from\n * @param transactions The transactions to combine\n * @returns A new `Transform` with all steps of the passed transactions\n */\nexport function combineTransactionSteps(\n oldDoc: ProseMirrorNode,\n transactions: Transaction[],\n): Transform {\n const transform = new Transform(oldDoc)\n\n transactions.forEach(transaction => {\n transaction.steps.forEach(step => {\n transform.step(step)\n })\n })\n\n return transform\n}\n","import { ContentMatch, NodeType } from '@tiptap/pm/model'\n\n/**\n * Gets the default block type at a given match\n * @param match The content match to get the default block type from\n * @returns The default block type or null\n */\nexport function defaultBlockAt(match: ContentMatch): NodeType | null {\n for (let i = 0; i < match.edgeCount; i += 1) {\n const { type } = match.edge(i)\n\n if (type.isTextblock && !type.hasRequiredAttrs()) {\n return type\n }\n }\n\n return null\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate } from '../types.js'\n\n/**\n * Find children inside a Prosemirror node that match a predicate.\n * @param node The Prosemirror node to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildren(node: ProseMirrorNode, predicate: Predicate): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n node.descendants((child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate, Range } from '../types.js'\n\n/**\n * Same as `findChildren` but searches only within a `range`.\n * @param node The Prosemirror node to search in\n * @param range The range to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildrenInRange(\n node: ProseMirrorNode,\n range: Range,\n predicate: Predicate,\n): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n // if (range.from === range.to) {\n // const nodeAt = node.nodeAt(range.from)\n\n // if (nodeAt) {\n // nodesWithPos.push({\n // node: nodeAt,\n // pos: range.from,\n // })\n // }\n // }\n\n node.nodesBetween(range.from, range.to, (child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Predicate } from '../types.js'\n\n/**\n * Finds the closest parent node to a resolved position that matches a predicate.\n * @param $pos The resolved position to search from\n * @param predicate The predicate to match\n * @returns The closest parent node to the resolved position that matches the predicate\n * @example ```js\n * findParentNodeClosestToPos($from, node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNodeClosestToPos(\n $pos: ResolvedPos,\n predicate: Predicate,\n):\n | {\n pos: number\n start: number\n depth: number\n node: ProseMirrorNode\n }\n | undefined {\n for (let i = $pos.depth; i > 0; i -= 1) {\n const node = $pos.node(i)\n\n if (predicate(node)) {\n return {\n pos: i > 0 ? $pos.before(i) : 0,\n start: $pos.start(i),\n depth: i,\n node,\n }\n }\n }\n}\n","import { Selection } from '@tiptap/pm/state'\n\nimport { Predicate } from '../types.js'\nimport { findParentNodeClosestToPos } from './findParentNodeClosestToPos.js'\n\n/**\n * Finds the closest parent node to the current selection that matches a predicate.\n * @param predicate The predicate to match\n * @returns A command that finds the closest parent node to the current selection that matches the predicate\n * @example ```js\n * findParentNode(node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNode(predicate: Predicate) {\n return (selection: Selection) => findParentNodeClosestToPos(selection.$from, predicate)\n}\n","import { DOMSerializer, Fragment, Schema } from '@tiptap/pm/model'\n\nexport function getHTMLFromFragment(fragment: Fragment, schema: Schema): string {\n const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment)\n\n const temporaryDocument = document.implementation.createHTMLDocument()\n const container = temporaryDocument.createElement('div')\n\n container.appendChild(documentFragment)\n\n return container.innerHTML\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { Editor } from '../Editor.js'\nimport { ExtensionManager } from '../ExtensionManager.js'\nimport { Extensions } from '../types.js'\nimport { getSchemaByResolvedExtensions } from './getSchemaByResolvedExtensions.js'\n\nexport function getSchema(extensions: Extensions, editor?: Editor): Schema {\n const resolvedExtensions = ExtensionManager.resolve(extensions)\n\n return getSchemaByResolvedExtensions(resolvedExtensions, editor)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent } from '../types.js'\nimport { getHTMLFromFragment } from './getHTMLFromFragment.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate HTML from a JSONContent\n * @param doc The JSONContent to generate HTML from\n * @param extensions The extensions to use for the schema\n * @returns The generated HTML\n */\nexport function generateHTML(doc: JSONContent, extensions: Extensions): string {\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getHTMLFromFragment(contentNode.content, schema)\n}\n","import { DOMParser } from '@tiptap/pm/model'\n\nimport { Extensions } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate JSONContent from HTML\n * @param html The HTML to generate JSONContent from\n * @param extensions The extensions to use for the schema\n * @returns The generated JSONContent\n */\nexport function generateJSON(html: string, extensions: Extensions): Record {\n const schema = getSchema(extensions)\n const dom = elementFromString(html)\n\n return DOMParser.fromSchema(schema).parse(dom).toJSON()\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\nimport { getTextBetween } from './getTextBetween.js'\n\n/**\n * Gets the text of a Prosemirror node\n * @param node The Prosemirror node\n * @param options Options for the text serializer & block separator\n * @returns The text of the node\n * @example ```js\n * const text = getText(node, { blockSeparator: '\\n' })\n * ```\n */\nexport function getText(\n node: ProseMirrorNode,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n) {\n const range = {\n from: 0,\n to: node.content.size,\n }\n\n return getTextBetween(node, range, options)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent, TextSerializer } from '../types.js'\nimport { getSchema } from './getSchema.js'\nimport { getText } from './getText.js'\nimport { getTextSerializersFromSchema } from './getTextSerializersFromSchema.js'\n\n/**\n * Generate raw text from a JSONContent\n * @param doc The JSONContent to generate text from\n * @param extensions The extensions to use for the schema\n * @param options Options for the text generation f.e. blockSeparator or textSerializers\n * @returns The generated text\n */\nexport function generateText(\n doc: JSONContent,\n extensions: Extensions,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getText(contentNode, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(schema),\n ...textSerializers,\n },\n })\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getNodeType } from './getNodeType.js'\n\nexport function getNodeAttributes(\n state: EditorState,\n typeOrName: string | NodeType,\n): Record {\n const type = getNodeType(typeOrName, state.schema)\n const { from, to } = state.selection\n const nodes: Node[] = []\n\n state.doc.nodesBetween(from, to, node => {\n nodes.push(node)\n })\n\n const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name)\n\n if (!node) {\n return {}\n }\n\n return { ...node.attrs }\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from './getMarkAttributes.js'\nimport { getNodeAttributes } from './getNodeAttributes.js'\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\n\n/**\n * Get node or mark attributes by type or name on the current editor state\n * @param state The current editor state\n * @param typeOrName The node or mark type or name\n * @returns The attributes of the node or mark or an empty object\n */\nexport function getAttributes(\n state: EditorState,\n typeOrName: string | NodeType | MarkType,\n): Record {\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (schemaType === 'node') {\n return getNodeAttributes(state, typeOrName as NodeType)\n }\n\n if (schemaType === 'mark') {\n return getMarkAttributes(state, typeOrName as MarkType)\n }\n\n return {}\n}\n","/**\n * Removes duplicated values within an array.\n * Supports numbers, strings and objects.\n */\nexport function removeDuplicates(array: T[], by = JSON.stringify): T[] {\n const seen: Record = {}\n\n return array.filter(item => {\n const key = by(item)\n\n return Object.prototype.hasOwnProperty.call(seen, key)\n ? false\n : (seen[key] = true)\n })\n}\n","import { Step, Transform } from '@tiptap/pm/transform'\n\nimport { Range } from '../types.js'\nimport { removeDuplicates } from '../utilities/removeDuplicates.js'\n\nexport type ChangedRange = {\n oldRange: Range,\n newRange: Range,\n}\n\n/**\n * Removes duplicated ranges and ranges that are\n * fully captured by other ranges.\n */\nfunction simplifyChangedRanges(changes: ChangedRange[]): ChangedRange[] {\n const uniqueChanges = removeDuplicates(changes)\n\n return uniqueChanges.length === 1\n ? uniqueChanges\n : uniqueChanges.filter((change, index) => {\n const rest = uniqueChanges.filter((_, i) => i !== index)\n\n return !rest.some(otherChange => {\n return change.oldRange.from >= otherChange.oldRange.from\n && change.oldRange.to <= otherChange.oldRange.to\n && change.newRange.from >= otherChange.newRange.from\n && change.newRange.to <= otherChange.newRange.to\n })\n })\n}\n\n/**\n * Returns a list of changed ranges\n * based on the first and last state of all steps.\n */\nexport function getChangedRanges(transform: Transform): ChangedRange[] {\n const { mapping, steps } = transform\n const changes: ChangedRange[] = []\n\n mapping.maps.forEach((stepMap, index) => {\n const ranges: Range[] = []\n\n // This accounts for step changes where no range was actually altered\n // e.g. when setting a mark, node attribute, etc.\n // @ts-ignore\n if (!stepMap.ranges.length) {\n const { from, to } = steps[index] as Step & {\n from?: number,\n to?: number,\n }\n\n if (from === undefined || to === undefined) {\n return\n }\n\n ranges.push({ from, to })\n } else {\n stepMap.forEach((from, to) => {\n ranges.push({ from, to })\n })\n }\n\n ranges.forEach(({ from, to }) => {\n const newStart = mapping.slice(index).map(from, -1)\n const newEnd = mapping.slice(index).map(to)\n const oldStart = mapping.invert().map(newStart, -1)\n const oldEnd = mapping.invert().map(newEnd)\n\n changes.push({\n oldRange: {\n from: oldStart,\n to: oldEnd,\n },\n newRange: {\n from: newStart,\n to: newEnd,\n },\n })\n })\n })\n\n return simplifyChangedRanges(changes)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { JSONContent } from '../types.js'\n\ninterface DebugJSONContent extends JSONContent {\n from: number\n to: number\n}\n\nexport function getDebugJSON(node: ProseMirrorNode, startOffset = 0): DebugJSONContent {\n const isTopNode = node.type === node.type.schema.topNodeType\n const increment = isTopNode ? 0 : 1\n const from = startOffset\n const to = from + node.nodeSize\n const marks = node.marks.map(mark => {\n const output: { type: string; attrs?: Record } = {\n type: mark.type.name,\n }\n\n if (Object.keys(mark.attrs).length) {\n output.attrs = { ...mark.attrs }\n }\n\n return output\n })\n const attrs = { ...node.attrs }\n const output: DebugJSONContent = {\n type: node.type.name,\n from,\n to,\n }\n\n if (Object.keys(attrs).length) {\n output.attrs = attrs\n }\n\n if (marks.length) {\n output.marks = marks\n }\n\n if (node.content.childCount) {\n output.content = []\n\n node.forEach((child, offset) => {\n output.content?.push(getDebugJSON(child, startOffset + offset + increment))\n })\n }\n\n if (node.text) {\n output.text = node.text\n }\n\n return output\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { MarkRange } from '../types.js'\nimport { getMarkRange } from './getMarkRange.js'\n\nexport function getMarksBetween(from: number, to: number, doc: ProseMirrorNode): MarkRange[] {\n const marks: MarkRange[] = []\n\n // get all inclusive marks on empty selection\n if (from === to) {\n doc\n .resolve(from)\n .marks()\n .forEach(mark => {\n const $pos = doc.resolve(from)\n const range = getMarkRange($pos, mark.type)\n\n if (!range) {\n return\n }\n\n marks.push({\n mark,\n ...range,\n })\n })\n } else {\n doc.nodesBetween(from, to, (node, pos) => {\n if (!node || node?.nodeSize === undefined) {\n return\n }\n\n marks.push(\n ...node.marks.map(mark => ({\n from: pos,\n to: pos + node.nodeSize,\n mark,\n })),\n )\n })\n }\n\n return marks\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\n/**\n * Finds the first node of a given type or name in the current selection.\n * @param state The editor state.\n * @param typeOrName The node type or name.\n * @param pos The position to start searching from.\n * @param maxDepth The maximum depth to search.\n * @returns The node and the depth as an array.\n */\nexport const getNodeAtPosition = (state: EditorState, typeOrName: string | NodeType, pos: number, maxDepth = 20) => {\n const $pos = state.doc.resolve(pos)\n\n let currentDepth = maxDepth\n let node: Node | null = null\n\n while (currentDepth > 0 && node === null) {\n const currentNode = $pos.node(currentDepth)\n\n if (currentNode?.type.name === typeOrName) {\n node = currentNode\n } else {\n currentDepth -= 1\n }\n }\n\n return [node, currentDepth] as [Node | null, number]\n}\n","import { ExtensionAttribute } from '../types.js'\n\n/**\n * Return attributes of an extension that should be splitted by keepOnSplit flag\n * @param extensionAttributes Array of extension attributes\n * @param typeName The type of the extension\n * @param attributes The attributes of the extension\n * @returns The splitted attributes\n */\nexport function getSplittedAttributes(\n extensionAttributes: ExtensionAttribute[],\n typeName: string,\n attributes: Record,\n): Record {\n return Object.fromEntries(Object\n .entries(attributes)\n .filter(([name]) => {\n const extensionAttribute = extensionAttributes.find(item => {\n return item.type === typeName && item.name === name\n })\n\n if (!extensionAttribute) {\n return false\n }\n\n return extensionAttribute.attribute.keepOnSplit\n }))\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { MarkRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getMarkType } from './getMarkType.js'\n\nexport function isMarkActive(\n state: EditorState,\n typeOrName: MarkType | string | null,\n attributes: Record = {},\n): boolean {\n const { empty, ranges } = state.selection\n const type = typeOrName ? getMarkType(typeOrName, state.schema) : null\n\n if (empty) {\n return !!(state.storedMarks || state.selection.$from.marks())\n .filter(mark => {\n if (!type) {\n return true\n }\n\n return type.name === mark.type.name\n })\n .find(mark => objectIncludes(mark.attrs, attributes, { strict: false }))\n }\n\n let selectionRange = 0\n const markRanges: MarkRange[] = []\n\n ranges.forEach(({ $from, $to }) => {\n const from = $from.pos\n const to = $to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isText && !node.marks.length) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n const range = relativeTo - relativeFrom\n\n selectionRange += range\n\n markRanges.push(\n ...node.marks.map(mark => ({\n mark,\n from: relativeFrom,\n to: relativeTo,\n })),\n )\n })\n })\n\n if (selectionRange === 0) {\n return false\n }\n\n // calculate range of matched mark\n const matchedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return type.name === markRange.mark.type.name\n })\n .filter(markRange => objectIncludes(markRange.mark.attrs, attributes, { strict: false }))\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // calculate range of marks that excludes the searched mark\n // for example `code` doesn’t allow any other marks\n const excludedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return markRange.mark.type !== type && markRange.mark.type.excludes(type)\n })\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // we only include the result of `excludedRange`\n // if there is a match at all\n const range = matchedRange > 0 ? matchedRange + excludedRange : matchedRange\n\n return range >= selectionRange\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\nimport { isMarkActive } from './isMarkActive.js'\nimport { isNodeActive } from './isNodeActive.js'\n\nexport function isActive(\n state: EditorState,\n name: string | null,\n attributes: Record = {},\n): boolean {\n if (!name) {\n return isNodeActive(state, null, attributes) || isMarkActive(state, null, attributes)\n }\n\n const schemaType = getSchemaTypeNameByName(name, state.schema)\n\n if (schemaType === 'node') {\n return isNodeActive(state, name, attributes)\n }\n\n if (schemaType === 'mark') {\n return isMarkActive(state, name, attributes)\n }\n\n return false\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { findParentNode } from './findParentNode.js'\n\nexport const isAtEndOfNode = (state: EditorState, nodeType?: string) => {\n const { $from, $to, $anchor } = state.selection\n\n if (nodeType) {\n const parentNode = findParentNode(node => node.type.name === nodeType)(state.selection)\n\n if (!parentNode) {\n return false\n }\n\n const $parentPos = state.doc.resolve(parentNode.pos + 1)\n\n if ($anchor.pos + 1 === $parentPos.end()) {\n return true\n }\n\n return false\n }\n\n if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nexport const isAtStartOfNode = (state: EditorState) => {\n const { $from, $to } = state.selection\n\n if ($from.parentOffset > 0 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { getExtensionField } from '../helpers/getExtensionField.js'\nimport { NodeConfig } from '../index.js'\nimport { Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nexport function isList(name: string, extensions: Extensions): boolean {\n const { nodeExtensions } = splitExtensions(extensions)\n const extension = nodeExtensions.find(item => item.name === name)\n\n if (!extension) {\n return false\n }\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n const group = callOrReturn(getExtensionField(extension, 'group', context))\n\n if (typeof group !== 'string') {\n return false\n }\n\n return group.split(' ').includes('list')\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\n/**\n * Returns true if the given prosemirror node is empty.\n */\nexport function isNodeEmpty(\n node: ProseMirrorNode,\n {\n checkChildren = true,\n ignoreWhitespace = false,\n }: {\n /**\n * When true (default), it will also check if all children are empty.\n */\n checkChildren?: boolean;\n /**\n * When true, it will ignore whitespace when checking for emptiness.\n */\n ignoreWhitespace?: boolean;\n } = {},\n): boolean {\n if (ignoreWhitespace) {\n if (node.type.name === 'hardBreak') {\n // Hard breaks are considered empty\n return true\n }\n if (node.isText) {\n return /^\\s*$/m.test(node.text ?? '')\n }\n }\n\n if (node.isText) {\n return !node.text\n }\n\n if (node.isAtom || node.isLeaf) {\n return false\n }\n\n if (node.content.childCount === 0) {\n return true\n }\n\n if (checkChildren) {\n let isContentEmpty = true\n\n node.content.forEach(childNode => {\n if (isContentEmpty === false) {\n // Exit early for perf\n return\n }\n\n if (!isNodeEmpty(childNode, { ignoreWhitespace, checkChildren })) {\n isContentEmpty = false\n }\n })\n\n return isContentEmpty\n }\n\n return false\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nexport function isNodeSelection(value: unknown): value is NodeSelection {\n return value instanceof NodeSelection\n}\n","import { EditorView } from '@tiptap/pm/view'\n\nimport { minMax } from '../utilities/minMax.js'\n\nexport function posToDOMRect(view: EditorView, from: number, to: number): DOMRect {\n const minPos = 0\n const maxPos = view.state.doc.content.size\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const start = view.coordsAtPos(resolvedFrom)\n const end = view.coordsAtPos(resolvedEnd, -1)\n const top = Math.min(start.top, end.top)\n const bottom = Math.max(start.bottom, end.bottom)\n const left = Math.min(start.left, end.left)\n const right = Math.max(start.right, end.right)\n const width = right - left\n const height = bottom - top\n const x = left\n const y = top\n const data = {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x,\n y,\n }\n\n return {\n ...data,\n toJSON: () => data,\n }\n}\n","import { MarkType, ResolvedPos } from '@tiptap/pm/model'\nimport { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from '../helpers/getMarkAttributes.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isTextSelection } from '../helpers/index.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMark: {\n /**\n * Add a mark with new attributes.\n * @param typeOrName The mark type or name.\n * @example editor.commands.setMark('bold', { level: 1 })\n */\n setMark: (typeOrName: string | MarkType, attributes?: Record) => ReturnType\n }\n }\n}\n\nfunction canSetMark(state: EditorState, tr: Transaction, newMarkType: MarkType) {\n const { selection } = tr\n let cursor: ResolvedPos | null = null\n\n if (isTextSelection(selection)) {\n cursor = selection.$cursor\n }\n\n if (cursor) {\n const currentMarks = state.storedMarks ?? cursor.marks()\n\n // There can be no current marks that exclude the new mark\n return (\n !!newMarkType.isInSet(currentMarks)\n || !currentMarks.some(mark => mark.type.excludes(newMarkType))\n )\n }\n\n const { ranges } = selection\n\n return ranges.some(({ $from, $to }) => {\n let someNodeSupportsMark = $from.depth === 0\n ? state.doc.inlineContent && state.doc.type.allowsMarkType(newMarkType)\n : false\n\n state.doc.nodesBetween($from.pos, $to.pos, (node, _pos, parent) => {\n // If we already found a mark that we can enable, return false to bypass the remaining search\n if (someNodeSupportsMark) {\n return false\n }\n\n if (node.isInline) {\n const parentAllowsMarkType = !parent || parent.type.allowsMarkType(newMarkType)\n const currentMarksAllowMarkType = !!newMarkType.isInSet(node.marks)\n || !node.marks.some(otherMark => otherMark.type.excludes(newMarkType))\n\n someNodeSupportsMark = parentAllowsMarkType && currentMarksAllowMarkType\n }\n return !someNodeSupportsMark\n })\n\n return someNodeSupportsMark\n })\n}\nexport const setMark: RawCommands['setMark'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n const type = getMarkType(typeOrName, state.schema)\n\n if (dispatch) {\n if (empty) {\n const oldAttributes = getMarkAttributes(state, type)\n\n tr.addStoredMark(\n type.create({\n ...oldAttributes,\n ...attributes,\n }),\n )\n } else {\n ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n const someHasMark = node.marks.find(mark => mark.type === type)\n\n // if there is already a mark of this type\n // we know that we have to merge its attributes\n // otherwise we add a fresh new mark\n if (someHasMark) {\n node.marks.forEach(mark => {\n if (type === mark.type) {\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n type.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n } else {\n tr.addMark(trimmedFrom, trimmedTo, type.create(attributes))\n }\n })\n })\n }\n }\n\n return canSetMark(state, tr, type)\n}\n","import type { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMeta: {\n /**\n * Store a metadata property in the current transaction.\n * @param key The key of the metadata property.\n * @param value The value to store.\n * @example editor.commands.setMeta('foo', 'bar')\n */\n setMeta: (key: string | Plugin | PluginKey, value: any) => ReturnType,\n }\n }\n}\n\nexport const setMeta: RawCommands['setMeta'] = (key, value) => ({ tr }) => {\n tr.setMeta(key, value)\n\n return true\n}\n","import { setBlockType } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNode: {\n /**\n * Replace a given range with a node.\n * @param typeOrName The type or name of the node\n * @param attributes The attributes of the node\n * @example editor.commands.setNode('paragraph')\n */\n setNode: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const setNode: RawCommands['setNode'] = (typeOrName, attributes = {}) => ({ state, dispatch, chain }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n // TODO: use a fallback like insertContent?\n if (!type.isTextblock) {\n console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.')\n\n return false\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(({ commands }) => {\n const canSetBlock = setBlockType(type, attributes)(state)\n\n if (canSetBlock) {\n return true\n }\n\n return commands.clearNodes()\n })\n .command(({ state: updatedState }) => {\n return setBlockType(type, attributes)(updatedState, dispatch)\n })\n .run()\n )\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNodeSelection: {\n /**\n * Creates a NodeSelection.\n * @param position - Position of the node.\n * @example editor.commands.setNodeSelection(10)\n */\n setNodeSelection: (position: number) => ReturnType\n }\n }\n}\n\nexport const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const from = minMax(position, 0, doc.content.size)\n const selection = NodeSelection.create(doc, from)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { Range, RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setTextSelection: {\n /**\n * Creates a TextSelection.\n * @param position The position of the selection.\n * @example editor.commands.setTextSelection(10)\n */\n setTextSelection: (position: number | Range) => ReturnType\n }\n }\n}\n\nexport const setTextSelection: RawCommands['setTextSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const { from, to } = typeof position === 'number' ? { from: position, to: position } : position\n const minPos = TextSelection.atStart(doc).from\n const maxPos = TextSelection.atEnd(doc).to\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { sinkListItem as originalSinkListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n sinkListItem: {\n /**\n * Sink the list item down into an inner list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.sinkListItem('listItem')\n */\n sinkListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const sinkListItem: RawCommands['sinkListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalSinkListItem(type)(state, dispatch)\n}\n","import { EditorState, NodeSelection, TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { defaultBlockAt } from '../helpers/defaultBlockAt.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\nfunction ensureMarks(state: EditorState, splittableMarks?: string[]) {\n const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks?.includes(mark.type.name))\n\n state.tr.ensureMarks(filteredMarks)\n }\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitBlock: {\n /**\n * Forks a new node from an existing node.\n * @param options.keepMarks Keep marks from the previous node.\n * @example editor.commands.splitBlock()\n * @example editor.commands.splitBlock({ keepMarks: true })\n */\n splitBlock: (options?: { keepMarks?: boolean }) => ReturnType\n }\n }\n}\n\nexport const splitBlock: RawCommands['splitBlock'] = ({ keepMarks = true } = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const { selection, doc } = tr\n const { $from, $to } = selection\n const extensionAttributes = editor.extensionManager.attributes\n const newAttributes = getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n )\n\n if (selection instanceof NodeSelection && selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(doc, $from.pos)) {\n return false\n }\n\n if (dispatch) {\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.split($from.pos).scrollIntoView()\n }\n\n return true\n }\n\n if (!$from.parent.isBlock) {\n return false\n }\n\n const atEnd = $to.parentOffset === $to.parent.content.size\n\n const deflt = $from.depth === 0\n ? undefined\n : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)))\n\n let types = atEnd && deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types)\n\n if (\n !types\n && !can\n && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)\n ) {\n can = true\n types = deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n }\n\n if (dispatch) {\n if (can) {\n if (selection instanceof TextSelection) {\n tr.deleteSelection()\n }\n\n tr.split(tr.mapping.map($from.pos), 1, types)\n\n if (deflt && !atEnd && !$from.parentOffset && $from.parent.type !== deflt) {\n const first = tr.mapping.map($from.before())\n const $first = tr.doc.resolve(first)\n\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt)) {\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt)\n }\n }\n }\n\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.scrollIntoView()\n }\n\n return can\n}\n","import {\n Fragment, Node as ProseMirrorNode, NodeType, Slice,\n} from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitListItem: {\n /**\n * Splits one list item into two list items.\n * @param typeOrName The type or name of the node.\n * @param overrideAttrs The attributes to ensure on the new node.\n * @example editor.commands.splitListItem('listItem')\n */\n splitListItem: (typeOrName: string | NodeType, overrideAttrs?: Record) => ReturnType\n }\n }\n}\n\nexport const splitListItem: RawCommands['splitListItem'] = (typeOrName, overrideAttrs = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const type = getNodeType(typeOrName, state.schema)\n const { $from, $to } = state.selection\n\n // @ts-ignore\n // eslint-disable-next-line\n const node: ProseMirrorNode = state.selection.node\n\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {\n return false\n }\n\n const grandParent = $from.node(-1)\n\n if (grandParent.type !== type) {\n return false\n }\n\n const extensionAttributes = editor.extensionManager.attributes\n\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if (\n $from.depth === 2\n || $from.node(-3).type !== type\n || $from.index(-2) !== $from.node(-2).childCount - 1\n ) {\n return false\n }\n\n if (dispatch) {\n let wrap = Fragment.empty\n // eslint-disable-next-line\n const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3\n\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {\n wrap = Fragment.from($from.node(d).copy(wrap))\n }\n\n // eslint-disable-next-line\n const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3\n\n // Add a second list item with an empty default start node\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n const nextType = type.contentMatch.defaultType?.createAndFill(newNextTypeAttributes) || undefined\n\n wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined))\n\n const start = $from.before($from.depth - (depthBefore - 1))\n\n tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0))\n\n let sel = -1\n\n tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {\n if (sel > -1) {\n return false\n }\n\n if (n.isTextblock && n.content.size === 0) {\n sel = pos + 1\n }\n })\n\n if (sel > -1) {\n tr.setSelection(TextSelection.near(tr.doc.resolve(sel)))\n }\n\n tr.scrollIntoView()\n }\n\n return true\n }\n\n const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null\n\n const newTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n grandParent.type.name,\n grandParent.attrs,\n ),\n ...overrideAttrs,\n }\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n\n tr.delete($from.pos, $to.pos)\n\n const types = nextType\n ? [\n { type, attrs: newTypeAttributes },\n { type: nextType, attrs: newNextTypeAttributes },\n ]\n : [{ type, attrs: newTypeAttributes }]\n\n if (!canSplit(tr.doc, $from.pos, 2)) {\n return false\n }\n\n if (dispatch) {\n const { selection, storedMarks } = state\n const { splittableMarks } = editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n tr.split($from.pos, 2, types).scrollIntoView()\n\n if (!marks || !dispatch) {\n return true\n }\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { canJoin } from '@tiptap/pm/transform'\n\nimport { findParentNode } from '../helpers/findParentNode.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isList } from '../helpers/isList.js'\nimport { RawCommands } from '../types.js'\n\nconst joinListBackwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const before = tr.doc.resolve(Math.max(0, list.pos - 1)).before(list.depth)\n\n if (before === undefined) {\n return true\n }\n\n const nodeBefore = tr.doc.nodeAt(before)\n const canJoinBackwards = list.node.type === nodeBefore?.type && canJoin(tr.doc, list.pos)\n\n if (!canJoinBackwards) {\n return true\n }\n\n tr.join(list.pos)\n\n return true\n}\n\nconst joinListForwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const after = tr.doc.resolve(list.start).after(list.depth)\n\n if (after === undefined) {\n return true\n }\n\n const nodeAfter = tr.doc.nodeAt(after)\n const canJoinForwards = list.node.type === nodeAfter?.type && canJoin(tr.doc, after)\n\n if (!canJoinForwards) {\n return true\n }\n\n tr.join(after)\n\n return true\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleList: {\n /**\n * Toggle between different list types.\n * @param listTypeOrName The type or name of the list.\n * @param itemTypeOrName The type or name of the list item.\n * @param keepMarks Keep marks when toggling.\n * @param attributes Attributes for the new list.\n * @example editor.commands.toggleList('bulletList', 'listItem')\n */\n toggleList: (listTypeOrName: string | NodeType, itemTypeOrName: string | NodeType, keepMarks?: boolean, attributes?: Record) => ReturnType;\n }\n }\n}\n\nexport const toggleList: RawCommands['toggleList'] = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({\n editor, tr, state, dispatch, chain, commands, can,\n}) => {\n const { extensions, splittableMarks } = editor.extensionManager\n const listType = getNodeType(listTypeOrName, state.schema)\n const itemType = getNodeType(itemTypeOrName, state.schema)\n const { selection, storedMarks } = state\n const { $from, $to } = selection\n const range = $from.blockRange($to)\n\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!range) {\n return false\n }\n\n const parentList = findParentNode(node => isList(node.type.name, extensions))(selection)\n\n if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {\n // remove list\n if (parentList.node.type === listType) {\n return commands.liftListItem(itemType)\n }\n\n // change list type\n if (\n isList(parentList.node.type.name, extensions)\n && listType.validContent(parentList.node.content)\n && dispatch\n ) {\n return chain()\n .command(() => {\n tr.setNodeMarkup(parentList.pos, listType)\n\n return true\n })\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n }\n if (!keepMarks || !marks || !dispatch) {\n\n return chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n )\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isMarkActive } from '../helpers/isMarkActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleMark: {\n /**\n * Toggle a mark on and off.\n * @param typeOrName The mark type or name.\n * @param attributes The attributes of the mark.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.toggleMark('bold')\n */\n toggleMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const toggleMark: RawCommands['toggleMark'] = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {\n const { extendEmptyMarkRange = false } = options\n const type = getMarkType(typeOrName, state.schema)\n const isActive = isMarkActive(state, type, attributes)\n\n if (isActive) {\n return commands.unsetMark(type, { extendEmptyMarkRange })\n }\n\n return commands.setMark(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleNode: {\n /**\n * Toggle a node with another node.\n * @param typeOrName The type or name of the node.\n * @param toggleTypeOrName The type or name of the node to toggle.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleNode('heading', 'paragraph')\n */\n toggleNode: (\n typeOrName: string | NodeType,\n toggleTypeOrName: string | NodeType,\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const toggleNode: RawCommands['toggleNode'] = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const toggleType = getNodeType(toggleTypeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.setNode(toggleType)\n }\n\n return commands.setNode(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleWrap: {\n /**\n * Wraps nodes in another node, or removes an existing wrap.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleWrap('blockquote')\n */\n toggleWrap: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const toggleWrap: RawCommands['toggleWrap'] = (typeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.lift(type)\n }\n\n return commands.wrapIn(type, attributes)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n undoInputRule: {\n /**\n * Undo an input rule.\n * @example editor.commands.undoInputRule()\n */\n undoInputRule: () => ReturnType,\n }\n }\n}\n\nexport const undoInputRule: RawCommands['undoInputRule'] = () => ({ state, dispatch }) => {\n const plugins = state.plugins\n\n for (let i = 0; i < plugins.length; i += 1) {\n const plugin = plugins[i]\n let undoable\n\n // @ts-ignore\n // eslint-disable-next-line\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n const tr = state.tr\n const toUndo = undoable.transform\n\n for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]))\n }\n\n if (undoable.text) {\n const marks = tr.doc.resolve(undoable.from).marks()\n\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks))\n } else {\n tr.delete(undoable.from, undoable.to)\n }\n }\n\n return true\n }\n }\n\n return false\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetAllMarks: {\n /**\n * Remove all marks in the current selection.\n * @example editor.commands.unsetAllMarks()\n */\n unsetAllMarks: () => ReturnType,\n }\n }\n}\n\nexport const unsetAllMarks: RawCommands['unsetAllMarks'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n\n if (empty) {\n return true\n }\n\n if (dispatch) {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos)\n })\n }\n\n return true\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetMark: {\n /**\n * Remove all marks in the current selection.\n * @param typeOrName The mark type or name.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.unsetMark('bold')\n */\n unsetMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const unsetMark: RawCommands['unsetMark'] = (typeOrName, options = {}) => ({ tr, state, dispatch }) => {\n const { extendEmptyMarkRange = false } = options\n const { selection } = tr\n const type = getMarkType(typeOrName, state.schema)\n const { $from, empty, ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n if (empty && extendEmptyMarkRange) {\n let { from, to } = selection\n const attrs = $from.marks().find(mark => mark.type === type)?.attrs\n const range = getMarkRange($from, type, attrs)\n\n if (range) {\n from = range.from\n to = range.to\n }\n\n tr.removeMark(from, to, type)\n } else {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos, type)\n })\n }\n\n tr.removeStoredMark(type)\n\n return true\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n updateAttributes: {\n /**\n * Update attributes of a node or mark.\n * @param typeOrName The type or name of the node or mark.\n * @param attributes The attributes of the node or mark.\n * @example editor.commands.updateAttributes('mention', { userId: \"2\" })\n */\n updateAttributes: (\n /**\n * The type or name of the node or mark.\n */\n typeOrName: string | NodeType | MarkType,\n\n /**\n * The attributes of the node or mark.\n */\n attributes: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const updateAttributes: RawCommands['updateAttributes'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...attributes,\n })\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n markType.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { wrapIn as originalWrapIn } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapIn: {\n /**\n * Wraps nodes in another node.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapIn('blockquote')\n */\n wrapIn: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapIn: RawCommands['wrapIn'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapIn(type, attributes)(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { wrapInList as originalWrapInList } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapInList: {\n /**\n * Wrap a node in a list.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapInList('bulletList')\n */\n wrapInList: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapInList: RawCommands['wrapInList'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapInList(type, attributes)(state, dispatch)\n}\n","import * as commands from '../commands/index.js'\nimport { Extension } from '../Extension.js'\n\nexport * from '../commands/index.js'\n\nexport const Commands = Extension.create({\n name: 'commands',\n\n addCommands() {\n return {\n ...commands,\n }\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Editable = Extension.create({\n name: 'editable',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('editable'),\n props: {\n editable: () => this.editor.options.editable,\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const FocusEvents = Extension.create({\n name: 'focusEvents',\n\n addProseMirrorPlugins() {\n const { editor } = this\n\n return [\n new Plugin({\n key: new PluginKey('focusEvents'),\n props: {\n handleDOMEvents: {\n focus: (view, event: Event) => {\n editor.isFocused = true\n\n const transaction = editor.state.tr\n .setMeta('focus', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n blur: (view, event: Event) => {\n editor.isFocused = false\n\n const transaction = editor.state.tr\n .setMeta('blur', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n },\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey, Selection } from '@tiptap/pm/state'\n\nimport { CommandManager } from '../CommandManager.js'\nimport { Extension } from '../Extension.js'\nimport { createChainableState } from '../helpers/createChainableState.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nexport const Keymap = Extension.create({\n name: 'keymap',\n\n addKeyboardShortcuts() {\n const handleBackspace = () => this.editor.commands.first(({ commands }) => [\n () => commands.undoInputRule(),\n\n // maybe convert first text block node to default node\n () => commands.command(({ tr }) => {\n const { selection, doc } = tr\n const { empty, $anchor } = selection\n const { pos, parent } = $anchor\n const $parentPos = $anchor.parent.isTextblock && pos > 0 ? tr.doc.resolve(pos - 1) : $anchor\n const parentIsIsolating = $parentPos.parent.type.spec.isolating\n\n const parentPos = $anchor.pos - $anchor.parentOffset\n\n const isAtStart = (parentIsIsolating && $parentPos.parent.childCount === 1)\n ? parentPos === $anchor.pos\n : Selection.atStart(doc).from === pos\n\n if (\n !empty\n || !parent.type.isTextblock\n || parent.textContent.length\n || !isAtStart\n || (isAtStart && $anchor.parent.type.name === 'paragraph') // prevent clearNodes when no nodes to clear, otherwise history stack is appended\n ) {\n return false\n }\n\n return commands.clearNodes()\n }),\n\n () => commands.deleteSelection(),\n () => commands.joinBackward(),\n () => commands.selectNodeBackward(),\n ])\n\n const handleDelete = () => this.editor.commands.first(({ commands }) => [\n () => commands.deleteSelection(),\n () => commands.deleteCurrentNode(),\n () => commands.joinForward(),\n () => commands.selectNodeForward(),\n ])\n\n const handleEnter = () => this.editor.commands.first(({ commands }) => [\n () => commands.newlineInCode(),\n () => commands.createParagraphNear(),\n () => commands.liftEmptyBlock(),\n () => commands.splitBlock(),\n ])\n\n const baseKeymap = {\n Enter: handleEnter,\n 'Mod-Enter': () => this.editor.commands.exitCode(),\n Backspace: handleBackspace,\n 'Mod-Backspace': handleBackspace,\n 'Shift-Backspace': handleBackspace,\n Delete: handleDelete,\n 'Mod-Delete': handleDelete,\n 'Mod-a': () => this.editor.commands.selectAll(),\n }\n\n const pcKeymap = {\n ...baseKeymap,\n }\n\n const macKeymap = {\n ...baseKeymap,\n 'Ctrl-h': handleBackspace,\n 'Alt-Backspace': handleBackspace,\n 'Ctrl-d': handleDelete,\n 'Ctrl-Alt-Backspace': handleDelete,\n 'Alt-Delete': handleDelete,\n 'Alt-d': handleDelete,\n 'Ctrl-a': () => this.editor.commands.selectTextblockStart(),\n 'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),\n }\n\n if (isiOS() || isMacOS()) {\n return macKeymap\n }\n\n return pcKeymap\n },\n\n addProseMirrorPlugins() {\n return [\n // With this plugin we check if the whole document was selected and deleted.\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\n // to a paragraph if necessary.\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\n // with many other commands.\n new Plugin({\n key: new PluginKey('clearDocument'),\n appendTransaction: (transactions, oldState, newState) => {\n const docChanges = transactions.some(transaction => transaction.docChanged)\n && !oldState.doc.eq(newState.doc)\n\n if (!docChanges) {\n return\n }\n\n const { empty, from, to } = oldState.selection\n const allFrom = Selection.atStart(oldState.doc).from\n const allEnd = Selection.atEnd(oldState.doc).to\n const allWasSelected = from === allFrom && to === allEnd\n\n if (empty || !allWasSelected) {\n return\n }\n\n const isEmpty = newState.doc.textBetween(0, newState.doc.content.size, ' ', ' ').length === 0\n\n if (!isEmpty) {\n return\n }\n\n const tr = newState.tr\n const state = createChainableState({\n state: newState,\n transaction: tr,\n })\n const { commands } = new CommandManager({\n editor: this.editor,\n state,\n })\n\n commands.clearNodes()\n\n if (!tr.steps.length) {\n return\n }\n\n return tr\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Tabindex = Extension.create({\n name: 'tabindex',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tabindex'),\n props: {\n attributes: (): { [name: string]: string; } => (this.editor.isEditable ? { tabindex: '0' } : {}),\n },\n }),\n ]\n },\n})\n","import {\n Fragment, Node, ResolvedPos,\n} from '@tiptap/pm/model'\n\nimport { Editor } from './Editor.js'\nimport { Content, Range } from './types.js'\n\nexport class NodePos {\n private resolvedPos: ResolvedPos\n\n private isBlock: boolean\n\n private editor: Editor\n\n private get name(): string {\n return this.node.type.name\n }\n\n constructor(pos: ResolvedPos, editor: Editor, isBlock = false, node: Node | null = null) {\n this.isBlock = isBlock\n this.resolvedPos = pos\n this.editor = editor\n this.currentNode = node\n }\n\n private currentNode: Node | null = null\n\n get node(): Node {\n return this.currentNode || this.resolvedPos.node()\n }\n\n get element(): HTMLElement {\n return this.editor.view.domAtPos(this.pos).node as HTMLElement\n }\n\n public actualDepth: number | null = null\n\n get depth(): number {\n return this.actualDepth ?? this.resolvedPos.depth\n }\n\n get pos(): number {\n return this.resolvedPos.pos\n }\n\n get content(): Fragment {\n return this.node.content\n }\n\n set content(content: Content) {\n let from = this.from\n let to = this.to\n\n if (this.isBlock) {\n if (this.content.size === 0) {\n console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`)\n return\n }\n\n from = this.from + 1\n to = this.to - 1\n }\n\n this.editor.commands.insertContentAt({ from, to }, content)\n }\n\n get attributes(): { [key: string]: any } {\n return this.node.attrs\n }\n\n get textContent(): string {\n return this.node.textContent\n }\n\n get size(): number {\n return this.node.nodeSize\n }\n\n get from(): number {\n if (this.isBlock) {\n return this.pos\n }\n\n return this.resolvedPos.start(this.resolvedPos.depth)\n }\n\n get range(): Range {\n return {\n from: this.from,\n to: this.to,\n }\n }\n\n get to(): number {\n if (this.isBlock) {\n return this.pos + this.size\n }\n\n return this.resolvedPos.end(this.resolvedPos.depth) + (this.node.isText ? 0 : 1)\n }\n\n get parent(): NodePos | null {\n if (this.depth === 0) {\n return null\n }\n\n const parentPos = this.resolvedPos.start(this.resolvedPos.depth - 1)\n const $pos = this.resolvedPos.doc.resolve(parentPos)\n\n return new NodePos($pos, this.editor)\n }\n\n get before(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.from - (this.isBlock ? 1 : 2))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.from - 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get after(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.to + (this.isBlock ? 2 : 1))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.to + 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get children(): NodePos[] {\n const children: NodePos[] = []\n\n this.node.content.forEach((node, offset) => {\n const isBlock = node.isBlock && !node.isTextblock\n\n const targetPos = this.pos + offset + 1\n const $pos = this.resolvedPos.doc.resolve(targetPos)\n\n if (!isBlock && $pos.depth <= this.depth) {\n return\n }\n\n const childNodePos = new NodePos($pos, this.editor, isBlock, isBlock ? node : null)\n\n if (isBlock) {\n childNodePos.actualDepth = this.depth + 1\n }\n\n children.push(new NodePos($pos, this.editor, isBlock, isBlock ? node : null))\n })\n\n return children\n }\n\n get firstChild(): NodePos | null {\n return this.children[0] || null\n }\n\n get lastChild(): NodePos | null {\n const children = this.children\n\n return children[children.length - 1] || null\n }\n\n closest(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n let node: NodePos | null = null\n let currentNode = this.parent\n\n while (currentNode && !node) {\n if (currentNode.node.type.name === selector) {\n if (Object.keys(attributes).length > 0) {\n const nodeAttributes = currentNode.node.attrs\n const attrKeys = Object.keys(attributes)\n\n for (let index = 0; index < attrKeys.length; index += 1) {\n const key = attrKeys[index]\n\n if (nodeAttributes[key] !== attributes[key]) {\n break\n }\n }\n } else {\n node = currentNode\n }\n }\n\n currentNode = currentNode.parent\n }\n\n return node\n }\n\n querySelector(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n return this.querySelectorAll(selector, attributes, true)[0] || null\n }\n\n querySelectorAll(selector: string, attributes: { [key: string]: any } = {}, firstItemOnly = false): NodePos[] {\n let nodes: NodePos[] = []\n\n if (!this.children || this.children.length === 0) {\n return nodes\n }\n const attrKeys = Object.keys(attributes)\n\n /**\n * Finds all children recursively that match the selector and attributes\n * If firstItemOnly is true, it will return the first item found\n */\n this.children.forEach(childPos => {\n // If we already found a node and we only want the first item, we dont need to keep going\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n if (childPos.node.type.name === selector) {\n const doesAllAttributesMatch = attrKeys.every(key => attributes[key] === childPos.node.attrs[key])\n\n if (doesAllAttributesMatch) {\n nodes.push(childPos)\n }\n }\n\n // If we already found a node and we only want the first item, we can stop here and skip the recursion\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n nodes = nodes.concat(childPos.querySelectorAll(selector, attributes, firstItemOnly))\n })\n\n return nodes\n }\n\n setAttribute(attributes: { [key: string]: any }) {\n const oldSelection = this.editor.state.selection\n\n this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from)\n .run()\n }\n}\n","export const style = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n.tippy-box[data-animation=fade][data-state=hidden] {\n opacity: 0\n}`\n","export function createStyleTag(style: string, nonce?: string, suffix?: string): HTMLStyleElement {\n const tiptapStyleTag = (document.querySelector(`style[data-tiptap-style${suffix ? `-${suffix}` : ''}]`))\n\n if (tiptapStyleTag !== null) {\n return tiptapStyleTag\n }\n\n const styleNode = document.createElement('style')\n\n if (nonce) {\n styleNode.setAttribute('nonce', nonce)\n }\n\n styleNode.setAttribute(`data-tiptap-style${suffix ? `-${suffix}` : ''}`, '')\n styleNode.innerHTML = style\n document.getElementsByTagName('head')[0].appendChild(styleNode)\n\n return styleNode\n}\n","import {\n MarkType,\n Node as ProseMirrorNode,\n NodeType,\n Schema,\n} from '@tiptap/pm/model'\nimport {\n EditorState, Plugin, PluginKey, Transaction,\n} from '@tiptap/pm/state'\nimport { EditorView } from '@tiptap/pm/view'\n\nimport { CommandManager } from './CommandManager.js'\nimport { EventEmitter } from './EventEmitter.js'\nimport { ExtensionManager } from './ExtensionManager.js'\nimport {\n ClipboardTextSerializer, Commands, Editable, FocusEvents, Keymap, Tabindex,\n} from './extensions/index.js'\nimport { createDocument } from './helpers/createDocument.js'\nimport { getAttributes } from './helpers/getAttributes.js'\nimport { getHTMLFromFragment } from './helpers/getHTMLFromFragment.js'\nimport { getText } from './helpers/getText.js'\nimport { getTextSerializersFromSchema } from './helpers/getTextSerializersFromSchema.js'\nimport { isActive } from './helpers/isActive.js'\nimport { isNodeEmpty } from './helpers/isNodeEmpty.js'\nimport { resolveFocusPosition } from './helpers/resolveFocusPosition.js'\nimport { NodePos } from './NodePos.js'\nimport { style } from './style.js'\nimport {\n CanCommands,\n ChainedCommands,\n EditorEvents,\n EditorOptions,\n JSONContent,\n SingleCommands,\n TextSerializer,\n} from './types.js'\nimport { createStyleTag } from './utilities/createStyleTag.js'\nimport { isFunction } from './utilities/isFunction.js'\n\nexport * as extensions from './extensions/index.js'\n\n// @ts-ignore\nexport interface TiptapEditorHTMLElement extends HTMLElement {\n editor?: Editor\n}\n\nexport class Editor extends EventEmitter {\n private commandManager!: CommandManager\n\n public extensionManager!: ExtensionManager\n\n private css!: HTMLStyleElement\n\n public schema!: Schema\n\n public view!: EditorView\n\n public isFocused = false\n\n /**\n * The editor is considered initialized after the `create` event has been emitted.\n */\n public isInitialized = false\n\n public extensionStorage: Record = {}\n\n public options: EditorOptions = {\n element: document.createElement('div'),\n content: '',\n injectCSS: true,\n injectNonce: undefined,\n extensions: [],\n autofocus: false,\n editable: true,\n editorProps: {},\n parseOptions: {},\n coreExtensionOptions: {},\n enableInputRules: true,\n enablePasteRules: true,\n enableCoreExtensions: true,\n enableContentCheck: false,\n onBeforeCreate: () => null,\n onCreate: () => null,\n onUpdate: () => null,\n onSelectionUpdate: () => null,\n onTransaction: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onDestroy: () => null,\n onContentError: ({ error }) => { throw error },\n }\n\n constructor(options: Partial = {}) {\n super()\n this.setOptions(options)\n this.createExtensionManager()\n this.createCommandManager()\n this.createSchema()\n this.on('beforeCreate', this.options.onBeforeCreate)\n this.emit('beforeCreate', { editor: this })\n this.on('contentError', this.options.onContentError)\n this.createView()\n this.injectCSS()\n this.on('create', this.options.onCreate)\n this.on('update', this.options.onUpdate)\n this.on('selectionUpdate', this.options.onSelectionUpdate)\n this.on('transaction', this.options.onTransaction)\n this.on('focus', this.options.onFocus)\n this.on('blur', this.options.onBlur)\n this.on('destroy', this.options.onDestroy)\n\n window.setTimeout(() => {\n if (this.isDestroyed) {\n return\n }\n\n this.commands.focus(this.options.autofocus)\n this.emit('create', { editor: this })\n this.isInitialized = true\n }, 0)\n }\n\n /**\n * Returns the editor storage.\n */\n public get storage(): Record {\n return this.extensionStorage\n }\n\n /**\n * An object of all registered commands.\n */\n public get commands(): SingleCommands {\n return this.commandManager.commands\n }\n\n /**\n * Create a command chain to call multiple commands at once.\n */\n public chain(): ChainedCommands {\n return this.commandManager.chain()\n }\n\n /**\n * Check if a command or a command chain can be executed. Without executing it.\n */\n public can(): CanCommands {\n return this.commandManager.can()\n }\n\n /**\n * Inject CSS styles.\n */\n private injectCSS(): void {\n if (this.options.injectCSS && document) {\n this.css = createStyleTag(style, this.options.injectNonce)\n }\n }\n\n /**\n * Update editor options.\n *\n * @param options A list of options\n */\n public setOptions(options: Partial = {}): void {\n this.options = {\n ...this.options,\n ...options,\n }\n\n if (!this.view || !this.state || this.isDestroyed) {\n return\n }\n\n if (this.options.editorProps) {\n this.view.setProps(this.options.editorProps)\n }\n\n this.view.updateState(this.state)\n }\n\n /**\n * Update editable state of the editor.\n */\n public setEditable(editable: boolean, emitUpdate = true): void {\n this.setOptions({ editable })\n\n if (emitUpdate) {\n this.emit('update', { editor: this, transaction: this.state.tr })\n }\n }\n\n /**\n * Returns whether the editor is editable.\n */\n public get isEditable(): boolean {\n // since plugins are applied after creating the view\n // `editable` is always `true` for one tick.\n // that’s why we also have to check for `options.editable`\n return this.options.editable && this.view && this.view.editable\n }\n\n /**\n * Returns the editor state.\n */\n public get state(): EditorState {\n return this.view.state\n }\n\n /**\n * Register a ProseMirror plugin.\n *\n * @param plugin A ProseMirror plugin\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\n */\n public registerPlugin(\n plugin: Plugin,\n handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[],\n ): void {\n const plugins = isFunction(handlePlugins)\n ? handlePlugins(plugin, [...this.state.plugins])\n : [...this.state.plugins, plugin]\n\n const state = this.state.reconfigure({ plugins })\n\n this.view.updateState(state)\n }\n\n /**\n * Unregister a ProseMirror plugin.\n *\n * @param nameOrPluginKey The plugins name\n */\n public unregisterPlugin(nameOrPluginKey: string | PluginKey): void {\n if (this.isDestroyed) {\n return\n }\n\n // @ts-ignore\n const name = typeof nameOrPluginKey === 'string' ? `${nameOrPluginKey}$` : nameOrPluginKey.key\n\n const state = this.state.reconfigure({\n // @ts-ignore\n plugins: this.state.plugins.filter(plugin => !plugin.key.startsWith(name)),\n })\n\n this.view.updateState(state)\n }\n\n /**\n * Creates an extension manager.\n */\n private createExtensionManager(): void {\n\n const coreExtensions = this.options.enableCoreExtensions ? [\n Editable,\n ClipboardTextSerializer.configure({\n blockSeparator: this.options.coreExtensionOptions?.clipboardTextSerializer?.blockSeparator,\n }),\n Commands,\n FocusEvents,\n Keymap,\n Tabindex,\n ] : []\n const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {\n return ['extension', 'node', 'mark'].includes(extension?.type)\n })\n\n this.extensionManager = new ExtensionManager(allExtensions, this)\n }\n\n /**\n * Creates an command manager.\n */\n private createCommandManager(): void {\n this.commandManager = new CommandManager({\n editor: this,\n })\n }\n\n /**\n * Creates a ProseMirror schema.\n */\n private createSchema(): void {\n this.schema = this.extensionManager.schema\n }\n\n /**\n * Creates a ProseMirror view.\n */\n private createView(): void {\n let doc: ProseMirrorNode\n\n try {\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: this.options.enableContentCheck },\n )\n } catch (e) {\n if (!(e instanceof Error) || !['[tiptap error]: Invalid JSON content', '[tiptap error]: Invalid HTML content'].includes(e.message)) {\n // Not the content error we were expecting\n throw e\n }\n this.emit('contentError', {\n editor: this,\n error: e as Error,\n disableCollaboration: () => {\n // To avoid syncing back invalid content, reinitialize the extensions without the collaboration extension\n this.options.extensions = this.options.extensions.filter(extension => extension.name !== 'collaboration')\n\n // Restart the initialization process by recreating the extension manager with the new set of extensions\n this.createExtensionManager()\n },\n })\n\n // Content is invalid, but attempt to create it anyway, stripping out the invalid parts\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: false },\n )\n }\n const selection = resolveFocusPosition(doc, this.options.autofocus)\n\n this.view = new EditorView(this.options.element, {\n ...this.options.editorProps,\n dispatchTransaction: this.dispatchTransaction.bind(this),\n state: EditorState.create({\n doc,\n selection: selection || undefined,\n }),\n })\n\n // `editor.view` is not yet available at this time.\n // Therefore we will add all plugins and node views directly afterwards.\n const newState = this.state.reconfigure({\n plugins: this.extensionManager.plugins,\n })\n\n this.view.updateState(newState)\n\n this.createNodeViews()\n this.prependClass()\n\n // Let’s store the editor instance in the DOM element.\n // So we’ll have access to it for tests.\n // @ts-ignore\n const dom = this.view.dom as TiptapEditorHTMLElement\n\n dom.editor = this\n }\n\n /**\n * Creates all node views.\n */\n public createNodeViews(): void {\n if (this.view.isDestroyed) {\n return\n }\n\n this.view.setProps({\n nodeViews: this.extensionManager.nodeViews,\n })\n }\n\n /**\n * Prepend class name to element.\n */\n public prependClass(): void {\n this.view.dom.className = `tiptap ${this.view.dom.className}`\n }\n\n public isCapturingTransaction = false\n\n private capturedTransaction: Transaction | null = null\n\n public captureTransaction(fn: Function) {\n this.isCapturingTransaction = true\n fn()\n this.isCapturingTransaction = false\n\n const tr = this.capturedTransaction\n\n this.capturedTransaction = null\n\n return tr\n }\n\n /**\n * The callback over which to send transactions (state updates) produced by the view.\n *\n * @param transaction An editor state transaction\n */\n private dispatchTransaction(transaction: Transaction): void {\n // if the editor / the view of the editor was destroyed\n // the transaction should not be dispatched as there is no view anymore.\n if (this.view.isDestroyed) {\n return\n }\n\n if (this.isCapturingTransaction) {\n if (!this.capturedTransaction) {\n this.capturedTransaction = transaction\n\n return\n }\n\n transaction.steps.forEach(step => this.capturedTransaction?.step(step))\n\n return\n }\n\n const state = this.state.apply(transaction)\n const selectionHasChanged = !this.state.selection.eq(state.selection)\n\n this.emit('beforeTransaction', {\n editor: this,\n transaction,\n nextState: state,\n })\n this.view.updateState(state)\n this.emit('transaction', {\n editor: this,\n transaction,\n })\n\n if (selectionHasChanged) {\n this.emit('selectionUpdate', {\n editor: this,\n transaction,\n })\n }\n\n const focus = transaction.getMeta('focus')\n const blur = transaction.getMeta('blur')\n\n if (focus) {\n this.emit('focus', {\n editor: this,\n event: focus.event,\n transaction,\n })\n }\n\n if (blur) {\n this.emit('blur', {\n editor: this,\n event: blur.event,\n transaction,\n })\n }\n\n if (!transaction.docChanged || transaction.getMeta('preventUpdate')) {\n return\n }\n\n this.emit('update', {\n editor: this,\n transaction,\n })\n }\n\n /**\n * Get attributes of the currently selected node or mark.\n */\n public getAttributes(nameOrType: string | NodeType | MarkType): Record {\n return getAttributes(this.state, nameOrType)\n }\n\n /**\n * Returns if the currently selected node or mark is active.\n *\n * @param name Name of the node or mark\n * @param attributes Attributes of the node or mark\n */\n public isActive(name: string, attributes?: {}): boolean\n public isActive(attributes: {}): boolean\n public isActive(nameOrAttributes: string, attributesOrUndefined?: {}): boolean {\n const name = typeof nameOrAttributes === 'string' ? nameOrAttributes : null\n\n const attributes = typeof nameOrAttributes === 'string' ? attributesOrUndefined : nameOrAttributes\n\n return isActive(this.state, name, attributes)\n }\n\n /**\n * Get the document as JSON.\n */\n public getJSON(): JSONContent {\n return this.state.doc.toJSON()\n }\n\n /**\n * Get the document as HTML.\n */\n public getHTML(): string {\n return getHTMLFromFragment(this.state.doc.content, this.schema)\n }\n\n /**\n * Get the document as text.\n */\n public getText(options?: {\n blockSeparator?: string\n textSerializers?: Record\n }): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n\n return getText(this.state.doc, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(this.schema),\n ...textSerializers,\n },\n })\n }\n\n /**\n * Check if there is no content.\n */\n public get isEmpty(): boolean {\n return isNodeEmpty(this.state.doc)\n }\n\n /**\n * Get the number of characters for the current document.\n *\n * @deprecated\n */\n public getCharacterCount(): number {\n console.warn(\n '[tiptap warn]: \"editor.getCharacterCount()\" is deprecated. Please use \"editor.storage.characterCount.characters()\" instead.',\n )\n\n return this.state.doc.content.size - 2\n }\n\n /**\n * Destroy the editor.\n */\n public destroy(): void {\n this.emit('destroy')\n\n if (this.view) {\n this.view.destroy()\n }\n\n this.removeAllListeners()\n }\n\n /**\n * Check if the editor is already destroyed.\n */\n public get isDestroyed(): boolean {\n // @ts-ignore\n return !this.view?.docView\n }\n\n public $node(selector: string, attributes?: { [key: string]: any }): NodePos | null {\n return this.$doc?.querySelector(selector, attributes) || null\n }\n\n public $nodes(selector: string, attributes?: { [key: string]: any }): NodePos[] | null {\n return this.$doc?.querySelectorAll(selector, attributes) || null\n }\n\n public $pos(pos: number) {\n const $pos = this.state.doc.resolve(pos)\n\n return new NodePos($pos, this)\n }\n\n get $doc() {\n return this.$pos(0)\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a mark when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function markInputRule(config: {\n find: InputRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n const markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a node when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function nodeInputRule(config: {\n /**\n * The regex to match.\n */\n find: InputRuleFinder\n\n /**\n * The node type to add.\n */\n type: NodeType\n\n /**\n * A function that returns the attributes for the node\n * can also be an object of attributes\n */\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const { tr } = state\n const start = range.from\n let end = range.to\n\n const newNode = config.type.create(attributes)\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n let matchStart = start + offset\n\n if (matchStart > end) {\n matchStart = end\n } else {\n end = matchStart + match[1].length\n }\n\n // insert last typed character\n const lastChar = match[0][match[0].length - 1]\n\n tr.insertText(lastChar, start + match[0].length - 1)\n\n // insert node from input rule\n tr.replaceWith(matchStart, end, newNode)\n } else if (match[0]) {\n const insertionStart = config.type.isInline ? start : start - 1\n\n tr.insert(insertionStart, config.type.create(attributes)).delete(\n tr.mapping.map(start),\n tr.mapping.map(end),\n )\n }\n\n tr.scrollIntoView()\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that changes the type of a textblock when the\n * matched text is typed into it. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textblockTypeInputRule(config: {\n find: InputRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const $start = state.doc.resolve(range.from)\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), config.type)) {\n return null\n }\n\n state.tr\n .delete(range.from, range.to)\n .setBlockType(range.from, range.from, config.type, attributes)\n },\n })\n}\n","import { InputRule, InputRuleFinder } from '../InputRule.js'\n\n/**\n * Build an input rule that replaces text when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textInputRule(config: {\n find: InputRuleFinder,\n replace: string,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Node as ProseMirrorNode, NodeType } from '@tiptap/pm/model'\nimport { canJoin, findWrapping } from '@tiptap/pm/transform'\n\nimport { Editor } from '../Editor.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule for automatically wrapping a textblock when a\n * given string is typed. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n *\n * `type` is the type of node to wrap in.\n *\n * By default, if there’s a node with the same type above the newly\n * wrapped node, the rule will try to join those\n * two nodes. You can pass a join predicate, which takes a regular\n * expression match and the node before the wrapped node, and can\n * return a boolean to indicate whether a join should happen.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function wrappingInputRule(config: {\n find: InputRuleFinder,\n type: NodeType,\n keepMarks?: boolean,\n keepAttributes?: boolean,\n editor?: Editor\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n ,\n joinPredicate?: (match: ExtendedRegExpMatchArray, node: ProseMirrorNode) => boolean,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({\n state, range, match, chain,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const tr = state.tr.delete(range.from, range.to)\n const $start = tr.doc.resolve(range.from)\n const blockRange = $start.blockRange()\n const wrapping = blockRange && findWrapping(blockRange, config.type, attributes)\n\n if (!wrapping) {\n return null\n }\n\n tr.wrap(blockRange, wrapping)\n\n if (config.keepMarks && config.editor) {\n const { selection, storedMarks } = state\n const { splittableMarks } = config.editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n }\n if (config.keepAttributes) {\n /** If the nodeType is `bulletList` or `orderedList` set the `nodeType` as `listItem` */\n const nodeType = config.type.name === 'bulletList' || config.type.name === 'orderedList' ? 'listItem' : 'taskList'\n\n chain().updateAttributes(nodeType, attributes).run()\n }\n\n const before = tr.doc.resolve(range.from - 1).nodeBefore\n\n if (\n before\n && before.type === config.type\n && canJoin(tr.doc, range.from - 1)\n && (!config.joinPredicate || config.joinPredicate(match, before))\n ) {\n tr.join(range.from - 1)\n }\n },\n })\n}\n","import {\n DOMOutputSpec, Mark as ProseMirrorMark, MarkSpec, MarkType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { MarkConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n export interface MarkConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Keep mark after split node\n */\n keepOnSplit?: boolean | (() => boolean)\n\n /**\n * Inclusive\n */\n inclusive?:\n | MarkSpec['inclusive']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inclusive']\n editor?: Editor\n }) => MarkSpec['inclusive'])\n\n /**\n * Excludes\n */\n excludes?:\n | MarkSpec['excludes']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['excludes']\n editor?: Editor\n }) => MarkSpec['excludes'])\n\n /**\n * Marks this Mark as exitable\n */\n exitable?: boolean | (() => boolean)\n\n /**\n * Group\n */\n group?:\n | MarkSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => MarkSpec['group'])\n\n /**\n * Spanning\n */\n spanning?:\n | MarkSpec['spanning']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['spanning']\n editor?: Editor\n }) => MarkSpec['spanning'])\n\n /**\n * Code\n */\n code?:\n | boolean\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => boolean)\n\n /**\n * Parse HTML\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => MarkSpec['parseDOM']\n\n /**\n * Render HTML\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n mark: ProseMirrorMark\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * Attributes\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Mark class is used to create custom mark extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Mark {\n type = 'mark'\n\n name = 'mark'\n\n parent: Mark | null = null\n\n child: Mark | null = null\n\n options: Options\n\n storage: Storage\n\n config: MarkConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Mark(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Mark(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n\n static handleExit({ editor, mark }: { editor: Editor; mark: Mark }) {\n const { tr } = editor.state\n const currentPos = editor.state.selection.$from\n const isAtEnd = currentPos.pos === currentPos.end()\n\n if (isAtEnd) {\n const currentMarks = currentPos.marks()\n const isInMark = !!currentMarks.find(m => m?.type.name === mark.name)\n\n if (!isInMark) {\n return false\n }\n\n const removeMark = currentMarks.find(m => m?.type.name === mark.name)\n\n if (removeMark) {\n tr.removeStoredMark(removeMark)\n }\n tr.insertText(' ', currentPos.pos)\n\n editor.view.dispatch(tr)\n\n return true\n }\n\n return false\n }\n}\n","import {\n DOMOutputSpec, Node as ProseMirrorNode, NodeSpec, NodeType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { NodeConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n NodeViewRenderer,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface NodeConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n editor?: Editor\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Node View\n */\n addNodeView?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addNodeView']\n }) => NodeViewRenderer)\n | null\n\n /**\n * Defines if this node should be a top level node (doc)\n * @default false\n * @example true\n */\n topNode?: boolean\n\n /**\n * The content expression for this node, as described in the [schema\n * guide](/docs/guide/#schema.content_expressions). When not given,\n * the node does not allow any content.\n *\n * You can read more about it on the Prosemirror documentation here\n * @see https://prosemirror.net/docs/guide/#schema.content_expressions\n * @default undefined\n * @example content: 'block+'\n * @example content: 'headline paragraph block*'\n */\n content?:\n | NodeSpec['content']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['content']\n editor?: Editor\n }) => NodeSpec['content'])\n\n /**\n * The marks that are allowed inside of this node. May be a\n * space-separated string referring to mark names or groups, `\"_\"`\n * to explicitly allow all marks, or `\"\"` to disallow marks. When\n * not given, nodes with inline content default to allowing all\n * marks, other nodes default to not allowing marks.\n *\n * @example marks: 'strong em'\n */\n marks?:\n | NodeSpec['marks']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['marks']\n editor?: Editor\n }) => NodeSpec['marks'])\n\n /**\n * The group or space-separated groups to which this node belongs,\n * which can be referred to in the content expressions for the\n * schema.\n *\n * By default Tiptap uses the groups 'block' and 'inline' for nodes. You\n * can also use custom groups if you want to group specific nodes together\n * and handle them in your schema.\n * @example group: 'block'\n * @example group: 'inline'\n * @example group: 'customBlock' // this uses a custom group\n */\n group?:\n | NodeSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => NodeSpec['group'])\n\n /**\n * Should be set to true for inline nodes. (Implied for text nodes.)\n */\n inline?:\n | NodeSpec['inline']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inline']\n editor?: Editor\n }) => NodeSpec['inline'])\n\n /**\n * Can be set to true to indicate that, though this isn't a [leaf\n * node](https://prosemirror.net/docs/ref/#model.NodeType.isLeaf), it doesn't have directly editable\n * content and should be treated as a single unit in the view.\n *\n * @example atom: true\n */\n atom?:\n | NodeSpec['atom']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['atom']\n editor?: Editor\n }) => NodeSpec['atom'])\n\n /**\n * Controls whether nodes of this type can be selected as a [node\n * selection](https://prosemirror.net/docs/ref/#state.NodeSelection). Defaults to true for non-text\n * nodes.\n *\n * @default true\n * @example selectable: false\n */\n selectable?:\n | NodeSpec['selectable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['selectable']\n editor?: Editor\n }) => NodeSpec['selectable'])\n\n /**\n * Determines whether nodes of this type can be dragged without\n * being selected. Defaults to false.\n *\n * @default: false\n * @example: draggable: true\n */\n draggable?:\n | NodeSpec['draggable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['draggable']\n editor?: Editor\n }) => NodeSpec['draggable'])\n\n /**\n * Can be used to indicate that this node contains code, which\n * causes some commands to behave differently.\n */\n code?:\n | NodeSpec['code']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => NodeSpec['code'])\n\n /**\n * Controls way whitespace in this a node is parsed. The default is\n * `\"normal\"`, which causes the [DOM parser](https://prosemirror.net/docs/ref/#model.DOMParser) to\n * collapse whitespace in normal mode, and normalize it (replacing\n * newlines and such with spaces) otherwise. `\"pre\"` causes the\n * parser to preserve spaces inside the node. When this option isn't\n * given, but [`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) is true, `whitespace`\n * will default to `\"pre\"`. Note that this option doesn't influence\n * the way the node is rendered—that should be handled by `toDOM`\n * and/or styling.\n */\n whitespace?:\n | NodeSpec['whitespace']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['whitespace']\n editor?: Editor\n }) => NodeSpec['whitespace'])\n\n /**\n * When enabled, enables both\n * [`definingAsContext`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext) and\n * [`definingForContent`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n *\n * @default false\n * @example isolating: true\n */\n defining?:\n | NodeSpec['defining']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['defining']\n editor?: Editor\n }) => NodeSpec['defining'])\n\n /**\n * When enabled (default is false), the sides of nodes of this type\n * count as boundaries that regular editing operations, like\n * backspacing or lifting, won't cross. An example of a node that\n * should probably have this enabled is a table cell.\n */\n isolating?:\n | NodeSpec['isolating']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['isolating']\n editor?: Editor\n }) => NodeSpec['isolating'])\n\n /**\n * Associates DOM parser information with this node, which can be\n * used by [`DOMParser.fromSchema`](https://prosemirror.net/docs/ref/#model.DOMParser^fromSchema) to\n * automatically derive a parser. The `node` field in the rules is\n * implied (the name of this node will be filled in automatically).\n * If you supply your own parser, you do not need to also specify\n * parsing rules in your schema.\n *\n * @example parseHTML: [{ tag: 'div', attrs: { 'data-id': 'my-block' } }]\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => NodeSpec['parseDOM']\n\n /**\n * A description of a DOM structure. Can be either a string, which is\n * interpreted as a text node, a DOM node, which is interpreted as\n * itself, a `{dom, contentDOM}` object, or an array.\n *\n * An array describes a DOM element. The first value in the array\n * should be a string—the name of the DOM element, optionally prefixed\n * by a namespace URL and a space. If the second element is plain\n * object, it is interpreted as a set of attributes for the element.\n * Any elements after that (including the 2nd if it's not an attribute\n * object) are interpreted as children of the DOM elements, and must\n * either be valid `DOMOutputSpec` values, or the number zero.\n *\n * The number zero (pronounced “hole”) is used to indicate the place\n * where a node's child nodes should be inserted. If it occurs in an\n * output spec, it should be the only child element in its parent\n * node.\n *\n * @example toDOM: ['div[data-id=\"my-block\"]', { class: 'my-block' }, 0]\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * renders the node as text\n * @example renderText: () => 'foo\n */\n renderText?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderText']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n pos: number\n parent: ProseMirrorNode\n index: number\n },\n ) => string)\n | null\n\n /**\n * Add attributes to the node\n * @example addAttributes: () => ({ class: 'foo' })\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Node class is used to create custom node extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Node {\n type = 'node'\n\n name = 'node'\n\n parent: Node | null = null\n\n child: Node | null = null\n\n options: Options\n\n storage: Storage\n\n config: NodeConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Node(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Node(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","export function isAndroid(): boolean {\n return navigator.platform === 'Android' || /android/i.test(navigator.userAgent)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { NodeSelection } from '@tiptap/pm/state'\nimport { NodeView as ProseMirrorNodeView } from '@tiptap/pm/view'\n\nimport { Editor as CoreEditor } from './Editor.js'\nimport { Node } from './Node.js'\nimport { DecorationWithType, NodeViewRendererOptions, NodeViewRendererProps } from './types.js'\nimport { isAndroid } from './utilities/isAndroid.js'\nimport { isiOS } from './utilities/isiOS.js'\n\n/**\n * Node views are used to customize the rendered DOM structure of a node.\n * @see https://tiptap.dev/guide/node-views\n */\nexport class NodeView<\n Component,\n NodeEditor extends CoreEditor = CoreEditor,\n Options extends NodeViewRendererOptions = NodeViewRendererOptions,\n> implements ProseMirrorNodeView {\n component: Component\n\n editor: NodeEditor\n\n options: Options\n\n extension: Node\n\n node: ProseMirrorNode\n\n decorations: DecorationWithType[]\n\n getPos: any\n\n isDragging = false\n\n constructor(component: Component, props: NodeViewRendererProps, options?: Partial) {\n this.component = component\n this.editor = props.editor as NodeEditor\n this.options = {\n stopEvent: null,\n ignoreMutation: null,\n ...options,\n } as Options\n this.extension = props.extension\n this.node = props.node\n this.decorations = props.decorations as DecorationWithType[]\n this.getPos = props.getPos\n this.mount()\n }\n\n mount() {\n // eslint-disable-next-line\n return\n }\n\n get dom(): HTMLElement {\n return this.editor.view.dom as HTMLElement\n }\n\n get contentDOM(): HTMLElement | null {\n return null\n }\n\n onDragStart(event: DragEvent) {\n const { view } = this.editor\n const target = event.target as HTMLElement\n\n // get the drag handle element\n // `closest` is not available for text nodes so we may have to use its parent\n const dragHandle = target.nodeType === 3\n ? target.parentElement?.closest('[data-drag-handle]')\n : target.closest('[data-drag-handle]')\n\n if (!this.dom || this.contentDOM?.contains(target) || !dragHandle) {\n return\n }\n\n let x = 0\n let y = 0\n\n // calculate offset for drag element if we use a different drag handle element\n if (this.dom !== dragHandle) {\n const domBox = this.dom.getBoundingClientRect()\n const handleBox = dragHandle.getBoundingClientRect()\n\n // In React, we have to go through nativeEvent to reach offsetX/offsetY.\n const offsetX = event.offsetX ?? (event as any).nativeEvent?.offsetX\n const offsetY = event.offsetY ?? (event as any).nativeEvent?.offsetY\n\n x = handleBox.x - domBox.x + offsetX\n y = handleBox.y - domBox.y + offsetY\n }\n\n event.dataTransfer?.setDragImage(this.dom, x, y)\n\n // we need to tell ProseMirror that we want to move the whole node\n // so we create a NodeSelection\n const selection = NodeSelection.create(view.state.doc, this.getPos())\n const transaction = view.state.tr.setSelection(selection)\n\n view.dispatch(transaction)\n }\n\n stopEvent(event: Event) {\n if (!this.dom) {\n return false\n }\n\n if (typeof this.options.stopEvent === 'function') {\n return this.options.stopEvent({ event })\n }\n\n const target = event.target as HTMLElement\n const isInElement = this.dom.contains(target) && !this.contentDOM?.contains(target)\n\n // any event from child nodes should be handled by ProseMirror\n if (!isInElement) {\n return false\n }\n\n const isDragEvent = event.type.startsWith('drag')\n const isDropEvent = event.type === 'drop'\n const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable\n\n // any input event within node views should be ignored by ProseMirror\n if (isInput && !isDropEvent && !isDragEvent) {\n return true\n }\n\n const { isEditable } = this.editor\n const { isDragging } = this\n const isDraggable = !!this.node.type.spec.draggable\n const isSelectable = NodeSelection.isSelectable(this.node)\n const isCopyEvent = event.type === 'copy'\n const isPasteEvent = event.type === 'paste'\n const isCutEvent = event.type === 'cut'\n const isClickEvent = event.type === 'mousedown'\n\n // ProseMirror tries to drag selectable nodes\n // even if `draggable` is set to `false`\n // this fix prevents that\n if (!isDraggable && isSelectable && isDragEvent) {\n event.preventDefault()\n }\n\n if (isDraggable && isDragEvent && !isDragging) {\n event.preventDefault()\n return false\n }\n\n // we have to store that dragging started\n if (isDraggable && isEditable && !isDragging && isClickEvent) {\n const dragHandle = target.closest('[data-drag-handle]')\n const isValidDragHandle = dragHandle && (this.dom === dragHandle || this.dom.contains(dragHandle))\n\n if (isValidDragHandle) {\n this.isDragging = true\n\n document.addEventListener(\n 'dragend',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'drop',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'mouseup',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n }\n }\n\n // these events are handled by prosemirror\n if (\n isDragging\n || isDropEvent\n || isCopyEvent\n || isPasteEvent\n || isCutEvent\n || (isClickEvent && isSelectable)\n ) {\n return false\n }\n\n return true\n }\n\n ignoreMutation(mutation: MutationRecord | { type: 'selection'; target: Element }) {\n if (!this.dom || !this.contentDOM) {\n return true\n }\n\n if (typeof this.options.ignoreMutation === 'function') {\n return this.options.ignoreMutation({ mutation })\n }\n\n // a leaf/atom node is like a black box for ProseMirror\n // and should be fully handled by the node view\n if (this.node.isLeaf || this.node.isAtom) {\n return true\n }\n\n // ProseMirror should handle any selections\n if (mutation.type === 'selection') {\n return false\n }\n\n // try to prevent a bug on iOS and Android that will break node views on enter\n // this is because ProseMirror can’t preventDispatch on enter\n // this will lead to a re-render of the node view on enter\n // see: https://github.com/ueberdosis/tiptap/issues/1214\n // see: https://github.com/ueberdosis/tiptap/issues/2534\n if (\n this.dom.contains(mutation.target)\n && mutation.type === 'childList'\n && (isiOS() || isAndroid())\n && this.editor.isFocused\n ) {\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ] as HTMLElement[]\n\n // we’ll check if every changed node is contentEditable\n // to make sure it’s probably mutated by ProseMirror\n if (changedNodes.every(node => node.isContentEditable)) {\n return false\n }\n }\n\n // we will allow mutation contentDOM with attributes\n // so we can for example adding classes within our node view\n if (this.contentDOM === mutation.target && mutation.type === 'attributes') {\n return true\n }\n\n // ProseMirror should handle any changes within contentDOM\n if (this.contentDOM.contains(mutation.target)) {\n return false\n }\n\n return true\n }\n\n updateAttributes(attributes: {}) {\n this.editor.commands.command(({ tr }) => {\n const pos = this.getPos()\n\n tr.setNodeMarkup(pos, undefined, {\n ...this.node.attrs,\n ...attributes,\n })\n\n return true\n })\n }\n\n deleteNode(): void {\n const from = this.getPos()\n const to = from + this.node.nodeSize\n\n this.editor.commands.deleteRange({ from, to })\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an paste rule that adds a mark when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function markPasteRule(config: {\n find: PasteRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({\n state, range, match, pasteEvent,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n let markEnd = range.to\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","// source: https://stackoverflow.com/a/6969486\nexport function escapeForRegEx(string: string): string {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n}\n","export function isString(value: any): value is string {\n return typeof value === 'string'\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray, JSONContent } from '../types.js'\nimport { callOrReturn } from '../utilities/index.js'\n\n/**\n * Build an paste rule that adds a node when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function nodePasteRule(config: {\n find: PasteRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n getContent?:\n | JSONContent[]\n | ((attrs: Record) => JSONContent[])\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler({\n match, chain, range, pasteEvent,\n }) {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n const content = callOrReturn(config.getContent, undefined, attributes)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const node = { type: config.type.name, attrs: attributes } as JSONContent\n\n if (content) {\n node.content = content\n }\n\n if (match.input) {\n chain().deleteRange(range).insertContentAt(range.from, node)\n }\n },\n })\n}\n","import { PasteRule, PasteRuleFinder } from '../PasteRule.js'\n\n/**\n * Build an paste rule that replaces text when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function textPasteRule(config: {\n find: PasteRuleFinder,\n replace: string,\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Transaction } from '@tiptap/pm/state'\n\nexport interface TrackerResult {\n position: number\n deleted: boolean\n}\n\nexport class Tracker {\n transaction: Transaction\n\n currentStep: number\n\n constructor(transaction: Transaction) {\n this.transaction = transaction\n this.currentStep = this.transaction.steps.length\n }\n\n map(position: number): TrackerResult {\n let deleted = false\n\n const mappedPosition = this.transaction.steps\n .slice(this.currentStep)\n .reduce((newPosition, step) => {\n const mapResult = step.getMap().mapResult(newPosition)\n\n if (mapResult.deleted) {\n deleted = true\n }\n\n return mapResult.pos\n }, position)\n\n return {\n position: mappedPosition,\n deleted,\n }\n }\n}\n"],"names":["run","originalCreateParagraphNear","originalDeleteSelection","originalExitCode","originalJoinUp","originalJoinDown","originalJoinBackward","originalJoinForward","originalCommand","originalLift","originalLiftEmptyBlock","originalLiftListItem","originalNewlineInCode","originalSelectNodeBackward","originalSelectNodeForward","originalSelectParentNode","originalSelectTextblockEnd","originalSelectTextblockStart","Node","originalSinkListItem","originalWrapIn","originalWrapInList"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/helpers/createChainableState.ts","../src/CommandManager.ts","../src/EventEmitter.ts","../src/helpers/getExtensionField.ts","../src/helpers/splitExtensions.ts","../src/helpers/getAttributesFromExtensions.ts","../src/helpers/getNodeType.ts","../src/utilities/mergeAttributes.ts","../src/helpers/getRenderedAttributes.ts","../src/utilities/isFunction.ts","../src/utilities/callOrReturn.ts","../src/utilities/isEmptyObject.ts","../src/utilities/fromString.ts","../src/helpers/injectExtensionAttributesToParseRule.ts","../src/helpers/getSchemaByResolvedExtensions.ts","../src/helpers/getSchemaTypeByName.ts","../src/helpers/isExtensionRulesEnabled.ts","../src/helpers/getTextContentFromNodes.ts","../src/utilities/isRegExp.ts","../src/InputRule.ts","../src/utilities/isNumber.ts","../src/PasteRule.ts","../src/utilities/findDuplicates.ts","../src/ExtensionManager.ts","../src/utilities/isPlainObject.ts","../src/utilities/mergeDeep.ts","../src/Extension.ts","../src/helpers/getTextBetween.ts","../src/helpers/getTextSerializersFromSchema.ts","../src/extensions/clipboardTextSerializer.ts","../src/commands/blur.ts","../src/commands/clearContent.ts","../src/commands/clearNodes.ts","../src/commands/command.ts","../src/commands/createParagraphNear.ts","../src/commands/cut.ts","../src/commands/deleteCurrentNode.ts","../src/commands/deleteNode.ts","../src/commands/deleteRange.ts","../src/commands/deleteSelection.ts","../src/commands/enter.ts","../src/commands/exitCode.ts","../src/utilities/objectIncludes.ts","../src/helpers/getMarkRange.ts","../src/helpers/getMarkType.ts","../src/commands/extendMarkRange.ts","../src/commands/first.ts","../src/helpers/isTextSelection.ts","../src/utilities/minMax.ts","../src/helpers/resolveFocusPosition.ts","../src/utilities/isiOS.ts","../src/commands/focus.ts","../src/commands/forEach.ts","../src/commands/insertContent.ts","../src/utilities/elementFromString.ts","../src/helpers/createNodeFromContent.ts","../src/helpers/selectionToInsertionEnd.ts","../src/commands/insertContentAt.ts","../src/commands/join.ts","../src/commands/joinItemBackward.ts","../src/commands/joinItemForward.ts","../src/commands/joinTextblockBackward.ts","../src/commands/joinTextblockForward.ts","../src/utilities/isMacOS.ts","../src/commands/keyboardShortcut.ts","../src/helpers/isNodeActive.ts","../src/commands/lift.ts","../src/commands/liftEmptyBlock.ts","../src/commands/liftListItem.ts","../src/commands/newlineInCode.ts","../src/helpers/getSchemaTypeNameByName.ts","../src/utilities/deleteProps.ts","../src/commands/resetAttributes.ts","../src/commands/scrollIntoView.ts","../src/commands/selectAll.ts","../src/commands/selectNodeBackward.ts","../src/commands/selectNodeForward.ts","../src/commands/selectParentNode.ts","../src/commands/selectTextblockEnd.ts","../src/commands/selectTextblockStart.ts","../src/helpers/createDocument.ts","../src/commands/setContent.ts","../src/helpers/getMarkAttributes.ts","../src/helpers/combineTransactionSteps.ts","../src/helpers/defaultBlockAt.ts","../src/helpers/findChildren.ts","../src/helpers/findChildrenInRange.ts","../src/helpers/findParentNodeClosestToPos.ts","../src/helpers/findParentNode.ts","../src/helpers/getHTMLFromFragment.ts","../src/helpers/getSchema.ts","../src/helpers/generateHTML.ts","../src/helpers/generateJSON.ts","../src/helpers/getText.ts","../src/helpers/generateText.ts","../src/helpers/getNodeAttributes.ts","../src/helpers/getAttributes.ts","../src/utilities/removeDuplicates.ts","../src/helpers/getChangedRanges.ts","../src/helpers/getDebugJSON.ts","../src/helpers/getMarksBetween.ts","../src/helpers/getNodeAtPosition.ts","../src/helpers/getSplittedAttributes.ts","../src/helpers/isMarkActive.ts","../src/helpers/isActive.ts","../src/helpers/isAtEndOfNode.ts","../src/helpers/isAtStartOfNode.ts","../src/helpers/isList.ts","../src/helpers/isNodeEmpty.ts","../src/helpers/isNodeSelection.ts","../src/helpers/posToDOMRect.ts","../src/commands/setMark.ts","../src/commands/setMeta.ts","../src/commands/setNode.ts","../src/commands/setNodeSelection.ts","../src/commands/setTextSelection.ts","../src/commands/sinkListItem.ts","../src/commands/splitBlock.ts","../src/commands/splitListItem.ts","../src/commands/toggleList.ts","../src/commands/toggleMark.ts","../src/commands/toggleNode.ts","../src/commands/toggleWrap.ts","../src/commands/undoInputRule.ts","../src/commands/unsetAllMarks.ts","../src/commands/unsetMark.ts","../src/commands/updateAttributes.ts","../src/commands/wrapIn.ts","../src/commands/wrapInList.ts","../src/extensions/commands.ts","../src/extensions/editable.ts","../src/extensions/focusEvents.ts","../src/extensions/keymap.ts","../src/extensions/tabindex.ts","../src/NodePos.ts","../src/style.ts","../src/utilities/createStyleTag.ts","../src/Editor.ts","../src/inputRules/markInputRule.ts","../src/inputRules/nodeInputRule.ts","../src/inputRules/textblockTypeInputRule.ts","../src/inputRules/textInputRule.ts","../src/inputRules/wrappingInputRule.ts","../src/Mark.ts","../src/Node.ts","../src/utilities/isAndroid.ts","../src/NodeView.ts","../src/pasteRules/markPasteRule.ts","../src/utilities/escapeForRegEx.ts","../src/utilities/isString.ts","../src/pasteRules/nodePasteRule.ts","../src/pasteRules/textPasteRule.ts","../src/Tracker.ts"],"sourcesContent":["import { EditorState, Transaction } from '@tiptap/pm/state'\n\n/**\n * Takes a Transaction & Editor State and turns it into a chainable state object\n * @param config The transaction and state to create the chainable state from\n * @returns A chainable Editor state object\n */\nexport function createChainableState(config: {\n transaction: Transaction\n state: EditorState\n}): EditorState {\n const { state, transaction } = config\n let { selection } = transaction\n let { doc } = transaction\n let { storedMarks } = transaction\n\n return {\n ...state,\n apply: state.apply.bind(state),\n applyTransaction: state.applyTransaction.bind(state),\n plugins: state.plugins,\n schema: state.schema,\n reconfigure: state.reconfigure.bind(state),\n toJSON: state.toJSON.bind(state),\n get storedMarks() {\n return storedMarks\n },\n get selection() {\n return selection\n },\n get doc() {\n return doc\n },\n get tr() {\n selection = transaction.selection\n doc = transaction.doc\n storedMarks = transaction.storedMarks\n\n return transaction\n },\n }\n}\n","import { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n AnyCommands, CanCommands, ChainedCommands, CommandProps, SingleCommands,\n} from './types.js'\n\nexport class CommandManager {\n editor: Editor\n\n rawCommands: AnyCommands\n\n customState?: EditorState\n\n constructor(props: { editor: Editor; state?: EditorState }) {\n this.editor = props.editor\n this.rawCommands = this.editor.extensionManager.commands\n this.customState = props.state\n }\n\n get hasCustomState(): boolean {\n return !!this.customState\n }\n\n get state(): EditorState {\n return this.customState || this.editor.state\n }\n\n get commands(): SingleCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const { tr } = state\n const props = this.buildProps(tr)\n\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const method = (...args: any[]) => {\n const callback = command(...args)(props)\n\n if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {\n view.dispatch(tr)\n }\n\n return callback\n }\n\n return [name, method]\n }),\n ) as unknown as SingleCommands\n }\n\n get chain(): () => ChainedCommands {\n return () => this.createChain()\n }\n\n get can(): () => CanCommands {\n return () => this.createCan()\n }\n\n public createChain(startTr?: Transaction, shouldDispatch = true): ChainedCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const callbacks: boolean[] = []\n const hasStartTransaction = !!startTr\n const tr = startTr || state.tr\n\n const run = () => {\n if (\n !hasStartTransaction\n && shouldDispatch\n && !tr.getMeta('preventDispatch')\n && !this.hasCustomState\n ) {\n view.dispatch(tr)\n }\n\n return callbacks.every(callback => callback === true)\n }\n\n const chain = {\n ...Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const chainedCommand = (...args: never[]) => {\n const props = this.buildProps(tr, shouldDispatch)\n const callback = command(...args)(props)\n\n callbacks.push(callback)\n\n return chain\n }\n\n return [name, chainedCommand]\n }),\n ),\n run,\n } as unknown as ChainedCommands\n\n return chain\n }\n\n public createCan(startTr?: Transaction): CanCommands {\n const { rawCommands, state } = this\n const dispatch = false\n const tr = startTr || state.tr\n const props = this.buildProps(tr, dispatch)\n const formattedCommands = Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)({ ...props, dispatch: undefined })]\n }),\n ) as unknown as SingleCommands\n\n return {\n ...formattedCommands,\n chain: () => this.createChain(tr, dispatch),\n } as CanCommands\n }\n\n public buildProps(tr: Transaction, shouldDispatch = true): CommandProps {\n const { rawCommands, editor, state } = this\n const { view } = editor\n\n const props: CommandProps = {\n tr,\n editor,\n view,\n state: createChainableState({\n state,\n transaction: tr,\n }),\n dispatch: shouldDispatch ? () => undefined : undefined,\n chain: () => this.createChain(tr, shouldDispatch),\n can: () => this.createCan(tr),\n get commands() {\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)(props)]\n }),\n ) as unknown as SingleCommands\n },\n }\n\n return props\n }\n}\n","type StringKeyOf = Extract\ntype CallbackType<\n T extends Record,\n EventName extends StringKeyOf,\n> = T[EventName] extends any[] ? T[EventName] : [T[EventName]]\ntype CallbackFunction<\n T extends Record,\n EventName extends StringKeyOf,\n> = (...props: CallbackType) => any\n\nexport class EventEmitter> {\n\n private callbacks: { [key: string]: Function[] } = {}\n\n public on>(event: EventName, fn: CallbackFunction): this {\n if (!this.callbacks[event]) {\n this.callbacks[event] = []\n }\n\n this.callbacks[event].push(fn)\n\n return this\n }\n\n public emit>(event: EventName, ...args: CallbackType): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n callbacks.forEach(callback => callback.apply(this, args))\n }\n\n return this\n }\n\n public off>(event: EventName, fn?: CallbackFunction): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n if (fn) {\n this.callbacks[event] = callbacks.filter(callback => callback !== fn)\n } else {\n delete this.callbacks[event]\n }\n }\n\n return this\n }\n\n public removeAllListeners(): void {\n this.callbacks = {}\n }\n}\n","import { AnyExtension, MaybeThisParameterType, RemoveThis } from '../types.js'\n\n/**\n * Returns a field from an extension\n * @param extension The Tiptap extension\n * @param field The field, for example `renderHTML` or `priority`\n * @param context The context object that should be passed as `this` into the function\n * @returns The field value\n */\nexport function getExtensionField(\n extension: AnyExtension,\n field: string,\n context?: Omit, 'parent'>,\n): RemoveThis {\n\n if (extension.config[field] === undefined && extension.parent) {\n return getExtensionField(extension.parent, field, context)\n }\n\n if (typeof extension.config[field] === 'function') {\n const value = extension.config[field].bind({\n ...context,\n parent: extension.parent\n ? getExtensionField(extension.parent, field, context)\n : null,\n })\n\n return value\n }\n\n return extension.config[field]\n}\n","import { Extension } from '../Extension.js'\nimport { Mark } from '../Mark.js'\nimport { Node } from '../Node.js'\nimport { Extensions } from '../types.js'\n\nexport function splitExtensions(extensions: Extensions) {\n const baseExtensions = extensions.filter(extension => extension.type === 'extension') as Extension[]\n const nodeExtensions = extensions.filter(extension => extension.type === 'node') as Node[]\n const markExtensions = extensions.filter(extension => extension.type === 'mark') as Mark[]\n\n return {\n baseExtensions,\n nodeExtensions,\n markExtensions,\n }\n}\n","import { MarkConfig, NodeConfig } from '../index.js'\nimport {\n AnyConfig,\n Attribute,\n Attributes,\n ExtensionAttribute,\n Extensions,\n} from '../types.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { splitExtensions } from './splitExtensions.js'\n\n/**\n * Get a list of all extension attributes defined in `addAttribute` and `addGlobalAttribute`.\n * @param extensions List of extensions\n */\nexport function getAttributesFromExtensions(extensions: Extensions): ExtensionAttribute[] {\n const extensionAttributes: ExtensionAttribute[] = []\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const nodeAndMarkExtensions = [...nodeExtensions, ...markExtensions]\n const defaultAttribute: Required = {\n default: null,\n rendered: true,\n renderHTML: null,\n parseHTML: null,\n keepOnSplit: true,\n isRequired: false,\n }\n\n extensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n extensions: nodeAndMarkExtensions,\n }\n\n const addGlobalAttributes = getExtensionField(\n extension,\n 'addGlobalAttributes',\n context,\n )\n\n if (!addGlobalAttributes) {\n return\n }\n\n const globalAttributes = addGlobalAttributes()\n\n globalAttributes.forEach(globalAttribute => {\n globalAttribute.types.forEach(type => {\n Object\n .entries(globalAttribute.attributes)\n .forEach(([name, attribute]) => {\n extensionAttributes.push({\n type,\n name,\n attribute: {\n ...defaultAttribute,\n ...attribute,\n },\n })\n })\n })\n })\n })\n\n nodeAndMarkExtensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addAttributes = getExtensionField(\n extension,\n 'addAttributes',\n context,\n )\n\n if (!addAttributes) {\n return\n }\n\n // TODO: remove `as Attributes`\n const attributes = addAttributes() as Attributes\n\n Object\n .entries(attributes)\n .forEach(([name, attribute]) => {\n const mergedAttr = {\n ...defaultAttribute,\n ...attribute,\n }\n\n if (typeof mergedAttr?.default === 'function') {\n mergedAttr.default = mergedAttr.default()\n }\n\n if (mergedAttr?.isRequired && mergedAttr?.default === undefined) {\n delete mergedAttr.default\n }\n\n extensionAttributes.push({\n type: extension.name,\n name,\n attribute: mergedAttr,\n })\n })\n })\n\n return extensionAttributes\n}\n","import { NodeType, Schema } from '@tiptap/pm/model'\n\nexport function getNodeType(nameOrType: string | NodeType, schema: Schema): NodeType {\n if (typeof nameOrType === 'string') {\n if (!schema.nodes[nameOrType]) {\n throw Error(\n `There is no node type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.nodes[nameOrType]\n }\n\n return nameOrType\n}\n","export function mergeAttributes(...objects: Record[]): Record {\n return objects\n .filter(item => !!item)\n .reduce((items, item) => {\n const mergedAttributes = { ...items }\n\n Object.entries(item).forEach(([key, value]) => {\n const exists = mergedAttributes[key]\n\n if (!exists) {\n mergedAttributes[key] = value\n\n return\n }\n\n if (key === 'class') {\n const valueClasses: string[] = value ? value.split(' ') : []\n const existingClasses: string[] = mergedAttributes[key] ? mergedAttributes[key].split(' ') : []\n\n const insertClasses = valueClasses.filter(\n valueClass => !existingClasses.includes(valueClass),\n )\n\n mergedAttributes[key] = [...existingClasses, ...insertClasses].join(' ')\n } else if (key === 'style') {\n mergedAttributes[key] = [mergedAttributes[key], value].join('; ')\n } else {\n mergedAttributes[key] = value\n }\n })\n\n return mergedAttributes\n }, {})\n}\n","import { Mark, Node } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { mergeAttributes } from '../utilities/mergeAttributes.js'\n\nexport function getRenderedAttributes(\n nodeOrMark: Node | Mark,\n extensionAttributes: ExtensionAttribute[],\n): Record {\n return extensionAttributes\n .filter(item => item.attribute.rendered)\n .map(item => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: nodeOrMark.attrs[item.name],\n }\n }\n\n return item.attribute.renderHTML(nodeOrMark.attrs) || {}\n })\n .reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {})\n}\n","export function isFunction(value: any): value is Function {\n return typeof value === 'function'\n}\n","import { MaybeReturnType } from '../types.js'\nimport { isFunction } from './isFunction.js'\n\n/**\n * Optionally calls `value` as a function.\n * Otherwise it is returned directly.\n * @param value Function or any value.\n * @param context Optional context to bind to function.\n * @param props Optional props to pass to function.\n */\nexport function callOrReturn(value: T, context: any = undefined, ...props: any[]): MaybeReturnType {\n if (isFunction(value)) {\n if (context) {\n return value.bind(context)(...props)\n }\n\n return value(...props)\n }\n\n return value as MaybeReturnType\n}\n","export function isEmptyObject(value = {}): boolean {\n return Object.keys(value).length === 0 && value.constructor === Object\n}\n","export function fromString(value: any): any {\n if (typeof value !== 'string') {\n return value\n }\n\n if (value.match(/^[+-]?(?:\\d*\\.)?\\d+$/)) {\n return Number(value)\n }\n\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n return value\n}\n","import { ParseRule } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { fromString } from '../utilities/fromString.js'\n\n/**\n * This function merges extension attributes into parserule attributes (`attrs` or `getAttrs`).\n * Cancels when `getAttrs` returned `false`.\n * @param parseRule ProseMirror ParseRule\n * @param extensionAttributes List of attributes to inject\n */\nexport function injectExtensionAttributesToParseRule(\n parseRule: ParseRule,\n extensionAttributes: ExtensionAttribute[],\n): ParseRule {\n if ('style' in parseRule || (!parseRule.attrs && !parseRule.getAttrs && extensionAttributes.length === 0)) {\n return parseRule\n }\n\n return {\n ...parseRule,\n getAttrs: (node: HTMLElement) => {\n const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs\n\n if (oldAttributes === false) {\n return false\n }\n\n const newAttributes = extensionAttributes.reduce((items, item) => {\n const value = item.attribute.parseHTML\n ? item.attribute.parseHTML(node)\n : fromString((node).getAttribute(item.name))\n\n if (value === null || value === undefined) {\n return items\n }\n // @ts-expect-error for perf reasons\n items[item.name] = value\n return items\n }, oldAttributes || {})\n\n return newAttributes\n },\n }\n}\n","import {\n MarkSpec, NodeSpec, Schema, TagParseRule,\n} from '@tiptap/pm/model'\n\nimport { Editor, MarkConfig, NodeConfig } from '../index.js'\nimport { AnyConfig, Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { isEmptyObject } from '../utilities/isEmptyObject.js'\nimport { getAttributesFromExtensions } from './getAttributesFromExtensions.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { getRenderedAttributes } from './getRenderedAttributes.js'\nimport { injectExtensionAttributesToParseRule } from './injectExtensionAttributesToParseRule.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nfunction cleanUpSchemaItem(data: T) {\n return Object.fromEntries(\n // @ts-ignore\n Object.entries(data).filter(([key, value]) => {\n if (key === 'attrs' && isEmptyObject(value as {} | undefined)) {\n return false\n }\n\n return value !== null && value !== undefined\n }),\n ) as T\n}\n\n/**\n * Creates a new Prosemirror schema based on the given extensions.\n * @param extensions An array of Tiptap extensions\n * @param editor The editor instance\n * @returns A Prosemirror schema\n */\nexport function getSchemaByResolvedExtensions(extensions: Extensions, editor?: Editor): Schema {\n const allAttributes = getAttributesFromExtensions(extensions)\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const topNode = nodeExtensions.find(extension => getExtensionField(extension, 'topNode'))?.name\n\n const nodes = Object.fromEntries(\n nodeExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraNodeFields = extensions.reduce((fields, e) => {\n const extendNodeSchema = getExtensionField(\n e,\n 'extendNodeSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendNodeSchema ? extendNodeSchema(extension) : {}),\n }\n }, {})\n\n const schema: NodeSpec = cleanUpSchemaItem({\n ...extraNodeFields,\n content: callOrReturn(\n getExtensionField(extension, 'content', context),\n ),\n marks: callOrReturn(getExtensionField(extension, 'marks', context)),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n inline: callOrReturn(getExtensionField(extension, 'inline', context)),\n atom: callOrReturn(getExtensionField(extension, 'atom', context)),\n selectable: callOrReturn(\n getExtensionField(extension, 'selectable', context),\n ),\n draggable: callOrReturn(\n getExtensionField(extension, 'draggable', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n whitespace: callOrReturn(getExtensionField(extension, 'whitespace', context)),\n defining: callOrReturn(\n getExtensionField(extension, 'defining', context),\n ),\n isolating: callOrReturn(\n getExtensionField(extension, 'isolating', context),\n ),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes)) as TagParseRule[]\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = node => renderHTML({\n node,\n HTMLAttributes: getRenderedAttributes(node, extensionAttributes),\n })\n }\n\n const renderText = getExtensionField(\n extension,\n 'renderText',\n context,\n )\n\n if (renderText) {\n schema.toText = renderText\n }\n\n return [extension.name, schema]\n }),\n )\n\n const marks = Object.fromEntries(\n markExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraMarkFields = extensions.reduce((fields, e) => {\n const extendMarkSchema = getExtensionField(\n e,\n 'extendMarkSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendMarkSchema ? extendMarkSchema(extension) : {}),\n }\n }, {})\n\n const schema: MarkSpec = cleanUpSchemaItem({\n ...extraMarkFields,\n inclusive: callOrReturn(\n getExtensionField(extension, 'inclusive', context),\n ),\n excludes: callOrReturn(\n getExtensionField(extension, 'excludes', context),\n ),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n spanning: callOrReturn(\n getExtensionField(extension, 'spanning', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes))\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = mark => renderHTML({\n mark,\n HTMLAttributes: getRenderedAttributes(mark, extensionAttributes),\n })\n }\n\n return [extension.name, schema]\n }),\n )\n\n return new Schema({\n topNode,\n nodes,\n marks,\n })\n}\n","import { MarkType, NodeType, Schema } from '@tiptap/pm/model'\n\n/**\n * Tries to get a node or mark type by its name.\n * @param name The name of the node or mark type\n * @param schema The Prosemiror schema to search in\n * @returns The node or mark type, or null if it doesn't exist\n */\nexport function getSchemaTypeByName(name: string, schema: Schema): NodeType | MarkType | null {\n return schema.nodes[name] || schema.marks[name] || null\n}\n","import { AnyExtension, EnableRules } from '../types.js'\n\nexport function isExtensionRulesEnabled(extension: AnyExtension, enabled: EnableRules): boolean {\n if (Array.isArray(enabled)) {\n return enabled.some(enabledExtension => {\n const name = typeof enabledExtension === 'string'\n ? enabledExtension\n : enabledExtension.name\n\n return name === extension.name\n })\n }\n\n return enabled\n}\n","import { ResolvedPos } from '@tiptap/pm/model'\n\n/**\n * Returns the text content of a resolved prosemirror position\n * @param $from The resolved position to get the text content from\n * @param maxMatch The maximum number of characters to match\n * @returns The text content\n */\nexport const getTextContentFromNodes = ($from: ResolvedPos, maxMatch = 500) => {\n let textBefore = ''\n\n const sliceEndPos = $from.parentOffset\n\n $from.parent.nodesBetween(\n Math.max(0, sliceEndPos - maxMatch),\n sliceEndPos,\n (node, pos, parent, index) => {\n const chunk = node.type.spec.toText?.({\n node,\n pos,\n parent,\n index,\n })\n || node.textContent\n || '%leaf%'\n\n textBefore += node.isAtom && !node.isText ? chunk : chunk.slice(0, Math.max(0, sliceEndPos - pos))\n },\n )\n\n return textBefore\n}\n","export function isRegExp(value: any): value is RegExp {\n return Object.prototype.toString.call(value) === '[object RegExp]'\n}\n","import { EditorState, Plugin, TextSelection } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport { getTextContentFromNodes } from './helpers/getTextContentFromNodes.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type InputRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type InputRuleFinder = RegExp | ((text: string) => InputRuleMatch | null)\n\nexport class InputRule {\n find: InputRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n\n constructor(config: {\n find: InputRuleFinder\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst inputRuleMatcherHandler = (\n text: string,\n find: InputRuleFinder,\n): ExtendedRegExpMatchArray | null => {\n if (isRegExp(find)) {\n return find.exec(text)\n }\n\n const inputRuleMatch = find(text)\n\n if (!inputRuleMatch) {\n return null\n }\n\n const result: ExtendedRegExpMatchArray = [inputRuleMatch.text]\n\n result.index = inputRuleMatch.index\n result.input = text\n result.data = inputRuleMatch.data\n\n if (inputRuleMatch.replaceWith) {\n if (!inputRuleMatch.text.includes(inputRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".',\n )\n }\n\n result.push(inputRuleMatch.replaceWith)\n }\n\n return result\n}\n\nfunction run(config: {\n editor: Editor\n from: number\n to: number\n text: string\n rules: InputRule[]\n plugin: Plugin\n}): boolean {\n const {\n editor, from, to, text, rules, plugin,\n } = config\n const { view } = editor\n\n if (view.composing) {\n return false\n }\n\n const $from = view.state.doc.resolve(from)\n\n if (\n // check for code node\n $from.parent.type.spec.code\n // check for code mark\n || !!($from.nodeBefore || $from.nodeAfter)?.marks.find(mark => mark.type.spec.code)\n ) {\n return false\n }\n\n let matched = false\n\n const textBefore = getTextContentFromNodes($from) + text\n\n rules.forEach(rule => {\n if (matched) {\n return\n }\n\n const match = inputRuleMatcherHandler(textBefore, rule.find)\n\n if (!match) {\n return\n }\n\n const tr = view.state.tr\n const state = createChainableState({\n state: view.state,\n transaction: tr,\n })\n const range = {\n from: from - (match[0].length - text.length),\n to,\n }\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n })\n\n // stop if there are no changes\n if (handler === null || !tr.steps.length) {\n return\n }\n\n // store transform as meta data\n // so we can undo input rules within the `undoInputRules` command\n tr.setMeta(plugin, {\n transform: tr,\n from,\n to,\n text,\n })\n\n view.dispatch(tr)\n matched = true\n })\n\n return matched\n}\n\n/**\n * Create an input rules plugin. When enabled, it will cause text\n * input that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function inputRulesPlugin(props: { editor: Editor; rules: InputRule[] }): Plugin {\n const { editor, rules } = props\n const plugin = new Plugin({\n state: {\n init() {\n return null\n },\n apply(tr, prev) {\n const stored = tr.getMeta(plugin)\n\n if (stored) {\n return stored\n }\n\n // if InputRule is triggered by insertContent()\n const simulatedInputMeta = tr.getMeta('applyInputRules')\n const isSimulatedInput = !!simulatedInputMeta\n\n if (isSimulatedInput) {\n setTimeout(() => {\n const { from, text } = simulatedInputMeta\n const to = from + text.length\n\n run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n })\n }\n\n return tr.selectionSet || tr.docChanged ? null : prev\n },\n },\n\n props: {\n handleTextInput(view, from, to, text) {\n return run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n },\n\n handleDOMEvents: {\n compositionend: view => {\n setTimeout(() => {\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '',\n rules,\n plugin,\n })\n }\n })\n\n return false\n },\n },\n\n // add support for input rules to trigger on enter\n // this is useful for example for code blocks\n handleKeyDown(view, event) {\n if (event.key !== 'Enter') {\n return false\n }\n\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n return run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '\\n',\n rules,\n plugin,\n })\n }\n\n return false\n },\n },\n\n // @ts-ignore\n isInputRules: true,\n }) as Plugin\n\n return plugin\n}\n","export function isNumber(value: any): value is number {\n return typeof value === 'number'\n}\n","import { EditorState, Plugin } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isNumber } from './utilities/isNumber.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type PasteRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type PasteRuleFinder = RegExp | ((text: string, event?: ClipboardEvent | null) => PasteRuleMatch[] | null | undefined)\n\n/**\n * Paste rules are used to react to pasted content.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport class PasteRule {\n find: PasteRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n }) => void | null\n\n constructor(config: {\n find: PasteRuleFinder\n handler: (props: {\n can: () => CanCommands\n chain: () => ChainedCommands\n commands: SingleCommands\n dropEvent: DragEvent | null\n match: ExtendedRegExpMatchArray\n pasteEvent: ClipboardEvent | null\n range: Range\n state: EditorState\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst pasteRuleMatcherHandler = (\n text: string,\n find: PasteRuleFinder,\n event?: ClipboardEvent | null,\n): ExtendedRegExpMatchArray[] => {\n if (isRegExp(find)) {\n return [...text.matchAll(find)]\n }\n\n const matches = find(text, event)\n\n if (!matches) {\n return []\n }\n\n return matches.map(pasteRuleMatch => {\n const result: ExtendedRegExpMatchArray = [pasteRuleMatch.text]\n\n result.index = pasteRuleMatch.index\n result.input = text\n result.data = pasteRuleMatch.data\n\n if (pasteRuleMatch.replaceWith) {\n if (!pasteRuleMatch.text.includes(pasteRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".',\n )\n }\n\n result.push(pasteRuleMatch.replaceWith)\n }\n\n return result\n })\n}\n\nfunction run(config: {\n editor: Editor\n state: EditorState\n from: number\n to: number\n rule: PasteRule\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n}): boolean {\n const {\n editor, state, from, to, rule, pasteEvent, dropEvent,\n } = config\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handlers: (void | null)[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isTextblock || node.type.spec.code) {\n return\n }\n\n const resolvedFrom = Math.max(from, pos)\n const resolvedTo = Math.min(to, pos + node.content.size)\n const textToMatch = node.textBetween(resolvedFrom - pos, resolvedTo - pos, undefined, '\\ufffc')\n\n const matches = pasteRuleMatcherHandler(textToMatch, rule.find, pasteEvent)\n\n matches.forEach(match => {\n if (match.index === undefined) {\n return\n }\n\n const start = resolvedFrom + match.index + 1\n const end = start + match[0].length\n const range = {\n from: state.tr.mapping.map(start),\n to: state.tr.mapping.map(end),\n }\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n pasteEvent,\n dropEvent,\n })\n\n handlers.push(handler)\n })\n })\n\n const success = handlers.every(handler => handler !== null)\n\n return success\n}\n\nconst createClipboardPasteEvent = (text: string) => {\n const event = new ClipboardEvent('paste', {\n clipboardData: new DataTransfer(),\n })\n\n event.clipboardData?.setData('text/html', text)\n\n return event\n}\n\n/**\n * Create an paste rules plugin. When enabled, it will cause pasted\n * text that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function pasteRulesPlugin(props: { editor: Editor; rules: PasteRule[] }): Plugin[] {\n const { editor, rules } = props\n let dragSourceElement: Element | null = null\n let isPastedFromProseMirror = false\n let isDroppedFromProseMirror = false\n let pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n let dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n\n const processEvent = ({\n state,\n from,\n to,\n rule,\n pasteEvt,\n }: {\n state: EditorState\n from: number\n to: { b: number }\n rule: PasteRule\n pasteEvt: ClipboardEvent | null\n }) => {\n const tr = state.tr\n const chainableState = createChainableState({\n state,\n transaction: tr,\n })\n\n const handler = run({\n editor,\n state: chainableState,\n from: Math.max(from - 1, 0),\n to: to.b - 1,\n rule,\n pasteEvent: pasteEvt,\n dropEvent,\n })\n\n if (!handler || !tr.steps.length) {\n return\n }\n\n dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n\n return tr\n }\n\n const plugins = rules.map(rule => {\n return new Plugin({\n // we register a global drag handler to track the current drag source element\n view(view) {\n const handleDragstart = (event: DragEvent) => {\n dragSourceElement = view.dom.parentElement?.contains(event.target as Element)\n ? view.dom.parentElement\n : null\n }\n\n window.addEventListener('dragstart', handleDragstart)\n\n return {\n destroy() {\n window.removeEventListener('dragstart', handleDragstart)\n },\n }\n },\n\n props: {\n handleDOMEvents: {\n drop: (view, event: Event) => {\n isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement\n dropEvent = event as DragEvent\n\n return false\n },\n\n paste: (_view, event: Event) => {\n const html = (event as ClipboardEvent).clipboardData?.getData('text/html')\n\n pasteEvent = event as ClipboardEvent\n\n isPastedFromProseMirror = !!html?.includes('data-pm-slice')\n\n return false\n },\n },\n },\n\n appendTransaction: (transactions, oldState, state) => {\n const transaction = transactions[0]\n const isPaste = transaction.getMeta('uiEvent') === 'paste' && !isPastedFromProseMirror\n const isDrop = transaction.getMeta('uiEvent') === 'drop' && !isDroppedFromProseMirror\n\n // if PasteRule is triggered by insertContent()\n const simulatedPasteMeta = transaction.getMeta('applyPasteRules')\n const isSimulatedPaste = !!simulatedPasteMeta\n\n if (!isPaste && !isDrop && !isSimulatedPaste) {\n return\n }\n\n // Handle simulated paste\n if (isSimulatedPaste) {\n const { from, text } = simulatedPasteMeta\n const to = from + text.length\n const pasteEvt = createClipboardPasteEvent(text)\n\n return processEvent({\n rule,\n state,\n from,\n to: { b: to },\n pasteEvt,\n })\n }\n\n // handle actual paste/drop\n const from = oldState.doc.content.findDiffStart(state.doc.content)\n const to = oldState.doc.content.findDiffEnd(state.doc.content)\n\n // stop if there is no changed range\n if (!isNumber(from) || !to || from === to.b) {\n return\n }\n\n return processEvent({\n rule,\n state,\n from,\n to,\n pasteEvt: pasteEvent,\n })\n },\n })\n })\n\n return plugins\n}\n","export function findDuplicates(items: any[]): any[] {\n const filtered = items.filter((el, index) => items.indexOf(el) !== index)\n\n return Array.from(new Set(filtered))\n}\n","import { keymap } from '@tiptap/pm/keymap'\nimport { Node as ProsemirrorNode, Schema } from '@tiptap/pm/model'\nimport { Plugin } from '@tiptap/pm/state'\nimport { Decoration, EditorView } from '@tiptap/pm/view'\n\nimport type { Editor } from './Editor.js'\nimport { getAttributesFromExtensions } from './helpers/getAttributesFromExtensions.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { getNodeType } from './helpers/getNodeType.js'\nimport { getRenderedAttributes } from './helpers/getRenderedAttributes.js'\nimport { getSchemaByResolvedExtensions } from './helpers/getSchemaByResolvedExtensions.js'\nimport { getSchemaTypeByName } from './helpers/getSchemaTypeByName.js'\nimport { isExtensionRulesEnabled } from './helpers/isExtensionRulesEnabled.js'\nimport { splitExtensions } from './helpers/splitExtensions.js'\nimport { Mark, NodeConfig } from './index.js'\nimport { InputRule, inputRulesPlugin } from './InputRule.js'\nimport { PasteRule, pasteRulesPlugin } from './PasteRule.js'\nimport { AnyConfig, Extensions, RawCommands } from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { findDuplicates } from './utilities/findDuplicates.js'\n\nexport class ExtensionManager {\n editor: Editor\n\n schema: Schema\n\n extensions: Extensions\n\n splittableMarks: string[] = []\n\n constructor(extensions: Extensions, editor: Editor) {\n this.editor = editor\n this.extensions = ExtensionManager.resolve(extensions)\n this.schema = getSchemaByResolvedExtensions(this.extensions, editor)\n this.setupExtensions()\n }\n\n /**\n * Returns a flattened and sorted extension list while\n * also checking for duplicated extensions and warns the user.\n * @param extensions An array of Tiptap extensions\n * @returns An flattened and sorted array of Tiptap extensions\n */\n static resolve(extensions: Extensions): Extensions {\n const resolvedExtensions = ExtensionManager.sort(ExtensionManager.flatten(extensions))\n const duplicatedNames = findDuplicates(resolvedExtensions.map(extension => extension.name))\n\n if (duplicatedNames.length) {\n console.warn(\n `[tiptap warn]: Duplicate extension names found: [${duplicatedNames\n .map(item => `'${item}'`)\n .join(', ')}]. This can lead to issues.`,\n )\n }\n\n return resolvedExtensions\n }\n\n /**\n * Create a flattened array of extensions by traversing the `addExtensions` field.\n * @param extensions An array of Tiptap extensions\n * @returns A flattened array of Tiptap extensions\n */\n static flatten(extensions: Extensions): Extensions {\n return (\n extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addExtensions = getExtensionField(\n extension,\n 'addExtensions',\n context,\n )\n\n if (addExtensions) {\n return [extension, ...this.flatten(addExtensions())]\n }\n\n return extension\n })\n // `Infinity` will break TypeScript so we set a number that is probably high enough\n .flat(10)\n )\n }\n\n /**\n * Sort extensions by priority.\n * @param extensions An array of Tiptap extensions\n * @returns A sorted array of Tiptap extensions by priority\n */\n static sort(extensions: Extensions): Extensions {\n const defaultPriority = 100\n\n return extensions.sort((a, b) => {\n const priorityA = getExtensionField(a, 'priority') || defaultPriority\n const priorityB = getExtensionField(b, 'priority') || defaultPriority\n\n if (priorityA > priorityB) {\n return -1\n }\n\n if (priorityA < priorityB) {\n return 1\n }\n\n return 0\n })\n }\n\n /**\n * Get all commands from the extensions.\n * @returns An object with all commands where the key is the command name and the value is the command function\n */\n get commands(): RawCommands {\n return this.extensions.reduce((commands, extension) => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const addCommands = getExtensionField(\n extension,\n 'addCommands',\n context,\n )\n\n if (!addCommands) {\n return commands\n }\n\n return {\n ...commands,\n ...addCommands(),\n }\n }, {} as RawCommands)\n }\n\n /**\n * Get all registered Prosemirror plugins from the extensions.\n * @returns An array of Prosemirror plugins\n */\n get plugins(): Plugin[] {\n const { editor } = this\n\n // With ProseMirror, first plugins within an array are executed first.\n // In Tiptap, we provide the ability to override plugins,\n // so it feels more natural to run plugins at the end of an array first.\n // That’s why we have to reverse the `extensions` array and sort again\n // based on the `priority` option.\n const extensions = ExtensionManager.sort([...this.extensions].reverse())\n\n const inputRules: InputRule[] = []\n const pasteRules: PasteRule[] = []\n\n const allPlugins = extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const plugins: Plugin[] = []\n\n const addKeyboardShortcuts = getExtensionField(\n extension,\n 'addKeyboardShortcuts',\n context,\n )\n\n let defaultBindings: Record boolean> = {}\n\n // bind exit handling\n if (extension.type === 'mark' && getExtensionField(extension, 'exitable', context)) {\n defaultBindings.ArrowRight = () => Mark.handleExit({ editor, mark: extension as Mark })\n }\n\n if (addKeyboardShortcuts) {\n const bindings = Object.fromEntries(\n Object.entries(addKeyboardShortcuts()).map(([shortcut, method]) => {\n return [shortcut, () => method({ editor })]\n }),\n )\n\n defaultBindings = { ...defaultBindings, ...bindings }\n }\n\n const keyMapPlugin = keymap(defaultBindings)\n\n plugins.push(keyMapPlugin)\n\n const addInputRules = getExtensionField(\n extension,\n 'addInputRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enableInputRules) && addInputRules) {\n inputRules.push(...addInputRules())\n }\n\n const addPasteRules = getExtensionField(\n extension,\n 'addPasteRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enablePasteRules) && addPasteRules) {\n pasteRules.push(...addPasteRules())\n }\n\n const addProseMirrorPlugins = getExtensionField(\n extension,\n 'addProseMirrorPlugins',\n context,\n )\n\n if (addProseMirrorPlugins) {\n const proseMirrorPlugins = addProseMirrorPlugins()\n\n plugins.push(...proseMirrorPlugins)\n }\n\n return plugins\n })\n .flat()\n\n return [\n inputRulesPlugin({\n editor,\n rules: inputRules,\n }),\n ...pasteRulesPlugin({\n editor,\n rules: pasteRules,\n }),\n ...allPlugins,\n ]\n }\n\n /**\n * Get all attributes from the extensions.\n * @returns An array of attributes\n */\n get attributes() {\n return getAttributesFromExtensions(this.extensions)\n }\n\n /**\n * Get all node views from the extensions.\n * @returns An object with all node views where the key is the node name and the value is the node view function\n */\n get nodeViews() {\n const { editor } = this\n const { nodeExtensions } = splitExtensions(this.extensions)\n\n return Object.fromEntries(\n nodeExtensions\n .filter(extension => !!getExtensionField(extension, 'addNodeView'))\n .map(extension => {\n const extensionAttributes = this.attributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getNodeType(extension.name, this.schema),\n }\n const addNodeView = getExtensionField(\n extension,\n 'addNodeView',\n context,\n )\n\n if (!addNodeView) {\n return []\n }\n\n const nodeview = (\n node: ProsemirrorNode,\n view: EditorView,\n getPos: (() => number) | boolean,\n decorations: Decoration[],\n ) => {\n const HTMLAttributes = getRenderedAttributes(node, extensionAttributes)\n\n return addNodeView()({\n editor,\n node,\n getPos,\n decorations,\n HTMLAttributes,\n extension,\n })\n }\n\n return [extension.name, nodeview]\n }),\n )\n }\n\n /**\n * Go through all extensions, create extension storages & setup marks\n * & bind editor event listener.\n */\n private setupExtensions() {\n this.extensions.forEach(extension => {\n // store extension storage in editor\n this.editor.extensionStorage[extension.name] = extension.storage\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n if (extension.type === 'mark') {\n const keepOnSplit = callOrReturn(getExtensionField(extension, 'keepOnSplit', context)) ?? true\n\n if (keepOnSplit) {\n this.splittableMarks.push(extension.name)\n }\n }\n\n const onBeforeCreate = getExtensionField(\n extension,\n 'onBeforeCreate',\n context,\n )\n const onCreate = getExtensionField(extension, 'onCreate', context)\n const onUpdate = getExtensionField(extension, 'onUpdate', context)\n const onSelectionUpdate = getExtensionField(\n extension,\n 'onSelectionUpdate',\n context,\n )\n const onTransaction = getExtensionField(\n extension,\n 'onTransaction',\n context,\n )\n const onFocus = getExtensionField(extension, 'onFocus', context)\n const onBlur = getExtensionField(extension, 'onBlur', context)\n const onDestroy = getExtensionField(extension, 'onDestroy', context)\n\n if (onBeforeCreate) {\n this.editor.on('beforeCreate', onBeforeCreate)\n }\n\n if (onCreate) {\n this.editor.on('create', onCreate)\n }\n\n if (onUpdate) {\n this.editor.on('update', onUpdate)\n }\n\n if (onSelectionUpdate) {\n this.editor.on('selectionUpdate', onSelectionUpdate)\n }\n\n if (onTransaction) {\n this.editor.on('transaction', onTransaction)\n }\n\n if (onFocus) {\n this.editor.on('focus', onFocus)\n }\n\n if (onBlur) {\n this.editor.on('blur', onBlur)\n }\n\n if (onDestroy) {\n this.editor.on('destroy', onDestroy)\n }\n })\n }\n}\n","// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nfunction getType(value: any): string {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nexport function isPlainObject(value: any): value is Record {\n if (getType(value) !== 'Object') {\n return false\n }\n\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype\n}\n","import { isPlainObject } from './isPlainObject.js'\n\nexport function mergeDeep(target: Record, source: Record): Record {\n const output = { ...target }\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n output[key] = mergeDeep(target[key], source[key])\n } else {\n output[key] = source[key]\n }\n })\n }\n\n return output\n}\n","import { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { ExtensionConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface ExtensionConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#commands\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n }\n}\n\n/**\n * The Extension class is the base class for all extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Extension {\n type = 'extension'\n\n name = 'extension'\n\n parent: Extension | null = null\n\n child: Extension | null = null\n\n options: Options\n\n storage: Storage\n\n config: ExtensionConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Extension(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Extension({ ...this.config, ...extendedConfig })\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { Range, TextSerializer } from '../types.js'\n\n/**\n * Gets the text between two positions in a Prosemirror node\n * and serializes it using the given text serializers and block separator (see getText)\n * @param startNode The Prosemirror node to start from\n * @param range The range of the text to get\n * @param options Options for the text serializer & block separator\n * @returns The text between the two positions\n */\nexport function getTextBetween(\n startNode: ProseMirrorNode,\n range: Range,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { from, to } = range\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n let text = ''\n\n startNode.nodesBetween(from, to, (node, pos, parent, index) => {\n if (node.isBlock && pos > from) {\n text += blockSeparator\n }\n\n const textSerializer = textSerializers?.[node.type.name]\n\n if (textSerializer) {\n if (parent) {\n text += textSerializer({\n node,\n pos,\n parent,\n index,\n range,\n })\n }\n // do not descend into child nodes when there exists a serializer\n return false\n }\n\n if (node.isText) {\n text += node?.text?.slice(Math.max(from, pos) - pos, to - pos) // eslint-disable-line\n }\n })\n\n return text\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\n\n/**\n * Find text serializers `toText` in a Prosemirror schema\n * @param schema The Prosemirror schema to search in\n * @returns A record of text serializers by node name\n */\nexport function getTextSerializersFromSchema(schema: Schema): Record {\n return Object.fromEntries(\n Object.entries(schema.nodes)\n .filter(([, node]) => node.spec.toText)\n .map(([name, node]) => [name, node.spec.toText]),\n )\n}\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\nimport { getTextBetween } from '../helpers/getTextBetween.js'\nimport { getTextSerializersFromSchema } from '../helpers/getTextSerializersFromSchema.js'\n\nexport type ClipboardTextSerializerOptions = {\n blockSeparator?: string,\n}\n\nexport const ClipboardTextSerializer = Extension.create({\n name: 'clipboardTextSerializer',\n\n addOptions() {\n return {\n blockSeparator: undefined,\n }\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('clipboardTextSerializer'),\n props: {\n clipboardTextSerializer: () => {\n const { editor } = this\n const { state, schema } = editor\n const { doc, selection } = state\n const { ranges } = selection\n const from = Math.min(...ranges.map(range => range.$from.pos))\n const to = Math.max(...ranges.map(range => range.$to.pos))\n const textSerializers = getTextSerializersFromSchema(schema)\n const range = { from, to }\n\n return getTextBetween(doc, range, {\n ...(this.options.blockSeparator !== undefined\n ? { blockSeparator: this.options.blockSeparator }\n : {}),\n textSerializers,\n })\n },\n },\n }),\n ]\n },\n})\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n blur: {\n /**\n * Removes focus from the editor.\n * @example editor.commands.blur()\n */\n blur: () => ReturnType,\n }\n }\n}\n\nexport const blur: RawCommands['blur'] = () => ({ editor, view }) => {\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n (view.dom as HTMLElement).blur()\n\n // Browsers should remove the caret on blur but safari does not.\n // See: https://github.com/ueberdosis/tiptap/issues/2405\n window?.getSelection()?.removeAllRanges()\n }\n })\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearContent: {\n /**\n * Clear the whole document.\n * @param emitUpdate Whether to emit an update event.\n * @example editor.commands.clearContent()\n */\n clearContent: (emitUpdate?: boolean) => ReturnType,\n }\n }\n}\n\nexport const clearContent: RawCommands['clearContent'] = (emitUpdate = false) => ({ commands }) => {\n return commands.setContent('', emitUpdate)\n}\n","import { liftTarget } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearNodes: {\n /**\n * Normalize nodes to a simple paragraph.\n * @example editor.commands.clearNodes()\n */\n clearNodes: () => ReturnType,\n }\n }\n}\n\nexport const clearNodes: RawCommands['clearNodes'] = () => ({ state, tr, dispatch }) => {\n const { selection } = tr\n const { ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n ranges.forEach(({ $from, $to }) => {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.type.isText) {\n return\n }\n\n const { doc, mapping } = tr\n const $mappedFrom = doc.resolve(mapping.map(pos))\n const $mappedTo = doc.resolve(mapping.map(pos + node.nodeSize))\n const nodeRange = $mappedFrom.blockRange($mappedTo)\n\n if (!nodeRange) {\n return\n }\n\n const targetLiftDepth = liftTarget(nodeRange)\n\n if (node.type.isTextblock) {\n const { defaultType } = $mappedFrom.parent.contentMatchAt($mappedFrom.index())\n\n tr.setNodeMarkup(nodeRange.start, defaultType)\n }\n\n if (targetLiftDepth || targetLiftDepth === 0) {\n tr.lift(nodeRange, targetLiftDepth)\n }\n })\n })\n\n return true\n}\n","import { Command, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n command: {\n /**\n * Define a command inline.\n * @param fn The command function.\n * @example\n * editor.commands.command(({ tr, state }) => {\n * ...\n * return true\n * })\n */\n command: (fn: (props: Parameters[0]) => boolean) => ReturnType,\n }\n }\n}\n\nexport const command: RawCommands['command'] = fn => props => {\n return fn(props)\n}\n","import { createParagraphNear as originalCreateParagraphNear } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n createParagraphNear: {\n /**\n * Create a paragraph nearby.\n * @example editor.commands.createParagraphNear()\n */\n createParagraphNear: () => ReturnType\n }\n }\n}\n\nexport const createParagraphNear: RawCommands['createParagraphNear'] = () => ({ state, dispatch }) => {\n return originalCreateParagraphNear(state, dispatch)\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n cut: {\n /**\n * Cuts content from a range and inserts it at a given position.\n * @param range The range to cut.\n * @param range.from The start position of the range.\n * @param range.to The end position of the range.\n * @param targetPos The position to insert the content at.\n * @example editor.commands.cut({ from: 1, to: 3 }, 5)\n */\n cut: ({ from, to }: { from: number, to: number }, targetPos: number) => ReturnType,\n }\n }\n}\n\nexport const cut: RawCommands['cut'] = (originRange, targetPos) => ({ editor, tr }) => {\n const { state } = editor\n\n const contentSlice = state.doc.slice(originRange.from, originRange.to)\n\n tr.deleteRange(originRange.from, originRange.to)\n const newPos = tr.mapping.map(targetPos)\n\n tr.insert(newPos, contentSlice.content)\n\n tr.setSelection(new TextSelection(tr.doc.resolve(Math.max(0, newPos - 1))))\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteCurrentNode: {\n /**\n * Delete the node that currently has the selection anchor.\n * @example editor.commands.deleteCurrentNode()\n */\n deleteCurrentNode: () => ReturnType,\n }\n }\n}\n\nexport const deleteCurrentNode: RawCommands['deleteCurrentNode'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const currentNode = selection.$anchor.node()\n\n // if there is content inside the current node, break out of this command\n if (currentNode.content.size > 0) {\n return false\n }\n\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === currentNode.type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteNode: {\n /**\n * Delete a node with a given type or name.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.deleteNode('paragraph')\n */\n deleteNode: (typeOrName: string | NodeType) => ReturnType,\n }\n }\n}\n\nexport const deleteNode: RawCommands['deleteNode'] = typeOrName => ({ tr, state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteRange: {\n /**\n * Delete a given range.\n * @param range The range to delete.\n * @example editor.commands.deleteRange({ from: 1, to: 3 })\n */\n deleteRange: (range: Range) => ReturnType,\n }\n }\n}\n\nexport const deleteRange: RawCommands['deleteRange'] = range => ({ tr, dispatch }) => {\n const { from, to } = range\n\n if (dispatch) {\n tr.delete(from, to)\n }\n\n return true\n}\n","import { deleteSelection as originalDeleteSelection } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteSelection: {\n /**\n * Delete the selection, if there is one.\n * @example editor.commands.deleteSelection()\n */\n deleteSelection: () => ReturnType\n }\n }\n}\n\nexport const deleteSelection: RawCommands['deleteSelection'] = () => ({ state, dispatch }) => {\n return originalDeleteSelection(state, dispatch)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n enter: {\n /**\n * Trigger enter.\n * @example editor.commands.enter()\n */\n enter: () => ReturnType,\n }\n }\n}\n\nexport const enter: RawCommands['enter'] = () => ({ commands }) => {\n return commands.keyboardShortcut('Enter')\n}\n","import { exitCode as originalExitCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n exitCode: {\n /**\n * Exit from a code block.\n * @example editor.commands.exitCode()\n */\n exitCode: () => ReturnType\n }\n }\n}\n\nexport const exitCode: RawCommands['exitCode'] = () => ({ state, dispatch }) => {\n return originalExitCode(state, dispatch)\n}\n","import { isRegExp } from './isRegExp.js'\n\n/**\n * Check if object1 includes object2\n * @param object1 Object\n * @param object2 Object\n */\nexport function objectIncludes(\n object1: Record,\n object2: Record,\n options: { strict: boolean } = { strict: true },\n): boolean {\n const keys = Object.keys(object2)\n\n if (!keys.length) {\n return true\n }\n\n return keys.every(key => {\n if (options.strict) {\n return object2[key] === object1[key]\n }\n\n if (isRegExp(object2[key])) {\n return object2[key].test(object1[key])\n }\n\n return object2[key] === object1[key]\n })\n}\n","import { Mark as ProseMirrorMark, MarkType, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Range } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\n\nfunction findMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): ProseMirrorMark | undefined {\n return marks.find(item => {\n return item.type === type && objectIncludes(item.attrs, attributes)\n })\n}\n\nfunction isMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): boolean {\n return !!findMarkInSet(marks, type, attributes)\n}\n\nexport function getMarkRange(\n $pos: ResolvedPos,\n type: MarkType,\n attributes: Record = {},\n): Range | void {\n if (!$pos || !type) {\n return\n }\n\n let start = $pos.parent.childAfter($pos.parentOffset)\n\n if ($pos.parentOffset === start.offset && start.offset !== 0) {\n start = $pos.parent.childBefore($pos.parentOffset)\n }\n\n if (!start.node) {\n return\n }\n\n const mark = findMarkInSet([...start.node.marks], type, attributes)\n\n if (!mark) {\n return\n }\n\n let startIndex = start.index\n let startPos = $pos.start() + start.offset\n let endIndex = startIndex + 1\n let endPos = startPos + start.node.nodeSize\n\n findMarkInSet([...start.node.marks], type, attributes)\n\n while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {\n startIndex -= 1\n startPos -= $pos.parent.child(startIndex).nodeSize\n }\n\n while (\n endIndex < $pos.parent.childCount\n && isMarkInSet([...$pos.parent.child(endIndex).marks], type, attributes)\n ) {\n endPos += $pos.parent.child(endIndex).nodeSize\n endIndex += 1\n }\n\n return {\n from: startPos,\n to: endPos,\n }\n}\n","import { MarkType, Schema } from '@tiptap/pm/model'\n\nexport function getMarkType(nameOrType: string | MarkType, schema: Schema): MarkType {\n if (typeof nameOrType === 'string') {\n if (!schema.marks[nameOrType]) {\n throw Error(\n `There is no mark type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.marks[nameOrType]\n }\n\n return nameOrType\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n extendMarkRange: {\n /**\n * Extends the text selection to the current mark by type or name.\n * @param typeOrName The type or name of the mark.\n * @param attributes The attributes of the mark.\n * @example editor.commands.extendMarkRange('bold')\n * @example editor.commands.extendMarkRange('mention', { userId: \"1\" })\n */\n extendMarkRange: (\n /**\n * The type or name of the mark.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const extendMarkRange: RawCommands['extendMarkRange'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const type = getMarkType(typeOrName, state.schema)\n const { doc, selection } = tr\n const { $from, from, to } = selection\n\n if (dispatch) {\n const range = getMarkRange($from, type, attributes)\n\n if (range && range.from <= from && range.to >= to) {\n const newSelection = TextSelection.create(doc, range.from, range.to)\n\n tr.setSelection(newSelection)\n }\n }\n\n return true\n}\n","import { Command, CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n first: {\n /**\n * Runs one command after the other and stops at the first which returns true.\n * @param commands The commands to run.\n * @example editor.commands.first([command1, command2])\n */\n first: (commands: Command[] | ((props: CommandProps) => Command[])) => ReturnType,\n }\n }\n}\n\nexport const first: RawCommands['first'] = commands => props => {\n const items = typeof commands === 'function'\n ? commands(props)\n : commands\n\n for (let i = 0; i < items.length; i += 1) {\n if (items[i](props)) {\n return true\n }\n }\n\n return false\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nexport function isTextSelection(value: unknown): value is TextSelection {\n return value instanceof TextSelection\n}\n","export function minMax(value = 0, min = 0, max = 0): number {\n return Math.min(Math.max(value, min), max)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Selection, TextSelection } from '@tiptap/pm/state'\n\nimport { FocusPosition } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\nexport function resolveFocusPosition(\n doc: ProseMirrorNode,\n position: FocusPosition = null,\n): Selection | null {\n if (!position) {\n return null\n }\n\n const selectionAtStart = Selection.atStart(doc)\n const selectionAtEnd = Selection.atEnd(doc)\n\n if (position === 'start' || position === true) {\n return selectionAtStart\n }\n\n if (position === 'end') {\n return selectionAtEnd\n }\n\n const minPos = selectionAtStart.from\n const maxPos = selectionAtEnd.to\n\n if (position === 'all') {\n return TextSelection.create(\n doc,\n minMax(0, minPos, maxPos),\n minMax(doc.content.size, minPos, maxPos),\n )\n }\n\n return TextSelection.create(\n doc,\n minMax(position, minPos, maxPos),\n minMax(position, minPos, maxPos),\n )\n}\n","export function isiOS(): boolean {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod',\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n}\n","import { isTextSelection } from '../helpers/isTextSelection.js'\nimport { resolveFocusPosition } from '../helpers/resolveFocusPosition.js'\nimport { FocusPosition, RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n focus: {\n /**\n * Focus the editor at the given position.\n * @param position The position to focus at.\n * @param options.scrollIntoView Scroll the focused position into view after focusing\n * @example editor.commands.focus()\n * @example editor.commands.focus(32, { scrollIntoView: false })\n */\n focus: (\n /**\n * The position to focus at.\n */\n position?: FocusPosition,\n\n /**\n * Optional options\n * @default { scrollIntoView: true }\n */\n options?: {\n scrollIntoView?: boolean,\n },\n ) => ReturnType,\n }\n }\n}\n\nexport const focus: RawCommands['focus'] = (position = null, options = {}) => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n options = {\n scrollIntoView: true,\n ...options,\n }\n\n const delayedFocus = () => {\n // focus within `requestAnimationFrame` breaks focus on iOS\n // so we have to call this\n if (isiOS()) {\n (view.dom as HTMLElement).focus()\n }\n\n // For React we have to focus asynchronously. Otherwise wild things happen.\n // see: https://github.com/ueberdosis/tiptap/issues/1520\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n view.focus()\n\n if (options?.scrollIntoView) {\n editor.commands.scrollIntoView()\n }\n }\n })\n }\n\n if ((view.hasFocus() && position === null) || position === false) {\n return true\n }\n\n // we don’t try to resolve a NodeSelection or CellSelection\n if (dispatch && position === null && !isTextSelection(editor.state.selection)) {\n delayedFocus()\n return true\n }\n\n // pass through tr.doc instead of editor.state.doc\n // since transactions could change the editors state before this command has been run\n const selection = resolveFocusPosition(tr.doc, position) || editor.state.selection\n const isSameSelection = editor.state.selection.eq(selection)\n\n if (dispatch) {\n if (!isSameSelection) {\n tr.setSelection(selection)\n }\n\n // `tr.setSelection` resets the stored marks\n // so we’ll restore them if the selection is the same as before\n if (isSameSelection && tr.storedMarks) {\n tr.setStoredMarks(tr.storedMarks)\n }\n\n delayedFocus()\n }\n\n return true\n}\n","import { CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n forEach: {\n /**\n * Loop through an array of items.\n */\n forEach: (\n items: T[],\n fn: (\n item: T,\n props: CommandProps & {\n index: number,\n },\n ) => boolean,\n ) => ReturnType,\n }\n }\n}\n\nexport const forEach: RawCommands['forEach'] = (items, fn) => props => {\n return items.every((item, index) => fn(item, { ...props, index }))\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContent: {\n /**\n * Insert a node or string of HTML at the current position.\n * @example editor.commands.insertContent('

Example

')\n * @example editor.commands.insertContent('

Example

', { updateSelection: false })\n */\n insertContent: (\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n applyInputRules?: boolean\n applyPasteRules?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const insertContent: RawCommands['insertContent'] = (value, options) => ({ tr, commands }) => {\n return commands.insertContentAt(\n { from: tr.selection.from, to: tr.selection.to },\n value,\n options,\n )\n}\n","export function elementFromString(value: string): HTMLElement {\n // add a wrapper to preserve leading and trailing whitespace\n const wrappedValue = `${value}`\n\n const html = new window.DOMParser().parseFromString(wrappedValue, 'text/html').body\n\n return html\n}\n","import {\n DOMParser,\n Fragment,\n Node as ProseMirrorNode,\n ParseOptions,\n Schema,\n} from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\n\nexport type CreateNodeFromContentOptions = {\n slice?: boolean\n parseOptions?: ParseOptions\n errorOnInvalidContent?: boolean\n}\n\n/**\n * Takes a JSON or HTML content and creates a Prosemirror node or fragment from it.\n * @param content The JSON or HTML content to create the node from\n * @param schema The Prosemirror schema to use for the node\n * @param options Options for the parser\n * @returns The created Prosemirror node or fragment\n */\nexport function createNodeFromContent(\n content: Content,\n schema: Schema,\n options?: CreateNodeFromContentOptions,\n): ProseMirrorNode | Fragment {\n options = {\n slice: true,\n parseOptions: {},\n ...options,\n }\n\n const isJSONContent = typeof content === 'object' && content !== null\n const isTextContent = typeof content === 'string'\n\n if (isJSONContent) {\n try {\n const isArrayContent = Array.isArray(content) && content.length > 0\n\n // if the JSON Content is an array of nodes, create a fragment for each node\n if (isArrayContent) {\n return Fragment.fromArray(content.map(item => schema.nodeFromJSON(item)))\n }\n\n const node = schema.nodeFromJSON(content)\n\n if (options.errorOnInvalidContent) {\n node.check()\n }\n\n return node\n } catch (error) {\n if (options.errorOnInvalidContent) {\n throw new Error('[tiptap error]: Invalid JSON content', { cause: error as Error })\n }\n\n console.warn('[tiptap warn]: Invalid content.', 'Passed value:', content, 'Error:', error)\n\n return createNodeFromContent('', schema, options)\n }\n }\n\n if (isTextContent) {\n\n // Check for invalid content\n if (options.errorOnInvalidContent) {\n let hasInvalidContent = false\n let invalidContent = ''\n\n // A copy of the current schema with a catch-all node at the end\n const contentCheckSchema = new Schema({\n topNode: schema.spec.topNode,\n marks: schema.spec.marks,\n // Prosemirror's schemas are executed such that: the last to execute, matches last\n // This means that we can add a catch-all node at the end of the schema to catch any content that we don't know how to handle\n nodes: schema.spec.nodes.append({\n __tiptap__private__unknown__catch__all__node: {\n content: 'inline*',\n group: 'block',\n parseDOM: [\n {\n tag: '*',\n getAttrs: e => {\n // If this is ever called, we know that the content has something that we don't know how to handle in the schema\n hasInvalidContent = true\n // Try to stringify the element for a more helpful error message\n invalidContent = typeof e === 'string' ? e : e.outerHTML\n return null\n },\n },\n ],\n },\n }),\n })\n\n if (options.slice) {\n DOMParser.fromSchema(contentCheckSchema).parseSlice(elementFromString(content), options.parseOptions)\n } else {\n DOMParser.fromSchema(contentCheckSchema).parse(elementFromString(content), options.parseOptions)\n }\n\n if (options.errorOnInvalidContent && hasInvalidContent) {\n throw new Error('[tiptap error]: Invalid HTML content', { cause: new Error(`Invalid element found: ${invalidContent}`) })\n }\n }\n\n const parser = DOMParser.fromSchema(schema)\n\n if (options.slice) {\n return parser.parseSlice(elementFromString(content), options.parseOptions).content\n }\n\n return parser.parse(elementFromString(content), options.parseOptions)\n\n }\n\n return createNodeFromContent('', schema, options)\n}\n","import { Selection, Transaction } from '@tiptap/pm/state'\nimport { ReplaceAroundStep, ReplaceStep } from '@tiptap/pm/transform'\n\n// source: https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.js#L466\nexport function selectionToInsertionEnd(tr: Transaction, startLen: number, bias: number) {\n const last = tr.steps.length - 1\n\n if (last < startLen) {\n return\n }\n\n const step = tr.steps[last]\n\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\n return\n }\n\n const map = tr.mapping.maps[last]\n let end = 0\n\n map.forEach((_from, _to, _newFrom, newTo) => {\n if (end === 0) {\n end = newTo\n }\n })\n\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias))\n}\n","import { Fragment, Node as ProseMirrorNode, ParseOptions } from '@tiptap/pm/model'\n\nimport { createNodeFromContent } from '../helpers/createNodeFromContent.js'\nimport { selectionToInsertionEnd } from '../helpers/selectionToInsertionEnd.js'\nimport { Content, Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContentAt: {\n /**\n * Insert a node or string of HTML at a specific position.\n * @example editor.commands.insertContentAt(0, '

Example

')\n */\n insertContentAt: (\n /**\n * The position to insert the content at.\n */\n position: number | Range,\n\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n\n /**\n * Whether to apply input rules after inserting the content.\n */\n applyInputRules?: boolean\n\n /**\n * Whether to apply paste rules after inserting the content.\n */\n applyPasteRules?: boolean\n\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nconst isFragment = (nodeOrFragment: ProseMirrorNode | Fragment): nodeOrFragment is Fragment => {\n return !('type' in nodeOrFragment)\n}\n\nexport const insertContentAt: RawCommands['insertContentAt'] = (position, value, options) => ({ tr, dispatch, editor }) => {\n if (dispatch) {\n options = {\n parseOptions: {},\n updateSelection: true,\n applyInputRules: false,\n applyPasteRules: false,\n ...options,\n }\n\n let content: Fragment | ProseMirrorNode\n\n try {\n content = createNodeFromContent(value, editor.schema, {\n parseOptions: {\n preserveWhitespace: 'full',\n ...options.parseOptions,\n },\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n } catch (e) {\n editor.emit('contentError', {\n editor,\n error: e as Error,\n disableCollaboration: () => {\n console.error('[tiptap error]: Unable to disable collaboration at this point in time')\n },\n })\n return false\n }\n\n let { from, to } = typeof position === 'number' ? { from: position, to: position } : { from: position.from, to: position.to }\n\n let isOnlyTextContent = true\n let isOnlyBlockContent = true\n const nodes = isFragment(content) ? content : [content]\n\n nodes.forEach(node => {\n // check if added node is valid\n node.check()\n\n isOnlyTextContent = isOnlyTextContent ? node.isText && node.marks.length === 0 : false\n\n isOnlyBlockContent = isOnlyBlockContent ? node.isBlock : false\n })\n\n // check if we can replace the wrapping node by\n // the newly inserted content\n // example:\n // replace an empty paragraph by an inserted image\n // instead of inserting the image below the paragraph\n if (from === to && isOnlyBlockContent) {\n const { parent } = tr.doc.resolve(from)\n const isEmptyTextBlock = parent.isTextblock && !parent.type.spec.code && !parent.childCount\n\n if (isEmptyTextBlock) {\n from -= 1\n to += 1\n }\n }\n\n let newContent\n\n // if there is only plain text we have to use `insertText`\n // because this will keep the current marks\n if (isOnlyTextContent) {\n // if value is string, we can use it directly\n // otherwise if it is an array, we have to join it\n if (Array.isArray(value)) {\n newContent = value.map(v => v.text || '').join('')\n } else if (typeof value === 'object' && !!value && !!value.text) {\n newContent = value.text\n } else {\n newContent = value as string\n }\n\n tr.insertText(newContent, from, to)\n } else {\n newContent = content\n\n tr.replaceWith(from, to, newContent)\n }\n\n // set cursor at end of inserted content\n if (options.updateSelection) {\n selectionToInsertionEnd(tr, tr.steps.length - 1, -1)\n }\n\n if (options.applyInputRules) {\n tr.setMeta('applyInputRules', { from, text: newContent })\n }\n\n if (options.applyPasteRules) {\n tr.setMeta('applyPasteRules', { from, text: newContent })\n }\n }\n\n return true\n}\n","import {\n joinBackward as originalJoinBackward,\n joinDown as originalJoinDown,\n joinForward as originalJoinForward,\n joinUp as originalJoinUp,\n} from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinUp: {\n /**\n * Join the selected block or, if there is a text selection, the closest ancestor block of the selection that can be joined, with the sibling above it.\n * @example editor.commands.joinUp()\n */\n joinUp: () => ReturnType\n }\n joinDown: {\n /**\n * Join the selected block, or the closest ancestor of the selection that can be joined, with the sibling after it.\n * @example editor.commands.joinDown()\n */\n joinDown: () => ReturnType\n }\n joinBackward: {\n /**\n * If the selection is empty and at the start of a textblock, try to reduce the distance between that block and the one before it—if there's a block directly before it that can be joined, join them.\n * If not, try to move the selected block closer to the next one in the document structure by lifting it out of its\n * parent or moving it into a parent of the previous block. Will use the view for accurate (bidi-aware) start-of-textblock detection if given.\n * @example editor.commands.joinBackward()\n */\n joinBackward: () => ReturnType\n }\n joinForward: {\n /**\n * If the selection is empty and the cursor is at the end of a textblock, try to reduce or remove the boundary between that block and the one after it,\n * either by joining them or by moving the other block closer to this one in the tree structure.\n * Will use the view for accurate start-of-textblock detection if given.\n * @example editor.commands.joinForward()\n */\n joinForward: () => ReturnType\n }\n }\n}\n\nexport const joinUp: RawCommands['joinUp'] = () => ({ state, dispatch }) => {\n return originalJoinUp(state, dispatch)\n}\n\nexport const joinDown: RawCommands['joinDown'] = () => ({ state, dispatch }) => {\n return originalJoinDown(state, dispatch)\n}\n\nexport const joinBackward: RawCommands['joinBackward'] = () => ({ state, dispatch }) => {\n return originalJoinBackward(state, dispatch)\n}\n\nexport const joinForward: RawCommands['joinForward'] = () => ({ state, dispatch }) => {\n return originalJoinForward(state, dispatch)\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemBackward: {\n /**\n * Join two items backward.\n * @example editor.commands.joinItemBackward()\n */\n joinItemBackward: () => ReturnType\n }\n }\n}\n\nexport const joinItemBackward: RawCommands['joinItemBackward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, -1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemForward: {\n /**\n * Join two items Forwards.\n * @example editor.commands.joinItemForward()\n */\n joinItemForward: () => ReturnType\n }\n }\n}\n\nexport const joinItemForward: RawCommands['joinItemForward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, +1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinTextblockBackward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockBackward: {\n /**\n * A more limited form of joinBackward that only tries to join the current textblock to the one before it, if the cursor is at the start of a textblock.\n */\n joinTextblockBackward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockBackward: RawCommands['joinTextblockBackward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","import { joinTextblockForward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockForward: {\n /**\n * A more limited form of joinForward that only tries to join the current textblock to the one after it, if the cursor is at the end of a textblock.\n */\n joinTextblockForward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockForward: RawCommands['joinTextblockForward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","export function isMacOS(): boolean {\n return typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n}\n","import { RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nfunction normalizeKeyName(name: string) {\n const parts = name.split(/-(?!$)/)\n let result = parts[parts.length - 1]\n\n if (result === 'Space') {\n result = ' '\n }\n\n let alt\n let ctrl\n let shift\n let meta\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const mod = parts[i]\n\n if (/^(cmd|meta|m)$/i.test(mod)) {\n meta = true\n } else if (/^a(lt)?$/i.test(mod)) {\n alt = true\n } else if (/^(c|ctrl|control)$/i.test(mod)) {\n ctrl = true\n } else if (/^s(hift)?$/i.test(mod)) {\n shift = true\n } else if (/^mod$/i.test(mod)) {\n if (isiOS() || isMacOS()) {\n meta = true\n } else {\n ctrl = true\n }\n } else {\n throw new Error(`Unrecognized modifier name: ${mod}`)\n }\n }\n\n if (alt) {\n result = `Alt-${result}`\n }\n\n if (ctrl) {\n result = `Ctrl-${result}`\n }\n\n if (meta) {\n result = `Meta-${result}`\n }\n\n if (shift) {\n result = `Shift-${result}`\n }\n\n return result\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n keyboardShortcut: {\n /**\n * Trigger a keyboard shortcut.\n * @param name The name of the keyboard shortcut.\n * @example editor.commands.keyboardShortcut('Mod-b')\n */\n keyboardShortcut: (name: string) => ReturnType,\n }\n }\n}\n\nexport const keyboardShortcut: RawCommands['keyboardShortcut'] = name => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n const keys = normalizeKeyName(name).split(/-(?!$)/)\n const key = keys.find(item => !['Alt', 'Ctrl', 'Meta', 'Shift'].includes(item))\n const event = new KeyboardEvent('keydown', {\n key: key === 'Space'\n ? ' '\n : key,\n altKey: keys.includes('Alt'),\n ctrlKey: keys.includes('Ctrl'),\n metaKey: keys.includes('Meta'),\n shiftKey: keys.includes('Shift'),\n bubbles: true,\n cancelable: true,\n })\n\n const capturedTransaction = editor.captureTransaction(() => {\n view.someProp('handleKeyDown', f => f(view, event))\n })\n\n capturedTransaction?.steps.forEach(step => {\n const newStep = step.map(tr.mapping)\n\n if (newStep && dispatch) {\n tr.maybeStep(newStep)\n }\n })\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { NodeRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getNodeType } from './getNodeType.js'\n\nexport function isNodeActive(\n state: EditorState,\n typeOrName: NodeType | string | null,\n attributes: Record = {},\n): boolean {\n const { from, to, empty } = state.selection\n const type = typeOrName ? getNodeType(typeOrName, state.schema) : null\n\n const nodeRanges: NodeRange[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isText) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n\n nodeRanges.push({\n node,\n from: relativeFrom,\n to: relativeTo,\n })\n })\n\n const selectionRange = to - from\n const matchedNodeRanges = nodeRanges\n .filter(nodeRange => {\n if (!type) {\n return true\n }\n\n return type.name === nodeRange.node.type.name\n })\n .filter(nodeRange => objectIncludes(nodeRange.node.attrs, attributes, { strict: false }))\n\n if (empty) {\n return !!matchedNodeRanges.length\n }\n\n const range = matchedNodeRanges.reduce((sum, nodeRange) => sum + nodeRange.to - nodeRange.from, 0)\n\n return range >= selectionRange\n}\n","import { lift as originalLift } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n lift: {\n /**\n * Removes an existing wrap if possible lifting the node out of it\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.lift('paragraph')\n * @example editor.commands.lift('heading', { level: 1 })\n */\n lift: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const lift: RawCommands['lift'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (!isActive) {\n return false\n }\n\n return originalLift(state, dispatch)\n}\n","import { liftEmptyBlock as originalLiftEmptyBlock } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftEmptyBlock: {\n /**\n * If the cursor is in an empty textblock that can be lifted, lift the block.\n * @example editor.commands.liftEmptyBlock()\n */\n liftEmptyBlock: () => ReturnType,\n }\n }\n}\n\nexport const liftEmptyBlock: RawCommands['liftEmptyBlock'] = () => ({ state, dispatch, editor }) => {\n return originalLiftEmptyBlock(state, tr => {\n if (!dispatch) {\n return true\n }\n\n const { selection, storedMarks } = state\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!marks) { return dispatch(tr) }\n\n const { splittableMarks } = editor.extensionManager\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n return dispatch(tr)\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { liftListItem as originalLiftListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftListItem: {\n /**\n * Create a command to lift the list item around the selection up into a wrapping list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.liftListItem('listItem')\n */\n liftListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const liftListItem: RawCommands['liftListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalLiftListItem(type)(state, dispatch)\n}\n","import { newlineInCode as originalNewlineInCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n newlineInCode: {\n /**\n * Add a newline character in code.\n * @example editor.commands.newlineInCode()\n */\n newlineInCode: () => ReturnType\n }\n }\n}\n\nexport const newlineInCode: RawCommands['newlineInCode'] = () => ({ state, dispatch }) => {\n return originalNewlineInCode(state, dispatch)\n}\n","import { Schema } from '@tiptap/pm/model'\n\n/**\n * Get the type of a schema item by its name.\n * @param name The name of the schema item\n * @param schema The Prosemiror schema to search in\n * @returns The type of the schema item (`node` or `mark`), or null if it doesn't exist\n */\nexport function getSchemaTypeNameByName(name: string, schema: Schema): 'node' | 'mark' | null {\n if (schema.nodes[name]) {\n return 'node'\n }\n\n if (schema.marks[name]) {\n return 'mark'\n }\n\n return null\n}\n","/**\n * Remove a property or an array of properties from an object\n * @param obj Object\n * @param key Key to remove\n */\nexport function deleteProps(obj: Record, propOrProps: string | string[]): Record {\n const props = typeof propOrProps === 'string'\n ? [propOrProps]\n : propOrProps\n\n return Object\n .keys(obj)\n .reduce((newObj: Record, prop) => {\n if (!props.includes(prop)) {\n newObj[prop] = obj[prop]\n }\n\n return newObj\n }, {})\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\nimport { deleteProps } from '../utilities/deleteProps.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n resetAttributes: {\n /**\n * Resets some node attributes to the default value.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node to reset.\n * @example editor.commands.resetAttributes('heading', 'level')\n */\n resetAttributes: (\n typeOrName: string | NodeType | MarkType,\n attributes: string | string[],\n ) => ReturnType\n }\n }\n}\n\nexport const resetAttributes: RawCommands['resetAttributes'] = (typeOrName, attributes) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n state.doc.nodesBetween(range.$from.pos, range.$to.pos, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, deleteProps(node.attrs, attributes))\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n tr.addMark(\n pos,\n pos + node.nodeSize,\n markType.create(deleteProps(mark.attrs, attributes)),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n scrollIntoView: {\n /**\n * Scroll the selection into view.\n * @example editor.commands.scrollIntoView()\n */\n scrollIntoView: () => ReturnType,\n }\n }\n}\n\nexport const scrollIntoView: RawCommands['scrollIntoView'] = () => ({ tr, dispatch }) => {\n if (dispatch) {\n tr.scrollIntoView()\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectAll: {\n /**\n * Select the whole document.\n * @example editor.commands.selectAll()\n */\n selectAll: () => ReturnType,\n }\n }\n}\n\nexport const selectAll: RawCommands['selectAll'] = () => ({ tr, commands }) => {\n return commands.setTextSelection({\n from: 0,\n to: tr.doc.content.size,\n })\n}\n","import { selectNodeBackward as originalSelectNodeBackward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeBackward: {\n /**\n * Select a node backward.\n * @example editor.commands.selectNodeBackward()\n */\n selectNodeBackward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeBackward: RawCommands['selectNodeBackward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeBackward(state, dispatch)\n}\n","import { selectNodeForward as originalSelectNodeForward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeForward: {\n /**\n * Select a node forward.\n * @example editor.commands.selectNodeForward()\n */\n selectNodeForward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeForward: RawCommands['selectNodeForward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeForward(state, dispatch)\n}\n","import { selectParentNode as originalSelectParentNode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectParentNode: {\n /**\n * Select the parent node.\n * @example editor.commands.selectParentNode()\n */\n selectParentNode: () => ReturnType\n }\n }\n}\n\nexport const selectParentNode: RawCommands['selectParentNode'] = () => ({ state, dispatch }) => {\n return originalSelectParentNode(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockEnd as originalSelectTextblockEnd } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockEnd: {\n /**\n * Moves the cursor to the end of current text block.\n * @example editor.commands.selectTextblockEnd()\n */\n selectTextblockEnd: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockEnd: RawCommands['selectTextblockEnd'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockEnd(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockStart as originalSelectTextblockStart } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockStart: {\n /**\n * Moves the cursor to the start of current text block.\n * @example editor.commands.selectTextblockStart()\n */\n selectTextblockStart: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockStart: RawCommands['selectTextblockStart'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockStart(state, dispatch)\n}\n","import { Node as ProseMirrorNode, ParseOptions, Schema } from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { createNodeFromContent } from './createNodeFromContent.js'\n\n/**\n * Create a new Prosemirror document node from content.\n * @param content The JSON or HTML content to create the document from\n * @param schema The Prosemirror schema to use for the document\n * @param parseOptions Options for the parser\n * @returns The created Prosemirror document node\n */\nexport function createDocument(\n content: Content,\n schema: Schema,\n parseOptions: ParseOptions = {},\n options: { errorOnInvalidContent?: boolean } = {},\n): ProseMirrorNode {\n return createNodeFromContent(content, schema, {\n slice: false,\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent,\n }) as ProseMirrorNode\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { createDocument } from '../helpers/createDocument.js'\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setContent: {\n /**\n * Replace the whole document with new content.\n * @param content The new content.\n * @param emitUpdate Whether to emit an update event.\n * @param parseOptions Options for parsing the content.\n * @example editor.commands.setContent('

Example text

')\n */\n setContent: (\n /**\n * The new content.\n */\n content: Content,\n\n /**\n * Whether to emit an update event.\n * @default false\n */\n emitUpdate?: boolean,\n\n /**\n * Options for parsing the content.\n * @default {}\n */\n parseOptions?: ParseOptions,\n /**\n * Options for `setContent`.\n */\n options?: {\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const setContent: RawCommands['setContent'] = (content, emitUpdate = false, parseOptions = {}, options = {}) => ({\n editor, tr, dispatch, commands,\n}) => {\n const { doc } = tr\n\n // This is to keep backward compatibility with the previous behavior\n // TODO remove this in the next major version\n if (parseOptions.preserveWhitespace !== 'full') {\n const document = createDocument(content, editor.schema, parseOptions, {\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n\n if (dispatch) {\n tr.replaceWith(0, doc.content.size, document).setMeta('preventUpdate', !emitUpdate)\n }\n return true\n }\n\n if (dispatch) {\n tr.setMeta('preventUpdate', !emitUpdate)\n }\n\n return commands.insertContentAt(\n { from: 0, to: doc.content.size },\n content,\n {\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n },\n )\n}\n","import { Mark, MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkType } from './getMarkType.js'\n\nexport function getMarkAttributes(\n state: EditorState,\n typeOrName: string | MarkType,\n): Record {\n const type = getMarkType(typeOrName, state.schema)\n const { from, to, empty } = state.selection\n const marks: Mark[] = []\n\n if (empty) {\n if (state.storedMarks) {\n marks.push(...state.storedMarks)\n }\n\n marks.push(...state.selection.$head.marks())\n } else {\n state.doc.nodesBetween(from, to, node => {\n marks.push(...node.marks)\n })\n }\n\n const mark = marks.find(markItem => markItem.type.name === type.name)\n\n if (!mark) {\n return {}\n }\n\n return { ...mark.attrs }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { Transform } from '@tiptap/pm/transform'\n\n/**\n * Returns a new `Transform` based on all steps of the passed transactions.\n * @param oldDoc The Prosemirror node to start from\n * @param transactions The transactions to combine\n * @returns A new `Transform` with all steps of the passed transactions\n */\nexport function combineTransactionSteps(\n oldDoc: ProseMirrorNode,\n transactions: Transaction[],\n): Transform {\n const transform = new Transform(oldDoc)\n\n transactions.forEach(transaction => {\n transaction.steps.forEach(step => {\n transform.step(step)\n })\n })\n\n return transform\n}\n","import { ContentMatch, NodeType } from '@tiptap/pm/model'\n\n/**\n * Gets the default block type at a given match\n * @param match The content match to get the default block type from\n * @returns The default block type or null\n */\nexport function defaultBlockAt(match: ContentMatch): NodeType | null {\n for (let i = 0; i < match.edgeCount; i += 1) {\n const { type } = match.edge(i)\n\n if (type.isTextblock && !type.hasRequiredAttrs()) {\n return type\n }\n }\n\n return null\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate } from '../types.js'\n\n/**\n * Find children inside a Prosemirror node that match a predicate.\n * @param node The Prosemirror node to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildren(node: ProseMirrorNode, predicate: Predicate): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n node.descendants((child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate, Range } from '../types.js'\n\n/**\n * Same as `findChildren` but searches only within a `range`.\n * @param node The Prosemirror node to search in\n * @param range The range to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildrenInRange(\n node: ProseMirrorNode,\n range: Range,\n predicate: Predicate,\n): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n // if (range.from === range.to) {\n // const nodeAt = node.nodeAt(range.from)\n\n // if (nodeAt) {\n // nodesWithPos.push({\n // node: nodeAt,\n // pos: range.from,\n // })\n // }\n // }\n\n node.nodesBetween(range.from, range.to, (child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Predicate } from '../types.js'\n\n/**\n * Finds the closest parent node to a resolved position that matches a predicate.\n * @param $pos The resolved position to search from\n * @param predicate The predicate to match\n * @returns The closest parent node to the resolved position that matches the predicate\n * @example ```js\n * findParentNodeClosestToPos($from, node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNodeClosestToPos(\n $pos: ResolvedPos,\n predicate: Predicate,\n):\n | {\n pos: number\n start: number\n depth: number\n node: ProseMirrorNode\n }\n | undefined {\n for (let i = $pos.depth; i > 0; i -= 1) {\n const node = $pos.node(i)\n\n if (predicate(node)) {\n return {\n pos: i > 0 ? $pos.before(i) : 0,\n start: $pos.start(i),\n depth: i,\n node,\n }\n }\n }\n}\n","import { Selection } from '@tiptap/pm/state'\n\nimport { Predicate } from '../types.js'\nimport { findParentNodeClosestToPos } from './findParentNodeClosestToPos.js'\n\n/**\n * Finds the closest parent node to the current selection that matches a predicate.\n * @param predicate The predicate to match\n * @returns A command that finds the closest parent node to the current selection that matches the predicate\n * @example ```js\n * findParentNode(node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNode(predicate: Predicate) {\n return (selection: Selection) => findParentNodeClosestToPos(selection.$from, predicate)\n}\n","import { DOMSerializer, Fragment, Schema } from '@tiptap/pm/model'\n\nexport function getHTMLFromFragment(fragment: Fragment, schema: Schema): string {\n const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment)\n\n const temporaryDocument = document.implementation.createHTMLDocument()\n const container = temporaryDocument.createElement('div')\n\n container.appendChild(documentFragment)\n\n return container.innerHTML\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { Editor } from '../Editor.js'\nimport { ExtensionManager } from '../ExtensionManager.js'\nimport { Extensions } from '../types.js'\nimport { getSchemaByResolvedExtensions } from './getSchemaByResolvedExtensions.js'\n\nexport function getSchema(extensions: Extensions, editor?: Editor): Schema {\n const resolvedExtensions = ExtensionManager.resolve(extensions)\n\n return getSchemaByResolvedExtensions(resolvedExtensions, editor)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent } from '../types.js'\nimport { getHTMLFromFragment } from './getHTMLFromFragment.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate HTML from a JSONContent\n * @param doc The JSONContent to generate HTML from\n * @param extensions The extensions to use for the schema\n * @returns The generated HTML\n */\nexport function generateHTML(doc: JSONContent, extensions: Extensions): string {\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getHTMLFromFragment(contentNode.content, schema)\n}\n","import { DOMParser } from '@tiptap/pm/model'\n\nimport { Extensions } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate JSONContent from HTML\n * @param html The HTML to generate JSONContent from\n * @param extensions The extensions to use for the schema\n * @returns The generated JSONContent\n */\nexport function generateJSON(html: string, extensions: Extensions): Record {\n const schema = getSchema(extensions)\n const dom = elementFromString(html)\n\n return DOMParser.fromSchema(schema).parse(dom).toJSON()\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\nimport { getTextBetween } from './getTextBetween.js'\n\n/**\n * Gets the text of a Prosemirror node\n * @param node The Prosemirror node\n * @param options Options for the text serializer & block separator\n * @returns The text of the node\n * @example ```js\n * const text = getText(node, { blockSeparator: '\\n' })\n * ```\n */\nexport function getText(\n node: ProseMirrorNode,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n) {\n const range = {\n from: 0,\n to: node.content.size,\n }\n\n return getTextBetween(node, range, options)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent, TextSerializer } from '../types.js'\nimport { getSchema } from './getSchema.js'\nimport { getText } from './getText.js'\nimport { getTextSerializersFromSchema } from './getTextSerializersFromSchema.js'\n\n/**\n * Generate raw text from a JSONContent\n * @param doc The JSONContent to generate text from\n * @param extensions The extensions to use for the schema\n * @param options Options for the text generation f.e. blockSeparator or textSerializers\n * @returns The generated text\n */\nexport function generateText(\n doc: JSONContent,\n extensions: Extensions,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getText(contentNode, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(schema),\n ...textSerializers,\n },\n })\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getNodeType } from './getNodeType.js'\n\nexport function getNodeAttributes(\n state: EditorState,\n typeOrName: string | NodeType,\n): Record {\n const type = getNodeType(typeOrName, state.schema)\n const { from, to } = state.selection\n const nodes: Node[] = []\n\n state.doc.nodesBetween(from, to, node => {\n nodes.push(node)\n })\n\n const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name)\n\n if (!node) {\n return {}\n }\n\n return { ...node.attrs }\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from './getMarkAttributes.js'\nimport { getNodeAttributes } from './getNodeAttributes.js'\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\n\n/**\n * Get node or mark attributes by type or name on the current editor state\n * @param state The current editor state\n * @param typeOrName The node or mark type or name\n * @returns The attributes of the node or mark or an empty object\n */\nexport function getAttributes(\n state: EditorState,\n typeOrName: string | NodeType | MarkType,\n): Record {\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (schemaType === 'node') {\n return getNodeAttributes(state, typeOrName as NodeType)\n }\n\n if (schemaType === 'mark') {\n return getMarkAttributes(state, typeOrName as MarkType)\n }\n\n return {}\n}\n","/**\n * Removes duplicated values within an array.\n * Supports numbers, strings and objects.\n */\nexport function removeDuplicates(array: T[], by = JSON.stringify): T[] {\n const seen: Record = {}\n\n return array.filter(item => {\n const key = by(item)\n\n return Object.prototype.hasOwnProperty.call(seen, key)\n ? false\n : (seen[key] = true)\n })\n}\n","import { Step, Transform } from '@tiptap/pm/transform'\n\nimport { Range } from '../types.js'\nimport { removeDuplicates } from '../utilities/removeDuplicates.js'\n\nexport type ChangedRange = {\n oldRange: Range,\n newRange: Range,\n}\n\n/**\n * Removes duplicated ranges and ranges that are\n * fully captured by other ranges.\n */\nfunction simplifyChangedRanges(changes: ChangedRange[]): ChangedRange[] {\n const uniqueChanges = removeDuplicates(changes)\n\n return uniqueChanges.length === 1\n ? uniqueChanges\n : uniqueChanges.filter((change, index) => {\n const rest = uniqueChanges.filter((_, i) => i !== index)\n\n return !rest.some(otherChange => {\n return change.oldRange.from >= otherChange.oldRange.from\n && change.oldRange.to <= otherChange.oldRange.to\n && change.newRange.from >= otherChange.newRange.from\n && change.newRange.to <= otherChange.newRange.to\n })\n })\n}\n\n/**\n * Returns a list of changed ranges\n * based on the first and last state of all steps.\n */\nexport function getChangedRanges(transform: Transform): ChangedRange[] {\n const { mapping, steps } = transform\n const changes: ChangedRange[] = []\n\n mapping.maps.forEach((stepMap, index) => {\n const ranges: Range[] = []\n\n // This accounts for step changes where no range was actually altered\n // e.g. when setting a mark, node attribute, etc.\n // @ts-ignore\n if (!stepMap.ranges.length) {\n const { from, to } = steps[index] as Step & {\n from?: number,\n to?: number,\n }\n\n if (from === undefined || to === undefined) {\n return\n }\n\n ranges.push({ from, to })\n } else {\n stepMap.forEach((from, to) => {\n ranges.push({ from, to })\n })\n }\n\n ranges.forEach(({ from, to }) => {\n const newStart = mapping.slice(index).map(from, -1)\n const newEnd = mapping.slice(index).map(to)\n const oldStart = mapping.invert().map(newStart, -1)\n const oldEnd = mapping.invert().map(newEnd)\n\n changes.push({\n oldRange: {\n from: oldStart,\n to: oldEnd,\n },\n newRange: {\n from: newStart,\n to: newEnd,\n },\n })\n })\n })\n\n return simplifyChangedRanges(changes)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { JSONContent } from '../types.js'\n\ninterface DebugJSONContent extends JSONContent {\n from: number\n to: number\n}\n\nexport function getDebugJSON(node: ProseMirrorNode, startOffset = 0): DebugJSONContent {\n const isTopNode = node.type === node.type.schema.topNodeType\n const increment = isTopNode ? 0 : 1\n const from = startOffset\n const to = from + node.nodeSize\n const marks = node.marks.map(mark => {\n const output: { type: string; attrs?: Record } = {\n type: mark.type.name,\n }\n\n if (Object.keys(mark.attrs).length) {\n output.attrs = { ...mark.attrs }\n }\n\n return output\n })\n const attrs = { ...node.attrs }\n const output: DebugJSONContent = {\n type: node.type.name,\n from,\n to,\n }\n\n if (Object.keys(attrs).length) {\n output.attrs = attrs\n }\n\n if (marks.length) {\n output.marks = marks\n }\n\n if (node.content.childCount) {\n output.content = []\n\n node.forEach((child, offset) => {\n output.content?.push(getDebugJSON(child, startOffset + offset + increment))\n })\n }\n\n if (node.text) {\n output.text = node.text\n }\n\n return output\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { MarkRange } from '../types.js'\nimport { getMarkRange } from './getMarkRange.js'\n\nexport function getMarksBetween(from: number, to: number, doc: ProseMirrorNode): MarkRange[] {\n const marks: MarkRange[] = []\n\n // get all inclusive marks on empty selection\n if (from === to) {\n doc\n .resolve(from)\n .marks()\n .forEach(mark => {\n const $pos = doc.resolve(from)\n const range = getMarkRange($pos, mark.type)\n\n if (!range) {\n return\n }\n\n marks.push({\n mark,\n ...range,\n })\n })\n } else {\n doc.nodesBetween(from, to, (node, pos) => {\n if (!node || node?.nodeSize === undefined) {\n return\n }\n\n marks.push(\n ...node.marks.map(mark => ({\n from: pos,\n to: pos + node.nodeSize,\n mark,\n })),\n )\n })\n }\n\n return marks\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\n/**\n * Finds the first node of a given type or name in the current selection.\n * @param state The editor state.\n * @param typeOrName The node type or name.\n * @param pos The position to start searching from.\n * @param maxDepth The maximum depth to search.\n * @returns The node and the depth as an array.\n */\nexport const getNodeAtPosition = (state: EditorState, typeOrName: string | NodeType, pos: number, maxDepth = 20) => {\n const $pos = state.doc.resolve(pos)\n\n let currentDepth = maxDepth\n let node: Node | null = null\n\n while (currentDepth > 0 && node === null) {\n const currentNode = $pos.node(currentDepth)\n\n if (currentNode?.type.name === typeOrName) {\n node = currentNode\n } else {\n currentDepth -= 1\n }\n }\n\n return [node, currentDepth] as [Node | null, number]\n}\n","import { ExtensionAttribute } from '../types.js'\n\n/**\n * Return attributes of an extension that should be splitted by keepOnSplit flag\n * @param extensionAttributes Array of extension attributes\n * @param typeName The type of the extension\n * @param attributes The attributes of the extension\n * @returns The splitted attributes\n */\nexport function getSplittedAttributes(\n extensionAttributes: ExtensionAttribute[],\n typeName: string,\n attributes: Record,\n): Record {\n return Object.fromEntries(Object\n .entries(attributes)\n .filter(([name]) => {\n const extensionAttribute = extensionAttributes.find(item => {\n return item.type === typeName && item.name === name\n })\n\n if (!extensionAttribute) {\n return false\n }\n\n return extensionAttribute.attribute.keepOnSplit\n }))\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { MarkRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getMarkType } from './getMarkType.js'\n\nexport function isMarkActive(\n state: EditorState,\n typeOrName: MarkType | string | null,\n attributes: Record = {},\n): boolean {\n const { empty, ranges } = state.selection\n const type = typeOrName ? getMarkType(typeOrName, state.schema) : null\n\n if (empty) {\n return !!(state.storedMarks || state.selection.$from.marks())\n .filter(mark => {\n if (!type) {\n return true\n }\n\n return type.name === mark.type.name\n })\n .find(mark => objectIncludes(mark.attrs, attributes, { strict: false }))\n }\n\n let selectionRange = 0\n const markRanges: MarkRange[] = []\n\n ranges.forEach(({ $from, $to }) => {\n const from = $from.pos\n const to = $to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isText && !node.marks.length) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n const range = relativeTo - relativeFrom\n\n selectionRange += range\n\n markRanges.push(\n ...node.marks.map(mark => ({\n mark,\n from: relativeFrom,\n to: relativeTo,\n })),\n )\n })\n })\n\n if (selectionRange === 0) {\n return false\n }\n\n // calculate range of matched mark\n const matchedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return type.name === markRange.mark.type.name\n })\n .filter(markRange => objectIncludes(markRange.mark.attrs, attributes, { strict: false }))\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // calculate range of marks that excludes the searched mark\n // for example `code` doesn’t allow any other marks\n const excludedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return markRange.mark.type !== type && markRange.mark.type.excludes(type)\n })\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // we only include the result of `excludedRange`\n // if there is a match at all\n const range = matchedRange > 0 ? matchedRange + excludedRange : matchedRange\n\n return range >= selectionRange\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\nimport { isMarkActive } from './isMarkActive.js'\nimport { isNodeActive } from './isNodeActive.js'\n\nexport function isActive(\n state: EditorState,\n name: string | null,\n attributes: Record = {},\n): boolean {\n if (!name) {\n return isNodeActive(state, null, attributes) || isMarkActive(state, null, attributes)\n }\n\n const schemaType = getSchemaTypeNameByName(name, state.schema)\n\n if (schemaType === 'node') {\n return isNodeActive(state, name, attributes)\n }\n\n if (schemaType === 'mark') {\n return isMarkActive(state, name, attributes)\n }\n\n return false\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { findParentNode } from './findParentNode.js'\n\nexport const isAtEndOfNode = (state: EditorState, nodeType?: string) => {\n const { $from, $to, $anchor } = state.selection\n\n if (nodeType) {\n const parentNode = findParentNode(node => node.type.name === nodeType)(state.selection)\n\n if (!parentNode) {\n return false\n }\n\n const $parentPos = state.doc.resolve(parentNode.pos + 1)\n\n if ($anchor.pos + 1 === $parentPos.end()) {\n return true\n }\n\n return false\n }\n\n if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nexport const isAtStartOfNode = (state: EditorState) => {\n const { $from, $to } = state.selection\n\n if ($from.parentOffset > 0 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { getExtensionField } from '../helpers/getExtensionField.js'\nimport { NodeConfig } from '../index.js'\nimport { Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nexport function isList(name: string, extensions: Extensions): boolean {\n const { nodeExtensions } = splitExtensions(extensions)\n const extension = nodeExtensions.find(item => item.name === name)\n\n if (!extension) {\n return false\n }\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n const group = callOrReturn(getExtensionField(extension, 'group', context))\n\n if (typeof group !== 'string') {\n return false\n }\n\n return group.split(' ').includes('list')\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\n/**\n * Returns true if the given prosemirror node is empty.\n */\nexport function isNodeEmpty(\n node: ProseMirrorNode,\n {\n checkChildren = true,\n ignoreWhitespace = false,\n }: {\n /**\n * When true (default), it will also check if all children are empty.\n */\n checkChildren?: boolean;\n /**\n * When true, it will ignore whitespace when checking for emptiness.\n */\n ignoreWhitespace?: boolean;\n } = {},\n): boolean {\n if (ignoreWhitespace) {\n if (node.type.name === 'hardBreak') {\n // Hard breaks are considered empty\n return true\n }\n if (node.isText) {\n return /^\\s*$/m.test(node.text ?? '')\n }\n }\n\n if (node.isText) {\n return !node.text\n }\n\n if (node.isAtom || node.isLeaf) {\n return false\n }\n\n if (node.content.childCount === 0) {\n return true\n }\n\n if (checkChildren) {\n let isContentEmpty = true\n\n node.content.forEach(childNode => {\n if (isContentEmpty === false) {\n // Exit early for perf\n return\n }\n\n if (!isNodeEmpty(childNode, { ignoreWhitespace, checkChildren })) {\n isContentEmpty = false\n }\n })\n\n return isContentEmpty\n }\n\n return false\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nexport function isNodeSelection(value: unknown): value is NodeSelection {\n return value instanceof NodeSelection\n}\n","import { EditorView } from '@tiptap/pm/view'\n\nimport { minMax } from '../utilities/minMax.js'\n\nexport function posToDOMRect(view: EditorView, from: number, to: number): DOMRect {\n const minPos = 0\n const maxPos = view.state.doc.content.size\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const start = view.coordsAtPos(resolvedFrom)\n const end = view.coordsAtPos(resolvedEnd, -1)\n const top = Math.min(start.top, end.top)\n const bottom = Math.max(start.bottom, end.bottom)\n const left = Math.min(start.left, end.left)\n const right = Math.max(start.right, end.right)\n const width = right - left\n const height = bottom - top\n const x = left\n const y = top\n const data = {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x,\n y,\n }\n\n return {\n ...data,\n toJSON: () => data,\n }\n}\n","import { MarkType, ResolvedPos } from '@tiptap/pm/model'\nimport { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from '../helpers/getMarkAttributes.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isTextSelection } from '../helpers/index.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMark: {\n /**\n * Add a mark with new attributes.\n * @param typeOrName The mark type or name.\n * @example editor.commands.setMark('bold', { level: 1 })\n */\n setMark: (typeOrName: string | MarkType, attributes?: Record) => ReturnType\n }\n }\n}\n\nfunction canSetMark(state: EditorState, tr: Transaction, newMarkType: MarkType) {\n const { selection } = tr\n let cursor: ResolvedPos | null = null\n\n if (isTextSelection(selection)) {\n cursor = selection.$cursor\n }\n\n if (cursor) {\n const currentMarks = state.storedMarks ?? cursor.marks()\n\n // There can be no current marks that exclude the new mark\n return (\n !!newMarkType.isInSet(currentMarks)\n || !currentMarks.some(mark => mark.type.excludes(newMarkType))\n )\n }\n\n const { ranges } = selection\n\n return ranges.some(({ $from, $to }) => {\n let someNodeSupportsMark = $from.depth === 0\n ? state.doc.inlineContent && state.doc.type.allowsMarkType(newMarkType)\n : false\n\n state.doc.nodesBetween($from.pos, $to.pos, (node, _pos, parent) => {\n // If we already found a mark that we can enable, return false to bypass the remaining search\n if (someNodeSupportsMark) {\n return false\n }\n\n if (node.isInline) {\n const parentAllowsMarkType = !parent || parent.type.allowsMarkType(newMarkType)\n const currentMarksAllowMarkType = !!newMarkType.isInSet(node.marks)\n || !node.marks.some(otherMark => otherMark.type.excludes(newMarkType))\n\n someNodeSupportsMark = parentAllowsMarkType && currentMarksAllowMarkType\n }\n return !someNodeSupportsMark\n })\n\n return someNodeSupportsMark\n })\n}\nexport const setMark: RawCommands['setMark'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n const type = getMarkType(typeOrName, state.schema)\n\n if (dispatch) {\n if (empty) {\n const oldAttributes = getMarkAttributes(state, type)\n\n tr.addStoredMark(\n type.create({\n ...oldAttributes,\n ...attributes,\n }),\n )\n } else {\n ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n const someHasMark = node.marks.find(mark => mark.type === type)\n\n // if there is already a mark of this type\n // we know that we have to merge its attributes\n // otherwise we add a fresh new mark\n if (someHasMark) {\n node.marks.forEach(mark => {\n if (type === mark.type) {\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n type.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n } else {\n tr.addMark(trimmedFrom, trimmedTo, type.create(attributes))\n }\n })\n })\n }\n }\n\n return canSetMark(state, tr, type)\n}\n","import type { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMeta: {\n /**\n * Store a metadata property in the current transaction.\n * @param key The key of the metadata property.\n * @param value The value to store.\n * @example editor.commands.setMeta('foo', 'bar')\n */\n setMeta: (key: string | Plugin | PluginKey, value: any) => ReturnType,\n }\n }\n}\n\nexport const setMeta: RawCommands['setMeta'] = (key, value) => ({ tr }) => {\n tr.setMeta(key, value)\n\n return true\n}\n","import { setBlockType } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNode: {\n /**\n * Replace a given range with a node.\n * @param typeOrName The type or name of the node\n * @param attributes The attributes of the node\n * @example editor.commands.setNode('paragraph')\n */\n setNode: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const setNode: RawCommands['setNode'] = (typeOrName, attributes = {}) => ({ state, dispatch, chain }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n // TODO: use a fallback like insertContent?\n if (!type.isTextblock) {\n console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.')\n\n return false\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(({ commands }) => {\n const canSetBlock = setBlockType(type, attributes)(state)\n\n if (canSetBlock) {\n return true\n }\n\n return commands.clearNodes()\n })\n .command(({ state: updatedState }) => {\n return setBlockType(type, attributes)(updatedState, dispatch)\n })\n .run()\n )\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNodeSelection: {\n /**\n * Creates a NodeSelection.\n * @param position - Position of the node.\n * @example editor.commands.setNodeSelection(10)\n */\n setNodeSelection: (position: number) => ReturnType\n }\n }\n}\n\nexport const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const from = minMax(position, 0, doc.content.size)\n const selection = NodeSelection.create(doc, from)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { Range, RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setTextSelection: {\n /**\n * Creates a TextSelection.\n * @param position The position of the selection.\n * @example editor.commands.setTextSelection(10)\n */\n setTextSelection: (position: number | Range) => ReturnType\n }\n }\n}\n\nexport const setTextSelection: RawCommands['setTextSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const { from, to } = typeof position === 'number' ? { from: position, to: position } : position\n const minPos = TextSelection.atStart(doc).from\n const maxPos = TextSelection.atEnd(doc).to\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { sinkListItem as originalSinkListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n sinkListItem: {\n /**\n * Sink the list item down into an inner list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.sinkListItem('listItem')\n */\n sinkListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const sinkListItem: RawCommands['sinkListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalSinkListItem(type)(state, dispatch)\n}\n","import { EditorState, NodeSelection, TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { defaultBlockAt } from '../helpers/defaultBlockAt.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\nfunction ensureMarks(state: EditorState, splittableMarks?: string[]) {\n const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks?.includes(mark.type.name))\n\n state.tr.ensureMarks(filteredMarks)\n }\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitBlock: {\n /**\n * Forks a new node from an existing node.\n * @param options.keepMarks Keep marks from the previous node.\n * @example editor.commands.splitBlock()\n * @example editor.commands.splitBlock({ keepMarks: true })\n */\n splitBlock: (options?: { keepMarks?: boolean }) => ReturnType\n }\n }\n}\n\nexport const splitBlock: RawCommands['splitBlock'] = ({ keepMarks = true } = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const { selection, doc } = tr\n const { $from, $to } = selection\n const extensionAttributes = editor.extensionManager.attributes\n const newAttributes = getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n )\n\n if (selection instanceof NodeSelection && selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(doc, $from.pos)) {\n return false\n }\n\n if (dispatch) {\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.split($from.pos).scrollIntoView()\n }\n\n return true\n }\n\n if (!$from.parent.isBlock) {\n return false\n }\n\n const atEnd = $to.parentOffset === $to.parent.content.size\n\n const deflt = $from.depth === 0\n ? undefined\n : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)))\n\n let types = atEnd && deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types)\n\n if (\n !types\n && !can\n && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)\n ) {\n can = true\n types = deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n }\n\n if (dispatch) {\n if (can) {\n if (selection instanceof TextSelection) {\n tr.deleteSelection()\n }\n\n tr.split(tr.mapping.map($from.pos), 1, types)\n\n if (deflt && !atEnd && !$from.parentOffset && $from.parent.type !== deflt) {\n const first = tr.mapping.map($from.before())\n const $first = tr.doc.resolve(first)\n\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt)) {\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt)\n }\n }\n }\n\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.scrollIntoView()\n }\n\n return can\n}\n","import {\n Fragment, Node as ProseMirrorNode, NodeType, Slice,\n} from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitListItem: {\n /**\n * Splits one list item into two list items.\n * @param typeOrName The type or name of the node.\n * @param overrideAttrs The attributes to ensure on the new node.\n * @example editor.commands.splitListItem('listItem')\n */\n splitListItem: (typeOrName: string | NodeType, overrideAttrs?: Record) => ReturnType\n }\n }\n}\n\nexport const splitListItem: RawCommands['splitListItem'] = (typeOrName, overrideAttrs = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const type = getNodeType(typeOrName, state.schema)\n const { $from, $to } = state.selection\n\n // @ts-ignore\n // eslint-disable-next-line\n const node: ProseMirrorNode = state.selection.node\n\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {\n return false\n }\n\n const grandParent = $from.node(-1)\n\n if (grandParent.type !== type) {\n return false\n }\n\n const extensionAttributes = editor.extensionManager.attributes\n\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if (\n $from.depth === 2\n || $from.node(-3).type !== type\n || $from.index(-2) !== $from.node(-2).childCount - 1\n ) {\n return false\n }\n\n if (dispatch) {\n let wrap = Fragment.empty\n // eslint-disable-next-line\n const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3\n\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {\n wrap = Fragment.from($from.node(d).copy(wrap))\n }\n\n // eslint-disable-next-line\n const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3\n\n // Add a second list item with an empty default start node\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n const nextType = type.contentMatch.defaultType?.createAndFill(newNextTypeAttributes) || undefined\n\n wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined))\n\n const start = $from.before($from.depth - (depthBefore - 1))\n\n tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0))\n\n let sel = -1\n\n tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {\n if (sel > -1) {\n return false\n }\n\n if (n.isTextblock && n.content.size === 0) {\n sel = pos + 1\n }\n })\n\n if (sel > -1) {\n tr.setSelection(TextSelection.near(tr.doc.resolve(sel)))\n }\n\n tr.scrollIntoView()\n }\n\n return true\n }\n\n const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null\n\n const newTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n grandParent.type.name,\n grandParent.attrs,\n ),\n ...overrideAttrs,\n }\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n\n tr.delete($from.pos, $to.pos)\n\n const types = nextType\n ? [\n { type, attrs: newTypeAttributes },\n { type: nextType, attrs: newNextTypeAttributes },\n ]\n : [{ type, attrs: newTypeAttributes }]\n\n if (!canSplit(tr.doc, $from.pos, 2)) {\n return false\n }\n\n if (dispatch) {\n const { selection, storedMarks } = state\n const { splittableMarks } = editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n tr.split($from.pos, 2, types).scrollIntoView()\n\n if (!marks || !dispatch) {\n return true\n }\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { canJoin } from '@tiptap/pm/transform'\n\nimport { findParentNode } from '../helpers/findParentNode.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isList } from '../helpers/isList.js'\nimport { RawCommands } from '../types.js'\n\nconst joinListBackwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const before = tr.doc.resolve(Math.max(0, list.pos - 1)).before(list.depth)\n\n if (before === undefined) {\n return true\n }\n\n const nodeBefore = tr.doc.nodeAt(before)\n const canJoinBackwards = list.node.type === nodeBefore?.type && canJoin(tr.doc, list.pos)\n\n if (!canJoinBackwards) {\n return true\n }\n\n tr.join(list.pos)\n\n return true\n}\n\nconst joinListForwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const after = tr.doc.resolve(list.start).after(list.depth)\n\n if (after === undefined) {\n return true\n }\n\n const nodeAfter = tr.doc.nodeAt(after)\n const canJoinForwards = list.node.type === nodeAfter?.type && canJoin(tr.doc, after)\n\n if (!canJoinForwards) {\n return true\n }\n\n tr.join(after)\n\n return true\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleList: {\n /**\n * Toggle between different list types.\n * @param listTypeOrName The type or name of the list.\n * @param itemTypeOrName The type or name of the list item.\n * @param keepMarks Keep marks when toggling.\n * @param attributes Attributes for the new list.\n * @example editor.commands.toggleList('bulletList', 'listItem')\n */\n toggleList: (listTypeOrName: string | NodeType, itemTypeOrName: string | NodeType, keepMarks?: boolean, attributes?: Record) => ReturnType;\n }\n }\n}\n\nexport const toggleList: RawCommands['toggleList'] = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({\n editor, tr, state, dispatch, chain, commands, can,\n}) => {\n const { extensions, splittableMarks } = editor.extensionManager\n const listType = getNodeType(listTypeOrName, state.schema)\n const itemType = getNodeType(itemTypeOrName, state.schema)\n const { selection, storedMarks } = state\n const { $from, $to } = selection\n const range = $from.blockRange($to)\n\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!range) {\n return false\n }\n\n const parentList = findParentNode(node => isList(node.type.name, extensions))(selection)\n\n if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {\n // remove list\n if (parentList.node.type === listType) {\n return commands.liftListItem(itemType)\n }\n\n // change list type\n if (\n isList(parentList.node.type.name, extensions)\n && listType.validContent(parentList.node.content)\n && dispatch\n ) {\n return chain()\n .command(() => {\n tr.setNodeMarkup(parentList.pos, listType)\n\n return true\n })\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n }\n if (!keepMarks || !marks || !dispatch) {\n\n return chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n )\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isMarkActive } from '../helpers/isMarkActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleMark: {\n /**\n * Toggle a mark on and off.\n * @param typeOrName The mark type or name.\n * @param attributes The attributes of the mark.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.toggleMark('bold')\n */\n toggleMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const toggleMark: RawCommands['toggleMark'] = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {\n const { extendEmptyMarkRange = false } = options\n const type = getMarkType(typeOrName, state.schema)\n const isActive = isMarkActive(state, type, attributes)\n\n if (isActive) {\n return commands.unsetMark(type, { extendEmptyMarkRange })\n }\n\n return commands.setMark(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleNode: {\n /**\n * Toggle a node with another node.\n * @param typeOrName The type or name of the node.\n * @param toggleTypeOrName The type or name of the node to toggle.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleNode('heading', 'paragraph')\n */\n toggleNode: (\n typeOrName: string | NodeType,\n toggleTypeOrName: string | NodeType,\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const toggleNode: RawCommands['toggleNode'] = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const toggleType = getNodeType(toggleTypeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.setNode(toggleType)\n }\n\n return commands.setNode(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleWrap: {\n /**\n * Wraps nodes in another node, or removes an existing wrap.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleWrap('blockquote')\n */\n toggleWrap: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const toggleWrap: RawCommands['toggleWrap'] = (typeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.lift(type)\n }\n\n return commands.wrapIn(type, attributes)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n undoInputRule: {\n /**\n * Undo an input rule.\n * @example editor.commands.undoInputRule()\n */\n undoInputRule: () => ReturnType,\n }\n }\n}\n\nexport const undoInputRule: RawCommands['undoInputRule'] = () => ({ state, dispatch }) => {\n const plugins = state.plugins\n\n for (let i = 0; i < plugins.length; i += 1) {\n const plugin = plugins[i]\n let undoable\n\n // @ts-ignore\n // eslint-disable-next-line\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n const tr = state.tr\n const toUndo = undoable.transform\n\n for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]))\n }\n\n if (undoable.text) {\n const marks = tr.doc.resolve(undoable.from).marks()\n\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks))\n } else {\n tr.delete(undoable.from, undoable.to)\n }\n }\n\n return true\n }\n }\n\n return false\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetAllMarks: {\n /**\n * Remove all marks in the current selection.\n * @example editor.commands.unsetAllMarks()\n */\n unsetAllMarks: () => ReturnType,\n }\n }\n}\n\nexport const unsetAllMarks: RawCommands['unsetAllMarks'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n\n if (empty) {\n return true\n }\n\n if (dispatch) {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos)\n })\n }\n\n return true\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetMark: {\n /**\n * Remove all marks in the current selection.\n * @param typeOrName The mark type or name.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.unsetMark('bold')\n */\n unsetMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const unsetMark: RawCommands['unsetMark'] = (typeOrName, options = {}) => ({ tr, state, dispatch }) => {\n const { extendEmptyMarkRange = false } = options\n const { selection } = tr\n const type = getMarkType(typeOrName, state.schema)\n const { $from, empty, ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n if (empty && extendEmptyMarkRange) {\n let { from, to } = selection\n const attrs = $from.marks().find(mark => mark.type === type)?.attrs\n const range = getMarkRange($from, type, attrs)\n\n if (range) {\n from = range.from\n to = range.to\n }\n\n tr.removeMark(from, to, type)\n } else {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos, type)\n })\n }\n\n tr.removeStoredMark(type)\n\n return true\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n updateAttributes: {\n /**\n * Update attributes of a node or mark.\n * @param typeOrName The type or name of the node or mark.\n * @param attributes The attributes of the node or mark.\n * @example editor.commands.updateAttributes('mention', { userId: \"2\" })\n */\n updateAttributes: (\n /**\n * The type or name of the node or mark.\n */\n typeOrName: string | NodeType | MarkType,\n\n /**\n * The attributes of the node or mark.\n */\n attributes: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const updateAttributes: RawCommands['updateAttributes'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...attributes,\n })\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n markType.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { wrapIn as originalWrapIn } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapIn: {\n /**\n * Wraps nodes in another node.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapIn('blockquote')\n */\n wrapIn: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapIn: RawCommands['wrapIn'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapIn(type, attributes)(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { wrapInList as originalWrapInList } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapInList: {\n /**\n * Wrap a node in a list.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapInList('bulletList')\n */\n wrapInList: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapInList: RawCommands['wrapInList'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapInList(type, attributes)(state, dispatch)\n}\n","import * as commands from '../commands/index.js'\nimport { Extension } from '../Extension.js'\n\nexport * from '../commands/index.js'\n\nexport const Commands = Extension.create({\n name: 'commands',\n\n addCommands() {\n return {\n ...commands,\n }\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Editable = Extension.create({\n name: 'editable',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('editable'),\n props: {\n editable: () => this.editor.options.editable,\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const FocusEvents = Extension.create({\n name: 'focusEvents',\n\n addProseMirrorPlugins() {\n const { editor } = this\n\n return [\n new Plugin({\n key: new PluginKey('focusEvents'),\n props: {\n handleDOMEvents: {\n focus: (view, event: Event) => {\n editor.isFocused = true\n\n const transaction = editor.state.tr\n .setMeta('focus', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n blur: (view, event: Event) => {\n editor.isFocused = false\n\n const transaction = editor.state.tr\n .setMeta('blur', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n },\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey, Selection } from '@tiptap/pm/state'\n\nimport { CommandManager } from '../CommandManager.js'\nimport { Extension } from '../Extension.js'\nimport { createChainableState } from '../helpers/createChainableState.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nexport const Keymap = Extension.create({\n name: 'keymap',\n\n addKeyboardShortcuts() {\n const handleBackspace = () => this.editor.commands.first(({ commands }) => [\n () => commands.undoInputRule(),\n\n // maybe convert first text block node to default node\n () => commands.command(({ tr }) => {\n const { selection, doc } = tr\n const { empty, $anchor } = selection\n const { pos, parent } = $anchor\n const $parentPos = $anchor.parent.isTextblock && pos > 0 ? tr.doc.resolve(pos - 1) : $anchor\n const parentIsIsolating = $parentPos.parent.type.spec.isolating\n\n const parentPos = $anchor.pos - $anchor.parentOffset\n\n const isAtStart = (parentIsIsolating && $parentPos.parent.childCount === 1)\n ? parentPos === $anchor.pos\n : Selection.atStart(doc).from === pos\n\n if (\n !empty\n || !parent.type.isTextblock\n || parent.textContent.length\n || !isAtStart\n || (isAtStart && $anchor.parent.type.name === 'paragraph') // prevent clearNodes when no nodes to clear, otherwise history stack is appended\n ) {\n return false\n }\n\n return commands.clearNodes()\n }),\n\n () => commands.deleteSelection(),\n () => commands.joinBackward(),\n () => commands.selectNodeBackward(),\n ])\n\n const handleDelete = () => this.editor.commands.first(({ commands }) => [\n () => commands.deleteSelection(),\n () => commands.deleteCurrentNode(),\n () => commands.joinForward(),\n () => commands.selectNodeForward(),\n ])\n\n const handleEnter = () => this.editor.commands.first(({ commands }) => [\n () => commands.newlineInCode(),\n () => commands.createParagraphNear(),\n () => commands.liftEmptyBlock(),\n () => commands.splitBlock(),\n ])\n\n const baseKeymap = {\n Enter: handleEnter,\n 'Mod-Enter': () => this.editor.commands.exitCode(),\n Backspace: handleBackspace,\n 'Mod-Backspace': handleBackspace,\n 'Shift-Backspace': handleBackspace,\n Delete: handleDelete,\n 'Mod-Delete': handleDelete,\n 'Mod-a': () => this.editor.commands.selectAll(),\n }\n\n const pcKeymap = {\n ...baseKeymap,\n }\n\n const macKeymap = {\n ...baseKeymap,\n 'Ctrl-h': handleBackspace,\n 'Alt-Backspace': handleBackspace,\n 'Ctrl-d': handleDelete,\n 'Ctrl-Alt-Backspace': handleDelete,\n 'Alt-Delete': handleDelete,\n 'Alt-d': handleDelete,\n 'Ctrl-a': () => this.editor.commands.selectTextblockStart(),\n 'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),\n }\n\n if (isiOS() || isMacOS()) {\n return macKeymap\n }\n\n return pcKeymap\n },\n\n addProseMirrorPlugins() {\n return [\n // With this plugin we check if the whole document was selected and deleted.\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\n // to a paragraph if necessary.\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\n // with many other commands.\n new Plugin({\n key: new PluginKey('clearDocument'),\n appendTransaction: (transactions, oldState, newState) => {\n const { empty, from, to } = oldState.selection\n\n if (empty) {\n return\n }\n\n const docChanges = transactions.some(transaction => transaction.docChanged)\n && oldState.doc.nodeSize !== newState.doc.nodeSize\n\n if (!docChanges) {\n return\n }\n\n const allFrom = Selection.atStart(oldState.doc).from\n const allEnd = Selection.atEnd(oldState.doc).to\n const allWasSelected = from === allFrom && to === allEnd\n\n if (!allWasSelected) {\n return\n }\n\n const isEmpty = newState.doc.textBetween(0, newState.doc.content.size, ' ', ' ').length === 0\n\n if (!isEmpty) {\n return\n }\n\n const tr = newState.tr\n const state = createChainableState({\n state: newState,\n transaction: tr,\n })\n const { commands } = new CommandManager({\n editor: this.editor,\n state,\n })\n\n commands.clearNodes()\n\n if (!tr.steps.length) {\n return\n }\n\n return tr\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Tabindex = Extension.create({\n name: 'tabindex',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tabindex'),\n props: {\n attributes: (): { [name: string]: string; } => (this.editor.isEditable ? { tabindex: '0' } : {}),\n },\n }),\n ]\n },\n})\n","import {\n Fragment, Node, ResolvedPos,\n} from '@tiptap/pm/model'\n\nimport { Editor } from './Editor.js'\nimport { Content, Range } from './types.js'\n\nexport class NodePos {\n private resolvedPos: ResolvedPos\n\n private isBlock: boolean\n\n private editor: Editor\n\n private get name(): string {\n return this.node.type.name\n }\n\n constructor(pos: ResolvedPos, editor: Editor, isBlock = false, node: Node | null = null) {\n this.isBlock = isBlock\n this.resolvedPos = pos\n this.editor = editor\n this.currentNode = node\n }\n\n private currentNode: Node | null = null\n\n get node(): Node {\n return this.currentNode || this.resolvedPos.node()\n }\n\n get element(): HTMLElement {\n return this.editor.view.domAtPos(this.pos).node as HTMLElement\n }\n\n public actualDepth: number | null = null\n\n get depth(): number {\n return this.actualDepth ?? this.resolvedPos.depth\n }\n\n get pos(): number {\n return this.resolvedPos.pos\n }\n\n get content(): Fragment {\n return this.node.content\n }\n\n set content(content: Content) {\n let from = this.from\n let to = this.to\n\n if (this.isBlock) {\n if (this.content.size === 0) {\n console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`)\n return\n }\n\n from = this.from + 1\n to = this.to - 1\n }\n\n this.editor.commands.insertContentAt({ from, to }, content)\n }\n\n get attributes(): { [key: string]: any } {\n return this.node.attrs\n }\n\n get textContent(): string {\n return this.node.textContent\n }\n\n get size(): number {\n return this.node.nodeSize\n }\n\n get from(): number {\n if (this.isBlock) {\n return this.pos\n }\n\n return this.resolvedPos.start(this.resolvedPos.depth)\n }\n\n get range(): Range {\n return {\n from: this.from,\n to: this.to,\n }\n }\n\n get to(): number {\n if (this.isBlock) {\n return this.pos + this.size\n }\n\n return this.resolvedPos.end(this.resolvedPos.depth) + (this.node.isText ? 0 : 1)\n }\n\n get parent(): NodePos | null {\n if (this.depth === 0) {\n return null\n }\n\n const parentPos = this.resolvedPos.start(this.resolvedPos.depth - 1)\n const $pos = this.resolvedPos.doc.resolve(parentPos)\n\n return new NodePos($pos, this.editor)\n }\n\n get before(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.from - (this.isBlock ? 1 : 2))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.from - 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get after(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.to + (this.isBlock ? 2 : 1))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.to + 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get children(): NodePos[] {\n const children: NodePos[] = []\n\n this.node.content.forEach((node, offset) => {\n const isBlock = node.isBlock && !node.isTextblock\n\n const targetPos = this.pos + offset + 1\n const $pos = this.resolvedPos.doc.resolve(targetPos)\n\n if (!isBlock && $pos.depth <= this.depth) {\n return\n }\n\n const childNodePos = new NodePos($pos, this.editor, isBlock, isBlock ? node : null)\n\n if (isBlock) {\n childNodePos.actualDepth = this.depth + 1\n }\n\n children.push(new NodePos($pos, this.editor, isBlock, isBlock ? node : null))\n })\n\n return children\n }\n\n get firstChild(): NodePos | null {\n return this.children[0] || null\n }\n\n get lastChild(): NodePos | null {\n const children = this.children\n\n return children[children.length - 1] || null\n }\n\n closest(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n let node: NodePos | null = null\n let currentNode = this.parent\n\n while (currentNode && !node) {\n if (currentNode.node.type.name === selector) {\n if (Object.keys(attributes).length > 0) {\n const nodeAttributes = currentNode.node.attrs\n const attrKeys = Object.keys(attributes)\n\n for (let index = 0; index < attrKeys.length; index += 1) {\n const key = attrKeys[index]\n\n if (nodeAttributes[key] !== attributes[key]) {\n break\n }\n }\n } else {\n node = currentNode\n }\n }\n\n currentNode = currentNode.parent\n }\n\n return node\n }\n\n querySelector(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n return this.querySelectorAll(selector, attributes, true)[0] || null\n }\n\n querySelectorAll(selector: string, attributes: { [key: string]: any } = {}, firstItemOnly = false): NodePos[] {\n let nodes: NodePos[] = []\n\n if (!this.children || this.children.length === 0) {\n return nodes\n }\n const attrKeys = Object.keys(attributes)\n\n /**\n * Finds all children recursively that match the selector and attributes\n * If firstItemOnly is true, it will return the first item found\n */\n this.children.forEach(childPos => {\n // If we already found a node and we only want the first item, we dont need to keep going\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n if (childPos.node.type.name === selector) {\n const doesAllAttributesMatch = attrKeys.every(key => attributes[key] === childPos.node.attrs[key])\n\n if (doesAllAttributesMatch) {\n nodes.push(childPos)\n }\n }\n\n // If we already found a node and we only want the first item, we can stop here and skip the recursion\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n nodes = nodes.concat(childPos.querySelectorAll(selector, attributes, firstItemOnly))\n })\n\n return nodes\n }\n\n setAttribute(attributes: { [key: string]: any }) {\n const oldSelection = this.editor.state.selection\n\n this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from)\n .run()\n }\n}\n","export const style = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n.tippy-box[data-animation=fade][data-state=hidden] {\n opacity: 0\n}`\n","export function createStyleTag(style: string, nonce?: string, suffix?: string): HTMLStyleElement {\n const tiptapStyleTag = (document.querySelector(`style[data-tiptap-style${suffix ? `-${suffix}` : ''}]`))\n\n if (tiptapStyleTag !== null) {\n return tiptapStyleTag\n }\n\n const styleNode = document.createElement('style')\n\n if (nonce) {\n styleNode.setAttribute('nonce', nonce)\n }\n\n styleNode.setAttribute(`data-tiptap-style${suffix ? `-${suffix}` : ''}`, '')\n styleNode.innerHTML = style\n document.getElementsByTagName('head')[0].appendChild(styleNode)\n\n return styleNode\n}\n","import {\n MarkType,\n Node as ProseMirrorNode,\n NodeType,\n Schema,\n} from '@tiptap/pm/model'\nimport {\n EditorState, Plugin, PluginKey, Transaction,\n} from '@tiptap/pm/state'\nimport { EditorView } from '@tiptap/pm/view'\n\nimport { CommandManager } from './CommandManager.js'\nimport { EventEmitter } from './EventEmitter.js'\nimport { ExtensionManager } from './ExtensionManager.js'\nimport {\n ClipboardTextSerializer, Commands, Editable, FocusEvents, Keymap, Tabindex,\n} from './extensions/index.js'\nimport { createDocument } from './helpers/createDocument.js'\nimport { getAttributes } from './helpers/getAttributes.js'\nimport { getHTMLFromFragment } from './helpers/getHTMLFromFragment.js'\nimport { getText } from './helpers/getText.js'\nimport { getTextSerializersFromSchema } from './helpers/getTextSerializersFromSchema.js'\nimport { isActive } from './helpers/isActive.js'\nimport { isNodeEmpty } from './helpers/isNodeEmpty.js'\nimport { resolveFocusPosition } from './helpers/resolveFocusPosition.js'\nimport { NodePos } from './NodePos.js'\nimport { style } from './style.js'\nimport {\n CanCommands,\n ChainedCommands,\n EditorEvents,\n EditorOptions,\n JSONContent,\n SingleCommands,\n TextSerializer,\n} from './types.js'\nimport { createStyleTag } from './utilities/createStyleTag.js'\nimport { isFunction } from './utilities/isFunction.js'\n\nexport * as extensions from './extensions/index.js'\n\nexport interface EditorStorage extends Record { }\n// @ts-ignore\nexport interface TiptapEditorHTMLElement extends HTMLElement {\n editor?: Editor\n}\n\nexport class Editor extends EventEmitter {\n private commandManager!: CommandManager\n\n public extensionManager!: ExtensionManager\n\n private css!: HTMLStyleElement\n\n public schema!: Schema\n\n public view!: EditorView\n\n public isFocused = false\n\n /**\n * The editor is considered initialized after the `create` event has been emitted.\n */\n public isInitialized = false\n\n public extensionStorage: Record = {}\n\n public options: EditorOptions = {\n element: document.createElement('div'),\n content: '',\n injectCSS: true,\n injectNonce: undefined,\n extensions: [],\n autofocus: false,\n editable: true,\n editorProps: {},\n parseOptions: {},\n coreExtensionOptions: {},\n enableInputRules: true,\n enablePasteRules: true,\n enableCoreExtensions: true,\n enableContentCheck: false,\n onBeforeCreate: () => null,\n onCreate: () => null,\n onUpdate: () => null,\n onSelectionUpdate: () => null,\n onTransaction: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onDestroy: () => null,\n onContentError: ({ error }) => { throw error },\n }\n\n constructor(options: Partial = {}) {\n super()\n this.setOptions(options)\n this.createExtensionManager()\n this.createCommandManager()\n this.createSchema()\n this.on('beforeCreate', this.options.onBeforeCreate)\n this.emit('beforeCreate', { editor: this })\n this.on('contentError', this.options.onContentError)\n this.createView()\n this.injectCSS()\n this.on('create', this.options.onCreate)\n this.on('update', this.options.onUpdate)\n this.on('selectionUpdate', this.options.onSelectionUpdate)\n this.on('transaction', this.options.onTransaction)\n this.on('focus', this.options.onFocus)\n this.on('blur', this.options.onBlur)\n this.on('destroy', this.options.onDestroy)\n\n window.setTimeout(() => {\n if (this.isDestroyed) {\n return\n }\n\n this.commands.focus(this.options.autofocus)\n this.emit('create', { editor: this })\n this.isInitialized = true\n }, 0)\n }\n\n /**\n * Returns the editor storage.\n */\n public get storage(): EditorStorage {\n return this.extensionStorage\n }\n\n /**\n * An object of all registered commands.\n */\n public get commands(): SingleCommands {\n return this.commandManager.commands\n }\n\n /**\n * Create a command chain to call multiple commands at once.\n */\n public chain(): ChainedCommands {\n return this.commandManager.chain()\n }\n\n /**\n * Check if a command or a command chain can be executed. Without executing it.\n */\n public can(): CanCommands {\n return this.commandManager.can()\n }\n\n /**\n * Inject CSS styles.\n */\n private injectCSS(): void {\n if (this.options.injectCSS && document) {\n this.css = createStyleTag(style, this.options.injectNonce)\n }\n }\n\n /**\n * Update editor options.\n *\n * @param options A list of options\n */\n public setOptions(options: Partial = {}): void {\n this.options = {\n ...this.options,\n ...options,\n }\n\n if (!this.view || !this.state || this.isDestroyed) {\n return\n }\n\n if (this.options.editorProps) {\n this.view.setProps(this.options.editorProps)\n }\n\n this.view.updateState(this.state)\n }\n\n /**\n * Update editable state of the editor.\n */\n public setEditable(editable: boolean, emitUpdate = true): void {\n this.setOptions({ editable })\n\n if (emitUpdate) {\n this.emit('update', { editor: this, transaction: this.state.tr })\n }\n }\n\n /**\n * Returns whether the editor is editable.\n */\n public get isEditable(): boolean {\n // since plugins are applied after creating the view\n // `editable` is always `true` for one tick.\n // that’s why we also have to check for `options.editable`\n return this.options.editable && this.view && this.view.editable\n }\n\n /**\n * Returns the editor state.\n */\n public get state(): EditorState {\n return this.view.state\n }\n\n /**\n * Register a ProseMirror plugin.\n *\n * @param plugin A ProseMirror plugin\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\n */\n public registerPlugin(\n plugin: Plugin,\n handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[],\n ): void {\n const plugins = isFunction(handlePlugins)\n ? handlePlugins(plugin, [...this.state.plugins])\n : [...this.state.plugins, plugin]\n\n const state = this.state.reconfigure({ plugins })\n\n this.view.updateState(state)\n }\n\n /**\n * Unregister a ProseMirror plugin.\n *\n * @param nameOrPluginKey The plugins name\n */\n public unregisterPlugin(nameOrPluginKey: string | PluginKey): void {\n if (this.isDestroyed) {\n return\n }\n\n // @ts-ignore\n const name = typeof nameOrPluginKey === 'string' ? `${nameOrPluginKey}$` : nameOrPluginKey.key\n\n const state = this.state.reconfigure({\n // @ts-ignore\n plugins: this.state.plugins.filter(plugin => !plugin.key.startsWith(name)),\n })\n\n this.view.updateState(state)\n }\n\n /**\n * Creates an extension manager.\n */\n private createExtensionManager(): void {\n\n const coreExtensions = this.options.enableCoreExtensions ? [\n Editable,\n ClipboardTextSerializer.configure({\n blockSeparator: this.options.coreExtensionOptions?.clipboardTextSerializer?.blockSeparator,\n }),\n Commands,\n FocusEvents,\n Keymap,\n Tabindex,\n ] : []\n const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {\n return ['extension', 'node', 'mark'].includes(extension?.type)\n })\n\n this.extensionManager = new ExtensionManager(allExtensions, this)\n }\n\n /**\n * Creates an command manager.\n */\n private createCommandManager(): void {\n this.commandManager = new CommandManager({\n editor: this,\n })\n }\n\n /**\n * Creates a ProseMirror schema.\n */\n private createSchema(): void {\n this.schema = this.extensionManager.schema\n }\n\n /**\n * Creates a ProseMirror view.\n */\n private createView(): void {\n this.view = new EditorView(this.options.element, {\n ...this.options.editorProps,\n dispatchTransaction: this.dispatchTransaction.bind(this),\n state: EditorState.create({\n doc: this.schema.topNodeType.create(),\n }),\n })\n\n let doc: ProseMirrorNode\n\n try {\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: this.options.enableContentCheck },\n )\n } catch (e) {\n if (!(e instanceof Error) || !['[tiptap error]: Invalid JSON content', '[tiptap error]: Invalid HTML content'].includes(e.message)) {\n // Not the content error we were expecting\n throw e\n }\n this.emit('contentError', {\n editor: this,\n error: e as Error,\n disableCollaboration: () => {\n // To avoid syncing back invalid content, reinitialize the extensions without the collaboration extension\n this.options.extensions = this.options.extensions.filter(extension => extension.name !== 'collaboration')\n\n // Restart the initialization process by recreating the extension manager with the new set of extensions\n this.createExtensionManager()\n },\n })\n\n // Content is invalid, but attempt to create it anyway, stripping out the invalid parts\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: false },\n )\n }\n const selection = resolveFocusPosition(doc, this.options.autofocus) || undefined\n // `editor.view` is not yet available at this time.\n // Therefore we will add all plugins and node views directly afterwards.\n const newState = EditorState.create({\n plugins: this.extensionManager.plugins,\n doc,\n selection,\n })\n\n this.view.setProps({\n state: newState,\n nodeViews: this.extensionManager.nodeViews,\n })\n this.prependClass()\n\n // Let’s store the editor instance in the DOM element.\n // So we’ll have access to it for tests.\n // @ts-ignore\n const dom = this.view.dom as TiptapEditorHTMLElement\n\n dom.editor = this\n }\n\n /**\n * Creates all node views.\n */\n public createNodeViews(): void {\n if (this.view.isDestroyed) {\n return\n }\n\n this.view.setProps({\n nodeViews: this.extensionManager.nodeViews,\n })\n }\n\n /**\n * Prepend class name to element.\n */\n public prependClass(): void {\n this.view.dom.className = `tiptap ${this.view.dom.className}`\n }\n\n public isCapturingTransaction = false\n\n private capturedTransaction: Transaction | null = null\n\n public captureTransaction(fn: Function) {\n this.isCapturingTransaction = true\n fn()\n this.isCapturingTransaction = false\n\n const tr = this.capturedTransaction\n\n this.capturedTransaction = null\n\n return tr\n }\n\n /**\n * The callback over which to send transactions (state updates) produced by the view.\n *\n * @param transaction An editor state transaction\n */\n private dispatchTransaction(transaction: Transaction): void {\n // if the editor / the view of the editor was destroyed\n // the transaction should not be dispatched as there is no view anymore.\n if (this.view.isDestroyed) {\n return\n }\n\n if (this.isCapturingTransaction) {\n if (!this.capturedTransaction) {\n this.capturedTransaction = transaction\n\n return\n }\n\n transaction.steps.forEach(step => this.capturedTransaction?.step(step))\n\n return\n }\n\n const state = this.state.apply(transaction)\n const selectionHasChanged = !this.state.selection.eq(state.selection)\n\n this.emit('beforeTransaction', {\n editor: this,\n transaction,\n nextState: state,\n })\n this.view.updateState(state)\n this.emit('transaction', {\n editor: this,\n transaction,\n })\n\n if (selectionHasChanged) {\n this.emit('selectionUpdate', {\n editor: this,\n transaction,\n })\n }\n\n const focus = transaction.getMeta('focus')\n const blur = transaction.getMeta('blur')\n\n if (focus) {\n this.emit('focus', {\n editor: this,\n event: focus.event,\n transaction,\n })\n }\n\n if (blur) {\n this.emit('blur', {\n editor: this,\n event: blur.event,\n transaction,\n })\n }\n\n if (!transaction.docChanged || transaction.getMeta('preventUpdate')) {\n return\n }\n\n this.emit('update', {\n editor: this,\n transaction,\n })\n }\n\n /**\n * Get attributes of the currently selected node or mark.\n */\n public getAttributes(nameOrType: string | NodeType | MarkType): Record {\n return getAttributes(this.state, nameOrType)\n }\n\n /**\n * Returns if the currently selected node or mark is active.\n *\n * @param name Name of the node or mark\n * @param attributes Attributes of the node or mark\n */\n public isActive(name: string, attributes?: {}): boolean\n public isActive(attributes: {}): boolean\n public isActive(nameOrAttributes: string, attributesOrUndefined?: {}): boolean {\n const name = typeof nameOrAttributes === 'string' ? nameOrAttributes : null\n\n const attributes = typeof nameOrAttributes === 'string' ? attributesOrUndefined : nameOrAttributes\n\n return isActive(this.state, name, attributes)\n }\n\n /**\n * Get the document as JSON.\n */\n public getJSON(): JSONContent {\n return this.state.doc.toJSON()\n }\n\n /**\n * Get the document as HTML.\n */\n public getHTML(): string {\n return getHTMLFromFragment(this.state.doc.content, this.schema)\n }\n\n /**\n * Get the document as text.\n */\n public getText(options?: {\n blockSeparator?: string\n textSerializers?: Record\n }): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n\n return getText(this.state.doc, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(this.schema),\n ...textSerializers,\n },\n })\n }\n\n /**\n * Check if there is no content.\n */\n public get isEmpty(): boolean {\n return isNodeEmpty(this.state.doc)\n }\n\n /**\n * Get the number of characters for the current document.\n *\n * @deprecated\n */\n public getCharacterCount(): number {\n console.warn(\n '[tiptap warn]: \"editor.getCharacterCount()\" is deprecated. Please use \"editor.storage.characterCount.characters()\" instead.',\n )\n\n return this.state.doc.content.size - 2\n }\n\n /**\n * Destroy the editor.\n */\n public destroy(): void {\n this.emit('destroy')\n\n if (this.view) {\n this.view.destroy()\n }\n\n this.removeAllListeners()\n }\n\n /**\n * Check if the editor is already destroyed.\n */\n public get isDestroyed(): boolean {\n // @ts-ignore\n return !this.view?.docView\n }\n\n public $node(selector: string, attributes?: { [key: string]: any }): NodePos | null {\n return this.$doc?.querySelector(selector, attributes) || null\n }\n\n public $nodes(selector: string, attributes?: { [key: string]: any }): NodePos[] | null {\n return this.$doc?.querySelectorAll(selector, attributes) || null\n }\n\n public $pos(pos: number) {\n const $pos = this.state.doc.resolve(pos)\n\n return new NodePos($pos, this)\n }\n\n get $doc() {\n return this.$pos(0)\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a mark when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function markInputRule(config: {\n find: InputRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n const markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a node when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function nodeInputRule(config: {\n /**\n * The regex to match.\n */\n find: InputRuleFinder\n\n /**\n * The node type to add.\n */\n type: NodeType\n\n /**\n * A function that returns the attributes for the node\n * can also be an object of attributes\n */\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const { tr } = state\n const start = range.from\n let end = range.to\n\n const newNode = config.type.create(attributes)\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n let matchStart = start + offset\n\n if (matchStart > end) {\n matchStart = end\n } else {\n end = matchStart + match[1].length\n }\n\n // insert last typed character\n const lastChar = match[0][match[0].length - 1]\n\n tr.insertText(lastChar, start + match[0].length - 1)\n\n // insert node from input rule\n tr.replaceWith(matchStart, end, newNode)\n } else if (match[0]) {\n const insertionStart = config.type.isInline ? start : start - 1\n\n tr.insert(insertionStart, config.type.create(attributes)).delete(\n tr.mapping.map(start),\n tr.mapping.map(end),\n )\n }\n\n tr.scrollIntoView()\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that changes the type of a textblock when the\n * matched text is typed into it. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textblockTypeInputRule(config: {\n find: InputRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const $start = state.doc.resolve(range.from)\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), config.type)) {\n return null\n }\n\n state.tr\n .delete(range.from, range.to)\n .setBlockType(range.from, range.from, config.type, attributes)\n },\n })\n}\n","import { InputRule, InputRuleFinder } from '../InputRule.js'\n\n/**\n * Build an input rule that replaces text when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textInputRule(config: {\n find: InputRuleFinder,\n replace: string,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Node as ProseMirrorNode, NodeType } from '@tiptap/pm/model'\nimport { canJoin, findWrapping } from '@tiptap/pm/transform'\n\nimport { Editor } from '../Editor.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule for automatically wrapping a textblock when a\n * given string is typed. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n *\n * `type` is the type of node to wrap in.\n *\n * By default, if there’s a node with the same type above the newly\n * wrapped node, the rule will try to join those\n * two nodes. You can pass a join predicate, which takes a regular\n * expression match and the node before the wrapped node, and can\n * return a boolean to indicate whether a join should happen.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function wrappingInputRule(config: {\n find: InputRuleFinder,\n type: NodeType,\n keepMarks?: boolean,\n keepAttributes?: boolean,\n editor?: Editor\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n ,\n joinPredicate?: (match: ExtendedRegExpMatchArray, node: ProseMirrorNode) => boolean,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({\n state, range, match, chain,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const tr = state.tr.delete(range.from, range.to)\n const $start = tr.doc.resolve(range.from)\n const blockRange = $start.blockRange()\n const wrapping = blockRange && findWrapping(blockRange, config.type, attributes)\n\n if (!wrapping) {\n return null\n }\n\n tr.wrap(blockRange, wrapping)\n\n if (config.keepMarks && config.editor) {\n const { selection, storedMarks } = state\n const { splittableMarks } = config.editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n }\n if (config.keepAttributes) {\n /** If the nodeType is `bulletList` or `orderedList` set the `nodeType` as `listItem` */\n const nodeType = config.type.name === 'bulletList' || config.type.name === 'orderedList' ? 'listItem' : 'taskList'\n\n chain().updateAttributes(nodeType, attributes).run()\n }\n\n const before = tr.doc.resolve(range.from - 1).nodeBefore\n\n if (\n before\n && before.type === config.type\n && canJoin(tr.doc, range.from - 1)\n && (!config.joinPredicate || config.joinPredicate(match, before))\n ) {\n tr.join(range.from - 1)\n }\n },\n })\n}\n","import {\n DOMOutputSpec, Mark as ProseMirrorMark, MarkSpec, MarkType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { MarkConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n export interface MarkConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Keep mark after split node\n */\n keepOnSplit?: boolean | (() => boolean)\n\n /**\n * Inclusive\n */\n inclusive?:\n | MarkSpec['inclusive']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inclusive']\n editor?: Editor\n }) => MarkSpec['inclusive'])\n\n /**\n * Excludes\n */\n excludes?:\n | MarkSpec['excludes']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['excludes']\n editor?: Editor\n }) => MarkSpec['excludes'])\n\n /**\n * Marks this Mark as exitable\n */\n exitable?: boolean | (() => boolean)\n\n /**\n * Group\n */\n group?:\n | MarkSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => MarkSpec['group'])\n\n /**\n * Spanning\n */\n spanning?:\n | MarkSpec['spanning']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['spanning']\n editor?: Editor\n }) => MarkSpec['spanning'])\n\n /**\n * Code\n */\n code?:\n | boolean\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => boolean)\n\n /**\n * Parse HTML\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => MarkSpec['parseDOM']\n\n /**\n * Render HTML\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n mark: ProseMirrorMark\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * Attributes\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Mark class is used to create custom mark extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Mark {\n type = 'mark'\n\n name = 'mark'\n\n parent: Mark | null = null\n\n child: Mark | null = null\n\n options: Options\n\n storage: Storage\n\n config: MarkConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Mark(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Mark(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n\n static handleExit({ editor, mark }: { editor: Editor; mark: Mark }) {\n const { tr } = editor.state\n const currentPos = editor.state.selection.$from\n const isAtEnd = currentPos.pos === currentPos.end()\n\n if (isAtEnd) {\n const currentMarks = currentPos.marks()\n const isInMark = !!currentMarks.find(m => m?.type.name === mark.name)\n\n if (!isInMark) {\n return false\n }\n\n const removeMark = currentMarks.find(m => m?.type.name === mark.name)\n\n if (removeMark) {\n tr.removeStoredMark(removeMark)\n }\n tr.insertText(' ', currentPos.pos)\n\n editor.view.dispatch(tr)\n\n return true\n }\n\n return false\n }\n}\n","import {\n DOMOutputSpec, Node as ProseMirrorNode, NodeSpec, NodeType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { NodeConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n NodeViewRenderer,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface NodeConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n editor?: Editor\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Node View\n */\n addNodeView?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addNodeView']\n }) => NodeViewRenderer)\n | null\n\n /**\n * Defines if this node should be a top level node (doc)\n * @default false\n * @example true\n */\n topNode?: boolean\n\n /**\n * The content expression for this node, as described in the [schema\n * guide](/docs/guide/#schema.content_expressions). When not given,\n * the node does not allow any content.\n *\n * You can read more about it on the Prosemirror documentation here\n * @see https://prosemirror.net/docs/guide/#schema.content_expressions\n * @default undefined\n * @example content: 'block+'\n * @example content: 'headline paragraph block*'\n */\n content?:\n | NodeSpec['content']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['content']\n editor?: Editor\n }) => NodeSpec['content'])\n\n /**\n * The marks that are allowed inside of this node. May be a\n * space-separated string referring to mark names or groups, `\"_\"`\n * to explicitly allow all marks, or `\"\"` to disallow marks. When\n * not given, nodes with inline content default to allowing all\n * marks, other nodes default to not allowing marks.\n *\n * @example marks: 'strong em'\n */\n marks?:\n | NodeSpec['marks']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['marks']\n editor?: Editor\n }) => NodeSpec['marks'])\n\n /**\n * The group or space-separated groups to which this node belongs,\n * which can be referred to in the content expressions for the\n * schema.\n *\n * By default Tiptap uses the groups 'block' and 'inline' for nodes. You\n * can also use custom groups if you want to group specific nodes together\n * and handle them in your schema.\n * @example group: 'block'\n * @example group: 'inline'\n * @example group: 'customBlock' // this uses a custom group\n */\n group?:\n | NodeSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => NodeSpec['group'])\n\n /**\n * Should be set to true for inline nodes. (Implied for text nodes.)\n */\n inline?:\n | NodeSpec['inline']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inline']\n editor?: Editor\n }) => NodeSpec['inline'])\n\n /**\n * Can be set to true to indicate that, though this isn't a [leaf\n * node](https://prosemirror.net/docs/ref/#model.NodeType.isLeaf), it doesn't have directly editable\n * content and should be treated as a single unit in the view.\n *\n * @example atom: true\n */\n atom?:\n | NodeSpec['atom']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['atom']\n editor?: Editor\n }) => NodeSpec['atom'])\n\n /**\n * Controls whether nodes of this type can be selected as a [node\n * selection](https://prosemirror.net/docs/ref/#state.NodeSelection). Defaults to true for non-text\n * nodes.\n *\n * @default true\n * @example selectable: false\n */\n selectable?:\n | NodeSpec['selectable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['selectable']\n editor?: Editor\n }) => NodeSpec['selectable'])\n\n /**\n * Determines whether nodes of this type can be dragged without\n * being selected. Defaults to false.\n *\n * @default: false\n * @example: draggable: true\n */\n draggable?:\n | NodeSpec['draggable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['draggable']\n editor?: Editor\n }) => NodeSpec['draggable'])\n\n /**\n * Can be used to indicate that this node contains code, which\n * causes some commands to behave differently.\n */\n code?:\n | NodeSpec['code']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => NodeSpec['code'])\n\n /**\n * Controls way whitespace in this a node is parsed. The default is\n * `\"normal\"`, which causes the [DOM parser](https://prosemirror.net/docs/ref/#model.DOMParser) to\n * collapse whitespace in normal mode, and normalize it (replacing\n * newlines and such with spaces) otherwise. `\"pre\"` causes the\n * parser to preserve spaces inside the node. When this option isn't\n * given, but [`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) is true, `whitespace`\n * will default to `\"pre\"`. Note that this option doesn't influence\n * the way the node is rendered—that should be handled by `toDOM`\n * and/or styling.\n */\n whitespace?:\n | NodeSpec['whitespace']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['whitespace']\n editor?: Editor\n }) => NodeSpec['whitespace'])\n\n /**\n * When enabled, enables both\n * [`definingAsContext`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext) and\n * [`definingForContent`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n *\n * @default false\n * @example isolating: true\n */\n defining?:\n | NodeSpec['defining']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['defining']\n editor?: Editor\n }) => NodeSpec['defining'])\n\n /**\n * When enabled (default is false), the sides of nodes of this type\n * count as boundaries that regular editing operations, like\n * backspacing or lifting, won't cross. An example of a node that\n * should probably have this enabled is a table cell.\n */\n isolating?:\n | NodeSpec['isolating']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['isolating']\n editor?: Editor\n }) => NodeSpec['isolating'])\n\n /**\n * Associates DOM parser information with this node, which can be\n * used by [`DOMParser.fromSchema`](https://prosemirror.net/docs/ref/#model.DOMParser^fromSchema) to\n * automatically derive a parser. The `node` field in the rules is\n * implied (the name of this node will be filled in automatically).\n * If you supply your own parser, you do not need to also specify\n * parsing rules in your schema.\n *\n * @example parseHTML: [{ tag: 'div', attrs: { 'data-id': 'my-block' } }]\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => NodeSpec['parseDOM']\n\n /**\n * A description of a DOM structure. Can be either a string, which is\n * interpreted as a text node, a DOM node, which is interpreted as\n * itself, a `{dom, contentDOM}` object, or an array.\n *\n * An array describes a DOM element. The first value in the array\n * should be a string—the name of the DOM element, optionally prefixed\n * by a namespace URL and a space. If the second element is plain\n * object, it is interpreted as a set of attributes for the element.\n * Any elements after that (including the 2nd if it's not an attribute\n * object) are interpreted as children of the DOM elements, and must\n * either be valid `DOMOutputSpec` values, or the number zero.\n *\n * The number zero (pronounced “hole”) is used to indicate the place\n * where a node's child nodes should be inserted. If it occurs in an\n * output spec, it should be the only child element in its parent\n * node.\n *\n * @example toDOM: ['div[data-id=\"my-block\"]', { class: 'my-block' }, 0]\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * renders the node as text\n * @example renderText: () => 'foo\n */\n renderText?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderText']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n pos: number\n parent: ProseMirrorNode\n index: number\n },\n ) => string)\n | null\n\n /**\n * Add attributes to the node\n * @example addAttributes: () => ({ class: 'foo' })\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Node class is used to create custom node extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Node {\n type = 'node'\n\n name = 'node'\n\n parent: Node | null = null\n\n child: Node | null = null\n\n options: Options\n\n storage: Storage\n\n config: NodeConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Node(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Node(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","export function isAndroid(): boolean {\n return navigator.platform === 'Android' || /android/i.test(navigator.userAgent)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { NodeSelection } from '@tiptap/pm/state'\nimport { NodeView as ProseMirrorNodeView } from '@tiptap/pm/view'\n\nimport { Editor as CoreEditor } from './Editor.js'\nimport { Node } from './Node.js'\nimport { DecorationWithType, NodeViewRendererOptions, NodeViewRendererProps } from './types.js'\nimport { isAndroid } from './utilities/isAndroid.js'\nimport { isiOS } from './utilities/isiOS.js'\n\n/**\n * Node views are used to customize the rendered DOM structure of a node.\n * @see https://tiptap.dev/guide/node-views\n */\nexport class NodeView<\n Component,\n NodeEditor extends CoreEditor = CoreEditor,\n Options extends NodeViewRendererOptions = NodeViewRendererOptions,\n> implements ProseMirrorNodeView {\n component: Component\n\n editor: NodeEditor\n\n options: Options\n\n extension: Node\n\n node: ProseMirrorNode\n\n decorations: DecorationWithType[]\n\n getPos: any\n\n isDragging = false\n\n constructor(component: Component, props: NodeViewRendererProps, options?: Partial) {\n this.component = component\n this.editor = props.editor as NodeEditor\n this.options = {\n stopEvent: null,\n ignoreMutation: null,\n ...options,\n } as Options\n this.extension = props.extension\n this.node = props.node\n this.decorations = props.decorations as DecorationWithType[]\n this.getPos = props.getPos\n this.mount()\n }\n\n mount() {\n // eslint-disable-next-line\n return\n }\n\n get dom(): HTMLElement {\n return this.editor.view.dom as HTMLElement\n }\n\n get contentDOM(): HTMLElement | null {\n return null\n }\n\n onDragStart(event: DragEvent) {\n const { view } = this.editor\n const target = event.target as HTMLElement\n\n // get the drag handle element\n // `closest` is not available for text nodes so we may have to use its parent\n const dragHandle = target.nodeType === 3\n ? target.parentElement?.closest('[data-drag-handle]')\n : target.closest('[data-drag-handle]')\n\n if (!this.dom || this.contentDOM?.contains(target) || !dragHandle) {\n return\n }\n\n let x = 0\n let y = 0\n\n // calculate offset for drag element if we use a different drag handle element\n if (this.dom !== dragHandle) {\n const domBox = this.dom.getBoundingClientRect()\n const handleBox = dragHandle.getBoundingClientRect()\n\n // In React, we have to go through nativeEvent to reach offsetX/offsetY.\n const offsetX = event.offsetX ?? (event as any).nativeEvent?.offsetX\n const offsetY = event.offsetY ?? (event as any).nativeEvent?.offsetY\n\n x = handleBox.x - domBox.x + offsetX\n y = handleBox.y - domBox.y + offsetY\n }\n\n event.dataTransfer?.setDragImage(this.dom, x, y)\n\n // we need to tell ProseMirror that we want to move the whole node\n // so we create a NodeSelection\n const selection = NodeSelection.create(view.state.doc, this.getPos())\n const transaction = view.state.tr.setSelection(selection)\n\n view.dispatch(transaction)\n }\n\n stopEvent(event: Event) {\n if (!this.dom) {\n return false\n }\n\n if (typeof this.options.stopEvent === 'function') {\n return this.options.stopEvent({ event })\n }\n\n const target = event.target as HTMLElement\n const isInElement = this.dom.contains(target) && !this.contentDOM?.contains(target)\n\n // any event from child nodes should be handled by ProseMirror\n if (!isInElement) {\n return false\n }\n\n const isDragEvent = event.type.startsWith('drag')\n const isDropEvent = event.type === 'drop'\n const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable\n\n // any input event within node views should be ignored by ProseMirror\n if (isInput && !isDropEvent && !isDragEvent) {\n return true\n }\n\n const { isEditable } = this.editor\n const { isDragging } = this\n const isDraggable = !!this.node.type.spec.draggable\n const isSelectable = NodeSelection.isSelectable(this.node)\n const isCopyEvent = event.type === 'copy'\n const isPasteEvent = event.type === 'paste'\n const isCutEvent = event.type === 'cut'\n const isClickEvent = event.type === 'mousedown'\n\n // ProseMirror tries to drag selectable nodes\n // even if `draggable` is set to `false`\n // this fix prevents that\n if (!isDraggable && isSelectable && isDragEvent) {\n event.preventDefault()\n }\n\n if (isDraggable && isDragEvent && !isDragging) {\n event.preventDefault()\n return false\n }\n\n // we have to store that dragging started\n if (isDraggable && isEditable && !isDragging && isClickEvent) {\n const dragHandle = target.closest('[data-drag-handle]')\n const isValidDragHandle = dragHandle && (this.dom === dragHandle || this.dom.contains(dragHandle))\n\n if (isValidDragHandle) {\n this.isDragging = true\n\n document.addEventListener(\n 'dragend',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'drop',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'mouseup',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n }\n }\n\n // these events are handled by prosemirror\n if (\n isDragging\n || isDropEvent\n || isCopyEvent\n || isPasteEvent\n || isCutEvent\n || (isClickEvent && isSelectable)\n ) {\n return false\n }\n\n return true\n }\n\n ignoreMutation(mutation: MutationRecord | { type: 'selection'; target: Element }) {\n if (!this.dom || !this.contentDOM) {\n return true\n }\n\n if (typeof this.options.ignoreMutation === 'function') {\n return this.options.ignoreMutation({ mutation })\n }\n\n // a leaf/atom node is like a black box for ProseMirror\n // and should be fully handled by the node view\n if (this.node.isLeaf || this.node.isAtom) {\n return true\n }\n\n // ProseMirror should handle any selections\n if (mutation.type === 'selection') {\n return false\n }\n\n // try to prevent a bug on iOS and Android that will break node views on enter\n // this is because ProseMirror can’t preventDispatch on enter\n // this will lead to a re-render of the node view on enter\n // see: https://github.com/ueberdosis/tiptap/issues/1214\n // see: https://github.com/ueberdosis/tiptap/issues/2534\n if (\n this.dom.contains(mutation.target)\n && mutation.type === 'childList'\n && (isiOS() || isAndroid())\n && this.editor.isFocused\n ) {\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ] as HTMLElement[]\n\n // we’ll check if every changed node is contentEditable\n // to make sure it’s probably mutated by ProseMirror\n if (changedNodes.every(node => node.isContentEditable)) {\n return false\n }\n }\n\n // we will allow mutation contentDOM with attributes\n // so we can for example adding classes within our node view\n if (this.contentDOM === mutation.target && mutation.type === 'attributes') {\n return true\n }\n\n // ProseMirror should handle any changes within contentDOM\n if (this.contentDOM.contains(mutation.target)) {\n return false\n }\n\n return true\n }\n\n updateAttributes(attributes: {}) {\n this.editor.commands.command(({ tr }) => {\n const pos = this.getPos()\n\n tr.setNodeMarkup(pos, undefined, {\n ...this.node.attrs,\n ...attributes,\n })\n\n return true\n })\n }\n\n deleteNode(): void {\n const from = this.getPos()\n const to = from + this.node.nodeSize\n\n this.editor.commands.deleteRange({ from, to })\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an paste rule that adds a mark when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function markPasteRule(config: {\n find: PasteRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({\n state, range, match, pasteEvent,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n let markEnd = range.to\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","// source: https://stackoverflow.com/a/6969486\nexport function escapeForRegEx(string: string): string {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n}\n","export function isString(value: any): value is string {\n return typeof value === 'string'\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray, JSONContent } from '../types.js'\nimport { callOrReturn } from '../utilities/index.js'\n\n/**\n * Build an paste rule that adds a node when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function nodePasteRule(config: {\n find: PasteRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n getContent?:\n | JSONContent[]\n | ((attrs: Record) => JSONContent[])\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler({\n match, chain, range, pasteEvent,\n }) {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n const content = callOrReturn(config.getContent, undefined, attributes)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const node = { type: config.type.name, attrs: attributes } as JSONContent\n\n if (content) {\n node.content = content\n }\n\n if (match.input) {\n chain().deleteRange(range).insertContentAt(range.from, node)\n }\n },\n })\n}\n","import { PasteRule, PasteRuleFinder } from '../PasteRule.js'\n\n/**\n * Build an paste rule that replaces text when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function textPasteRule(config: {\n find: PasteRuleFinder,\n replace: string,\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Transaction } from '@tiptap/pm/state'\n\nexport interface TrackerResult {\n position: number\n deleted: boolean\n}\n\nexport class Tracker {\n transaction: Transaction\n\n currentStep: number\n\n constructor(transaction: Transaction) {\n this.transaction = transaction\n this.currentStep = this.transaction.steps.length\n }\n\n map(position: number): TrackerResult {\n let deleted = false\n\n const mappedPosition = this.transaction.steps\n .slice(this.currentStep)\n .reduce((newPosition, step) => {\n const mapResult = step.getMap().mapResult(newPosition)\n\n if (mapResult.deleted) {\n deleted = true\n }\n\n return mapResult.pos\n }, position)\n\n return {\n position: mappedPosition,\n deleted,\n }\n }\n}\n"],"names":["run","originalCreateParagraphNear","originalDeleteSelection","originalExitCode","originalJoinUp","originalJoinDown","originalJoinBackward","originalJoinForward","originalCommand","originalLift","originalLiftEmptyBlock","originalLiftListItem","originalNewlineInCode","originalSelectNodeBackward","originalSelectNodeForward","originalSelectParentNode","originalSelectTextblockEnd","originalSelectTextblockStart","Node","originalSinkListItem","originalWrapIn","originalWrapInList"],"mappings":"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"} \ No newline at end of file -diff --git a/node_modules/@tiptap/core/dist/index.umd.js b/node_modules/@tiptap/core/dist/index.umd.js +diff --git a/dist/index.umd.js b/dist/index.umd.js index d5ce8fd..178a1e0 100644 ---- a/node_modules/@tiptap/core/dist/index.umd.js -+++ b/node_modules/@tiptap/core/dist/index.umd.js +--- a/dist/index.umd.js ++++ b/dist/index.umd.js @@ -389,7 +389,7 @@ * @param extensionAttributes List of attributes to inject */ @@ -826,19 +826,19 @@ index d5ce8fd..178a1e0 100644 this.prependClass(); // Let’s store the editor instance in the DOM element. // So we’ll have access to it for tests. -diff --git a/node_modules/@tiptap/core/dist/index.umd.js.map b/node_modules/@tiptap/core/dist/index.umd.js.map +diff --git a/dist/index.umd.js.map b/dist/index.umd.js.map index 2baa2f7..681d7ca 100644 ---- a/node_modules/@tiptap/core/dist/index.umd.js.map -+++ b/node_modules/@tiptap/core/dist/index.umd.js.map +--- a/dist/index.umd.js.map ++++ b/dist/index.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"index.umd.js","sources":["../src/helpers/createChainableState.ts","../src/CommandManager.ts","../src/EventEmitter.ts","../src/helpers/getExtensionField.ts","../src/helpers/splitExtensions.ts","../src/helpers/getAttributesFromExtensions.ts","../src/helpers/getNodeType.ts","../src/utilities/mergeAttributes.ts","../src/helpers/getRenderedAttributes.ts","../src/utilities/isFunction.ts","../src/utilities/callOrReturn.ts","../src/utilities/isEmptyObject.ts","../src/utilities/fromString.ts","../src/helpers/injectExtensionAttributesToParseRule.ts","../src/helpers/getSchemaByResolvedExtensions.ts","../src/helpers/getSchemaTypeByName.ts","../src/helpers/isExtensionRulesEnabled.ts","../src/helpers/getTextContentFromNodes.ts","../src/utilities/isRegExp.ts","../src/InputRule.ts","../src/utilities/isNumber.ts","../src/PasteRule.ts","../src/utilities/findDuplicates.ts","../src/ExtensionManager.ts","../src/utilities/isPlainObject.ts","../src/utilities/mergeDeep.ts","../src/Extension.ts","../src/helpers/getTextBetween.ts","../src/helpers/getTextSerializersFromSchema.ts","../src/extensions/clipboardTextSerializer.ts","../src/commands/blur.ts","../src/commands/clearContent.ts","../src/commands/clearNodes.ts","../src/commands/command.ts","../src/commands/createParagraphNear.ts","../src/commands/cut.ts","../src/commands/deleteCurrentNode.ts","../src/commands/deleteNode.ts","../src/commands/deleteRange.ts","../src/commands/deleteSelection.ts","../src/commands/enter.ts","../src/commands/exitCode.ts","../src/utilities/objectIncludes.ts","../src/helpers/getMarkRange.ts","../src/helpers/getMarkType.ts","../src/commands/extendMarkRange.ts","../src/commands/first.ts","../src/helpers/isTextSelection.ts","../src/utilities/minMax.ts","../src/helpers/resolveFocusPosition.ts","../src/utilities/isiOS.ts","../src/commands/focus.ts","../src/commands/forEach.ts","../src/commands/insertContent.ts","../src/utilities/elementFromString.ts","../src/helpers/createNodeFromContent.ts","../src/helpers/selectionToInsertionEnd.ts","../src/commands/insertContentAt.ts","../src/commands/join.ts","../src/commands/joinItemBackward.ts","../src/commands/joinItemForward.ts","../src/commands/joinTextblockBackward.ts","../src/commands/joinTextblockForward.ts","../src/utilities/isMacOS.ts","../src/commands/keyboardShortcut.ts","../src/helpers/isNodeActive.ts","../src/commands/lift.ts","../src/commands/liftEmptyBlock.ts","../src/commands/liftListItem.ts","../src/commands/newlineInCode.ts","../src/helpers/getSchemaTypeNameByName.ts","../src/utilities/deleteProps.ts","../src/commands/resetAttributes.ts","../src/commands/scrollIntoView.ts","../src/commands/selectAll.ts","../src/commands/selectNodeBackward.ts","../src/commands/selectNodeForward.ts","../src/commands/selectParentNode.ts","../src/commands/selectTextblockEnd.ts","../src/commands/selectTextblockStart.ts","../src/helpers/createDocument.ts","../src/commands/setContent.ts","../src/helpers/getMarkAttributes.ts","../src/helpers/combineTransactionSteps.ts","../src/helpers/defaultBlockAt.ts","../src/helpers/findChildren.ts","../src/helpers/findChildrenInRange.ts","../src/helpers/findParentNodeClosestToPos.ts","../src/helpers/findParentNode.ts","../src/helpers/getHTMLFromFragment.ts","../src/helpers/getSchema.ts","../src/helpers/generateHTML.ts","../src/helpers/generateJSON.ts","../src/helpers/getText.ts","../src/helpers/generateText.ts","../src/helpers/getNodeAttributes.ts","../src/helpers/getAttributes.ts","../src/utilities/removeDuplicates.ts","../src/helpers/getChangedRanges.ts","../src/helpers/getDebugJSON.ts","../src/helpers/getMarksBetween.ts","../src/helpers/getNodeAtPosition.ts","../src/helpers/getSplittedAttributes.ts","../src/helpers/isMarkActive.ts","../src/helpers/isActive.ts","../src/helpers/isAtEndOfNode.ts","../src/helpers/isAtStartOfNode.ts","../src/helpers/isList.ts","../src/helpers/isNodeEmpty.ts","../src/helpers/isNodeSelection.ts","../src/helpers/posToDOMRect.ts","../src/commands/setMark.ts","../src/commands/setMeta.ts","../src/commands/setNode.ts","../src/commands/setNodeSelection.ts","../src/commands/setTextSelection.ts","../src/commands/sinkListItem.ts","../src/commands/splitBlock.ts","../src/commands/splitListItem.ts","../src/commands/toggleList.ts","../src/commands/toggleMark.ts","../src/commands/toggleNode.ts","../src/commands/toggleWrap.ts","../src/commands/undoInputRule.ts","../src/commands/unsetAllMarks.ts","../src/commands/unsetMark.ts","../src/commands/updateAttributes.ts","../src/commands/wrapIn.ts","../src/commands/wrapInList.ts","../src/extensions/commands.ts","../src/extensions/editable.ts","../src/extensions/focusEvents.ts","../src/extensions/keymap.ts","../src/extensions/tabindex.ts","../src/NodePos.ts","../src/style.ts","../src/utilities/createStyleTag.ts","../src/Editor.ts","../src/inputRules/markInputRule.ts","../src/inputRules/nodeInputRule.ts","../src/inputRules/textblockTypeInputRule.ts","../src/inputRules/textInputRule.ts","../src/inputRules/wrappingInputRule.ts","../src/Mark.ts","../src/Node.ts","../src/utilities/isAndroid.ts","../src/NodeView.ts","../src/pasteRules/markPasteRule.ts","../src/utilities/escapeForRegEx.ts","../src/utilities/isString.ts","../src/pasteRules/nodePasteRule.ts","../src/pasteRules/textPasteRule.ts","../src/Tracker.ts"],"sourcesContent":["import { EditorState, Transaction } from '@tiptap/pm/state'\n\n/**\n * Takes a Transaction & Editor State and turns it into a chainable state object\n * @param config The transaction and state to create the chainable state from\n * @returns A chainable Editor state object\n */\nexport function createChainableState(config: {\n transaction: Transaction\n state: EditorState\n}): EditorState {\n const { state, transaction } = config\n let { selection } = transaction\n let { doc } = transaction\n let { storedMarks } = transaction\n\n return {\n ...state,\n apply: state.apply.bind(state),\n applyTransaction: state.applyTransaction.bind(state),\n plugins: state.plugins,\n schema: state.schema,\n reconfigure: state.reconfigure.bind(state),\n toJSON: state.toJSON.bind(state),\n get storedMarks() {\n return storedMarks\n },\n get selection() {\n return selection\n },\n get doc() {\n return doc\n },\n get tr() {\n selection = transaction.selection\n doc = transaction.doc\n storedMarks = transaction.storedMarks\n\n return transaction\n },\n }\n}\n","import { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n AnyCommands, CanCommands, ChainedCommands, CommandProps, SingleCommands,\n} from './types.js'\n\nexport class CommandManager {\n editor: Editor\n\n rawCommands: AnyCommands\n\n customState?: EditorState\n\n constructor(props: { editor: Editor; state?: EditorState }) {\n this.editor = props.editor\n this.rawCommands = this.editor.extensionManager.commands\n this.customState = props.state\n }\n\n get hasCustomState(): boolean {\n return !!this.customState\n }\n\n get state(): EditorState {\n return this.customState || this.editor.state\n }\n\n get commands(): SingleCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const { tr } = state\n const props = this.buildProps(tr)\n\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const method = (...args: any[]) => {\n const callback = command(...args)(props)\n\n if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {\n view.dispatch(tr)\n }\n\n return callback\n }\n\n return [name, method]\n }),\n ) as unknown as SingleCommands\n }\n\n get chain(): () => ChainedCommands {\n return () => this.createChain()\n }\n\n get can(): () => CanCommands {\n return () => this.createCan()\n }\n\n public createChain(startTr?: Transaction, shouldDispatch = true): ChainedCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const callbacks: boolean[] = []\n const hasStartTransaction = !!startTr\n const tr = startTr || state.tr\n\n const run = () => {\n if (\n !hasStartTransaction\n && shouldDispatch\n && !tr.getMeta('preventDispatch')\n && !this.hasCustomState\n ) {\n view.dispatch(tr)\n }\n\n return callbacks.every(callback => callback === true)\n }\n\n const chain = {\n ...Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const chainedCommand = (...args: never[]) => {\n const props = this.buildProps(tr, shouldDispatch)\n const callback = command(...args)(props)\n\n callbacks.push(callback)\n\n return chain\n }\n\n return [name, chainedCommand]\n }),\n ),\n run,\n } as unknown as ChainedCommands\n\n return chain\n }\n\n public createCan(startTr?: Transaction): CanCommands {\n const { rawCommands, state } = this\n const dispatch = false\n const tr = startTr || state.tr\n const props = this.buildProps(tr, dispatch)\n const formattedCommands = Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)({ ...props, dispatch: undefined })]\n }),\n ) as unknown as SingleCommands\n\n return {\n ...formattedCommands,\n chain: () => this.createChain(tr, dispatch),\n } as CanCommands\n }\n\n public buildProps(tr: Transaction, shouldDispatch = true): CommandProps {\n const { rawCommands, editor, state } = this\n const { view } = editor\n\n const props: CommandProps = {\n tr,\n editor,\n view,\n state: createChainableState({\n state,\n transaction: tr,\n }),\n dispatch: shouldDispatch ? () => undefined : undefined,\n chain: () => this.createChain(tr, shouldDispatch),\n can: () => this.createCan(tr),\n get commands() {\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)(props)]\n }),\n ) as unknown as SingleCommands\n },\n }\n\n return props\n }\n}\n","type StringKeyOf = Extract\ntype CallbackType<\n T extends Record,\n EventName extends StringKeyOf,\n> = T[EventName] extends any[] ? T[EventName] : [T[EventName]]\ntype CallbackFunction<\n T extends Record,\n EventName extends StringKeyOf,\n> = (...props: CallbackType) => any\n\nexport class EventEmitter> {\n\n private callbacks: { [key: string]: Function[] } = {}\n\n public on>(event: EventName, fn: CallbackFunction): this {\n if (!this.callbacks[event]) {\n this.callbacks[event] = []\n }\n\n this.callbacks[event].push(fn)\n\n return this\n }\n\n public emit>(event: EventName, ...args: CallbackType): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n callbacks.forEach(callback => callback.apply(this, args))\n }\n\n return this\n }\n\n public off>(event: EventName, fn?: CallbackFunction): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n if (fn) {\n this.callbacks[event] = callbacks.filter(callback => callback !== fn)\n } else {\n delete this.callbacks[event]\n }\n }\n\n return this\n }\n\n public removeAllListeners(): void {\n this.callbacks = {}\n }\n}\n","import { AnyExtension, MaybeThisParameterType, RemoveThis } from '../types.js'\n\n/**\n * Returns a field from an extension\n * @param extension The Tiptap extension\n * @param field The field, for example `renderHTML` or `priority`\n * @param context The context object that should be passed as `this` into the function\n * @returns The field value\n */\nexport function getExtensionField(\n extension: AnyExtension,\n field: string,\n context?: Omit, 'parent'>,\n): RemoveThis {\n\n if (extension.config[field] === undefined && extension.parent) {\n return getExtensionField(extension.parent, field, context)\n }\n\n if (typeof extension.config[field] === 'function') {\n const value = extension.config[field].bind({\n ...context,\n parent: extension.parent\n ? getExtensionField(extension.parent, field, context)\n : null,\n })\n\n return value\n }\n\n return extension.config[field]\n}\n","import { Extension } from '../Extension.js'\nimport { Mark } from '../Mark.js'\nimport { Node } from '../Node.js'\nimport { Extensions } from '../types.js'\n\nexport function splitExtensions(extensions: Extensions) {\n const baseExtensions = extensions.filter(extension => extension.type === 'extension') as Extension[]\n const nodeExtensions = extensions.filter(extension => extension.type === 'node') as Node[]\n const markExtensions = extensions.filter(extension => extension.type === 'mark') as Mark[]\n\n return {\n baseExtensions,\n nodeExtensions,\n markExtensions,\n }\n}\n","import { MarkConfig, NodeConfig } from '../index.js'\nimport {\n AnyConfig,\n Attribute,\n Attributes,\n ExtensionAttribute,\n Extensions,\n} from '../types.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { splitExtensions } from './splitExtensions.js'\n\n/**\n * Get a list of all extension attributes defined in `addAttribute` and `addGlobalAttribute`.\n * @param extensions List of extensions\n */\nexport function getAttributesFromExtensions(extensions: Extensions): ExtensionAttribute[] {\n const extensionAttributes: ExtensionAttribute[] = []\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const nodeAndMarkExtensions = [...nodeExtensions, ...markExtensions]\n const defaultAttribute: Required = {\n default: null,\n rendered: true,\n renderHTML: null,\n parseHTML: null,\n keepOnSplit: true,\n isRequired: false,\n }\n\n extensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n extensions: nodeAndMarkExtensions,\n }\n\n const addGlobalAttributes = getExtensionField(\n extension,\n 'addGlobalAttributes',\n context,\n )\n\n if (!addGlobalAttributes) {\n return\n }\n\n const globalAttributes = addGlobalAttributes()\n\n globalAttributes.forEach(globalAttribute => {\n globalAttribute.types.forEach(type => {\n Object\n .entries(globalAttribute.attributes)\n .forEach(([name, attribute]) => {\n extensionAttributes.push({\n type,\n name,\n attribute: {\n ...defaultAttribute,\n ...attribute,\n },\n })\n })\n })\n })\n })\n\n nodeAndMarkExtensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addAttributes = getExtensionField(\n extension,\n 'addAttributes',\n context,\n )\n\n if (!addAttributes) {\n return\n }\n\n // TODO: remove `as Attributes`\n const attributes = addAttributes() as Attributes\n\n Object\n .entries(attributes)\n .forEach(([name, attribute]) => {\n const mergedAttr = {\n ...defaultAttribute,\n ...attribute,\n }\n\n if (typeof mergedAttr?.default === 'function') {\n mergedAttr.default = mergedAttr.default()\n }\n\n if (mergedAttr?.isRequired && mergedAttr?.default === undefined) {\n delete mergedAttr.default\n }\n\n extensionAttributes.push({\n type: extension.name,\n name,\n attribute: mergedAttr,\n })\n })\n })\n\n return extensionAttributes\n}\n","import { NodeType, Schema } from '@tiptap/pm/model'\n\nexport function getNodeType(nameOrType: string | NodeType, schema: Schema): NodeType {\n if (typeof nameOrType === 'string') {\n if (!schema.nodes[nameOrType]) {\n throw Error(\n `There is no node type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.nodes[nameOrType]\n }\n\n return nameOrType\n}\n","export function mergeAttributes(...objects: Record[]): Record {\n return objects\n .filter(item => !!item)\n .reduce((items, item) => {\n const mergedAttributes = { ...items }\n\n Object.entries(item).forEach(([key, value]) => {\n const exists = mergedAttributes[key]\n\n if (!exists) {\n mergedAttributes[key] = value\n\n return\n }\n\n if (key === 'class') {\n const valueClasses: string[] = value ? value.split(' ') : []\n const existingClasses: string[] = mergedAttributes[key] ? mergedAttributes[key].split(' ') : []\n\n const insertClasses = valueClasses.filter(\n valueClass => !existingClasses.includes(valueClass),\n )\n\n mergedAttributes[key] = [...existingClasses, ...insertClasses].join(' ')\n } else if (key === 'style') {\n mergedAttributes[key] = [mergedAttributes[key], value].join('; ')\n } else {\n mergedAttributes[key] = value\n }\n })\n\n return mergedAttributes\n }, {})\n}\n","import { Mark, Node } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { mergeAttributes } from '../utilities/mergeAttributes.js'\n\nexport function getRenderedAttributes(\n nodeOrMark: Node | Mark,\n extensionAttributes: ExtensionAttribute[],\n): Record {\n return extensionAttributes\n .filter(item => item.attribute.rendered)\n .map(item => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: nodeOrMark.attrs[item.name],\n }\n }\n\n return item.attribute.renderHTML(nodeOrMark.attrs) || {}\n })\n .reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {})\n}\n","export function isFunction(value: any): value is Function {\n return typeof value === 'function'\n}\n","import { MaybeReturnType } from '../types.js'\nimport { isFunction } from './isFunction.js'\n\n/**\n * Optionally calls `value` as a function.\n * Otherwise it is returned directly.\n * @param value Function or any value.\n * @param context Optional context to bind to function.\n * @param props Optional props to pass to function.\n */\nexport function callOrReturn(value: T, context: any = undefined, ...props: any[]): MaybeReturnType {\n if (isFunction(value)) {\n if (context) {\n return value.bind(context)(...props)\n }\n\n return value(...props)\n }\n\n return value as MaybeReturnType\n}\n","export function isEmptyObject(value = {}): boolean {\n return Object.keys(value).length === 0 && value.constructor === Object\n}\n","export function fromString(value: any): any {\n if (typeof value !== 'string') {\n return value\n }\n\n if (value.match(/^[+-]?(?:\\d*\\.)?\\d+$/)) {\n return Number(value)\n }\n\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n return value\n}\n","import { ParseRule } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { fromString } from '../utilities/fromString.js'\n\n/**\n * This function merges extension attributes into parserule attributes (`attrs` or `getAttrs`).\n * Cancels when `getAttrs` returned `false`.\n * @param parseRule ProseMirror ParseRule\n * @param extensionAttributes List of attributes to inject\n */\nexport function injectExtensionAttributesToParseRule(\n parseRule: ParseRule,\n extensionAttributes: ExtensionAttribute[],\n): ParseRule {\n if ('style' in parseRule) {\n return parseRule\n }\n\n return {\n ...parseRule,\n getAttrs: (node: HTMLElement) => {\n const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs\n\n if (oldAttributes === false) {\n return false\n }\n\n const newAttributes = extensionAttributes.reduce((items, item) => {\n const value = item.attribute.parseHTML\n ? item.attribute.parseHTML(node)\n : fromString((node).getAttribute(item.name))\n\n if (value === null || value === undefined) {\n return items\n }\n\n return {\n ...items,\n [item.name]: value,\n }\n }, {})\n\n return { ...oldAttributes, ...newAttributes }\n },\n }\n}\n","import {\n MarkSpec, NodeSpec, Schema, TagParseRule,\n} from '@tiptap/pm/model'\n\nimport { Editor, MarkConfig, NodeConfig } from '../index.js'\nimport { AnyConfig, Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { isEmptyObject } from '../utilities/isEmptyObject.js'\nimport { getAttributesFromExtensions } from './getAttributesFromExtensions.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { getRenderedAttributes } from './getRenderedAttributes.js'\nimport { injectExtensionAttributesToParseRule } from './injectExtensionAttributesToParseRule.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nfunction cleanUpSchemaItem(data: T) {\n return Object.fromEntries(\n // @ts-ignore\n Object.entries(data).filter(([key, value]) => {\n if (key === 'attrs' && isEmptyObject(value as {} | undefined)) {\n return false\n }\n\n return value !== null && value !== undefined\n }),\n ) as T\n}\n\n/**\n * Creates a new Prosemirror schema based on the given extensions.\n * @param extensions An array of Tiptap extensions\n * @param editor The editor instance\n * @returns A Prosemirror schema\n */\nexport function getSchemaByResolvedExtensions(extensions: Extensions, editor?: Editor): Schema {\n const allAttributes = getAttributesFromExtensions(extensions)\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const topNode = nodeExtensions.find(extension => getExtensionField(extension, 'topNode'))?.name\n\n const nodes = Object.fromEntries(\n nodeExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraNodeFields = extensions.reduce((fields, e) => {\n const extendNodeSchema = getExtensionField(\n e,\n 'extendNodeSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendNodeSchema ? extendNodeSchema(extension) : {}),\n }\n }, {})\n\n const schema: NodeSpec = cleanUpSchemaItem({\n ...extraNodeFields,\n content: callOrReturn(\n getExtensionField(extension, 'content', context),\n ),\n marks: callOrReturn(getExtensionField(extension, 'marks', context)),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n inline: callOrReturn(getExtensionField(extension, 'inline', context)),\n atom: callOrReturn(getExtensionField(extension, 'atom', context)),\n selectable: callOrReturn(\n getExtensionField(extension, 'selectable', context),\n ),\n draggable: callOrReturn(\n getExtensionField(extension, 'draggable', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n whitespace: callOrReturn(getExtensionField(extension, 'whitespace', context)),\n defining: callOrReturn(\n getExtensionField(extension, 'defining', context),\n ),\n isolating: callOrReturn(\n getExtensionField(extension, 'isolating', context),\n ),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes)) as TagParseRule[]\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = node => renderHTML({\n node,\n HTMLAttributes: getRenderedAttributes(node, extensionAttributes),\n })\n }\n\n const renderText = getExtensionField(\n extension,\n 'renderText',\n context,\n )\n\n if (renderText) {\n schema.toText = renderText\n }\n\n return [extension.name, schema]\n }),\n )\n\n const marks = Object.fromEntries(\n markExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraMarkFields = extensions.reduce((fields, e) => {\n const extendMarkSchema = getExtensionField(\n e,\n 'extendMarkSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendMarkSchema ? extendMarkSchema(extension) : {}),\n }\n }, {})\n\n const schema: MarkSpec = cleanUpSchemaItem({\n ...extraMarkFields,\n inclusive: callOrReturn(\n getExtensionField(extension, 'inclusive', context),\n ),\n excludes: callOrReturn(\n getExtensionField(extension, 'excludes', context),\n ),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n spanning: callOrReturn(\n getExtensionField(extension, 'spanning', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes))\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = mark => renderHTML({\n mark,\n HTMLAttributes: getRenderedAttributes(mark, extensionAttributes),\n })\n }\n\n return [extension.name, schema]\n }),\n )\n\n return new Schema({\n topNode,\n nodes,\n marks,\n })\n}\n","import { MarkType, NodeType, Schema } from '@tiptap/pm/model'\n\n/**\n * Tries to get a node or mark type by its name.\n * @param name The name of the node or mark type\n * @param schema The Prosemiror schema to search in\n * @returns The node or mark type, or null if it doesn't exist\n */\nexport function getSchemaTypeByName(name: string, schema: Schema): NodeType | MarkType | null {\n return schema.nodes[name] || schema.marks[name] || null\n}\n","import { AnyExtension, EnableRules } from '../types.js'\n\nexport function isExtensionRulesEnabled(extension: AnyExtension, enabled: EnableRules): boolean {\n if (Array.isArray(enabled)) {\n return enabled.some(enabledExtension => {\n const name = typeof enabledExtension === 'string'\n ? enabledExtension\n : enabledExtension.name\n\n return name === extension.name\n })\n }\n\n return enabled\n}\n","import { ResolvedPos } from '@tiptap/pm/model'\n\n/**\n * Returns the text content of a resolved prosemirror position\n * @param $from The resolved position to get the text content from\n * @param maxMatch The maximum number of characters to match\n * @returns The text content\n */\nexport const getTextContentFromNodes = ($from: ResolvedPos, maxMatch = 500) => {\n let textBefore = ''\n\n const sliceEndPos = $from.parentOffset\n\n $from.parent.nodesBetween(\n Math.max(0, sliceEndPos - maxMatch),\n sliceEndPos,\n (node, pos, parent, index) => {\n const chunk = node.type.spec.toText?.({\n node,\n pos,\n parent,\n index,\n })\n || node.textContent\n || '%leaf%'\n\n textBefore += node.isAtom && !node.isText ? chunk : chunk.slice(0, Math.max(0, sliceEndPos - pos))\n },\n )\n\n return textBefore\n}\n","export function isRegExp(value: any): value is RegExp {\n return Object.prototype.toString.call(value) === '[object RegExp]'\n}\n","import { EditorState, Plugin, TextSelection } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport { getTextContentFromNodes } from './helpers/getTextContentFromNodes.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type InputRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type InputRuleFinder = RegExp | ((text: string) => InputRuleMatch | null)\n\nexport class InputRule {\n find: InputRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n\n constructor(config: {\n find: InputRuleFinder\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst inputRuleMatcherHandler = (\n text: string,\n find: InputRuleFinder,\n): ExtendedRegExpMatchArray | null => {\n if (isRegExp(find)) {\n return find.exec(text)\n }\n\n const inputRuleMatch = find(text)\n\n if (!inputRuleMatch) {\n return null\n }\n\n const result: ExtendedRegExpMatchArray = [inputRuleMatch.text]\n\n result.index = inputRuleMatch.index\n result.input = text\n result.data = inputRuleMatch.data\n\n if (inputRuleMatch.replaceWith) {\n if (!inputRuleMatch.text.includes(inputRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".',\n )\n }\n\n result.push(inputRuleMatch.replaceWith)\n }\n\n return result\n}\n\nfunction run(config: {\n editor: Editor\n from: number\n to: number\n text: string\n rules: InputRule[]\n plugin: Plugin\n}): boolean {\n const {\n editor, from, to, text, rules, plugin,\n } = config\n const { view } = editor\n\n if (view.composing) {\n return false\n }\n\n const $from = view.state.doc.resolve(from)\n\n if (\n // check for code node\n $from.parent.type.spec.code\n // check for code mark\n || !!($from.nodeBefore || $from.nodeAfter)?.marks.find(mark => mark.type.spec.code)\n ) {\n return false\n }\n\n let matched = false\n\n const textBefore = getTextContentFromNodes($from) + text\n\n rules.forEach(rule => {\n if (matched) {\n return\n }\n\n const match = inputRuleMatcherHandler(textBefore, rule.find)\n\n if (!match) {\n return\n }\n\n const tr = view.state.tr\n const state = createChainableState({\n state: view.state,\n transaction: tr,\n })\n const range = {\n from: from - (match[0].length - text.length),\n to,\n }\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n })\n\n // stop if there are no changes\n if (handler === null || !tr.steps.length) {\n return\n }\n\n // store transform as meta data\n // so we can undo input rules within the `undoInputRules` command\n tr.setMeta(plugin, {\n transform: tr,\n from,\n to,\n text,\n })\n\n view.dispatch(tr)\n matched = true\n })\n\n return matched\n}\n\n/**\n * Create an input rules plugin. When enabled, it will cause text\n * input that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function inputRulesPlugin(props: { editor: Editor; rules: InputRule[] }): Plugin {\n const { editor, rules } = props\n const plugin = new Plugin({\n state: {\n init() {\n return null\n },\n apply(tr, prev) {\n const stored = tr.getMeta(plugin)\n\n if (stored) {\n return stored\n }\n\n // if InputRule is triggered by insertContent()\n const simulatedInputMeta = tr.getMeta('applyInputRules')\n const isSimulatedInput = !!simulatedInputMeta\n\n if (isSimulatedInput) {\n setTimeout(() => {\n const { from, text } = simulatedInputMeta\n const to = from + text.length\n\n run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n })\n }\n\n return tr.selectionSet || tr.docChanged ? null : prev\n },\n },\n\n props: {\n handleTextInput(view, from, to, text) {\n return run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n },\n\n handleDOMEvents: {\n compositionend: view => {\n setTimeout(() => {\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '',\n rules,\n plugin,\n })\n }\n })\n\n return false\n },\n },\n\n // add support for input rules to trigger on enter\n // this is useful for example for code blocks\n handleKeyDown(view, event) {\n if (event.key !== 'Enter') {\n return false\n }\n\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n return run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '\\n',\n rules,\n plugin,\n })\n }\n\n return false\n },\n },\n\n // @ts-ignore\n isInputRules: true,\n }) as Plugin\n\n return plugin\n}\n","export function isNumber(value: any): value is number {\n return typeof value === 'number'\n}\n","import { EditorState, Plugin } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isNumber } from './utilities/isNumber.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type PasteRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type PasteRuleFinder = RegExp | ((text: string, event?: ClipboardEvent | null) => PasteRuleMatch[] | null | undefined)\n\n/**\n * Paste rules are used to react to pasted content.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport class PasteRule {\n find: PasteRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n }) => void | null\n\n constructor(config: {\n find: PasteRuleFinder\n handler: (props: {\n can: () => CanCommands\n chain: () => ChainedCommands\n commands: SingleCommands\n dropEvent: DragEvent | null\n match: ExtendedRegExpMatchArray\n pasteEvent: ClipboardEvent | null\n range: Range\n state: EditorState\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst pasteRuleMatcherHandler = (\n text: string,\n find: PasteRuleFinder,\n event?: ClipboardEvent | null,\n): ExtendedRegExpMatchArray[] => {\n if (isRegExp(find)) {\n return [...text.matchAll(find)]\n }\n\n const matches = find(text, event)\n\n if (!matches) {\n return []\n }\n\n return matches.map(pasteRuleMatch => {\n const result: ExtendedRegExpMatchArray = [pasteRuleMatch.text]\n\n result.index = pasteRuleMatch.index\n result.input = text\n result.data = pasteRuleMatch.data\n\n if (pasteRuleMatch.replaceWith) {\n if (!pasteRuleMatch.text.includes(pasteRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".',\n )\n }\n\n result.push(pasteRuleMatch.replaceWith)\n }\n\n return result\n })\n}\n\nfunction run(config: {\n editor: Editor\n state: EditorState\n from: number\n to: number\n rule: PasteRule\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n}): boolean {\n const {\n editor, state, from, to, rule, pasteEvent, dropEvent,\n } = config\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handlers: (void | null)[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isTextblock || node.type.spec.code) {\n return\n }\n\n const resolvedFrom = Math.max(from, pos)\n const resolvedTo = Math.min(to, pos + node.content.size)\n const textToMatch = node.textBetween(resolvedFrom - pos, resolvedTo - pos, undefined, '\\ufffc')\n\n const matches = pasteRuleMatcherHandler(textToMatch, rule.find, pasteEvent)\n\n matches.forEach(match => {\n if (match.index === undefined) {\n return\n }\n\n const start = resolvedFrom + match.index + 1\n const end = start + match[0].length\n const range = {\n from: state.tr.mapping.map(start),\n to: state.tr.mapping.map(end),\n }\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n pasteEvent,\n dropEvent,\n })\n\n handlers.push(handler)\n })\n })\n\n const success = handlers.every(handler => handler !== null)\n\n return success\n}\n\nconst createClipboardPasteEvent = (text: string) => {\n const event = new ClipboardEvent('paste', {\n clipboardData: new DataTransfer(),\n })\n\n event.clipboardData?.setData('text/html', text)\n\n return event\n}\n\n/**\n * Create an paste rules plugin. When enabled, it will cause pasted\n * text that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function pasteRulesPlugin(props: { editor: Editor; rules: PasteRule[] }): Plugin[] {\n const { editor, rules } = props\n let dragSourceElement: Element | null = null\n let isPastedFromProseMirror = false\n let isDroppedFromProseMirror = false\n let pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n let dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n\n const processEvent = ({\n state,\n from,\n to,\n rule,\n pasteEvt,\n }: {\n state: EditorState\n from: number\n to: { b: number }\n rule: PasteRule\n pasteEvt: ClipboardEvent | null\n }) => {\n const tr = state.tr\n const chainableState = createChainableState({\n state,\n transaction: tr,\n })\n\n const handler = run({\n editor,\n state: chainableState,\n from: Math.max(from - 1, 0),\n to: to.b - 1,\n rule,\n pasteEvent: pasteEvt,\n dropEvent,\n })\n\n if (!handler || !tr.steps.length) {\n return\n }\n\n dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n\n return tr\n }\n\n const plugins = rules.map(rule => {\n return new Plugin({\n // we register a global drag handler to track the current drag source element\n view(view) {\n const handleDragstart = (event: DragEvent) => {\n dragSourceElement = view.dom.parentElement?.contains(event.target as Element)\n ? view.dom.parentElement\n : null\n }\n\n window.addEventListener('dragstart', handleDragstart)\n\n return {\n destroy() {\n window.removeEventListener('dragstart', handleDragstart)\n },\n }\n },\n\n props: {\n handleDOMEvents: {\n drop: (view, event: Event) => {\n isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement\n dropEvent = event as DragEvent\n\n return false\n },\n\n paste: (_view, event: Event) => {\n const html = (event as ClipboardEvent).clipboardData?.getData('text/html')\n\n pasteEvent = event as ClipboardEvent\n\n isPastedFromProseMirror = !!html?.includes('data-pm-slice')\n\n return false\n },\n },\n },\n\n appendTransaction: (transactions, oldState, state) => {\n const transaction = transactions[0]\n const isPaste = transaction.getMeta('uiEvent') === 'paste' && !isPastedFromProseMirror\n const isDrop = transaction.getMeta('uiEvent') === 'drop' && !isDroppedFromProseMirror\n\n // if PasteRule is triggered by insertContent()\n const simulatedPasteMeta = transaction.getMeta('applyPasteRules')\n const isSimulatedPaste = !!simulatedPasteMeta\n\n if (!isPaste && !isDrop && !isSimulatedPaste) {\n return\n }\n\n // Handle simulated paste\n if (isSimulatedPaste) {\n const { from, text } = simulatedPasteMeta\n const to = from + text.length\n const pasteEvt = createClipboardPasteEvent(text)\n\n return processEvent({\n rule,\n state,\n from,\n to: { b: to },\n pasteEvt,\n })\n }\n\n // handle actual paste/drop\n const from = oldState.doc.content.findDiffStart(state.doc.content)\n const to = oldState.doc.content.findDiffEnd(state.doc.content)\n\n // stop if there is no changed range\n if (!isNumber(from) || !to || from === to.b) {\n return\n }\n\n return processEvent({\n rule,\n state,\n from,\n to,\n pasteEvt: pasteEvent,\n })\n },\n })\n })\n\n return plugins\n}\n","export function findDuplicates(items: any[]): any[] {\n const filtered = items.filter((el, index) => items.indexOf(el) !== index)\n\n return Array.from(new Set(filtered))\n}\n","import { keymap } from '@tiptap/pm/keymap'\nimport { Node as ProsemirrorNode, Schema } from '@tiptap/pm/model'\nimport { Plugin } from '@tiptap/pm/state'\nimport { Decoration, EditorView } from '@tiptap/pm/view'\n\nimport type { Editor } from './Editor.js'\nimport { getAttributesFromExtensions } from './helpers/getAttributesFromExtensions.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { getNodeType } from './helpers/getNodeType.js'\nimport { getRenderedAttributes } from './helpers/getRenderedAttributes.js'\nimport { getSchemaByResolvedExtensions } from './helpers/getSchemaByResolvedExtensions.js'\nimport { getSchemaTypeByName } from './helpers/getSchemaTypeByName.js'\nimport { isExtensionRulesEnabled } from './helpers/isExtensionRulesEnabled.js'\nimport { splitExtensions } from './helpers/splitExtensions.js'\nimport { Mark, NodeConfig } from './index.js'\nimport { InputRule, inputRulesPlugin } from './InputRule.js'\nimport { PasteRule, pasteRulesPlugin } from './PasteRule.js'\nimport { AnyConfig, Extensions, RawCommands } from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { findDuplicates } from './utilities/findDuplicates.js'\n\nexport class ExtensionManager {\n editor: Editor\n\n schema: Schema\n\n extensions: Extensions\n\n splittableMarks: string[] = []\n\n constructor(extensions: Extensions, editor: Editor) {\n this.editor = editor\n this.extensions = ExtensionManager.resolve(extensions)\n this.schema = getSchemaByResolvedExtensions(this.extensions, editor)\n this.setupExtensions()\n }\n\n /**\n * Returns a flattened and sorted extension list while\n * also checking for duplicated extensions and warns the user.\n * @param extensions An array of Tiptap extensions\n * @returns An flattened and sorted array of Tiptap extensions\n */\n static resolve(extensions: Extensions): Extensions {\n const resolvedExtensions = ExtensionManager.sort(ExtensionManager.flatten(extensions))\n const duplicatedNames = findDuplicates(resolvedExtensions.map(extension => extension.name))\n\n if (duplicatedNames.length) {\n console.warn(\n `[tiptap warn]: Duplicate extension names found: [${duplicatedNames\n .map(item => `'${item}'`)\n .join(', ')}]. This can lead to issues.`,\n )\n }\n\n return resolvedExtensions\n }\n\n /**\n * Create a flattened array of extensions by traversing the `addExtensions` field.\n * @param extensions An array of Tiptap extensions\n * @returns A flattened array of Tiptap extensions\n */\n static flatten(extensions: Extensions): Extensions {\n return (\n extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addExtensions = getExtensionField(\n extension,\n 'addExtensions',\n context,\n )\n\n if (addExtensions) {\n return [extension, ...this.flatten(addExtensions())]\n }\n\n return extension\n })\n // `Infinity` will break TypeScript so we set a number that is probably high enough\n .flat(10)\n )\n }\n\n /**\n * Sort extensions by priority.\n * @param extensions An array of Tiptap extensions\n * @returns A sorted array of Tiptap extensions by priority\n */\n static sort(extensions: Extensions): Extensions {\n const defaultPriority = 100\n\n return extensions.sort((a, b) => {\n const priorityA = getExtensionField(a, 'priority') || defaultPriority\n const priorityB = getExtensionField(b, 'priority') || defaultPriority\n\n if (priorityA > priorityB) {\n return -1\n }\n\n if (priorityA < priorityB) {\n return 1\n }\n\n return 0\n })\n }\n\n /**\n * Get all commands from the extensions.\n * @returns An object with all commands where the key is the command name and the value is the command function\n */\n get commands(): RawCommands {\n return this.extensions.reduce((commands, extension) => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const addCommands = getExtensionField(\n extension,\n 'addCommands',\n context,\n )\n\n if (!addCommands) {\n return commands\n }\n\n return {\n ...commands,\n ...addCommands(),\n }\n }, {} as RawCommands)\n }\n\n /**\n * Get all registered Prosemirror plugins from the extensions.\n * @returns An array of Prosemirror plugins\n */\n get plugins(): Plugin[] {\n const { editor } = this\n\n // With ProseMirror, first plugins within an array are executed first.\n // In Tiptap, we provide the ability to override plugins,\n // so it feels more natural to run plugins at the end of an array first.\n // That’s why we have to reverse the `extensions` array and sort again\n // based on the `priority` option.\n const extensions = ExtensionManager.sort([...this.extensions].reverse())\n\n const inputRules: InputRule[] = []\n const pasteRules: PasteRule[] = []\n\n const allPlugins = extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const plugins: Plugin[] = []\n\n const addKeyboardShortcuts = getExtensionField(\n extension,\n 'addKeyboardShortcuts',\n context,\n )\n\n let defaultBindings: Record boolean> = {}\n\n // bind exit handling\n if (extension.type === 'mark' && getExtensionField(extension, 'exitable', context)) {\n defaultBindings.ArrowRight = () => Mark.handleExit({ editor, mark: extension as Mark })\n }\n\n if (addKeyboardShortcuts) {\n const bindings = Object.fromEntries(\n Object.entries(addKeyboardShortcuts()).map(([shortcut, method]) => {\n return [shortcut, () => method({ editor })]\n }),\n )\n\n defaultBindings = { ...defaultBindings, ...bindings }\n }\n\n const keyMapPlugin = keymap(defaultBindings)\n\n plugins.push(keyMapPlugin)\n\n const addInputRules = getExtensionField(\n extension,\n 'addInputRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enableInputRules) && addInputRules) {\n inputRules.push(...addInputRules())\n }\n\n const addPasteRules = getExtensionField(\n extension,\n 'addPasteRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enablePasteRules) && addPasteRules) {\n pasteRules.push(...addPasteRules())\n }\n\n const addProseMirrorPlugins = getExtensionField(\n extension,\n 'addProseMirrorPlugins',\n context,\n )\n\n if (addProseMirrorPlugins) {\n const proseMirrorPlugins = addProseMirrorPlugins()\n\n plugins.push(...proseMirrorPlugins)\n }\n\n return plugins\n })\n .flat()\n\n return [\n inputRulesPlugin({\n editor,\n rules: inputRules,\n }),\n ...pasteRulesPlugin({\n editor,\n rules: pasteRules,\n }),\n ...allPlugins,\n ]\n }\n\n /**\n * Get all attributes from the extensions.\n * @returns An array of attributes\n */\n get attributes() {\n return getAttributesFromExtensions(this.extensions)\n }\n\n /**\n * Get all node views from the extensions.\n * @returns An object with all node views where the key is the node name and the value is the node view function\n */\n get nodeViews() {\n const { editor } = this\n const { nodeExtensions } = splitExtensions(this.extensions)\n\n return Object.fromEntries(\n nodeExtensions\n .filter(extension => !!getExtensionField(extension, 'addNodeView'))\n .map(extension => {\n const extensionAttributes = this.attributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getNodeType(extension.name, this.schema),\n }\n const addNodeView = getExtensionField(\n extension,\n 'addNodeView',\n context,\n )\n\n if (!addNodeView) {\n return []\n }\n\n const nodeview = (\n node: ProsemirrorNode,\n view: EditorView,\n getPos: (() => number) | boolean,\n decorations: Decoration[],\n ) => {\n const HTMLAttributes = getRenderedAttributes(node, extensionAttributes)\n\n return addNodeView()({\n editor,\n node,\n getPos,\n decorations,\n HTMLAttributes,\n extension,\n })\n }\n\n return [extension.name, nodeview]\n }),\n )\n }\n\n /**\n * Go through all extensions, create extension storages & setup marks\n * & bind editor event listener.\n */\n private setupExtensions() {\n this.extensions.forEach(extension => {\n // store extension storage in editor\n this.editor.extensionStorage[extension.name] = extension.storage\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n if (extension.type === 'mark') {\n const keepOnSplit = callOrReturn(getExtensionField(extension, 'keepOnSplit', context)) ?? true\n\n if (keepOnSplit) {\n this.splittableMarks.push(extension.name)\n }\n }\n\n const onBeforeCreate = getExtensionField(\n extension,\n 'onBeforeCreate',\n context,\n )\n const onCreate = getExtensionField(extension, 'onCreate', context)\n const onUpdate = getExtensionField(extension, 'onUpdate', context)\n const onSelectionUpdate = getExtensionField(\n extension,\n 'onSelectionUpdate',\n context,\n )\n const onTransaction = getExtensionField(\n extension,\n 'onTransaction',\n context,\n )\n const onFocus = getExtensionField(extension, 'onFocus', context)\n const onBlur = getExtensionField(extension, 'onBlur', context)\n const onDestroy = getExtensionField(extension, 'onDestroy', context)\n\n if (onBeforeCreate) {\n this.editor.on('beforeCreate', onBeforeCreate)\n }\n\n if (onCreate) {\n this.editor.on('create', onCreate)\n }\n\n if (onUpdate) {\n this.editor.on('update', onUpdate)\n }\n\n if (onSelectionUpdate) {\n this.editor.on('selectionUpdate', onSelectionUpdate)\n }\n\n if (onTransaction) {\n this.editor.on('transaction', onTransaction)\n }\n\n if (onFocus) {\n this.editor.on('focus', onFocus)\n }\n\n if (onBlur) {\n this.editor.on('blur', onBlur)\n }\n\n if (onDestroy) {\n this.editor.on('destroy', onDestroy)\n }\n })\n }\n}\n","// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nfunction getType(value: any): string {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nexport function isPlainObject(value: any): value is Record {\n if (getType(value) !== 'Object') {\n return false\n }\n\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype\n}\n","import { isPlainObject } from './isPlainObject.js'\n\nexport function mergeDeep(target: Record, source: Record): Record {\n const output = { ...target }\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n output[key] = mergeDeep(target[key], source[key])\n } else {\n output[key] = source[key]\n }\n })\n }\n\n return output\n}\n","import { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { ExtensionConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface ExtensionConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#commands\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n }\n}\n\n/**\n * The Extension class is the base class for all extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Extension {\n type = 'extension'\n\n name = 'extension'\n\n parent: Extension | null = null\n\n child: Extension | null = null\n\n options: Options\n\n storage: Storage\n\n config: ExtensionConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Extension(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Extension({ ...this.config, ...extendedConfig })\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { Range, TextSerializer } from '../types.js'\n\n/**\n * Gets the text between two positions in a Prosemirror node\n * and serializes it using the given text serializers and block separator (see getText)\n * @param startNode The Prosemirror node to start from\n * @param range The range of the text to get\n * @param options Options for the text serializer & block separator\n * @returns The text between the two positions\n */\nexport function getTextBetween(\n startNode: ProseMirrorNode,\n range: Range,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { from, to } = range\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n let text = ''\n\n startNode.nodesBetween(from, to, (node, pos, parent, index) => {\n if (node.isBlock && pos > from) {\n text += blockSeparator\n }\n\n const textSerializer = textSerializers?.[node.type.name]\n\n if (textSerializer) {\n if (parent) {\n text += textSerializer({\n node,\n pos,\n parent,\n index,\n range,\n })\n }\n // do not descend into child nodes when there exists a serializer\n return false\n }\n\n if (node.isText) {\n text += node?.text?.slice(Math.max(from, pos) - pos, to - pos) // eslint-disable-line\n }\n })\n\n return text\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\n\n/**\n * Find text serializers `toText` in a Prosemirror schema\n * @param schema The Prosemirror schema to search in\n * @returns A record of text serializers by node name\n */\nexport function getTextSerializersFromSchema(schema: Schema): Record {\n return Object.fromEntries(\n Object.entries(schema.nodes)\n .filter(([, node]) => node.spec.toText)\n .map(([name, node]) => [name, node.spec.toText]),\n )\n}\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\nimport { getTextBetween } from '../helpers/getTextBetween.js'\nimport { getTextSerializersFromSchema } from '../helpers/getTextSerializersFromSchema.js'\n\nexport type ClipboardTextSerializerOptions = {\n blockSeparator?: string,\n}\n\nexport const ClipboardTextSerializer = Extension.create({\n name: 'clipboardTextSerializer',\n\n addOptions() {\n return {\n blockSeparator: undefined,\n }\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('clipboardTextSerializer'),\n props: {\n clipboardTextSerializer: () => {\n const { editor } = this\n const { state, schema } = editor\n const { doc, selection } = state\n const { ranges } = selection\n const from = Math.min(...ranges.map(range => range.$from.pos))\n const to = Math.max(...ranges.map(range => range.$to.pos))\n const textSerializers = getTextSerializersFromSchema(schema)\n const range = { from, to }\n\n return getTextBetween(doc, range, {\n ...(this.options.blockSeparator !== undefined\n ? { blockSeparator: this.options.blockSeparator }\n : {}),\n textSerializers,\n })\n },\n },\n }),\n ]\n },\n})\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n blur: {\n /**\n * Removes focus from the editor.\n * @example editor.commands.blur()\n */\n blur: () => ReturnType,\n }\n }\n}\n\nexport const blur: RawCommands['blur'] = () => ({ editor, view }) => {\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n (view.dom as HTMLElement).blur()\n\n // Browsers should remove the caret on blur but safari does not.\n // See: https://github.com/ueberdosis/tiptap/issues/2405\n window?.getSelection()?.removeAllRanges()\n }\n })\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearContent: {\n /**\n * Clear the whole document.\n * @param emitUpdate Whether to emit an update event.\n * @example editor.commands.clearContent()\n */\n clearContent: (emitUpdate?: boolean) => ReturnType,\n }\n }\n}\n\nexport const clearContent: RawCommands['clearContent'] = (emitUpdate = false) => ({ commands }) => {\n return commands.setContent('', emitUpdate)\n}\n","import { liftTarget } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearNodes: {\n /**\n * Normalize nodes to a simple paragraph.\n * @example editor.commands.clearNodes()\n */\n clearNodes: () => ReturnType,\n }\n }\n}\n\nexport const clearNodes: RawCommands['clearNodes'] = () => ({ state, tr, dispatch }) => {\n const { selection } = tr\n const { ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n ranges.forEach(({ $from, $to }) => {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.type.isText) {\n return\n }\n\n const { doc, mapping } = tr\n const $mappedFrom = doc.resolve(mapping.map(pos))\n const $mappedTo = doc.resolve(mapping.map(pos + node.nodeSize))\n const nodeRange = $mappedFrom.blockRange($mappedTo)\n\n if (!nodeRange) {\n return\n }\n\n const targetLiftDepth = liftTarget(nodeRange)\n\n if (node.type.isTextblock) {\n const { defaultType } = $mappedFrom.parent.contentMatchAt($mappedFrom.index())\n\n tr.setNodeMarkup(nodeRange.start, defaultType)\n }\n\n if (targetLiftDepth || targetLiftDepth === 0) {\n tr.lift(nodeRange, targetLiftDepth)\n }\n })\n })\n\n return true\n}\n","import { Command, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n command: {\n /**\n * Define a command inline.\n * @param fn The command function.\n * @example\n * editor.commands.command(({ tr, state }) => {\n * ...\n * return true\n * })\n */\n command: (fn: (props: Parameters[0]) => boolean) => ReturnType,\n }\n }\n}\n\nexport const command: RawCommands['command'] = fn => props => {\n return fn(props)\n}\n","import { createParagraphNear as originalCreateParagraphNear } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n createParagraphNear: {\n /**\n * Create a paragraph nearby.\n * @example editor.commands.createParagraphNear()\n */\n createParagraphNear: () => ReturnType\n }\n }\n}\n\nexport const createParagraphNear: RawCommands['createParagraphNear'] = () => ({ state, dispatch }) => {\n return originalCreateParagraphNear(state, dispatch)\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n cut: {\n /**\n * Cuts content from a range and inserts it at a given position.\n * @param range The range to cut.\n * @param range.from The start position of the range.\n * @param range.to The end position of the range.\n * @param targetPos The position to insert the content at.\n * @example editor.commands.cut({ from: 1, to: 3 }, 5)\n */\n cut: ({ from, to }: { from: number, to: number }, targetPos: number) => ReturnType,\n }\n }\n}\n\nexport const cut: RawCommands['cut'] = (originRange, targetPos) => ({ editor, tr }) => {\n const { state } = editor\n\n const contentSlice = state.doc.slice(originRange.from, originRange.to)\n\n tr.deleteRange(originRange.from, originRange.to)\n const newPos = tr.mapping.map(targetPos)\n\n tr.insert(newPos, contentSlice.content)\n\n tr.setSelection(new TextSelection(tr.doc.resolve(newPos - 1)))\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteCurrentNode: {\n /**\n * Delete the node that currently has the selection anchor.\n * @example editor.commands.deleteCurrentNode()\n */\n deleteCurrentNode: () => ReturnType,\n }\n }\n}\n\nexport const deleteCurrentNode: RawCommands['deleteCurrentNode'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const currentNode = selection.$anchor.node()\n\n // if there is content inside the current node, break out of this command\n if (currentNode.content.size > 0) {\n return false\n }\n\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === currentNode.type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteNode: {\n /**\n * Delete a node with a given type or name.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.deleteNode('paragraph')\n */\n deleteNode: (typeOrName: string | NodeType) => ReturnType,\n }\n }\n}\n\nexport const deleteNode: RawCommands['deleteNode'] = typeOrName => ({ tr, state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteRange: {\n /**\n * Delete a given range.\n * @param range The range to delete.\n * @example editor.commands.deleteRange({ from: 1, to: 3 })\n */\n deleteRange: (range: Range) => ReturnType,\n }\n }\n}\n\nexport const deleteRange: RawCommands['deleteRange'] = range => ({ tr, dispatch }) => {\n const { from, to } = range\n\n if (dispatch) {\n tr.delete(from, to)\n }\n\n return true\n}\n","import { deleteSelection as originalDeleteSelection } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteSelection: {\n /**\n * Delete the selection, if there is one.\n * @example editor.commands.deleteSelection()\n */\n deleteSelection: () => ReturnType\n }\n }\n}\n\nexport const deleteSelection: RawCommands['deleteSelection'] = () => ({ state, dispatch }) => {\n return originalDeleteSelection(state, dispatch)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n enter: {\n /**\n * Trigger enter.\n * @example editor.commands.enter()\n */\n enter: () => ReturnType,\n }\n }\n}\n\nexport const enter: RawCommands['enter'] = () => ({ commands }) => {\n return commands.keyboardShortcut('Enter')\n}\n","import { exitCode as originalExitCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n exitCode: {\n /**\n * Exit from a code block.\n * @example editor.commands.exitCode()\n */\n exitCode: () => ReturnType\n }\n }\n}\n\nexport const exitCode: RawCommands['exitCode'] = () => ({ state, dispatch }) => {\n return originalExitCode(state, dispatch)\n}\n","import { isRegExp } from './isRegExp.js'\n\n/**\n * Check if object1 includes object2\n * @param object1 Object\n * @param object2 Object\n */\nexport function objectIncludes(\n object1: Record,\n object2: Record,\n options: { strict: boolean } = { strict: true },\n): boolean {\n const keys = Object.keys(object2)\n\n if (!keys.length) {\n return true\n }\n\n return keys.every(key => {\n if (options.strict) {\n return object2[key] === object1[key]\n }\n\n if (isRegExp(object2[key])) {\n return object2[key].test(object1[key])\n }\n\n return object2[key] === object1[key]\n })\n}\n","import { Mark as ProseMirrorMark, MarkType, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Range } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\n\nfunction findMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): ProseMirrorMark | undefined {\n return marks.find(item => {\n return item.type === type && objectIncludes(item.attrs, attributes)\n })\n}\n\nfunction isMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): boolean {\n return !!findMarkInSet(marks, type, attributes)\n}\n\nexport function getMarkRange(\n $pos: ResolvedPos,\n type: MarkType,\n attributes: Record = {},\n): Range | void {\n if (!$pos || !type) {\n return\n }\n\n let start = $pos.parent.childAfter($pos.parentOffset)\n\n if ($pos.parentOffset === start.offset && start.offset !== 0) {\n start = $pos.parent.childBefore($pos.parentOffset)\n }\n\n if (!start.node) {\n return\n }\n\n const mark = findMarkInSet([...start.node.marks], type, attributes)\n\n if (!mark) {\n return\n }\n\n let startIndex = start.index\n let startPos = $pos.start() + start.offset\n let endIndex = startIndex + 1\n let endPos = startPos + start.node.nodeSize\n\n findMarkInSet([...start.node.marks], type, attributes)\n\n while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {\n startIndex -= 1\n startPos -= $pos.parent.child(startIndex).nodeSize\n }\n\n while (\n endIndex < $pos.parent.childCount\n && isMarkInSet([...$pos.parent.child(endIndex).marks], type, attributes)\n ) {\n endPos += $pos.parent.child(endIndex).nodeSize\n endIndex += 1\n }\n\n return {\n from: startPos,\n to: endPos,\n }\n}\n","import { MarkType, Schema } from '@tiptap/pm/model'\n\nexport function getMarkType(nameOrType: string | MarkType, schema: Schema): MarkType {\n if (typeof nameOrType === 'string') {\n if (!schema.marks[nameOrType]) {\n throw Error(\n `There is no mark type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.marks[nameOrType]\n }\n\n return nameOrType\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n extendMarkRange: {\n /**\n * Extends the text selection to the current mark by type or name.\n * @param typeOrName The type or name of the mark.\n * @param attributes The attributes of the mark.\n * @example editor.commands.extendMarkRange('bold')\n * @example editor.commands.extendMarkRange('mention', { userId: \"1\" })\n */\n extendMarkRange: (\n /**\n * The type or name of the mark.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const extendMarkRange: RawCommands['extendMarkRange'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const type = getMarkType(typeOrName, state.schema)\n const { doc, selection } = tr\n const { $from, from, to } = selection\n\n if (dispatch) {\n const range = getMarkRange($from, type, attributes)\n\n if (range && range.from <= from && range.to >= to) {\n const newSelection = TextSelection.create(doc, range.from, range.to)\n\n tr.setSelection(newSelection)\n }\n }\n\n return true\n}\n","import { Command, CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n first: {\n /**\n * Runs one command after the other and stops at the first which returns true.\n * @param commands The commands to run.\n * @example editor.commands.first([command1, command2])\n */\n first: (commands: Command[] | ((props: CommandProps) => Command[])) => ReturnType,\n }\n }\n}\n\nexport const first: RawCommands['first'] = commands => props => {\n const items = typeof commands === 'function'\n ? commands(props)\n : commands\n\n for (let i = 0; i < items.length; i += 1) {\n if (items[i](props)) {\n return true\n }\n }\n\n return false\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nexport function isTextSelection(value: unknown): value is TextSelection {\n return value instanceof TextSelection\n}\n","export function minMax(value = 0, min = 0, max = 0): number {\n return Math.min(Math.max(value, min), max)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Selection, TextSelection } from '@tiptap/pm/state'\n\nimport { FocusPosition } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\nexport function resolveFocusPosition(\n doc: ProseMirrorNode,\n position: FocusPosition = null,\n): Selection | null {\n if (!position) {\n return null\n }\n\n const selectionAtStart = Selection.atStart(doc)\n const selectionAtEnd = Selection.atEnd(doc)\n\n if (position === 'start' || position === true) {\n return selectionAtStart\n }\n\n if (position === 'end') {\n return selectionAtEnd\n }\n\n const minPos = selectionAtStart.from\n const maxPos = selectionAtEnd.to\n\n if (position === 'all') {\n return TextSelection.create(\n doc,\n minMax(0, minPos, maxPos),\n minMax(doc.content.size, minPos, maxPos),\n )\n }\n\n return TextSelection.create(\n doc,\n minMax(position, minPos, maxPos),\n minMax(position, minPos, maxPos),\n )\n}\n","export function isiOS(): boolean {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod',\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n}\n","import { isTextSelection } from '../helpers/isTextSelection.js'\nimport { resolveFocusPosition } from '../helpers/resolveFocusPosition.js'\nimport { FocusPosition, RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n focus: {\n /**\n * Focus the editor at the given position.\n * @param position The position to focus at.\n * @param options.scrollIntoView Scroll the focused position into view after focusing\n * @example editor.commands.focus()\n * @example editor.commands.focus(32, { scrollIntoView: false })\n */\n focus: (\n /**\n * The position to focus at.\n */\n position?: FocusPosition,\n\n /**\n * Optional options\n * @default { scrollIntoView: true }\n */\n options?: {\n scrollIntoView?: boolean,\n },\n ) => ReturnType,\n }\n }\n}\n\nexport const focus: RawCommands['focus'] = (position = null, options = {}) => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n options = {\n scrollIntoView: true,\n ...options,\n }\n\n const delayedFocus = () => {\n // focus within `requestAnimationFrame` breaks focus on iOS\n // so we have to call this\n if (isiOS()) {\n (view.dom as HTMLElement).focus()\n }\n\n // For React we have to focus asynchronously. Otherwise wild things happen.\n // see: https://github.com/ueberdosis/tiptap/issues/1520\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n view.focus()\n\n if (options?.scrollIntoView) {\n editor.commands.scrollIntoView()\n }\n }\n })\n }\n\n if ((view.hasFocus() && position === null) || position === false) {\n return true\n }\n\n // we don’t try to resolve a NodeSelection or CellSelection\n if (dispatch && position === null && !isTextSelection(editor.state.selection)) {\n delayedFocus()\n return true\n }\n\n // pass through tr.doc instead of editor.state.doc\n // since transactions could change the editors state before this command has been run\n const selection = resolveFocusPosition(tr.doc, position) || editor.state.selection\n const isSameSelection = editor.state.selection.eq(selection)\n\n if (dispatch) {\n if (!isSameSelection) {\n tr.setSelection(selection)\n }\n\n // `tr.setSelection` resets the stored marks\n // so we’ll restore them if the selection is the same as before\n if (isSameSelection && tr.storedMarks) {\n tr.setStoredMarks(tr.storedMarks)\n }\n\n delayedFocus()\n }\n\n return true\n}\n","import { CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n forEach: {\n /**\n * Loop through an array of items.\n */\n forEach: (\n items: T[],\n fn: (\n item: T,\n props: CommandProps & {\n index: number,\n },\n ) => boolean,\n ) => ReturnType,\n }\n }\n}\n\nexport const forEach: RawCommands['forEach'] = (items, fn) => props => {\n return items.every((item, index) => fn(item, { ...props, index }))\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContent: {\n /**\n * Insert a node or string of HTML at the current position.\n * @example editor.commands.insertContent('

Example

')\n * @example editor.commands.insertContent('

Example

', { updateSelection: false })\n */\n insertContent: (\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n applyInputRules?: boolean\n applyPasteRules?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const insertContent: RawCommands['insertContent'] = (value, options) => ({ tr, commands }) => {\n return commands.insertContentAt(\n { from: tr.selection.from, to: tr.selection.to },\n value,\n options,\n )\n}\n","const removeWhitespaces = (node: HTMLElement) => {\n const children = node.childNodes\n\n for (let i = children.length - 1; i >= 0; i -= 1) {\n const child = children[i]\n\n if (child.nodeType === 3 && child.nodeValue && /^(\\n\\s\\s|\\n)$/.test(child.nodeValue)) {\n node.removeChild(child)\n } else if (child.nodeType === 1) {\n removeWhitespaces(child as HTMLElement)\n }\n }\n\n return node\n}\n\nexport function elementFromString(value: string): HTMLElement {\n // add a wrapper to preserve leading and trailing whitespace\n const wrappedValue = `${value}`\n\n const html = new window.DOMParser().parseFromString(wrappedValue, 'text/html').body\n\n return removeWhitespaces(html)\n}\n","import {\n DOMParser,\n Fragment,\n Node as ProseMirrorNode,\n ParseOptions,\n Schema,\n} from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\n\nexport type CreateNodeFromContentOptions = {\n slice?: boolean\n parseOptions?: ParseOptions\n errorOnInvalidContent?: boolean\n}\n\n/**\n * Takes a JSON or HTML content and creates a Prosemirror node or fragment from it.\n * @param content The JSON or HTML content to create the node from\n * @param schema The Prosemirror schema to use for the node\n * @param options Options for the parser\n * @returns The created Prosemirror node or fragment\n */\nexport function createNodeFromContent(\n content: Content,\n schema: Schema,\n options?: CreateNodeFromContentOptions,\n): ProseMirrorNode | Fragment {\n options = {\n slice: true,\n parseOptions: {},\n ...options,\n }\n\n const isJSONContent = typeof content === 'object' && content !== null\n const isTextContent = typeof content === 'string'\n\n if (isJSONContent) {\n try {\n const isArrayContent = Array.isArray(content) && content.length > 0\n\n // if the JSON Content is an array of nodes, create a fragment for each node\n if (isArrayContent) {\n return Fragment.fromArray(content.map(item => schema.nodeFromJSON(item)))\n }\n\n const node = schema.nodeFromJSON(content)\n\n if (options.errorOnInvalidContent) {\n node.check()\n }\n\n return node\n } catch (error) {\n if (options.errorOnInvalidContent) {\n throw new Error('[tiptap error]: Invalid JSON content', { cause: error as Error })\n }\n\n console.warn('[tiptap warn]: Invalid content.', 'Passed value:', content, 'Error:', error)\n\n return createNodeFromContent('', schema, options)\n }\n }\n\n if (isTextContent) {\n\n // Check for invalid content\n if (options.errorOnInvalidContent) {\n let hasInvalidContent = false\n let invalidContent = ''\n\n // A copy of the current schema with a catch-all node at the end\n const contentCheckSchema = new Schema({\n topNode: schema.spec.topNode,\n marks: schema.spec.marks,\n // Prosemirror's schemas are executed such that: the last to execute, matches last\n // This means that we can add a catch-all node at the end of the schema to catch any content that we don't know how to handle\n nodes: schema.spec.nodes.append({\n __tiptap__private__unknown__catch__all__node: {\n content: 'inline*',\n group: 'block',\n parseDOM: [\n {\n tag: '*',\n getAttrs: e => {\n // If this is ever called, we know that the content has something that we don't know how to handle in the schema\n hasInvalidContent = true\n // Try to stringify the element for a more helpful error message\n invalidContent = typeof e === 'string' ? e : e.outerHTML\n return null\n },\n },\n ],\n },\n }),\n })\n\n if (options.slice) {\n DOMParser.fromSchema(contentCheckSchema).parseSlice(elementFromString(content), options.parseOptions)\n } else {\n DOMParser.fromSchema(contentCheckSchema).parse(elementFromString(content), options.parseOptions)\n }\n\n if (options.errorOnInvalidContent && hasInvalidContent) {\n throw new Error('[tiptap error]: Invalid HTML content', { cause: new Error(`Invalid element found: ${invalidContent}`) })\n }\n }\n\n const parser = DOMParser.fromSchema(schema)\n\n if (options.slice) {\n return parser.parseSlice(elementFromString(content), options.parseOptions).content\n }\n\n return parser.parse(elementFromString(content), options.parseOptions)\n\n }\n\n return createNodeFromContent('', schema, options)\n}\n","import { Selection, Transaction } from '@tiptap/pm/state'\nimport { ReplaceAroundStep, ReplaceStep } from '@tiptap/pm/transform'\n\n// source: https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.js#L466\nexport function selectionToInsertionEnd(tr: Transaction, startLen: number, bias: number) {\n const last = tr.steps.length - 1\n\n if (last < startLen) {\n return\n }\n\n const step = tr.steps[last]\n\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\n return\n }\n\n const map = tr.mapping.maps[last]\n let end = 0\n\n map.forEach((_from, _to, _newFrom, newTo) => {\n if (end === 0) {\n end = newTo\n }\n })\n\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias))\n}\n","import { Fragment, Node as ProseMirrorNode, ParseOptions } from '@tiptap/pm/model'\n\nimport { createNodeFromContent } from '../helpers/createNodeFromContent.js'\nimport { selectionToInsertionEnd } from '../helpers/selectionToInsertionEnd.js'\nimport { Content, Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContentAt: {\n /**\n * Insert a node or string of HTML at a specific position.\n * @example editor.commands.insertContentAt(0, '

Example

')\n */\n insertContentAt: (\n /**\n * The position to insert the content at.\n */\n position: number | Range,\n\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n\n /**\n * Whether to apply input rules after inserting the content.\n */\n applyInputRules?: boolean\n\n /**\n * Whether to apply paste rules after inserting the content.\n */\n applyPasteRules?: boolean\n\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nconst isFragment = (nodeOrFragment: ProseMirrorNode | Fragment): nodeOrFragment is Fragment => {\n return !('type' in nodeOrFragment)\n}\n\nexport const insertContentAt: RawCommands['insertContentAt'] = (position, value, options) => ({ tr, dispatch, editor }) => {\n if (dispatch) {\n options = {\n parseOptions: {},\n updateSelection: true,\n applyInputRules: false,\n applyPasteRules: false,\n ...options,\n }\n\n let content: Fragment | ProseMirrorNode\n\n try {\n content = createNodeFromContent(value, editor.schema, {\n parseOptions: {\n preserveWhitespace: 'full',\n ...options.parseOptions,\n },\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n } catch (e) {\n editor.emit('contentError', {\n editor,\n error: e as Error,\n disableCollaboration: () => {\n console.error('[tiptap error]: Unable to disable collaboration at this point in time')\n },\n })\n return false\n }\n\n let { from, to } = typeof position === 'number' ? { from: position, to: position } : { from: position.from, to: position.to }\n\n let isOnlyTextContent = true\n let isOnlyBlockContent = true\n const nodes = isFragment(content) ? content : [content]\n\n nodes.forEach(node => {\n // check if added node is valid\n node.check()\n\n isOnlyTextContent = isOnlyTextContent ? node.isText && node.marks.length === 0 : false\n\n isOnlyBlockContent = isOnlyBlockContent ? node.isBlock : false\n })\n\n // check if we can replace the wrapping node by\n // the newly inserted content\n // example:\n // replace an empty paragraph by an inserted image\n // instead of inserting the image below the paragraph\n if (from === to && isOnlyBlockContent) {\n const { parent } = tr.doc.resolve(from)\n const isEmptyTextBlock = parent.isTextblock && !parent.type.spec.code && !parent.childCount\n\n if (isEmptyTextBlock) {\n from -= 1\n to += 1\n }\n }\n\n let newContent\n\n // if there is only plain text we have to use `insertText`\n // because this will keep the current marks\n if (isOnlyTextContent) {\n // if value is string, we can use it directly\n // otherwise if it is an array, we have to join it\n if (Array.isArray(value)) {\n newContent = value.map(v => v.text || '').join('')\n } else if (typeof value === 'object' && !!value && !!value.text) {\n newContent = value.text\n } else {\n newContent = value as string\n }\n\n tr.insertText(newContent, from, to)\n } else {\n newContent = content\n\n tr.replaceWith(from, to, newContent)\n }\n\n // set cursor at end of inserted content\n if (options.updateSelection) {\n selectionToInsertionEnd(tr, tr.steps.length - 1, -1)\n }\n\n if (options.applyInputRules) {\n tr.setMeta('applyInputRules', { from, text: newContent })\n }\n\n if (options.applyPasteRules) {\n tr.setMeta('applyPasteRules', { from, text: newContent })\n }\n }\n\n return true\n}\n","import {\n joinBackward as originalJoinBackward,\n joinDown as originalJoinDown,\n joinForward as originalJoinForward,\n joinUp as originalJoinUp,\n} from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinUp: {\n /**\n * Join the selected block or, if there is a text selection, the closest ancestor block of the selection that can be joined, with the sibling above it.\n * @example editor.commands.joinUp()\n */\n joinUp: () => ReturnType\n }\n joinDown: {\n /**\n * Join the selected block, or the closest ancestor of the selection that can be joined, with the sibling after it.\n * @example editor.commands.joinDown()\n */\n joinDown: () => ReturnType\n }\n joinBackward: {\n /**\n * If the selection is empty and at the start of a textblock, try to reduce the distance between that block and the one before it—if there's a block directly before it that can be joined, join them.\n * If not, try to move the selected block closer to the next one in the document structure by lifting it out of its\n * parent or moving it into a parent of the previous block. Will use the view for accurate (bidi-aware) start-of-textblock detection if given.\n * @example editor.commands.joinBackward()\n */\n joinBackward: () => ReturnType\n }\n joinForward: {\n /**\n * If the selection is empty and the cursor is at the end of a textblock, try to reduce or remove the boundary between that block and the one after it,\n * either by joining them or by moving the other block closer to this one in the tree structure.\n * Will use the view for accurate start-of-textblock detection if given.\n * @example editor.commands.joinForward()\n */\n joinForward: () => ReturnType\n }\n }\n}\n\nexport const joinUp: RawCommands['joinUp'] = () => ({ state, dispatch }) => {\n return originalJoinUp(state, dispatch)\n}\n\nexport const joinDown: RawCommands['joinDown'] = () => ({ state, dispatch }) => {\n return originalJoinDown(state, dispatch)\n}\n\nexport const joinBackward: RawCommands['joinBackward'] = () => ({ state, dispatch }) => {\n return originalJoinBackward(state, dispatch)\n}\n\nexport const joinForward: RawCommands['joinForward'] = () => ({ state, dispatch }) => {\n return originalJoinForward(state, dispatch)\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemBackward: {\n /**\n * Join two items backward.\n * @example editor.commands.joinItemBackward()\n */\n joinItemBackward: () => ReturnType\n }\n }\n}\n\nexport const joinItemBackward: RawCommands['joinItemBackward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, -1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemForward: {\n /**\n * Join two items Forwards.\n * @example editor.commands.joinItemForward()\n */\n joinItemForward: () => ReturnType\n }\n }\n}\n\nexport const joinItemForward: RawCommands['joinItemForward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, +1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinTextblockBackward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockBackward: {\n /**\n * A more limited form of joinBackward that only tries to join the current textblock to the one before it, if the cursor is at the start of a textblock.\n */\n joinTextblockBackward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockBackward: RawCommands['joinTextblockBackward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","import { joinTextblockForward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockForward: {\n /**\n * A more limited form of joinForward that only tries to join the current textblock to the one after it, if the cursor is at the end of a textblock.\n */\n joinTextblockForward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockForward: RawCommands['joinTextblockForward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","export function isMacOS(): boolean {\n return typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n}\n","import { RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nfunction normalizeKeyName(name: string) {\n const parts = name.split(/-(?!$)/)\n let result = parts[parts.length - 1]\n\n if (result === 'Space') {\n result = ' '\n }\n\n let alt\n let ctrl\n let shift\n let meta\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const mod = parts[i]\n\n if (/^(cmd|meta|m)$/i.test(mod)) {\n meta = true\n } else if (/^a(lt)?$/i.test(mod)) {\n alt = true\n } else if (/^(c|ctrl|control)$/i.test(mod)) {\n ctrl = true\n } else if (/^s(hift)?$/i.test(mod)) {\n shift = true\n } else if (/^mod$/i.test(mod)) {\n if (isiOS() || isMacOS()) {\n meta = true\n } else {\n ctrl = true\n }\n } else {\n throw new Error(`Unrecognized modifier name: ${mod}`)\n }\n }\n\n if (alt) {\n result = `Alt-${result}`\n }\n\n if (ctrl) {\n result = `Ctrl-${result}`\n }\n\n if (meta) {\n result = `Meta-${result}`\n }\n\n if (shift) {\n result = `Shift-${result}`\n }\n\n return result\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n keyboardShortcut: {\n /**\n * Trigger a keyboard shortcut.\n * @param name The name of the keyboard shortcut.\n * @example editor.commands.keyboardShortcut('Mod-b')\n */\n keyboardShortcut: (name: string) => ReturnType,\n }\n }\n}\n\nexport const keyboardShortcut: RawCommands['keyboardShortcut'] = name => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n const keys = normalizeKeyName(name).split(/-(?!$)/)\n const key = keys.find(item => !['Alt', 'Ctrl', 'Meta', 'Shift'].includes(item))\n const event = new KeyboardEvent('keydown', {\n key: key === 'Space'\n ? ' '\n : key,\n altKey: keys.includes('Alt'),\n ctrlKey: keys.includes('Ctrl'),\n metaKey: keys.includes('Meta'),\n shiftKey: keys.includes('Shift'),\n bubbles: true,\n cancelable: true,\n })\n\n const capturedTransaction = editor.captureTransaction(() => {\n view.someProp('handleKeyDown', f => f(view, event))\n })\n\n capturedTransaction?.steps.forEach(step => {\n const newStep = step.map(tr.mapping)\n\n if (newStep && dispatch) {\n tr.maybeStep(newStep)\n }\n })\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { NodeRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getNodeType } from './getNodeType.js'\n\nexport function isNodeActive(\n state: EditorState,\n typeOrName: NodeType | string | null,\n attributes: Record = {},\n): boolean {\n const { from, to, empty } = state.selection\n const type = typeOrName ? getNodeType(typeOrName, state.schema) : null\n\n const nodeRanges: NodeRange[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isText) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n\n nodeRanges.push({\n node,\n from: relativeFrom,\n to: relativeTo,\n })\n })\n\n const selectionRange = to - from\n const matchedNodeRanges = nodeRanges\n .filter(nodeRange => {\n if (!type) {\n return true\n }\n\n return type.name === nodeRange.node.type.name\n })\n .filter(nodeRange => objectIncludes(nodeRange.node.attrs, attributes, { strict: false }))\n\n if (empty) {\n return !!matchedNodeRanges.length\n }\n\n const range = matchedNodeRanges.reduce((sum, nodeRange) => sum + nodeRange.to - nodeRange.from, 0)\n\n return range >= selectionRange\n}\n","import { lift as originalLift } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n lift: {\n /**\n * Removes an existing wrap if possible lifting the node out of it\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.lift('paragraph')\n * @example editor.commands.lift('heading', { level: 1 })\n */\n lift: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const lift: RawCommands['lift'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (!isActive) {\n return false\n }\n\n return originalLift(state, dispatch)\n}\n","import { liftEmptyBlock as originalLiftEmptyBlock } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftEmptyBlock: {\n /**\n * If the cursor is in an empty textblock that can be lifted, lift the block.\n * @example editor.commands.liftEmptyBlock()\n */\n liftEmptyBlock: () => ReturnType,\n }\n }\n}\n\nexport const liftEmptyBlock: RawCommands['liftEmptyBlock'] = () => ({ state, dispatch }) => {\n return originalLiftEmptyBlock(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { liftListItem as originalLiftListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftListItem: {\n /**\n * Create a command to lift the list item around the selection up into a wrapping list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.liftListItem('listItem')\n */\n liftListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const liftListItem: RawCommands['liftListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalLiftListItem(type)(state, dispatch)\n}\n","import { newlineInCode as originalNewlineInCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n newlineInCode: {\n /**\n * Add a newline character in code.\n * @example editor.commands.newlineInCode()\n */\n newlineInCode: () => ReturnType\n }\n }\n}\n\nexport const newlineInCode: RawCommands['newlineInCode'] = () => ({ state, dispatch }) => {\n return originalNewlineInCode(state, dispatch)\n}\n","import { Schema } from '@tiptap/pm/model'\n\n/**\n * Get the type of a schema item by its name.\n * @param name The name of the schema item\n * @param schema The Prosemiror schema to search in\n * @returns The type of the schema item (`node` or `mark`), or null if it doesn't exist\n */\nexport function getSchemaTypeNameByName(name: string, schema: Schema): 'node' | 'mark' | null {\n if (schema.nodes[name]) {\n return 'node'\n }\n\n if (schema.marks[name]) {\n return 'mark'\n }\n\n return null\n}\n","/**\n * Remove a property or an array of properties from an object\n * @param obj Object\n * @param key Key to remove\n */\nexport function deleteProps(obj: Record, propOrProps: string | string[]): Record {\n const props = typeof propOrProps === 'string'\n ? [propOrProps]\n : propOrProps\n\n return Object\n .keys(obj)\n .reduce((newObj: Record, prop) => {\n if (!props.includes(prop)) {\n newObj[prop] = obj[prop]\n }\n\n return newObj\n }, {})\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\nimport { deleteProps } from '../utilities/deleteProps.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n resetAttributes: {\n /**\n * Resets some node attributes to the default value.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node to reset.\n * @example editor.commands.resetAttributes('heading', 'level')\n */\n resetAttributes: (\n typeOrName: string | NodeType | MarkType,\n attributes: string | string[],\n ) => ReturnType\n }\n }\n}\n\nexport const resetAttributes: RawCommands['resetAttributes'] = (typeOrName, attributes) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n state.doc.nodesBetween(range.$from.pos, range.$to.pos, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, deleteProps(node.attrs, attributes))\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n tr.addMark(\n pos,\n pos + node.nodeSize,\n markType.create(deleteProps(mark.attrs, attributes)),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n scrollIntoView: {\n /**\n * Scroll the selection into view.\n * @example editor.commands.scrollIntoView()\n */\n scrollIntoView: () => ReturnType,\n }\n }\n}\n\nexport const scrollIntoView: RawCommands['scrollIntoView'] = () => ({ tr, dispatch }) => {\n if (dispatch) {\n tr.scrollIntoView()\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectAll: {\n /**\n * Select the whole document.\n * @example editor.commands.selectAll()\n */\n selectAll: () => ReturnType,\n }\n }\n}\n\nexport const selectAll: RawCommands['selectAll'] = () => ({ tr, commands }) => {\n return commands.setTextSelection({\n from: 0,\n to: tr.doc.content.size,\n })\n}\n","import { selectNodeBackward as originalSelectNodeBackward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeBackward: {\n /**\n * Select a node backward.\n * @example editor.commands.selectNodeBackward()\n */\n selectNodeBackward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeBackward: RawCommands['selectNodeBackward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeBackward(state, dispatch)\n}\n","import { selectNodeForward as originalSelectNodeForward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeForward: {\n /**\n * Select a node forward.\n * @example editor.commands.selectNodeForward()\n */\n selectNodeForward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeForward: RawCommands['selectNodeForward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeForward(state, dispatch)\n}\n","import { selectParentNode as originalSelectParentNode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectParentNode: {\n /**\n * Select the parent node.\n * @example editor.commands.selectParentNode()\n */\n selectParentNode: () => ReturnType\n }\n }\n}\n\nexport const selectParentNode: RawCommands['selectParentNode'] = () => ({ state, dispatch }) => {\n return originalSelectParentNode(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockEnd as originalSelectTextblockEnd } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockEnd: {\n /**\n * Moves the cursor to the end of current text block.\n * @example editor.commands.selectTextblockEnd()\n */\n selectTextblockEnd: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockEnd: RawCommands['selectTextblockEnd'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockEnd(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockStart as originalSelectTextblockStart } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockStart: {\n /**\n * Moves the cursor to the start of current text block.\n * @example editor.commands.selectTextblockStart()\n */\n selectTextblockStart: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockStart: RawCommands['selectTextblockStart'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockStart(state, dispatch)\n}\n","import { Node as ProseMirrorNode, ParseOptions, Schema } from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { createNodeFromContent } from './createNodeFromContent.js'\n\n/**\n * Create a new Prosemirror document node from content.\n * @param content The JSON or HTML content to create the document from\n * @param schema The Prosemirror schema to use for the document\n * @param parseOptions Options for the parser\n * @returns The created Prosemirror document node\n */\nexport function createDocument(\n content: Content,\n schema: Schema,\n parseOptions: ParseOptions = {},\n options: { errorOnInvalidContent?: boolean } = {},\n): ProseMirrorNode {\n return createNodeFromContent(content, schema, {\n slice: false,\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent,\n }) as ProseMirrorNode\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { createDocument } from '../helpers/createDocument.js'\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setContent: {\n /**\n * Replace the whole document with new content.\n * @param content The new content.\n * @param emitUpdate Whether to emit an update event.\n * @param parseOptions Options for parsing the content.\n * @example editor.commands.setContent('

Example text

')\n */\n setContent: (\n /**\n * The new content.\n */\n content: Content,\n\n /**\n * Whether to emit an update event.\n * @default false\n */\n emitUpdate?: boolean,\n\n /**\n * Options for parsing the content.\n * @default {}\n */\n parseOptions?: ParseOptions,\n /**\n * Options for `setContent`.\n */\n options?: {\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const setContent: RawCommands['setContent'] = (content, emitUpdate = false, parseOptions = {}, options = {}) => ({\n editor, tr, dispatch, commands,\n}) => {\n const { doc } = tr\n\n // This is to keep backward compatibility with the previous behavior\n // TODO remove this in the next major version\n if (parseOptions.preserveWhitespace !== 'full') {\n const document = createDocument(content, editor.schema, parseOptions, {\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n\n if (dispatch) {\n tr.replaceWith(0, doc.content.size, document).setMeta('preventUpdate', !emitUpdate)\n }\n return true\n }\n\n if (dispatch) {\n tr.setMeta('preventUpdate', !emitUpdate)\n }\n\n return commands.insertContentAt(\n { from: 0, to: doc.content.size },\n content,\n {\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n },\n )\n}\n","import { Mark, MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkType } from './getMarkType.js'\n\nexport function getMarkAttributes(\n state: EditorState,\n typeOrName: string | MarkType,\n): Record {\n const type = getMarkType(typeOrName, state.schema)\n const { from, to, empty } = state.selection\n const marks: Mark[] = []\n\n if (empty) {\n if (state.storedMarks) {\n marks.push(...state.storedMarks)\n }\n\n marks.push(...state.selection.$head.marks())\n } else {\n state.doc.nodesBetween(from, to, node => {\n marks.push(...node.marks)\n })\n }\n\n const mark = marks.find(markItem => markItem.type.name === type.name)\n\n if (!mark) {\n return {}\n }\n\n return { ...mark.attrs }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { Transform } from '@tiptap/pm/transform'\n\n/**\n * Returns a new `Transform` based on all steps of the passed transactions.\n * @param oldDoc The Prosemirror node to start from\n * @param transactions The transactions to combine\n * @returns A new `Transform` with all steps of the passed transactions\n */\nexport function combineTransactionSteps(\n oldDoc: ProseMirrorNode,\n transactions: Transaction[],\n): Transform {\n const transform = new Transform(oldDoc)\n\n transactions.forEach(transaction => {\n transaction.steps.forEach(step => {\n transform.step(step)\n })\n })\n\n return transform\n}\n","import { ContentMatch, NodeType } from '@tiptap/pm/model'\n\n/**\n * Gets the default block type at a given match\n * @param match The content match to get the default block type from\n * @returns The default block type or null\n */\nexport function defaultBlockAt(match: ContentMatch): NodeType | null {\n for (let i = 0; i < match.edgeCount; i += 1) {\n const { type } = match.edge(i)\n\n if (type.isTextblock && !type.hasRequiredAttrs()) {\n return type\n }\n }\n\n return null\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate } from '../types.js'\n\n/**\n * Find children inside a Prosemirror node that match a predicate.\n * @param node The Prosemirror node to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildren(node: ProseMirrorNode, predicate: Predicate): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n node.descendants((child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate, Range } from '../types.js'\n\n/**\n * Same as `findChildren` but searches only within a `range`.\n * @param node The Prosemirror node to search in\n * @param range The range to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildrenInRange(\n node: ProseMirrorNode,\n range: Range,\n predicate: Predicate,\n): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n // if (range.from === range.to) {\n // const nodeAt = node.nodeAt(range.from)\n\n // if (nodeAt) {\n // nodesWithPos.push({\n // node: nodeAt,\n // pos: range.from,\n // })\n // }\n // }\n\n node.nodesBetween(range.from, range.to, (child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Predicate } from '../types.js'\n\n/**\n * Finds the closest parent node to a resolved position that matches a predicate.\n * @param $pos The resolved position to search from\n * @param predicate The predicate to match\n * @returns The closest parent node to the resolved position that matches the predicate\n * @example ```js\n * findParentNodeClosestToPos($from, node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNodeClosestToPos(\n $pos: ResolvedPos,\n predicate: Predicate,\n):\n | {\n pos: number\n start: number\n depth: number\n node: ProseMirrorNode\n }\n | undefined {\n for (let i = $pos.depth; i > 0; i -= 1) {\n const node = $pos.node(i)\n\n if (predicate(node)) {\n return {\n pos: i > 0 ? $pos.before(i) : 0,\n start: $pos.start(i),\n depth: i,\n node,\n }\n }\n }\n}\n","import { Selection } from '@tiptap/pm/state'\n\nimport { Predicate } from '../types.js'\nimport { findParentNodeClosestToPos } from './findParentNodeClosestToPos.js'\n\n/**\n * Finds the closest parent node to the current selection that matches a predicate.\n * @param predicate The predicate to match\n * @returns A command that finds the closest parent node to the current selection that matches the predicate\n * @example ```js\n * findParentNode(node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNode(predicate: Predicate) {\n return (selection: Selection) => findParentNodeClosestToPos(selection.$from, predicate)\n}\n","import { DOMSerializer, Fragment, Schema } from '@tiptap/pm/model'\n\nexport function getHTMLFromFragment(fragment: Fragment, schema: Schema): string {\n const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment)\n\n const temporaryDocument = document.implementation.createHTMLDocument()\n const container = temporaryDocument.createElement('div')\n\n container.appendChild(documentFragment)\n\n return container.innerHTML\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { Editor } from '../Editor.js'\nimport { ExtensionManager } from '../ExtensionManager.js'\nimport { Extensions } from '../types.js'\nimport { getSchemaByResolvedExtensions } from './getSchemaByResolvedExtensions.js'\n\nexport function getSchema(extensions: Extensions, editor?: Editor): Schema {\n const resolvedExtensions = ExtensionManager.resolve(extensions)\n\n return getSchemaByResolvedExtensions(resolvedExtensions, editor)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent } from '../types.js'\nimport { getHTMLFromFragment } from './getHTMLFromFragment.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate HTML from a JSONContent\n * @param doc The JSONContent to generate HTML from\n * @param extensions The extensions to use for the schema\n * @returns The generated HTML\n */\nexport function generateHTML(doc: JSONContent, extensions: Extensions): string {\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getHTMLFromFragment(contentNode.content, schema)\n}\n","import { DOMParser } from '@tiptap/pm/model'\n\nimport { Extensions } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate JSONContent from HTML\n * @param html The HTML to generate JSONContent from\n * @param extensions The extensions to use for the schema\n * @returns The generated JSONContent\n */\nexport function generateJSON(html: string, extensions: Extensions): Record {\n const schema = getSchema(extensions)\n const dom = elementFromString(html)\n\n return DOMParser.fromSchema(schema).parse(dom).toJSON()\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\nimport { getTextBetween } from './getTextBetween.js'\n\n/**\n * Gets the text of a Prosemirror node\n * @param node The Prosemirror node\n * @param options Options for the text serializer & block separator\n * @returns The text of the node\n * @example ```js\n * const text = getText(node, { blockSeparator: '\\n' })\n * ```\n */\nexport function getText(\n node: ProseMirrorNode,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n) {\n const range = {\n from: 0,\n to: node.content.size,\n }\n\n return getTextBetween(node, range, options)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent, TextSerializer } from '../types.js'\nimport { getSchema } from './getSchema.js'\nimport { getText } from './getText.js'\nimport { getTextSerializersFromSchema } from './getTextSerializersFromSchema.js'\n\n/**\n * Generate raw text from a JSONContent\n * @param doc The JSONContent to generate text from\n * @param extensions The extensions to use for the schema\n * @param options Options for the text generation f.e. blockSeparator or textSerializers\n * @returns The generated text\n */\nexport function generateText(\n doc: JSONContent,\n extensions: Extensions,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getText(contentNode, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(schema),\n ...textSerializers,\n },\n })\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getNodeType } from './getNodeType.js'\n\nexport function getNodeAttributes(\n state: EditorState,\n typeOrName: string | NodeType,\n): Record {\n const type = getNodeType(typeOrName, state.schema)\n const { from, to } = state.selection\n const nodes: Node[] = []\n\n state.doc.nodesBetween(from, to, node => {\n nodes.push(node)\n })\n\n const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name)\n\n if (!node) {\n return {}\n }\n\n return { ...node.attrs }\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from './getMarkAttributes.js'\nimport { getNodeAttributes } from './getNodeAttributes.js'\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\n\n/**\n * Get node or mark attributes by type or name on the current editor state\n * @param state The current editor state\n * @param typeOrName The node or mark type or name\n * @returns The attributes of the node or mark or an empty object\n */\nexport function getAttributes(\n state: EditorState,\n typeOrName: string | NodeType | MarkType,\n): Record {\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (schemaType === 'node') {\n return getNodeAttributes(state, typeOrName as NodeType)\n }\n\n if (schemaType === 'mark') {\n return getMarkAttributes(state, typeOrName as MarkType)\n }\n\n return {}\n}\n","/**\n * Removes duplicated values within an array.\n * Supports numbers, strings and objects.\n */\nexport function removeDuplicates(array: T[], by = JSON.stringify): T[] {\n const seen: Record = {}\n\n return array.filter(item => {\n const key = by(item)\n\n return Object.prototype.hasOwnProperty.call(seen, key)\n ? false\n : (seen[key] = true)\n })\n}\n","import { Step, Transform } from '@tiptap/pm/transform'\n\nimport { Range } from '../types.js'\nimport { removeDuplicates } from '../utilities/removeDuplicates.js'\n\nexport type ChangedRange = {\n oldRange: Range,\n newRange: Range,\n}\n\n/**\n * Removes duplicated ranges and ranges that are\n * fully captured by other ranges.\n */\nfunction simplifyChangedRanges(changes: ChangedRange[]): ChangedRange[] {\n const uniqueChanges = removeDuplicates(changes)\n\n return uniqueChanges.length === 1\n ? uniqueChanges\n : uniqueChanges.filter((change, index) => {\n const rest = uniqueChanges.filter((_, i) => i !== index)\n\n return !rest.some(otherChange => {\n return change.oldRange.from >= otherChange.oldRange.from\n && change.oldRange.to <= otherChange.oldRange.to\n && change.newRange.from >= otherChange.newRange.from\n && change.newRange.to <= otherChange.newRange.to\n })\n })\n}\n\n/**\n * Returns a list of changed ranges\n * based on the first and last state of all steps.\n */\nexport function getChangedRanges(transform: Transform): ChangedRange[] {\n const { mapping, steps } = transform\n const changes: ChangedRange[] = []\n\n mapping.maps.forEach((stepMap, index) => {\n const ranges: Range[] = []\n\n // This accounts for step changes where no range was actually altered\n // e.g. when setting a mark, node attribute, etc.\n // @ts-ignore\n if (!stepMap.ranges.length) {\n const { from, to } = steps[index] as Step & {\n from?: number,\n to?: number,\n }\n\n if (from === undefined || to === undefined) {\n return\n }\n\n ranges.push({ from, to })\n } else {\n stepMap.forEach((from, to) => {\n ranges.push({ from, to })\n })\n }\n\n ranges.forEach(({ from, to }) => {\n const newStart = mapping.slice(index).map(from, -1)\n const newEnd = mapping.slice(index).map(to)\n const oldStart = mapping.invert().map(newStart, -1)\n const oldEnd = mapping.invert().map(newEnd)\n\n changes.push({\n oldRange: {\n from: oldStart,\n to: oldEnd,\n },\n newRange: {\n from: newStart,\n to: newEnd,\n },\n })\n })\n })\n\n return simplifyChangedRanges(changes)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { JSONContent } from '../types.js'\n\ninterface DebugJSONContent extends JSONContent {\n from: number\n to: number\n}\n\nexport function getDebugJSON(node: ProseMirrorNode, startOffset = 0): DebugJSONContent {\n const isTopNode = node.type === node.type.schema.topNodeType\n const increment = isTopNode ? 0 : 1\n const from = startOffset\n const to = from + node.nodeSize\n const marks = node.marks.map(mark => {\n const output: { type: string; attrs?: Record } = {\n type: mark.type.name,\n }\n\n if (Object.keys(mark.attrs).length) {\n output.attrs = { ...mark.attrs }\n }\n\n return output\n })\n const attrs = { ...node.attrs }\n const output: DebugJSONContent = {\n type: node.type.name,\n from,\n to,\n }\n\n if (Object.keys(attrs).length) {\n output.attrs = attrs\n }\n\n if (marks.length) {\n output.marks = marks\n }\n\n if (node.content.childCount) {\n output.content = []\n\n node.forEach((child, offset) => {\n output.content?.push(getDebugJSON(child, startOffset + offset + increment))\n })\n }\n\n if (node.text) {\n output.text = node.text\n }\n\n return output\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { MarkRange } from '../types.js'\nimport { getMarkRange } from './getMarkRange.js'\n\nexport function getMarksBetween(from: number, to: number, doc: ProseMirrorNode): MarkRange[] {\n const marks: MarkRange[] = []\n\n // get all inclusive marks on empty selection\n if (from === to) {\n doc\n .resolve(from)\n .marks()\n .forEach(mark => {\n const $pos = doc.resolve(from)\n const range = getMarkRange($pos, mark.type)\n\n if (!range) {\n return\n }\n\n marks.push({\n mark,\n ...range,\n })\n })\n } else {\n doc.nodesBetween(from, to, (node, pos) => {\n if (!node || node?.nodeSize === undefined) {\n return\n }\n\n marks.push(\n ...node.marks.map(mark => ({\n from: pos,\n to: pos + node.nodeSize,\n mark,\n })),\n )\n })\n }\n\n return marks\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\n/**\n * Finds the first node of a given type or name in the current selection.\n * @param state The editor state.\n * @param typeOrName The node type or name.\n * @param pos The position to start searching from.\n * @param maxDepth The maximum depth to search.\n * @returns The node and the depth as an array.\n */\nexport const getNodeAtPosition = (state: EditorState, typeOrName: string | NodeType, pos: number, maxDepth = 20) => {\n const $pos = state.doc.resolve(pos)\n\n let currentDepth = maxDepth\n let node: Node | null = null\n\n while (currentDepth > 0 && node === null) {\n const currentNode = $pos.node(currentDepth)\n\n if (currentNode?.type.name === typeOrName) {\n node = currentNode\n } else {\n currentDepth -= 1\n }\n }\n\n return [node, currentDepth] as [Node | null, number]\n}\n","import { ExtensionAttribute } from '../types.js'\n\n/**\n * Return attributes of an extension that should be splitted by keepOnSplit flag\n * @param extensionAttributes Array of extension attributes\n * @param typeName The type of the extension\n * @param attributes The attributes of the extension\n * @returns The splitted attributes\n */\nexport function getSplittedAttributes(\n extensionAttributes: ExtensionAttribute[],\n typeName: string,\n attributes: Record,\n): Record {\n return Object.fromEntries(Object\n .entries(attributes)\n .filter(([name]) => {\n const extensionAttribute = extensionAttributes.find(item => {\n return item.type === typeName && item.name === name\n })\n\n if (!extensionAttribute) {\n return false\n }\n\n return extensionAttribute.attribute.keepOnSplit\n }))\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { MarkRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getMarkType } from './getMarkType.js'\n\nexport function isMarkActive(\n state: EditorState,\n typeOrName: MarkType | string | null,\n attributes: Record = {},\n): boolean {\n const { empty, ranges } = state.selection\n const type = typeOrName ? getMarkType(typeOrName, state.schema) : null\n\n if (empty) {\n return !!(state.storedMarks || state.selection.$from.marks())\n .filter(mark => {\n if (!type) {\n return true\n }\n\n return type.name === mark.type.name\n })\n .find(mark => objectIncludes(mark.attrs, attributes, { strict: false }))\n }\n\n let selectionRange = 0\n const markRanges: MarkRange[] = []\n\n ranges.forEach(({ $from, $to }) => {\n const from = $from.pos\n const to = $to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isText && !node.marks.length) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n const range = relativeTo - relativeFrom\n\n selectionRange += range\n\n markRanges.push(\n ...node.marks.map(mark => ({\n mark,\n from: relativeFrom,\n to: relativeTo,\n })),\n )\n })\n })\n\n if (selectionRange === 0) {\n return false\n }\n\n // calculate range of matched mark\n const matchedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return type.name === markRange.mark.type.name\n })\n .filter(markRange => objectIncludes(markRange.mark.attrs, attributes, { strict: false }))\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // calculate range of marks that excludes the searched mark\n // for example `code` doesn’t allow any other marks\n const excludedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return markRange.mark.type !== type && markRange.mark.type.excludes(type)\n })\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // we only include the result of `excludedRange`\n // if there is a match at all\n const range = matchedRange > 0 ? matchedRange + excludedRange : matchedRange\n\n return range >= selectionRange\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\nimport { isMarkActive } from './isMarkActive.js'\nimport { isNodeActive } from './isNodeActive.js'\n\nexport function isActive(\n state: EditorState,\n name: string | null,\n attributes: Record = {},\n): boolean {\n if (!name) {\n return isNodeActive(state, null, attributes) || isMarkActive(state, null, attributes)\n }\n\n const schemaType = getSchemaTypeNameByName(name, state.schema)\n\n if (schemaType === 'node') {\n return isNodeActive(state, name, attributes)\n }\n\n if (schemaType === 'mark') {\n return isMarkActive(state, name, attributes)\n }\n\n return false\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { findParentNode } from './findParentNode.js'\n\nexport const isAtEndOfNode = (state: EditorState, nodeType?: string) => {\n const { $from, $to, $anchor } = state.selection\n\n if (nodeType) {\n const parentNode = findParentNode(node => node.type.name === nodeType)(state.selection)\n\n if (!parentNode) {\n return false\n }\n\n const $parentPos = state.doc.resolve(parentNode.pos + 1)\n\n if ($anchor.pos + 1 === $parentPos.end()) {\n return true\n }\n\n return false\n }\n\n if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nexport const isAtStartOfNode = (state: EditorState) => {\n const { $from, $to } = state.selection\n\n if ($from.parentOffset > 0 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { getExtensionField } from '../helpers/getExtensionField.js'\nimport { NodeConfig } from '../index.js'\nimport { Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nexport function isList(name: string, extensions: Extensions): boolean {\n const { nodeExtensions } = splitExtensions(extensions)\n const extension = nodeExtensions.find(item => item.name === name)\n\n if (!extension) {\n return false\n }\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n const group = callOrReturn(getExtensionField(extension, 'group', context))\n\n if (typeof group !== 'string') {\n return false\n }\n\n return group.split(' ').includes('list')\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\n/**\n * Returns true if the given prosemirror node is empty.\n */\nexport function isNodeEmpty(\n node: ProseMirrorNode,\n {\n checkChildren = true,\n ignoreWhitespace = false,\n }: {\n /**\n * When true (default), it will also check if all children are empty.\n */\n checkChildren?: boolean;\n /**\n * When true, it will ignore whitespace when checking for emptiness.\n */\n ignoreWhitespace?: boolean;\n } = {},\n): boolean {\n if (ignoreWhitespace) {\n if (node.type.name === 'hardBreak') {\n // Hard breaks are considered empty\n return true\n }\n if (node.isText) {\n return /^\\s*$/m.test(node.text ?? '')\n }\n }\n\n if (node.isText) {\n return !node.text\n }\n\n if (node.isAtom || node.isLeaf) {\n return false\n }\n\n if (node.content.childCount === 0) {\n return true\n }\n\n if (checkChildren) {\n let isContentEmpty = true\n\n node.content.forEach(childNode => {\n if (isContentEmpty === false) {\n // Exit early for perf\n return\n }\n\n if (!isNodeEmpty(childNode, { ignoreWhitespace, checkChildren })) {\n isContentEmpty = false\n }\n })\n\n return isContentEmpty\n }\n\n return false\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nexport function isNodeSelection(value: unknown): value is NodeSelection {\n return value instanceof NodeSelection\n}\n","import { EditorView } from '@tiptap/pm/view'\n\nimport { minMax } from '../utilities/minMax.js'\n\nexport function posToDOMRect(view: EditorView, from: number, to: number): DOMRect {\n const minPos = 0\n const maxPos = view.state.doc.content.size\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const start = view.coordsAtPos(resolvedFrom)\n const end = view.coordsAtPos(resolvedEnd, -1)\n const top = Math.min(start.top, end.top)\n const bottom = Math.max(start.bottom, end.bottom)\n const left = Math.min(start.left, end.left)\n const right = Math.max(start.right, end.right)\n const width = right - left\n const height = bottom - top\n const x = left\n const y = top\n const data = {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x,\n y,\n }\n\n return {\n ...data,\n toJSON: () => data,\n }\n}\n","import { MarkType, ResolvedPos } from '@tiptap/pm/model'\nimport { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from '../helpers/getMarkAttributes.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isTextSelection } from '../helpers/index.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMark: {\n /**\n * Add a mark with new attributes.\n * @param typeOrName The mark type or name.\n * @example editor.commands.setMark('bold', { level: 1 })\n */\n setMark: (typeOrName: string | MarkType, attributes?: Record) => ReturnType\n }\n }\n}\n\nfunction canSetMark(state: EditorState, tr: Transaction, newMarkType: MarkType) {\n const { selection } = tr\n let cursor: ResolvedPos | null = null\n\n if (isTextSelection(selection)) {\n cursor = selection.$cursor\n }\n\n if (cursor) {\n const currentMarks = state.storedMarks ?? cursor.marks()\n\n // There can be no current marks that exclude the new mark\n return (\n !!newMarkType.isInSet(currentMarks)\n || !currentMarks.some(mark => mark.type.excludes(newMarkType))\n )\n }\n\n const { ranges } = selection\n\n return ranges.some(({ $from, $to }) => {\n let someNodeSupportsMark = $from.depth === 0\n ? state.doc.inlineContent && state.doc.type.allowsMarkType(newMarkType)\n : false\n\n state.doc.nodesBetween($from.pos, $to.pos, (node, _pos, parent) => {\n // If we already found a mark that we can enable, return false to bypass the remaining search\n if (someNodeSupportsMark) {\n return false\n }\n\n if (node.isInline) {\n const parentAllowsMarkType = !parent || parent.type.allowsMarkType(newMarkType)\n const currentMarksAllowMarkType = !!newMarkType.isInSet(node.marks)\n || !node.marks.some(otherMark => otherMark.type.excludes(newMarkType))\n\n someNodeSupportsMark = parentAllowsMarkType && currentMarksAllowMarkType\n }\n return !someNodeSupportsMark\n })\n\n return someNodeSupportsMark\n })\n}\nexport const setMark: RawCommands['setMark'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n const type = getMarkType(typeOrName, state.schema)\n\n if (dispatch) {\n if (empty) {\n const oldAttributes = getMarkAttributes(state, type)\n\n tr.addStoredMark(\n type.create({\n ...oldAttributes,\n ...attributes,\n }),\n )\n } else {\n ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n const someHasMark = node.marks.find(mark => mark.type === type)\n\n // if there is already a mark of this type\n // we know that we have to merge its attributes\n // otherwise we add a fresh new mark\n if (someHasMark) {\n node.marks.forEach(mark => {\n if (type === mark.type) {\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n type.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n } else {\n tr.addMark(trimmedFrom, trimmedTo, type.create(attributes))\n }\n })\n })\n }\n }\n\n return canSetMark(state, tr, type)\n}\n","import type { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMeta: {\n /**\n * Store a metadata property in the current transaction.\n * @param key The key of the metadata property.\n * @param value The value to store.\n * @example editor.commands.setMeta('foo', 'bar')\n */\n setMeta: (key: string | Plugin | PluginKey, value: any) => ReturnType,\n }\n }\n}\n\nexport const setMeta: RawCommands['setMeta'] = (key, value) => ({ tr }) => {\n tr.setMeta(key, value)\n\n return true\n}\n","import { setBlockType } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNode: {\n /**\n * Replace a given range with a node.\n * @param typeOrName The type or name of the node\n * @param attributes The attributes of the node\n * @example editor.commands.setNode('paragraph')\n */\n setNode: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const setNode: RawCommands['setNode'] = (typeOrName, attributes = {}) => ({ state, dispatch, chain }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n // TODO: use a fallback like insertContent?\n if (!type.isTextblock) {\n console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.')\n\n return false\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(({ commands }) => {\n const canSetBlock = setBlockType(type, attributes)(state)\n\n if (canSetBlock) {\n return true\n }\n\n return commands.clearNodes()\n })\n .command(({ state: updatedState }) => {\n return setBlockType(type, attributes)(updatedState, dispatch)\n })\n .run()\n )\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNodeSelection: {\n /**\n * Creates a NodeSelection.\n * @param position - Position of the node.\n * @example editor.commands.setNodeSelection(10)\n */\n setNodeSelection: (position: number) => ReturnType\n }\n }\n}\n\nexport const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const from = minMax(position, 0, doc.content.size)\n const selection = NodeSelection.create(doc, from)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { Range, RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setTextSelection: {\n /**\n * Creates a TextSelection.\n * @param position The position of the selection.\n * @example editor.commands.setTextSelection(10)\n */\n setTextSelection: (position: number | Range) => ReturnType\n }\n }\n}\n\nexport const setTextSelection: RawCommands['setTextSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const { from, to } = typeof position === 'number' ? { from: position, to: position } : position\n const minPos = TextSelection.atStart(doc).from\n const maxPos = TextSelection.atEnd(doc).to\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { sinkListItem as originalSinkListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n sinkListItem: {\n /**\n * Sink the list item down into an inner list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.sinkListItem('listItem')\n */\n sinkListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const sinkListItem: RawCommands['sinkListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalSinkListItem(type)(state, dispatch)\n}\n","import { EditorState, NodeSelection, TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { defaultBlockAt } from '../helpers/defaultBlockAt.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\nfunction ensureMarks(state: EditorState, splittableMarks?: string[]) {\n const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks?.includes(mark.type.name))\n\n state.tr.ensureMarks(filteredMarks)\n }\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitBlock: {\n /**\n * Forks a new node from an existing node.\n * @param options.keepMarks Keep marks from the previous node.\n * @example editor.commands.splitBlock()\n * @example editor.commands.splitBlock({ keepMarks: true })\n */\n splitBlock: (options?: { keepMarks?: boolean }) => ReturnType\n }\n }\n}\n\nexport const splitBlock: RawCommands['splitBlock'] = ({ keepMarks = true } = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const { selection, doc } = tr\n const { $from, $to } = selection\n const extensionAttributes = editor.extensionManager.attributes\n const newAttributes = getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n )\n\n if (selection instanceof NodeSelection && selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(doc, $from.pos)) {\n return false\n }\n\n if (dispatch) {\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.split($from.pos).scrollIntoView()\n }\n\n return true\n }\n\n if (!$from.parent.isBlock) {\n return false\n }\n\n const atEnd = $to.parentOffset === $to.parent.content.size\n\n const deflt = $from.depth === 0\n ? undefined\n : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)))\n\n let types = atEnd && deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types)\n\n if (\n !types\n && !can\n && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)\n ) {\n can = true\n types = deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n }\n\n if (dispatch) {\n if (can) {\n if (selection instanceof TextSelection) {\n tr.deleteSelection()\n }\n\n tr.split(tr.mapping.map($from.pos), 1, types)\n\n if (deflt && !atEnd && !$from.parentOffset && $from.parent.type !== deflt) {\n const first = tr.mapping.map($from.before())\n const $first = tr.doc.resolve(first)\n\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt)) {\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt)\n }\n }\n }\n\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.scrollIntoView()\n }\n\n return can\n}\n","import {\n Fragment, Node as ProseMirrorNode, NodeType, Slice,\n} from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitListItem: {\n /**\n * Splits one list item into two list items.\n * @param typeOrName The type or name of the node.\n * @param overrideAttrs The attributes to ensure on the new node.\n * @example editor.commands.splitListItem('listItem')\n */\n splitListItem: (typeOrName: string | NodeType, overrideAttrs?: Record) => ReturnType\n }\n }\n}\n\nexport const splitListItem: RawCommands['splitListItem'] = (typeOrName, overrideAttrs = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const type = getNodeType(typeOrName, state.schema)\n const { $from, $to } = state.selection\n\n // @ts-ignore\n // eslint-disable-next-line\n const node: ProseMirrorNode = state.selection.node\n\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {\n return false\n }\n\n const grandParent = $from.node(-1)\n\n if (grandParent.type !== type) {\n return false\n }\n\n const extensionAttributes = editor.extensionManager.attributes\n\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if (\n $from.depth === 2\n || $from.node(-3).type !== type\n || $from.index(-2) !== $from.node(-2).childCount - 1\n ) {\n return false\n }\n\n if (dispatch) {\n let wrap = Fragment.empty\n // eslint-disable-next-line\n const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3\n\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {\n wrap = Fragment.from($from.node(d).copy(wrap))\n }\n\n // eslint-disable-next-line\n const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3\n\n // Add a second list item with an empty default start node\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n const nextType = type.contentMatch.defaultType?.createAndFill(newNextTypeAttributes) || undefined\n\n wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined))\n\n const start = $from.before($from.depth - (depthBefore - 1))\n\n tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0))\n\n let sel = -1\n\n tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {\n if (sel > -1) {\n return false\n }\n\n if (n.isTextblock && n.content.size === 0) {\n sel = pos + 1\n }\n })\n\n if (sel > -1) {\n tr.setSelection(TextSelection.near(tr.doc.resolve(sel)))\n }\n\n tr.scrollIntoView()\n }\n\n return true\n }\n\n const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null\n\n const newTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n grandParent.type.name,\n grandParent.attrs,\n ),\n ...overrideAttrs,\n }\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n\n tr.delete($from.pos, $to.pos)\n\n const types = nextType\n ? [\n { type, attrs: newTypeAttributes },\n { type: nextType, attrs: newNextTypeAttributes },\n ]\n : [{ type, attrs: newTypeAttributes }]\n\n if (!canSplit(tr.doc, $from.pos, 2)) {\n return false\n }\n\n if (dispatch) {\n const { selection, storedMarks } = state\n const { splittableMarks } = editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n tr.split($from.pos, 2, types).scrollIntoView()\n\n if (!marks || !dispatch) {\n return true\n }\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { canJoin } from '@tiptap/pm/transform'\n\nimport { findParentNode } from '../helpers/findParentNode.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isList } from '../helpers/isList.js'\nimport { RawCommands } from '../types.js'\n\nconst joinListBackwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const before = tr.doc.resolve(Math.max(0, list.pos - 1)).before(list.depth)\n\n if (before === undefined) {\n return true\n }\n\n const nodeBefore = tr.doc.nodeAt(before)\n const canJoinBackwards = list.node.type === nodeBefore?.type && canJoin(tr.doc, list.pos)\n\n if (!canJoinBackwards) {\n return true\n }\n\n tr.join(list.pos)\n\n return true\n}\n\nconst joinListForwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const after = tr.doc.resolve(list.start).after(list.depth)\n\n if (after === undefined) {\n return true\n }\n\n const nodeAfter = tr.doc.nodeAt(after)\n const canJoinForwards = list.node.type === nodeAfter?.type && canJoin(tr.doc, after)\n\n if (!canJoinForwards) {\n return true\n }\n\n tr.join(after)\n\n return true\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleList: {\n /**\n * Toggle between different list types.\n * @param listTypeOrName The type or name of the list.\n * @param itemTypeOrName The type or name of the list item.\n * @param keepMarks Keep marks when toggling.\n * @param attributes Attributes for the new list.\n * @example editor.commands.toggleList('bulletList', 'listItem')\n */\n toggleList: (listTypeOrName: string | NodeType, itemTypeOrName: string | NodeType, keepMarks?: boolean, attributes?: Record) => ReturnType;\n }\n }\n}\n\nexport const toggleList: RawCommands['toggleList'] = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({\n editor, tr, state, dispatch, chain, commands, can,\n}) => {\n const { extensions, splittableMarks } = editor.extensionManager\n const listType = getNodeType(listTypeOrName, state.schema)\n const itemType = getNodeType(itemTypeOrName, state.schema)\n const { selection, storedMarks } = state\n const { $from, $to } = selection\n const range = $from.blockRange($to)\n\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!range) {\n return false\n }\n\n const parentList = findParentNode(node => isList(node.type.name, extensions))(selection)\n\n if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {\n // remove list\n if (parentList.node.type === listType) {\n return commands.liftListItem(itemType)\n }\n\n // change list type\n if (\n isList(parentList.node.type.name, extensions)\n && listType.validContent(parentList.node.content)\n && dispatch\n ) {\n return chain()\n .command(() => {\n tr.setNodeMarkup(parentList.pos, listType)\n\n return true\n })\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n }\n if (!keepMarks || !marks || !dispatch) {\n\n return chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n )\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isMarkActive } from '../helpers/isMarkActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleMark: {\n /**\n * Toggle a mark on and off.\n * @param typeOrName The mark type or name.\n * @param attributes The attributes of the mark.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.toggleMark('bold')\n */\n toggleMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const toggleMark: RawCommands['toggleMark'] = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {\n const { extendEmptyMarkRange = false } = options\n const type = getMarkType(typeOrName, state.schema)\n const isActive = isMarkActive(state, type, attributes)\n\n if (isActive) {\n return commands.unsetMark(type, { extendEmptyMarkRange })\n }\n\n return commands.setMark(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleNode: {\n /**\n * Toggle a node with another node.\n * @param typeOrName The type or name of the node.\n * @param toggleTypeOrName The type or name of the node to toggle.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleNode('heading', 'paragraph')\n */\n toggleNode: (\n typeOrName: string | NodeType,\n toggleTypeOrName: string | NodeType,\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const toggleNode: RawCommands['toggleNode'] = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const toggleType = getNodeType(toggleTypeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.setNode(toggleType)\n }\n\n return commands.setNode(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleWrap: {\n /**\n * Wraps nodes in another node, or removes an existing wrap.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleWrap('blockquote')\n */\n toggleWrap: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const toggleWrap: RawCommands['toggleWrap'] = (typeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.lift(type)\n }\n\n return commands.wrapIn(type, attributes)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n undoInputRule: {\n /**\n * Undo an input rule.\n * @example editor.commands.undoInputRule()\n */\n undoInputRule: () => ReturnType,\n }\n }\n}\n\nexport const undoInputRule: RawCommands['undoInputRule'] = () => ({ state, dispatch }) => {\n const plugins = state.plugins\n\n for (let i = 0; i < plugins.length; i += 1) {\n const plugin = plugins[i]\n let undoable\n\n // @ts-ignore\n // eslint-disable-next-line\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n const tr = state.tr\n const toUndo = undoable.transform\n\n for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]))\n }\n\n if (undoable.text) {\n const marks = tr.doc.resolve(undoable.from).marks()\n\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks))\n } else {\n tr.delete(undoable.from, undoable.to)\n }\n }\n\n return true\n }\n }\n\n return false\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetAllMarks: {\n /**\n * Remove all marks in the current selection.\n * @example editor.commands.unsetAllMarks()\n */\n unsetAllMarks: () => ReturnType,\n }\n }\n}\n\nexport const unsetAllMarks: RawCommands['unsetAllMarks'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n\n if (empty) {\n return true\n }\n\n if (dispatch) {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos)\n })\n }\n\n return true\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetMark: {\n /**\n * Remove all marks in the current selection.\n * @param typeOrName The mark type or name.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.unsetMark('bold')\n */\n unsetMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const unsetMark: RawCommands['unsetMark'] = (typeOrName, options = {}) => ({ tr, state, dispatch }) => {\n const { extendEmptyMarkRange = false } = options\n const { selection } = tr\n const type = getMarkType(typeOrName, state.schema)\n const { $from, empty, ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n if (empty && extendEmptyMarkRange) {\n let { from, to } = selection\n const attrs = $from.marks().find(mark => mark.type === type)?.attrs\n const range = getMarkRange($from, type, attrs)\n\n if (range) {\n from = range.from\n to = range.to\n }\n\n tr.removeMark(from, to, type)\n } else {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos, type)\n })\n }\n\n tr.removeStoredMark(type)\n\n return true\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n updateAttributes: {\n /**\n * Update attributes of a node or mark.\n * @param typeOrName The type or name of the node or mark.\n * @param attributes The attributes of the node or mark.\n * @example editor.commands.updateAttributes('mention', { userId: \"2\" })\n */\n updateAttributes: (\n /**\n * The type or name of the node or mark.\n */\n typeOrName: string | NodeType | MarkType,\n\n /**\n * The attributes of the node or mark.\n */\n attributes: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const updateAttributes: RawCommands['updateAttributes'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...attributes,\n })\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n markType.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { wrapIn as originalWrapIn } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapIn: {\n /**\n * Wraps nodes in another node.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapIn('blockquote')\n */\n wrapIn: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapIn: RawCommands['wrapIn'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapIn(type, attributes)(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { wrapInList as originalWrapInList } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapInList: {\n /**\n * Wrap a node in a list.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapInList('bulletList')\n */\n wrapInList: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapInList: RawCommands['wrapInList'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapInList(type, attributes)(state, dispatch)\n}\n","import * as commands from '../commands/index.js'\nimport { Extension } from '../Extension.js'\n\nexport * from '../commands/index.js'\n\nexport const Commands = Extension.create({\n name: 'commands',\n\n addCommands() {\n return {\n ...commands,\n }\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Editable = Extension.create({\n name: 'editable',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('editable'),\n props: {\n editable: () => this.editor.options.editable,\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const FocusEvents = Extension.create({\n name: 'focusEvents',\n\n addProseMirrorPlugins() {\n const { editor } = this\n\n return [\n new Plugin({\n key: new PluginKey('focusEvents'),\n props: {\n handleDOMEvents: {\n focus: (view, event: Event) => {\n editor.isFocused = true\n\n const transaction = editor.state.tr\n .setMeta('focus', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n blur: (view, event: Event) => {\n editor.isFocused = false\n\n const transaction = editor.state.tr\n .setMeta('blur', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n },\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey, Selection } from '@tiptap/pm/state'\n\nimport { CommandManager } from '../CommandManager.js'\nimport { Extension } from '../Extension.js'\nimport { createChainableState } from '../helpers/createChainableState.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nexport const Keymap = Extension.create({\n name: 'keymap',\n\n addKeyboardShortcuts() {\n const handleBackspace = () => this.editor.commands.first(({ commands }) => [\n () => commands.undoInputRule(),\n\n // maybe convert first text block node to default node\n () => commands.command(({ tr }) => {\n const { selection, doc } = tr\n const { empty, $anchor } = selection\n const { pos, parent } = $anchor\n const $parentPos = $anchor.parent.isTextblock && pos > 0 ? tr.doc.resolve(pos - 1) : $anchor\n const parentIsIsolating = $parentPos.parent.type.spec.isolating\n\n const parentPos = $anchor.pos - $anchor.parentOffset\n\n const isAtStart = (parentIsIsolating && $parentPos.parent.childCount === 1)\n ? parentPos === $anchor.pos\n : Selection.atStart(doc).from === pos\n\n if (\n !empty\n || !parent.type.isTextblock\n || parent.textContent.length\n || !isAtStart\n || (isAtStart && $anchor.parent.type.name === 'paragraph') // prevent clearNodes when no nodes to clear, otherwise history stack is appended\n ) {\n return false\n }\n\n return commands.clearNodes()\n }),\n\n () => commands.deleteSelection(),\n () => commands.joinBackward(),\n () => commands.selectNodeBackward(),\n ])\n\n const handleDelete = () => this.editor.commands.first(({ commands }) => [\n () => commands.deleteSelection(),\n () => commands.deleteCurrentNode(),\n () => commands.joinForward(),\n () => commands.selectNodeForward(),\n ])\n\n const handleEnter = () => this.editor.commands.first(({ commands }) => [\n () => commands.newlineInCode(),\n () => commands.createParagraphNear(),\n () => commands.liftEmptyBlock(),\n () => commands.splitBlock(),\n ])\n\n const baseKeymap = {\n Enter: handleEnter,\n 'Mod-Enter': () => this.editor.commands.exitCode(),\n Backspace: handleBackspace,\n 'Mod-Backspace': handleBackspace,\n 'Shift-Backspace': handleBackspace,\n Delete: handleDelete,\n 'Mod-Delete': handleDelete,\n 'Mod-a': () => this.editor.commands.selectAll(),\n }\n\n const pcKeymap = {\n ...baseKeymap,\n }\n\n const macKeymap = {\n ...baseKeymap,\n 'Ctrl-h': handleBackspace,\n 'Alt-Backspace': handleBackspace,\n 'Ctrl-d': handleDelete,\n 'Ctrl-Alt-Backspace': handleDelete,\n 'Alt-Delete': handleDelete,\n 'Alt-d': handleDelete,\n 'Ctrl-a': () => this.editor.commands.selectTextblockStart(),\n 'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),\n }\n\n if (isiOS() || isMacOS()) {\n return macKeymap\n }\n\n return pcKeymap\n },\n\n addProseMirrorPlugins() {\n return [\n // With this plugin we check if the whole document was selected and deleted.\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\n // to a paragraph if necessary.\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\n // with many other commands.\n new Plugin({\n key: new PluginKey('clearDocument'),\n appendTransaction: (transactions, oldState, newState) => {\n const docChanges = transactions.some(transaction => transaction.docChanged)\n && !oldState.doc.eq(newState.doc)\n\n if (!docChanges) {\n return\n }\n\n const { empty, from, to } = oldState.selection\n const allFrom = Selection.atStart(oldState.doc).from\n const allEnd = Selection.atEnd(oldState.doc).to\n const allWasSelected = from === allFrom && to === allEnd\n\n if (empty || !allWasSelected) {\n return\n }\n\n const isEmpty = newState.doc.textBetween(0, newState.doc.content.size, ' ', ' ').length === 0\n\n if (!isEmpty) {\n return\n }\n\n const tr = newState.tr\n const state = createChainableState({\n state: newState,\n transaction: tr,\n })\n const { commands } = new CommandManager({\n editor: this.editor,\n state,\n })\n\n commands.clearNodes()\n\n if (!tr.steps.length) {\n return\n }\n\n return tr\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Tabindex = Extension.create({\n name: 'tabindex',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tabindex'),\n props: {\n attributes: (): { [name: string]: string; } => (this.editor.isEditable ? { tabindex: '0' } : {}),\n },\n }),\n ]\n },\n})\n","import {\n Fragment, Node, ResolvedPos,\n} from '@tiptap/pm/model'\n\nimport { Editor } from './Editor.js'\nimport { Content, Range } from './types.js'\n\nexport class NodePos {\n private resolvedPos: ResolvedPos\n\n private isBlock: boolean\n\n private editor: Editor\n\n private get name(): string {\n return this.node.type.name\n }\n\n constructor(pos: ResolvedPos, editor: Editor, isBlock = false, node: Node | null = null) {\n this.isBlock = isBlock\n this.resolvedPos = pos\n this.editor = editor\n this.currentNode = node\n }\n\n private currentNode: Node | null = null\n\n get node(): Node {\n return this.currentNode || this.resolvedPos.node()\n }\n\n get element(): HTMLElement {\n return this.editor.view.domAtPos(this.pos).node as HTMLElement\n }\n\n public actualDepth: number | null = null\n\n get depth(): number {\n return this.actualDepth ?? this.resolvedPos.depth\n }\n\n get pos(): number {\n return this.resolvedPos.pos\n }\n\n get content(): Fragment {\n return this.node.content\n }\n\n set content(content: Content) {\n let from = this.from\n let to = this.to\n\n if (this.isBlock) {\n if (this.content.size === 0) {\n console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`)\n return\n }\n\n from = this.from + 1\n to = this.to - 1\n }\n\n this.editor.commands.insertContentAt({ from, to }, content)\n }\n\n get attributes(): { [key: string]: any } {\n return this.node.attrs\n }\n\n get textContent(): string {\n return this.node.textContent\n }\n\n get size(): number {\n return this.node.nodeSize\n }\n\n get from(): number {\n if (this.isBlock) {\n return this.pos\n }\n\n return this.resolvedPos.start(this.resolvedPos.depth)\n }\n\n get range(): Range {\n return {\n from: this.from,\n to: this.to,\n }\n }\n\n get to(): number {\n if (this.isBlock) {\n return this.pos + this.size\n }\n\n return this.resolvedPos.end(this.resolvedPos.depth) + (this.node.isText ? 0 : 1)\n }\n\n get parent(): NodePos | null {\n if (this.depth === 0) {\n return null\n }\n\n const parentPos = this.resolvedPos.start(this.resolvedPos.depth - 1)\n const $pos = this.resolvedPos.doc.resolve(parentPos)\n\n return new NodePos($pos, this.editor)\n }\n\n get before(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.from - (this.isBlock ? 1 : 2))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.from - 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get after(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.to + (this.isBlock ? 2 : 1))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.to + 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get children(): NodePos[] {\n const children: NodePos[] = []\n\n this.node.content.forEach((node, offset) => {\n const isBlock = node.isBlock && !node.isTextblock\n\n const targetPos = this.pos + offset + 1\n const $pos = this.resolvedPos.doc.resolve(targetPos)\n\n if (!isBlock && $pos.depth <= this.depth) {\n return\n }\n\n const childNodePos = new NodePos($pos, this.editor, isBlock, isBlock ? node : null)\n\n if (isBlock) {\n childNodePos.actualDepth = this.depth + 1\n }\n\n children.push(new NodePos($pos, this.editor, isBlock, isBlock ? node : null))\n })\n\n return children\n }\n\n get firstChild(): NodePos | null {\n return this.children[0] || null\n }\n\n get lastChild(): NodePos | null {\n const children = this.children\n\n return children[children.length - 1] || null\n }\n\n closest(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n let node: NodePos | null = null\n let currentNode = this.parent\n\n while (currentNode && !node) {\n if (currentNode.node.type.name === selector) {\n if (Object.keys(attributes).length > 0) {\n const nodeAttributes = currentNode.node.attrs\n const attrKeys = Object.keys(attributes)\n\n for (let index = 0; index < attrKeys.length; index += 1) {\n const key = attrKeys[index]\n\n if (nodeAttributes[key] !== attributes[key]) {\n break\n }\n }\n } else {\n node = currentNode\n }\n }\n\n currentNode = currentNode.parent\n }\n\n return node\n }\n\n querySelector(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n return this.querySelectorAll(selector, attributes, true)[0] || null\n }\n\n querySelectorAll(selector: string, attributes: { [key: string]: any } = {}, firstItemOnly = false): NodePos[] {\n let nodes: NodePos[] = []\n\n if (!this.children || this.children.length === 0) {\n return nodes\n }\n const attrKeys = Object.keys(attributes)\n\n /**\n * Finds all children recursively that match the selector and attributes\n * If firstItemOnly is true, it will return the first item found\n */\n this.children.forEach(childPos => {\n // If we already found a node and we only want the first item, we dont need to keep going\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n if (childPos.node.type.name === selector) {\n const doesAllAttributesMatch = attrKeys.every(key => attributes[key] === childPos.node.attrs[key])\n\n if (doesAllAttributesMatch) {\n nodes.push(childPos)\n }\n }\n\n // If we already found a node and we only want the first item, we can stop here and skip the recursion\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n nodes = nodes.concat(childPos.querySelectorAll(selector, attributes, firstItemOnly))\n })\n\n return nodes\n }\n\n setAttribute(attributes: { [key: string]: any }) {\n const oldSelection = this.editor.state.selection\n\n this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from)\n .run()\n }\n}\n","export const style = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n.tippy-box[data-animation=fade][data-state=hidden] {\n opacity: 0\n}`\n","export function createStyleTag(style: string, nonce?: string, suffix?: string): HTMLStyleElement {\n const tiptapStyleTag = (document.querySelector(`style[data-tiptap-style${suffix ? `-${suffix}` : ''}]`))\n\n if (tiptapStyleTag !== null) {\n return tiptapStyleTag\n }\n\n const styleNode = document.createElement('style')\n\n if (nonce) {\n styleNode.setAttribute('nonce', nonce)\n }\n\n styleNode.setAttribute(`data-tiptap-style${suffix ? `-${suffix}` : ''}`, '')\n styleNode.innerHTML = style\n document.getElementsByTagName('head')[0].appendChild(styleNode)\n\n return styleNode\n}\n","import {\n MarkType,\n Node as ProseMirrorNode,\n NodeType,\n Schema,\n} from '@tiptap/pm/model'\nimport {\n EditorState, Plugin, PluginKey, Transaction,\n} from '@tiptap/pm/state'\nimport { EditorView } from '@tiptap/pm/view'\n\nimport { CommandManager } from './CommandManager.js'\nimport { EventEmitter } from './EventEmitter.js'\nimport { ExtensionManager } from './ExtensionManager.js'\nimport {\n ClipboardTextSerializer, Commands, Editable, FocusEvents, Keymap, Tabindex,\n} from './extensions/index.js'\nimport { createDocument } from './helpers/createDocument.js'\nimport { getAttributes } from './helpers/getAttributes.js'\nimport { getHTMLFromFragment } from './helpers/getHTMLFromFragment.js'\nimport { getText } from './helpers/getText.js'\nimport { getTextSerializersFromSchema } from './helpers/getTextSerializersFromSchema.js'\nimport { isActive } from './helpers/isActive.js'\nimport { isNodeEmpty } from './helpers/isNodeEmpty.js'\nimport { resolveFocusPosition } from './helpers/resolveFocusPosition.js'\nimport { NodePos } from './NodePos.js'\nimport { style } from './style.js'\nimport {\n CanCommands,\n ChainedCommands,\n EditorEvents,\n EditorOptions,\n JSONContent,\n SingleCommands,\n TextSerializer,\n} from './types.js'\nimport { createStyleTag } from './utilities/createStyleTag.js'\nimport { isFunction } from './utilities/isFunction.js'\n\nexport * as extensions from './extensions/index.js'\n\n// @ts-ignore\nexport interface TiptapEditorHTMLElement extends HTMLElement {\n editor?: Editor\n}\n\nexport class Editor extends EventEmitter {\n private commandManager!: CommandManager\n\n public extensionManager!: ExtensionManager\n\n private css!: HTMLStyleElement\n\n public schema!: Schema\n\n public view!: EditorView\n\n public isFocused = false\n\n /**\n * The editor is considered initialized after the `create` event has been emitted.\n */\n public isInitialized = false\n\n public extensionStorage: Record = {}\n\n public options: EditorOptions = {\n element: document.createElement('div'),\n content: '',\n injectCSS: true,\n injectNonce: undefined,\n extensions: [],\n autofocus: false,\n editable: true,\n editorProps: {},\n parseOptions: {},\n coreExtensionOptions: {},\n enableInputRules: true,\n enablePasteRules: true,\n enableCoreExtensions: true,\n enableContentCheck: false,\n onBeforeCreate: () => null,\n onCreate: () => null,\n onUpdate: () => null,\n onSelectionUpdate: () => null,\n onTransaction: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onDestroy: () => null,\n onContentError: ({ error }) => { throw error },\n }\n\n constructor(options: Partial = {}) {\n super()\n this.setOptions(options)\n this.createExtensionManager()\n this.createCommandManager()\n this.createSchema()\n this.on('beforeCreate', this.options.onBeforeCreate)\n this.emit('beforeCreate', { editor: this })\n this.on('contentError', this.options.onContentError)\n this.createView()\n this.injectCSS()\n this.on('create', this.options.onCreate)\n this.on('update', this.options.onUpdate)\n this.on('selectionUpdate', this.options.onSelectionUpdate)\n this.on('transaction', this.options.onTransaction)\n this.on('focus', this.options.onFocus)\n this.on('blur', this.options.onBlur)\n this.on('destroy', this.options.onDestroy)\n\n window.setTimeout(() => {\n if (this.isDestroyed) {\n return\n }\n\n this.commands.focus(this.options.autofocus)\n this.emit('create', { editor: this })\n this.isInitialized = true\n }, 0)\n }\n\n /**\n * Returns the editor storage.\n */\n public get storage(): Record {\n return this.extensionStorage\n }\n\n /**\n * An object of all registered commands.\n */\n public get commands(): SingleCommands {\n return this.commandManager.commands\n }\n\n /**\n * Create a command chain to call multiple commands at once.\n */\n public chain(): ChainedCommands {\n return this.commandManager.chain()\n }\n\n /**\n * Check if a command or a command chain can be executed. Without executing it.\n */\n public can(): CanCommands {\n return this.commandManager.can()\n }\n\n /**\n * Inject CSS styles.\n */\n private injectCSS(): void {\n if (this.options.injectCSS && document) {\n this.css = createStyleTag(style, this.options.injectNonce)\n }\n }\n\n /**\n * Update editor options.\n *\n * @param options A list of options\n */\n public setOptions(options: Partial = {}): void {\n this.options = {\n ...this.options,\n ...options,\n }\n\n if (!this.view || !this.state || this.isDestroyed) {\n return\n }\n\n if (this.options.editorProps) {\n this.view.setProps(this.options.editorProps)\n }\n\n this.view.updateState(this.state)\n }\n\n /**\n * Update editable state of the editor.\n */\n public setEditable(editable: boolean, emitUpdate = true): void {\n this.setOptions({ editable })\n\n if (emitUpdate) {\n this.emit('update', { editor: this, transaction: this.state.tr })\n }\n }\n\n /**\n * Returns whether the editor is editable.\n */\n public get isEditable(): boolean {\n // since plugins are applied after creating the view\n // `editable` is always `true` for one tick.\n // that’s why we also have to check for `options.editable`\n return this.options.editable && this.view && this.view.editable\n }\n\n /**\n * Returns the editor state.\n */\n public get state(): EditorState {\n return this.view.state\n }\n\n /**\n * Register a ProseMirror plugin.\n *\n * @param plugin A ProseMirror plugin\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\n */\n public registerPlugin(\n plugin: Plugin,\n handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[],\n ): void {\n const plugins = isFunction(handlePlugins)\n ? handlePlugins(plugin, [...this.state.plugins])\n : [...this.state.plugins, plugin]\n\n const state = this.state.reconfigure({ plugins })\n\n this.view.updateState(state)\n }\n\n /**\n * Unregister a ProseMirror plugin.\n *\n * @param nameOrPluginKey The plugins name\n */\n public unregisterPlugin(nameOrPluginKey: string | PluginKey): void {\n if (this.isDestroyed) {\n return\n }\n\n // @ts-ignore\n const name = typeof nameOrPluginKey === 'string' ? `${nameOrPluginKey}$` : nameOrPluginKey.key\n\n const state = this.state.reconfigure({\n // @ts-ignore\n plugins: this.state.plugins.filter(plugin => !plugin.key.startsWith(name)),\n })\n\n this.view.updateState(state)\n }\n\n /**\n * Creates an extension manager.\n */\n private createExtensionManager(): void {\n\n const coreExtensions = this.options.enableCoreExtensions ? [\n Editable,\n ClipboardTextSerializer.configure({\n blockSeparator: this.options.coreExtensionOptions?.clipboardTextSerializer?.blockSeparator,\n }),\n Commands,\n FocusEvents,\n Keymap,\n Tabindex,\n ] : []\n const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {\n return ['extension', 'node', 'mark'].includes(extension?.type)\n })\n\n this.extensionManager = new ExtensionManager(allExtensions, this)\n }\n\n /**\n * Creates an command manager.\n */\n private createCommandManager(): void {\n this.commandManager = new CommandManager({\n editor: this,\n })\n }\n\n /**\n * Creates a ProseMirror schema.\n */\n private createSchema(): void {\n this.schema = this.extensionManager.schema\n }\n\n /**\n * Creates a ProseMirror view.\n */\n private createView(): void {\n let doc: ProseMirrorNode\n\n try {\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: this.options.enableContentCheck },\n )\n } catch (e) {\n if (!(e instanceof Error) || !['[tiptap error]: Invalid JSON content', '[tiptap error]: Invalid HTML content'].includes(e.message)) {\n // Not the content error we were expecting\n throw e\n }\n this.emit('contentError', {\n editor: this,\n error: e as Error,\n disableCollaboration: () => {\n // To avoid syncing back invalid content, reinitialize the extensions without the collaboration extension\n this.options.extensions = this.options.extensions.filter(extension => extension.name !== 'collaboration')\n\n // Restart the initialization process by recreating the extension manager with the new set of extensions\n this.createExtensionManager()\n },\n })\n\n // Content is invalid, but attempt to create it anyway, stripping out the invalid parts\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: false },\n )\n }\n const selection = resolveFocusPosition(doc, this.options.autofocus)\n\n this.view = new EditorView(this.options.element, {\n ...this.options.editorProps,\n dispatchTransaction: this.dispatchTransaction.bind(this),\n state: EditorState.create({\n doc,\n selection: selection || undefined,\n }),\n })\n\n // `editor.view` is not yet available at this time.\n // Therefore we will add all plugins and node views directly afterwards.\n const newState = this.state.reconfigure({\n plugins: this.extensionManager.plugins,\n })\n\n this.view.updateState(newState)\n\n this.createNodeViews()\n this.prependClass()\n\n // Let’s store the editor instance in the DOM element.\n // So we’ll have access to it for tests.\n // @ts-ignore\n const dom = this.view.dom as TiptapEditorHTMLElement\n\n dom.editor = this\n }\n\n /**\n * Creates all node views.\n */\n public createNodeViews(): void {\n if (this.view.isDestroyed) {\n return\n }\n\n this.view.setProps({\n nodeViews: this.extensionManager.nodeViews,\n })\n }\n\n /**\n * Prepend class name to element.\n */\n public prependClass(): void {\n this.view.dom.className = `tiptap ${this.view.dom.className}`\n }\n\n public isCapturingTransaction = false\n\n private capturedTransaction: Transaction | null = null\n\n public captureTransaction(fn: Function) {\n this.isCapturingTransaction = true\n fn()\n this.isCapturingTransaction = false\n\n const tr = this.capturedTransaction\n\n this.capturedTransaction = null\n\n return tr\n }\n\n /**\n * The callback over which to send transactions (state updates) produced by the view.\n *\n * @param transaction An editor state transaction\n */\n private dispatchTransaction(transaction: Transaction): void {\n // if the editor / the view of the editor was destroyed\n // the transaction should not be dispatched as there is no view anymore.\n if (this.view.isDestroyed) {\n return\n }\n\n if (this.isCapturingTransaction) {\n if (!this.capturedTransaction) {\n this.capturedTransaction = transaction\n\n return\n }\n\n transaction.steps.forEach(step => this.capturedTransaction?.step(step))\n\n return\n }\n\n const state = this.state.apply(transaction)\n const selectionHasChanged = !this.state.selection.eq(state.selection)\n\n this.emit('beforeTransaction', {\n editor: this,\n transaction,\n nextState: state,\n })\n this.view.updateState(state)\n this.emit('transaction', {\n editor: this,\n transaction,\n })\n\n if (selectionHasChanged) {\n this.emit('selectionUpdate', {\n editor: this,\n transaction,\n })\n }\n\n const focus = transaction.getMeta('focus')\n const blur = transaction.getMeta('blur')\n\n if (focus) {\n this.emit('focus', {\n editor: this,\n event: focus.event,\n transaction,\n })\n }\n\n if (blur) {\n this.emit('blur', {\n editor: this,\n event: blur.event,\n transaction,\n })\n }\n\n if (!transaction.docChanged || transaction.getMeta('preventUpdate')) {\n return\n }\n\n this.emit('update', {\n editor: this,\n transaction,\n })\n }\n\n /**\n * Get attributes of the currently selected node or mark.\n */\n public getAttributes(nameOrType: string | NodeType | MarkType): Record {\n return getAttributes(this.state, nameOrType)\n }\n\n /**\n * Returns if the currently selected node or mark is active.\n *\n * @param name Name of the node or mark\n * @param attributes Attributes of the node or mark\n */\n public isActive(name: string, attributes?: {}): boolean\n public isActive(attributes: {}): boolean\n public isActive(nameOrAttributes: string, attributesOrUndefined?: {}): boolean {\n const name = typeof nameOrAttributes === 'string' ? nameOrAttributes : null\n\n const attributes = typeof nameOrAttributes === 'string' ? attributesOrUndefined : nameOrAttributes\n\n return isActive(this.state, name, attributes)\n }\n\n /**\n * Get the document as JSON.\n */\n public getJSON(): JSONContent {\n return this.state.doc.toJSON()\n }\n\n /**\n * Get the document as HTML.\n */\n public getHTML(): string {\n return getHTMLFromFragment(this.state.doc.content, this.schema)\n }\n\n /**\n * Get the document as text.\n */\n public getText(options?: {\n blockSeparator?: string\n textSerializers?: Record\n }): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n\n return getText(this.state.doc, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(this.schema),\n ...textSerializers,\n },\n })\n }\n\n /**\n * Check if there is no content.\n */\n public get isEmpty(): boolean {\n return isNodeEmpty(this.state.doc)\n }\n\n /**\n * Get the number of characters for the current document.\n *\n * @deprecated\n */\n public getCharacterCount(): number {\n console.warn(\n '[tiptap warn]: \"editor.getCharacterCount()\" is deprecated. Please use \"editor.storage.characterCount.characters()\" instead.',\n )\n\n return this.state.doc.content.size - 2\n }\n\n /**\n * Destroy the editor.\n */\n public destroy(): void {\n this.emit('destroy')\n\n if (this.view) {\n this.view.destroy()\n }\n\n this.removeAllListeners()\n }\n\n /**\n * Check if the editor is already destroyed.\n */\n public get isDestroyed(): boolean {\n // @ts-ignore\n return !this.view?.docView\n }\n\n public $node(selector: string, attributes?: { [key: string]: any }): NodePos | null {\n return this.$doc?.querySelector(selector, attributes) || null\n }\n\n public $nodes(selector: string, attributes?: { [key: string]: any }): NodePos[] | null {\n return this.$doc?.querySelectorAll(selector, attributes) || null\n }\n\n public $pos(pos: number) {\n const $pos = this.state.doc.resolve(pos)\n\n return new NodePos($pos, this)\n }\n\n get $doc() {\n return this.$pos(0)\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a mark when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function markInputRule(config: {\n find: InputRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n const markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a node when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function nodeInputRule(config: {\n /**\n * The regex to match.\n */\n find: InputRuleFinder\n\n /**\n * The node type to add.\n */\n type: NodeType\n\n /**\n * A function that returns the attributes for the node\n * can also be an object of attributes\n */\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const { tr } = state\n const start = range.from\n let end = range.to\n\n const newNode = config.type.create(attributes)\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n let matchStart = start + offset\n\n if (matchStart > end) {\n matchStart = end\n } else {\n end = matchStart + match[1].length\n }\n\n // insert last typed character\n const lastChar = match[0][match[0].length - 1]\n\n tr.insertText(lastChar, start + match[0].length - 1)\n\n // insert node from input rule\n tr.replaceWith(matchStart, end, newNode)\n } else if (match[0]) {\n const insertionStart = config.type.isInline ? start : start - 1\n\n tr.insert(insertionStart, config.type.create(attributes)).delete(\n tr.mapping.map(start),\n tr.mapping.map(end),\n )\n }\n\n tr.scrollIntoView()\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that changes the type of a textblock when the\n * matched text is typed into it. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textblockTypeInputRule(config: {\n find: InputRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const $start = state.doc.resolve(range.from)\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), config.type)) {\n return null\n }\n\n state.tr\n .delete(range.from, range.to)\n .setBlockType(range.from, range.from, config.type, attributes)\n },\n })\n}\n","import { InputRule, InputRuleFinder } from '../InputRule.js'\n\n/**\n * Build an input rule that replaces text when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textInputRule(config: {\n find: InputRuleFinder,\n replace: string,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Node as ProseMirrorNode, NodeType } from '@tiptap/pm/model'\nimport { canJoin, findWrapping } from '@tiptap/pm/transform'\n\nimport { Editor } from '../Editor.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule for automatically wrapping a textblock when a\n * given string is typed. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n *\n * `type` is the type of node to wrap in.\n *\n * By default, if there’s a node with the same type above the newly\n * wrapped node, the rule will try to join those\n * two nodes. You can pass a join predicate, which takes a regular\n * expression match and the node before the wrapped node, and can\n * return a boolean to indicate whether a join should happen.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function wrappingInputRule(config: {\n find: InputRuleFinder,\n type: NodeType,\n keepMarks?: boolean,\n keepAttributes?: boolean,\n editor?: Editor\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n ,\n joinPredicate?: (match: ExtendedRegExpMatchArray, node: ProseMirrorNode) => boolean,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({\n state, range, match, chain,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const tr = state.tr.delete(range.from, range.to)\n const $start = tr.doc.resolve(range.from)\n const blockRange = $start.blockRange()\n const wrapping = blockRange && findWrapping(blockRange, config.type, attributes)\n\n if (!wrapping) {\n return null\n }\n\n tr.wrap(blockRange, wrapping)\n\n if (config.keepMarks && config.editor) {\n const { selection, storedMarks } = state\n const { splittableMarks } = config.editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n }\n if (config.keepAttributes) {\n /** If the nodeType is `bulletList` or `orderedList` set the `nodeType` as `listItem` */\n const nodeType = config.type.name === 'bulletList' || config.type.name === 'orderedList' ? 'listItem' : 'taskList'\n\n chain().updateAttributes(nodeType, attributes).run()\n }\n\n const before = tr.doc.resolve(range.from - 1).nodeBefore\n\n if (\n before\n && before.type === config.type\n && canJoin(tr.doc, range.from - 1)\n && (!config.joinPredicate || config.joinPredicate(match, before))\n ) {\n tr.join(range.from - 1)\n }\n },\n })\n}\n","import {\n DOMOutputSpec, Mark as ProseMirrorMark, MarkSpec, MarkType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { MarkConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n export interface MarkConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Keep mark after split node\n */\n keepOnSplit?: boolean | (() => boolean)\n\n /**\n * Inclusive\n */\n inclusive?:\n | MarkSpec['inclusive']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inclusive']\n editor?: Editor\n }) => MarkSpec['inclusive'])\n\n /**\n * Excludes\n */\n excludes?:\n | MarkSpec['excludes']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['excludes']\n editor?: Editor\n }) => MarkSpec['excludes'])\n\n /**\n * Marks this Mark as exitable\n */\n exitable?: boolean | (() => boolean)\n\n /**\n * Group\n */\n group?:\n | MarkSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => MarkSpec['group'])\n\n /**\n * Spanning\n */\n spanning?:\n | MarkSpec['spanning']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['spanning']\n editor?: Editor\n }) => MarkSpec['spanning'])\n\n /**\n * Code\n */\n code?:\n | boolean\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => boolean)\n\n /**\n * Parse HTML\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => MarkSpec['parseDOM']\n\n /**\n * Render HTML\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n mark: ProseMirrorMark\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * Attributes\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Mark class is used to create custom mark extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Mark {\n type = 'mark'\n\n name = 'mark'\n\n parent: Mark | null = null\n\n child: Mark | null = null\n\n options: Options\n\n storage: Storage\n\n config: MarkConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Mark(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Mark(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n\n static handleExit({ editor, mark }: { editor: Editor; mark: Mark }) {\n const { tr } = editor.state\n const currentPos = editor.state.selection.$from\n const isAtEnd = currentPos.pos === currentPos.end()\n\n if (isAtEnd) {\n const currentMarks = currentPos.marks()\n const isInMark = !!currentMarks.find(m => m?.type.name === mark.name)\n\n if (!isInMark) {\n return false\n }\n\n const removeMark = currentMarks.find(m => m?.type.name === mark.name)\n\n if (removeMark) {\n tr.removeStoredMark(removeMark)\n }\n tr.insertText(' ', currentPos.pos)\n\n editor.view.dispatch(tr)\n\n return true\n }\n\n return false\n }\n}\n","import {\n DOMOutputSpec, Node as ProseMirrorNode, NodeSpec, NodeType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { NodeConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n NodeViewRenderer,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface NodeConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n editor?: Editor\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Node View\n */\n addNodeView?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addNodeView']\n }) => NodeViewRenderer)\n | null\n\n /**\n * Defines if this node should be a top level node (doc)\n * @default false\n * @example true\n */\n topNode?: boolean\n\n /**\n * The content expression for this node, as described in the [schema\n * guide](/docs/guide/#schema.content_expressions). When not given,\n * the node does not allow any content.\n *\n * You can read more about it on the Prosemirror documentation here\n * @see https://prosemirror.net/docs/guide/#schema.content_expressions\n * @default undefined\n * @example content: 'block+'\n * @example content: 'headline paragraph block*'\n */\n content?:\n | NodeSpec['content']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['content']\n editor?: Editor\n }) => NodeSpec['content'])\n\n /**\n * The marks that are allowed inside of this node. May be a\n * space-separated string referring to mark names or groups, `\"_\"`\n * to explicitly allow all marks, or `\"\"` to disallow marks. When\n * not given, nodes with inline content default to allowing all\n * marks, other nodes default to not allowing marks.\n *\n * @example marks: 'strong em'\n */\n marks?:\n | NodeSpec['marks']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['marks']\n editor?: Editor\n }) => NodeSpec['marks'])\n\n /**\n * The group or space-separated groups to which this node belongs,\n * which can be referred to in the content expressions for the\n * schema.\n *\n * By default Tiptap uses the groups 'block' and 'inline' for nodes. You\n * can also use custom groups if you want to group specific nodes together\n * and handle them in your schema.\n * @example group: 'block'\n * @example group: 'inline'\n * @example group: 'customBlock' // this uses a custom group\n */\n group?:\n | NodeSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => NodeSpec['group'])\n\n /**\n * Should be set to true for inline nodes. (Implied for text nodes.)\n */\n inline?:\n | NodeSpec['inline']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inline']\n editor?: Editor\n }) => NodeSpec['inline'])\n\n /**\n * Can be set to true to indicate that, though this isn't a [leaf\n * node](https://prosemirror.net/docs/ref/#model.NodeType.isLeaf), it doesn't have directly editable\n * content and should be treated as a single unit in the view.\n *\n * @example atom: true\n */\n atom?:\n | NodeSpec['atom']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['atom']\n editor?: Editor\n }) => NodeSpec['atom'])\n\n /**\n * Controls whether nodes of this type can be selected as a [node\n * selection](https://prosemirror.net/docs/ref/#state.NodeSelection). Defaults to true for non-text\n * nodes.\n *\n * @default true\n * @example selectable: false\n */\n selectable?:\n | NodeSpec['selectable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['selectable']\n editor?: Editor\n }) => NodeSpec['selectable'])\n\n /**\n * Determines whether nodes of this type can be dragged without\n * being selected. Defaults to false.\n *\n * @default: false\n * @example: draggable: true\n */\n draggable?:\n | NodeSpec['draggable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['draggable']\n editor?: Editor\n }) => NodeSpec['draggable'])\n\n /**\n * Can be used to indicate that this node contains code, which\n * causes some commands to behave differently.\n */\n code?:\n | NodeSpec['code']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => NodeSpec['code'])\n\n /**\n * Controls way whitespace in this a node is parsed. The default is\n * `\"normal\"`, which causes the [DOM parser](https://prosemirror.net/docs/ref/#model.DOMParser) to\n * collapse whitespace in normal mode, and normalize it (replacing\n * newlines and such with spaces) otherwise. `\"pre\"` causes the\n * parser to preserve spaces inside the node. When this option isn't\n * given, but [`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) is true, `whitespace`\n * will default to `\"pre\"`. Note that this option doesn't influence\n * the way the node is rendered—that should be handled by `toDOM`\n * and/or styling.\n */\n whitespace?:\n | NodeSpec['whitespace']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['whitespace']\n editor?: Editor\n }) => NodeSpec['whitespace'])\n\n /**\n * When enabled, enables both\n * [`definingAsContext`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext) and\n * [`definingForContent`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n *\n * @default false\n * @example isolating: true\n */\n defining?:\n | NodeSpec['defining']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['defining']\n editor?: Editor\n }) => NodeSpec['defining'])\n\n /**\n * When enabled (default is false), the sides of nodes of this type\n * count as boundaries that regular editing operations, like\n * backspacing or lifting, won't cross. An example of a node that\n * should probably have this enabled is a table cell.\n */\n isolating?:\n | NodeSpec['isolating']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['isolating']\n editor?: Editor\n }) => NodeSpec['isolating'])\n\n /**\n * Associates DOM parser information with this node, which can be\n * used by [`DOMParser.fromSchema`](https://prosemirror.net/docs/ref/#model.DOMParser^fromSchema) to\n * automatically derive a parser. The `node` field in the rules is\n * implied (the name of this node will be filled in automatically).\n * If you supply your own parser, you do not need to also specify\n * parsing rules in your schema.\n *\n * @example parseHTML: [{ tag: 'div', attrs: { 'data-id': 'my-block' } }]\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => NodeSpec['parseDOM']\n\n /**\n * A description of a DOM structure. Can be either a string, which is\n * interpreted as a text node, a DOM node, which is interpreted as\n * itself, a `{dom, contentDOM}` object, or an array.\n *\n * An array describes a DOM element. The first value in the array\n * should be a string—the name of the DOM element, optionally prefixed\n * by a namespace URL and a space. If the second element is plain\n * object, it is interpreted as a set of attributes for the element.\n * Any elements after that (including the 2nd if it's not an attribute\n * object) are interpreted as children of the DOM elements, and must\n * either be valid `DOMOutputSpec` values, or the number zero.\n *\n * The number zero (pronounced “hole”) is used to indicate the place\n * where a node's child nodes should be inserted. If it occurs in an\n * output spec, it should be the only child element in its parent\n * node.\n *\n * @example toDOM: ['div[data-id=\"my-block\"]', { class: 'my-block' }, 0]\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * renders the node as text\n * @example renderText: () => 'foo\n */\n renderText?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderText']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n pos: number\n parent: ProseMirrorNode\n index: number\n },\n ) => string)\n | null\n\n /**\n * Add attributes to the node\n * @example addAttributes: () => ({ class: 'foo' })\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Node class is used to create custom node extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Node {\n type = 'node'\n\n name = 'node'\n\n parent: Node | null = null\n\n child: Node | null = null\n\n options: Options\n\n storage: Storage\n\n config: NodeConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Node(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Node(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","export function isAndroid(): boolean {\n return navigator.platform === 'Android' || /android/i.test(navigator.userAgent)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { NodeSelection } from '@tiptap/pm/state'\nimport { NodeView as ProseMirrorNodeView } from '@tiptap/pm/view'\n\nimport { Editor as CoreEditor } from './Editor.js'\nimport { Node } from './Node.js'\nimport { DecorationWithType, NodeViewRendererOptions, NodeViewRendererProps } from './types.js'\nimport { isAndroid } from './utilities/isAndroid.js'\nimport { isiOS } from './utilities/isiOS.js'\n\n/**\n * Node views are used to customize the rendered DOM structure of a node.\n * @see https://tiptap.dev/guide/node-views\n */\nexport class NodeView<\n Component,\n NodeEditor extends CoreEditor = CoreEditor,\n Options extends NodeViewRendererOptions = NodeViewRendererOptions,\n> implements ProseMirrorNodeView {\n component: Component\n\n editor: NodeEditor\n\n options: Options\n\n extension: Node\n\n node: ProseMirrorNode\n\n decorations: DecorationWithType[]\n\n getPos: any\n\n isDragging = false\n\n constructor(component: Component, props: NodeViewRendererProps, options?: Partial) {\n this.component = component\n this.editor = props.editor as NodeEditor\n this.options = {\n stopEvent: null,\n ignoreMutation: null,\n ...options,\n } as Options\n this.extension = props.extension\n this.node = props.node\n this.decorations = props.decorations as DecorationWithType[]\n this.getPos = props.getPos\n this.mount()\n }\n\n mount() {\n // eslint-disable-next-line\n return\n }\n\n get dom(): HTMLElement {\n return this.editor.view.dom as HTMLElement\n }\n\n get contentDOM(): HTMLElement | null {\n return null\n }\n\n onDragStart(event: DragEvent) {\n const { view } = this.editor\n const target = event.target as HTMLElement\n\n // get the drag handle element\n // `closest` is not available for text nodes so we may have to use its parent\n const dragHandle = target.nodeType === 3\n ? target.parentElement?.closest('[data-drag-handle]')\n : target.closest('[data-drag-handle]')\n\n if (!this.dom || this.contentDOM?.contains(target) || !dragHandle) {\n return\n }\n\n let x = 0\n let y = 0\n\n // calculate offset for drag element if we use a different drag handle element\n if (this.dom !== dragHandle) {\n const domBox = this.dom.getBoundingClientRect()\n const handleBox = dragHandle.getBoundingClientRect()\n\n // In React, we have to go through nativeEvent to reach offsetX/offsetY.\n const offsetX = event.offsetX ?? (event as any).nativeEvent?.offsetX\n const offsetY = event.offsetY ?? (event as any).nativeEvent?.offsetY\n\n x = handleBox.x - domBox.x + offsetX\n y = handleBox.y - domBox.y + offsetY\n }\n\n event.dataTransfer?.setDragImage(this.dom, x, y)\n\n // we need to tell ProseMirror that we want to move the whole node\n // so we create a NodeSelection\n const selection = NodeSelection.create(view.state.doc, this.getPos())\n const transaction = view.state.tr.setSelection(selection)\n\n view.dispatch(transaction)\n }\n\n stopEvent(event: Event) {\n if (!this.dom) {\n return false\n }\n\n if (typeof this.options.stopEvent === 'function') {\n return this.options.stopEvent({ event })\n }\n\n const target = event.target as HTMLElement\n const isInElement = this.dom.contains(target) && !this.contentDOM?.contains(target)\n\n // any event from child nodes should be handled by ProseMirror\n if (!isInElement) {\n return false\n }\n\n const isDragEvent = event.type.startsWith('drag')\n const isDropEvent = event.type === 'drop'\n const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable\n\n // any input event within node views should be ignored by ProseMirror\n if (isInput && !isDropEvent && !isDragEvent) {\n return true\n }\n\n const { isEditable } = this.editor\n const { isDragging } = this\n const isDraggable = !!this.node.type.spec.draggable\n const isSelectable = NodeSelection.isSelectable(this.node)\n const isCopyEvent = event.type === 'copy'\n const isPasteEvent = event.type === 'paste'\n const isCutEvent = event.type === 'cut'\n const isClickEvent = event.type === 'mousedown'\n\n // ProseMirror tries to drag selectable nodes\n // even if `draggable` is set to `false`\n // this fix prevents that\n if (!isDraggable && isSelectable && isDragEvent) {\n event.preventDefault()\n }\n\n if (isDraggable && isDragEvent && !isDragging) {\n event.preventDefault()\n return false\n }\n\n // we have to store that dragging started\n if (isDraggable && isEditable && !isDragging && isClickEvent) {\n const dragHandle = target.closest('[data-drag-handle]')\n const isValidDragHandle = dragHandle && (this.dom === dragHandle || this.dom.contains(dragHandle))\n\n if (isValidDragHandle) {\n this.isDragging = true\n\n document.addEventListener(\n 'dragend',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'drop',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'mouseup',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n }\n }\n\n // these events are handled by prosemirror\n if (\n isDragging\n || isDropEvent\n || isCopyEvent\n || isPasteEvent\n || isCutEvent\n || (isClickEvent && isSelectable)\n ) {\n return false\n }\n\n return true\n }\n\n ignoreMutation(mutation: MutationRecord | { type: 'selection'; target: Element }) {\n if (!this.dom || !this.contentDOM) {\n return true\n }\n\n if (typeof this.options.ignoreMutation === 'function') {\n return this.options.ignoreMutation({ mutation })\n }\n\n // a leaf/atom node is like a black box for ProseMirror\n // and should be fully handled by the node view\n if (this.node.isLeaf || this.node.isAtom) {\n return true\n }\n\n // ProseMirror should handle any selections\n if (mutation.type === 'selection') {\n return false\n }\n\n // try to prevent a bug on iOS and Android that will break node views on enter\n // this is because ProseMirror can’t preventDispatch on enter\n // this will lead to a re-render of the node view on enter\n // see: https://github.com/ueberdosis/tiptap/issues/1214\n // see: https://github.com/ueberdosis/tiptap/issues/2534\n if (\n this.dom.contains(mutation.target)\n && mutation.type === 'childList'\n && (isiOS() || isAndroid())\n && this.editor.isFocused\n ) {\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ] as HTMLElement[]\n\n // we’ll check if every changed node is contentEditable\n // to make sure it’s probably mutated by ProseMirror\n if (changedNodes.every(node => node.isContentEditable)) {\n return false\n }\n }\n\n // we will allow mutation contentDOM with attributes\n // so we can for example adding classes within our node view\n if (this.contentDOM === mutation.target && mutation.type === 'attributes') {\n return true\n }\n\n // ProseMirror should handle any changes within contentDOM\n if (this.contentDOM.contains(mutation.target)) {\n return false\n }\n\n return true\n }\n\n updateAttributes(attributes: {}) {\n this.editor.commands.command(({ tr }) => {\n const pos = this.getPos()\n\n tr.setNodeMarkup(pos, undefined, {\n ...this.node.attrs,\n ...attributes,\n })\n\n return true\n })\n }\n\n deleteNode(): void {\n const from = this.getPos()\n const to = from + this.node.nodeSize\n\n this.editor.commands.deleteRange({ from, to })\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an paste rule that adds a mark when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function markPasteRule(config: {\n find: PasteRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({\n state, range, match, pasteEvent,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n let markEnd = range.to\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","// source: https://stackoverflow.com/a/6969486\nexport function escapeForRegEx(string: string): string {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n}\n","export function isString(value: any): value is string {\n return typeof value === 'string'\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray, JSONContent } from '../types.js'\nimport { callOrReturn } from '../utilities/index.js'\n\n/**\n * Build an paste rule that adds a node when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function nodePasteRule(config: {\n find: PasteRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n getContent?:\n | JSONContent[]\n | ((attrs: Record) => JSONContent[])\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler({\n match, chain, range, pasteEvent,\n }) {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n const content = callOrReturn(config.getContent, undefined, attributes)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const node = { type: config.type.name, attrs: attributes } as JSONContent\n\n if (content) {\n node.content = content\n }\n\n if (match.input) {\n chain().deleteRange(range).insertContentAt(range.from, node)\n }\n },\n })\n}\n","import { PasteRule, PasteRuleFinder } from '../PasteRule.js'\n\n/**\n * Build an paste rule that replaces text when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function textPasteRule(config: {\n find: PasteRuleFinder,\n replace: string,\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Transaction } from '@tiptap/pm/state'\n\nexport interface TrackerResult {\n position: number\n deleted: boolean\n}\n\nexport class Tracker {\n transaction: Transaction\n\n currentStep: number\n\n constructor(transaction: Transaction) {\n this.transaction = transaction\n this.currentStep = this.transaction.steps.length\n }\n\n map(position: number): TrackerResult {\n let deleted = false\n\n const mappedPosition = this.transaction.steps\n .slice(this.currentStep)\n .reduce((newPosition, step) => {\n const mapResult = step.getMap().mapResult(newPosition)\n\n if (mapResult.deleted) {\n deleted = true\n }\n\n return mapResult.pos\n }, position)\n\n return {\n position: mappedPosition,\n deleted,\n }\n }\n}\n"],"names":["Schema","run","Plugin","keymap","PluginKey","liftTarget","originalCreateParagraphNear","state","TextSelection","originalDeleteSelection","originalExitCode","Selection","Fragment","DOMParser","ReplaceStep","ReplaceAroundStep","originalJoinUp","originalJoinDown","originalJoinBackward","originalJoinForward","joinPoint","originalCommand","originalLift","originalLiftEmptyBlock","originalLiftListItem","originalNewlineInCode","originalSelectNodeBackward","originalSelectNodeForward","originalSelectParentNode","originalSelectTextblockEnd","originalSelectTextblockStart","transform","Transform","DOMSerializer","Node","NodeSelection","setBlockType","originalSinkListItem","canSplit","Slice","canJoin","originalWrapIn","originalWrapInList","EditorView","EditorState","findWrapping"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.umd.js","sources":["../src/helpers/createChainableState.ts","../src/CommandManager.ts","../src/EventEmitter.ts","../src/helpers/getExtensionField.ts","../src/helpers/splitExtensions.ts","../src/helpers/getAttributesFromExtensions.ts","../src/helpers/getNodeType.ts","../src/utilities/mergeAttributes.ts","../src/helpers/getRenderedAttributes.ts","../src/utilities/isFunction.ts","../src/utilities/callOrReturn.ts","../src/utilities/isEmptyObject.ts","../src/utilities/fromString.ts","../src/helpers/injectExtensionAttributesToParseRule.ts","../src/helpers/getSchemaByResolvedExtensions.ts","../src/helpers/getSchemaTypeByName.ts","../src/helpers/isExtensionRulesEnabled.ts","../src/helpers/getTextContentFromNodes.ts","../src/utilities/isRegExp.ts","../src/InputRule.ts","../src/utilities/isNumber.ts","../src/PasteRule.ts","../src/utilities/findDuplicates.ts","../src/ExtensionManager.ts","../src/utilities/isPlainObject.ts","../src/utilities/mergeDeep.ts","../src/Extension.ts","../src/helpers/getTextBetween.ts","../src/helpers/getTextSerializersFromSchema.ts","../src/extensions/clipboardTextSerializer.ts","../src/commands/blur.ts","../src/commands/clearContent.ts","../src/commands/clearNodes.ts","../src/commands/command.ts","../src/commands/createParagraphNear.ts","../src/commands/cut.ts","../src/commands/deleteCurrentNode.ts","../src/commands/deleteNode.ts","../src/commands/deleteRange.ts","../src/commands/deleteSelection.ts","../src/commands/enter.ts","../src/commands/exitCode.ts","../src/utilities/objectIncludes.ts","../src/helpers/getMarkRange.ts","../src/helpers/getMarkType.ts","../src/commands/extendMarkRange.ts","../src/commands/first.ts","../src/helpers/isTextSelection.ts","../src/utilities/minMax.ts","../src/helpers/resolveFocusPosition.ts","../src/utilities/isiOS.ts","../src/commands/focus.ts","../src/commands/forEach.ts","../src/commands/insertContent.ts","../src/utilities/elementFromString.ts","../src/helpers/createNodeFromContent.ts","../src/helpers/selectionToInsertionEnd.ts","../src/commands/insertContentAt.ts","../src/commands/join.ts","../src/commands/joinItemBackward.ts","../src/commands/joinItemForward.ts","../src/commands/joinTextblockBackward.ts","../src/commands/joinTextblockForward.ts","../src/utilities/isMacOS.ts","../src/commands/keyboardShortcut.ts","../src/helpers/isNodeActive.ts","../src/commands/lift.ts","../src/commands/liftEmptyBlock.ts","../src/commands/liftListItem.ts","../src/commands/newlineInCode.ts","../src/helpers/getSchemaTypeNameByName.ts","../src/utilities/deleteProps.ts","../src/commands/resetAttributes.ts","../src/commands/scrollIntoView.ts","../src/commands/selectAll.ts","../src/commands/selectNodeBackward.ts","../src/commands/selectNodeForward.ts","../src/commands/selectParentNode.ts","../src/commands/selectTextblockEnd.ts","../src/commands/selectTextblockStart.ts","../src/helpers/createDocument.ts","../src/commands/setContent.ts","../src/helpers/getMarkAttributes.ts","../src/helpers/combineTransactionSteps.ts","../src/helpers/defaultBlockAt.ts","../src/helpers/findChildren.ts","../src/helpers/findChildrenInRange.ts","../src/helpers/findParentNodeClosestToPos.ts","../src/helpers/findParentNode.ts","../src/helpers/getHTMLFromFragment.ts","../src/helpers/getSchema.ts","../src/helpers/generateHTML.ts","../src/helpers/generateJSON.ts","../src/helpers/getText.ts","../src/helpers/generateText.ts","../src/helpers/getNodeAttributes.ts","../src/helpers/getAttributes.ts","../src/utilities/removeDuplicates.ts","../src/helpers/getChangedRanges.ts","../src/helpers/getDebugJSON.ts","../src/helpers/getMarksBetween.ts","../src/helpers/getNodeAtPosition.ts","../src/helpers/getSplittedAttributes.ts","../src/helpers/isMarkActive.ts","../src/helpers/isActive.ts","../src/helpers/isAtEndOfNode.ts","../src/helpers/isAtStartOfNode.ts","../src/helpers/isList.ts","../src/helpers/isNodeEmpty.ts","../src/helpers/isNodeSelection.ts","../src/helpers/posToDOMRect.ts","../src/commands/setMark.ts","../src/commands/setMeta.ts","../src/commands/setNode.ts","../src/commands/setNodeSelection.ts","../src/commands/setTextSelection.ts","../src/commands/sinkListItem.ts","../src/commands/splitBlock.ts","../src/commands/splitListItem.ts","../src/commands/toggleList.ts","../src/commands/toggleMark.ts","../src/commands/toggleNode.ts","../src/commands/toggleWrap.ts","../src/commands/undoInputRule.ts","../src/commands/unsetAllMarks.ts","../src/commands/unsetMark.ts","../src/commands/updateAttributes.ts","../src/commands/wrapIn.ts","../src/commands/wrapInList.ts","../src/extensions/commands.ts","../src/extensions/editable.ts","../src/extensions/focusEvents.ts","../src/extensions/keymap.ts","../src/extensions/tabindex.ts","../src/NodePos.ts","../src/style.ts","../src/utilities/createStyleTag.ts","../src/Editor.ts","../src/inputRules/markInputRule.ts","../src/inputRules/nodeInputRule.ts","../src/inputRules/textblockTypeInputRule.ts","../src/inputRules/textInputRule.ts","../src/inputRules/wrappingInputRule.ts","../src/Mark.ts","../src/Node.ts","../src/utilities/isAndroid.ts","../src/NodeView.ts","../src/pasteRules/markPasteRule.ts","../src/utilities/escapeForRegEx.ts","../src/utilities/isString.ts","../src/pasteRules/nodePasteRule.ts","../src/pasteRules/textPasteRule.ts","../src/Tracker.ts"],"sourcesContent":["import { EditorState, Transaction } from '@tiptap/pm/state'\n\n/**\n * Takes a Transaction & Editor State and turns it into a chainable state object\n * @param config The transaction and state to create the chainable state from\n * @returns A chainable Editor state object\n */\nexport function createChainableState(config: {\n transaction: Transaction\n state: EditorState\n}): EditorState {\n const { state, transaction } = config\n let { selection } = transaction\n let { doc } = transaction\n let { storedMarks } = transaction\n\n return {\n ...state,\n apply: state.apply.bind(state),\n applyTransaction: state.applyTransaction.bind(state),\n plugins: state.plugins,\n schema: state.schema,\n reconfigure: state.reconfigure.bind(state),\n toJSON: state.toJSON.bind(state),\n get storedMarks() {\n return storedMarks\n },\n get selection() {\n return selection\n },\n get doc() {\n return doc\n },\n get tr() {\n selection = transaction.selection\n doc = transaction.doc\n storedMarks = transaction.storedMarks\n\n return transaction\n },\n }\n}\n","import { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n AnyCommands, CanCommands, ChainedCommands, CommandProps, SingleCommands,\n} from './types.js'\n\nexport class CommandManager {\n editor: Editor\n\n rawCommands: AnyCommands\n\n customState?: EditorState\n\n constructor(props: { editor: Editor; state?: EditorState }) {\n this.editor = props.editor\n this.rawCommands = this.editor.extensionManager.commands\n this.customState = props.state\n }\n\n get hasCustomState(): boolean {\n return !!this.customState\n }\n\n get state(): EditorState {\n return this.customState || this.editor.state\n }\n\n get commands(): SingleCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const { tr } = state\n const props = this.buildProps(tr)\n\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const method = (...args: any[]) => {\n const callback = command(...args)(props)\n\n if (!tr.getMeta('preventDispatch') && !this.hasCustomState) {\n view.dispatch(tr)\n }\n\n return callback\n }\n\n return [name, method]\n }),\n ) as unknown as SingleCommands\n }\n\n get chain(): () => ChainedCommands {\n return () => this.createChain()\n }\n\n get can(): () => CanCommands {\n return () => this.createCan()\n }\n\n public createChain(startTr?: Transaction, shouldDispatch = true): ChainedCommands {\n const { rawCommands, editor, state } = this\n const { view } = editor\n const callbacks: boolean[] = []\n const hasStartTransaction = !!startTr\n const tr = startTr || state.tr\n\n const run = () => {\n if (\n !hasStartTransaction\n && shouldDispatch\n && !tr.getMeta('preventDispatch')\n && !this.hasCustomState\n ) {\n view.dispatch(tr)\n }\n\n return callbacks.every(callback => callback === true)\n }\n\n const chain = {\n ...Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n const chainedCommand = (...args: never[]) => {\n const props = this.buildProps(tr, shouldDispatch)\n const callback = command(...args)(props)\n\n callbacks.push(callback)\n\n return chain\n }\n\n return [name, chainedCommand]\n }),\n ),\n run,\n } as unknown as ChainedCommands\n\n return chain\n }\n\n public createCan(startTr?: Transaction): CanCommands {\n const { rawCommands, state } = this\n const dispatch = false\n const tr = startTr || state.tr\n const props = this.buildProps(tr, dispatch)\n const formattedCommands = Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)({ ...props, dispatch: undefined })]\n }),\n ) as unknown as SingleCommands\n\n return {\n ...formattedCommands,\n chain: () => this.createChain(tr, dispatch),\n } as CanCommands\n }\n\n public buildProps(tr: Transaction, shouldDispatch = true): CommandProps {\n const { rawCommands, editor, state } = this\n const { view } = editor\n\n const props: CommandProps = {\n tr,\n editor,\n view,\n state: createChainableState({\n state,\n transaction: tr,\n }),\n dispatch: shouldDispatch ? () => undefined : undefined,\n chain: () => this.createChain(tr, shouldDispatch),\n can: () => this.createCan(tr),\n get commands() {\n return Object.fromEntries(\n Object.entries(rawCommands).map(([name, command]) => {\n return [name, (...args: never[]) => command(...args)(props)]\n }),\n ) as unknown as SingleCommands\n },\n }\n\n return props\n }\n}\n","type StringKeyOf = Extract\ntype CallbackType<\n T extends Record,\n EventName extends StringKeyOf,\n> = T[EventName] extends any[] ? T[EventName] : [T[EventName]]\ntype CallbackFunction<\n T extends Record,\n EventName extends StringKeyOf,\n> = (...props: CallbackType) => any\n\nexport class EventEmitter> {\n\n private callbacks: { [key: string]: Function[] } = {}\n\n public on>(event: EventName, fn: CallbackFunction): this {\n if (!this.callbacks[event]) {\n this.callbacks[event] = []\n }\n\n this.callbacks[event].push(fn)\n\n return this\n }\n\n public emit>(event: EventName, ...args: CallbackType): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n callbacks.forEach(callback => callback.apply(this, args))\n }\n\n return this\n }\n\n public off>(event: EventName, fn?: CallbackFunction): this {\n const callbacks = this.callbacks[event]\n\n if (callbacks) {\n if (fn) {\n this.callbacks[event] = callbacks.filter(callback => callback !== fn)\n } else {\n delete this.callbacks[event]\n }\n }\n\n return this\n }\n\n public removeAllListeners(): void {\n this.callbacks = {}\n }\n}\n","import { AnyExtension, MaybeThisParameterType, RemoveThis } from '../types.js'\n\n/**\n * Returns a field from an extension\n * @param extension The Tiptap extension\n * @param field The field, for example `renderHTML` or `priority`\n * @param context The context object that should be passed as `this` into the function\n * @returns The field value\n */\nexport function getExtensionField(\n extension: AnyExtension,\n field: string,\n context?: Omit, 'parent'>,\n): RemoveThis {\n\n if (extension.config[field] === undefined && extension.parent) {\n return getExtensionField(extension.parent, field, context)\n }\n\n if (typeof extension.config[field] === 'function') {\n const value = extension.config[field].bind({\n ...context,\n parent: extension.parent\n ? getExtensionField(extension.parent, field, context)\n : null,\n })\n\n return value\n }\n\n return extension.config[field]\n}\n","import { Extension } from '../Extension.js'\nimport { Mark } from '../Mark.js'\nimport { Node } from '../Node.js'\nimport { Extensions } from '../types.js'\n\nexport function splitExtensions(extensions: Extensions) {\n const baseExtensions = extensions.filter(extension => extension.type === 'extension') as Extension[]\n const nodeExtensions = extensions.filter(extension => extension.type === 'node') as Node[]\n const markExtensions = extensions.filter(extension => extension.type === 'mark') as Mark[]\n\n return {\n baseExtensions,\n nodeExtensions,\n markExtensions,\n }\n}\n","import { MarkConfig, NodeConfig } from '../index.js'\nimport {\n AnyConfig,\n Attribute,\n Attributes,\n ExtensionAttribute,\n Extensions,\n} from '../types.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { splitExtensions } from './splitExtensions.js'\n\n/**\n * Get a list of all extension attributes defined in `addAttribute` and `addGlobalAttribute`.\n * @param extensions List of extensions\n */\nexport function getAttributesFromExtensions(extensions: Extensions): ExtensionAttribute[] {\n const extensionAttributes: ExtensionAttribute[] = []\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const nodeAndMarkExtensions = [...nodeExtensions, ...markExtensions]\n const defaultAttribute: Required = {\n default: null,\n rendered: true,\n renderHTML: null,\n parseHTML: null,\n keepOnSplit: true,\n isRequired: false,\n }\n\n extensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n extensions: nodeAndMarkExtensions,\n }\n\n const addGlobalAttributes = getExtensionField(\n extension,\n 'addGlobalAttributes',\n context,\n )\n\n if (!addGlobalAttributes) {\n return\n }\n\n const globalAttributes = addGlobalAttributes()\n\n globalAttributes.forEach(globalAttribute => {\n globalAttribute.types.forEach(type => {\n Object\n .entries(globalAttribute.attributes)\n .forEach(([name, attribute]) => {\n extensionAttributes.push({\n type,\n name,\n attribute: {\n ...defaultAttribute,\n ...attribute,\n },\n })\n })\n })\n })\n })\n\n nodeAndMarkExtensions.forEach(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addAttributes = getExtensionField(\n extension,\n 'addAttributes',\n context,\n )\n\n if (!addAttributes) {\n return\n }\n\n // TODO: remove `as Attributes`\n const attributes = addAttributes() as Attributes\n\n Object\n .entries(attributes)\n .forEach(([name, attribute]) => {\n const mergedAttr = {\n ...defaultAttribute,\n ...attribute,\n }\n\n if (typeof mergedAttr?.default === 'function') {\n mergedAttr.default = mergedAttr.default()\n }\n\n if (mergedAttr?.isRequired && mergedAttr?.default === undefined) {\n delete mergedAttr.default\n }\n\n extensionAttributes.push({\n type: extension.name,\n name,\n attribute: mergedAttr,\n })\n })\n })\n\n return extensionAttributes\n}\n","import { NodeType, Schema } from '@tiptap/pm/model'\n\nexport function getNodeType(nameOrType: string | NodeType, schema: Schema): NodeType {\n if (typeof nameOrType === 'string') {\n if (!schema.nodes[nameOrType]) {\n throw Error(\n `There is no node type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.nodes[nameOrType]\n }\n\n return nameOrType\n}\n","export function mergeAttributes(...objects: Record[]): Record {\n return objects\n .filter(item => !!item)\n .reduce((items, item) => {\n const mergedAttributes = { ...items }\n\n Object.entries(item).forEach(([key, value]) => {\n const exists = mergedAttributes[key]\n\n if (!exists) {\n mergedAttributes[key] = value\n\n return\n }\n\n if (key === 'class') {\n const valueClasses: string[] = value ? value.split(' ') : []\n const existingClasses: string[] = mergedAttributes[key] ? mergedAttributes[key].split(' ') : []\n\n const insertClasses = valueClasses.filter(\n valueClass => !existingClasses.includes(valueClass),\n )\n\n mergedAttributes[key] = [...existingClasses, ...insertClasses].join(' ')\n } else if (key === 'style') {\n mergedAttributes[key] = [mergedAttributes[key], value].join('; ')\n } else {\n mergedAttributes[key] = value\n }\n })\n\n return mergedAttributes\n }, {})\n}\n","import { Mark, Node } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { mergeAttributes } from '../utilities/mergeAttributes.js'\n\nexport function getRenderedAttributes(\n nodeOrMark: Node | Mark,\n extensionAttributes: ExtensionAttribute[],\n): Record {\n return extensionAttributes\n .filter(item => item.attribute.rendered)\n .map(item => {\n if (!item.attribute.renderHTML) {\n return {\n [item.name]: nodeOrMark.attrs[item.name],\n }\n }\n\n return item.attribute.renderHTML(nodeOrMark.attrs) || {}\n })\n .reduce((attributes, attribute) => mergeAttributes(attributes, attribute), {})\n}\n","export function isFunction(value: any): value is Function {\n return typeof value === 'function'\n}\n","import { MaybeReturnType } from '../types.js'\nimport { isFunction } from './isFunction.js'\n\n/**\n * Optionally calls `value` as a function.\n * Otherwise it is returned directly.\n * @param value Function or any value.\n * @param context Optional context to bind to function.\n * @param props Optional props to pass to function.\n */\nexport function callOrReturn(value: T, context: any = undefined, ...props: any[]): MaybeReturnType {\n if (isFunction(value)) {\n if (context) {\n return value.bind(context)(...props)\n }\n\n return value(...props)\n }\n\n return value as MaybeReturnType\n}\n","export function isEmptyObject(value = {}): boolean {\n return Object.keys(value).length === 0 && value.constructor === Object\n}\n","export function fromString(value: any): any {\n if (typeof value !== 'string') {\n return value\n }\n\n if (value.match(/^[+-]?(?:\\d*\\.)?\\d+$/)) {\n return Number(value)\n }\n\n if (value === 'true') {\n return true\n }\n\n if (value === 'false') {\n return false\n }\n\n return value\n}\n","import { ParseRule } from '@tiptap/pm/model'\n\nimport { ExtensionAttribute } from '../types.js'\nimport { fromString } from '../utilities/fromString.js'\n\n/**\n * This function merges extension attributes into parserule attributes (`attrs` or `getAttrs`).\n * Cancels when `getAttrs` returned `false`.\n * @param parseRule ProseMirror ParseRule\n * @param extensionAttributes List of attributes to inject\n */\nexport function injectExtensionAttributesToParseRule(\n parseRule: ParseRule,\n extensionAttributes: ExtensionAttribute[],\n): ParseRule {\n if ('style' in parseRule || (!parseRule.attrs && !parseRule.getAttrs && extensionAttributes.length === 0)) {\n return parseRule\n }\n\n return {\n ...parseRule,\n getAttrs: (node: HTMLElement) => {\n const oldAttributes = parseRule.getAttrs ? parseRule.getAttrs(node) : parseRule.attrs\n\n if (oldAttributes === false) {\n return false\n }\n\n const newAttributes = extensionAttributes.reduce((items, item) => {\n const value = item.attribute.parseHTML\n ? item.attribute.parseHTML(node)\n : fromString((node).getAttribute(item.name))\n\n if (value === null || value === undefined) {\n return items\n }\n // @ts-expect-error for perf reasons\n items[item.name] = value\n return items\n }, oldAttributes || {})\n\n return newAttributes\n },\n }\n}\n","import {\n MarkSpec, NodeSpec, Schema, TagParseRule,\n} from '@tiptap/pm/model'\n\nimport { Editor, MarkConfig, NodeConfig } from '../index.js'\nimport { AnyConfig, Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { isEmptyObject } from '../utilities/isEmptyObject.js'\nimport { getAttributesFromExtensions } from './getAttributesFromExtensions.js'\nimport { getExtensionField } from './getExtensionField.js'\nimport { getRenderedAttributes } from './getRenderedAttributes.js'\nimport { injectExtensionAttributesToParseRule } from './injectExtensionAttributesToParseRule.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nfunction cleanUpSchemaItem(data: T) {\n return Object.fromEntries(\n // @ts-ignore\n Object.entries(data).filter(([key, value]) => {\n if (key === 'attrs' && isEmptyObject(value as {} | undefined)) {\n return false\n }\n\n return value !== null && value !== undefined\n }),\n ) as T\n}\n\n/**\n * Creates a new Prosemirror schema based on the given extensions.\n * @param extensions An array of Tiptap extensions\n * @param editor The editor instance\n * @returns A Prosemirror schema\n */\nexport function getSchemaByResolvedExtensions(extensions: Extensions, editor?: Editor): Schema {\n const allAttributes = getAttributesFromExtensions(extensions)\n const { nodeExtensions, markExtensions } = splitExtensions(extensions)\n const topNode = nodeExtensions.find(extension => getExtensionField(extension, 'topNode'))?.name\n\n const nodes = Object.fromEntries(\n nodeExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraNodeFields = extensions.reduce((fields, e) => {\n const extendNodeSchema = getExtensionField(\n e,\n 'extendNodeSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendNodeSchema ? extendNodeSchema(extension) : {}),\n }\n }, {})\n\n const schema: NodeSpec = cleanUpSchemaItem({\n ...extraNodeFields,\n content: callOrReturn(\n getExtensionField(extension, 'content', context),\n ),\n marks: callOrReturn(getExtensionField(extension, 'marks', context)),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n inline: callOrReturn(getExtensionField(extension, 'inline', context)),\n atom: callOrReturn(getExtensionField(extension, 'atom', context)),\n selectable: callOrReturn(\n getExtensionField(extension, 'selectable', context),\n ),\n draggable: callOrReturn(\n getExtensionField(extension, 'draggable', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n whitespace: callOrReturn(getExtensionField(extension, 'whitespace', context)),\n defining: callOrReturn(\n getExtensionField(extension, 'defining', context),\n ),\n isolating: callOrReturn(\n getExtensionField(extension, 'isolating', context),\n ),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes)) as TagParseRule[]\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = node => renderHTML({\n node,\n HTMLAttributes: getRenderedAttributes(node, extensionAttributes),\n })\n }\n\n const renderText = getExtensionField(\n extension,\n 'renderText',\n context,\n )\n\n if (renderText) {\n schema.toText = renderText\n }\n\n return [extension.name, schema]\n }),\n )\n\n const marks = Object.fromEntries(\n markExtensions.map(extension => {\n const extensionAttributes = allAttributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n }\n\n const extraMarkFields = extensions.reduce((fields, e) => {\n const extendMarkSchema = getExtensionField(\n e,\n 'extendMarkSchema',\n context,\n )\n\n return {\n ...fields,\n ...(extendMarkSchema ? extendMarkSchema(extension) : {}),\n }\n }, {})\n\n const schema: MarkSpec = cleanUpSchemaItem({\n ...extraMarkFields,\n inclusive: callOrReturn(\n getExtensionField(extension, 'inclusive', context),\n ),\n excludes: callOrReturn(\n getExtensionField(extension, 'excludes', context),\n ),\n group: callOrReturn(getExtensionField(extension, 'group', context)),\n spanning: callOrReturn(\n getExtensionField(extension, 'spanning', context),\n ),\n code: callOrReturn(getExtensionField(extension, 'code', context)),\n attrs: Object.fromEntries(\n extensionAttributes.map(extensionAttribute => {\n return [extensionAttribute.name, { default: extensionAttribute?.attribute?.default }]\n }),\n ),\n })\n\n const parseHTML = callOrReturn(\n getExtensionField(extension, 'parseHTML', context),\n )\n\n if (parseHTML) {\n schema.parseDOM = parseHTML.map(parseRule => injectExtensionAttributesToParseRule(parseRule, extensionAttributes))\n }\n\n const renderHTML = getExtensionField(\n extension,\n 'renderHTML',\n context,\n )\n\n if (renderHTML) {\n schema.toDOM = mark => renderHTML({\n mark,\n HTMLAttributes: getRenderedAttributes(mark, extensionAttributes),\n })\n }\n\n return [extension.name, schema]\n }),\n )\n\n return new Schema({\n topNode,\n nodes,\n marks,\n })\n}\n","import { MarkType, NodeType, Schema } from '@tiptap/pm/model'\n\n/**\n * Tries to get a node or mark type by its name.\n * @param name The name of the node or mark type\n * @param schema The Prosemiror schema to search in\n * @returns The node or mark type, or null if it doesn't exist\n */\nexport function getSchemaTypeByName(name: string, schema: Schema): NodeType | MarkType | null {\n return schema.nodes[name] || schema.marks[name] || null\n}\n","import { AnyExtension, EnableRules } from '../types.js'\n\nexport function isExtensionRulesEnabled(extension: AnyExtension, enabled: EnableRules): boolean {\n if (Array.isArray(enabled)) {\n return enabled.some(enabledExtension => {\n const name = typeof enabledExtension === 'string'\n ? enabledExtension\n : enabledExtension.name\n\n return name === extension.name\n })\n }\n\n return enabled\n}\n","import { ResolvedPos } from '@tiptap/pm/model'\n\n/**\n * Returns the text content of a resolved prosemirror position\n * @param $from The resolved position to get the text content from\n * @param maxMatch The maximum number of characters to match\n * @returns The text content\n */\nexport const getTextContentFromNodes = ($from: ResolvedPos, maxMatch = 500) => {\n let textBefore = ''\n\n const sliceEndPos = $from.parentOffset\n\n $from.parent.nodesBetween(\n Math.max(0, sliceEndPos - maxMatch),\n sliceEndPos,\n (node, pos, parent, index) => {\n const chunk = node.type.spec.toText?.({\n node,\n pos,\n parent,\n index,\n })\n || node.textContent\n || '%leaf%'\n\n textBefore += node.isAtom && !node.isText ? chunk : chunk.slice(0, Math.max(0, sliceEndPos - pos))\n },\n )\n\n return textBefore\n}\n","export function isRegExp(value: any): value is RegExp {\n return Object.prototype.toString.call(value) === '[object RegExp]'\n}\n","import { EditorState, Plugin, TextSelection } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport { getTextContentFromNodes } from './helpers/getTextContentFromNodes.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type InputRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type InputRuleFinder = RegExp | ((text: string) => InputRuleMatch | null)\n\nexport class InputRule {\n find: InputRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n\n constructor(config: {\n find: InputRuleFinder\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst inputRuleMatcherHandler = (\n text: string,\n find: InputRuleFinder,\n): ExtendedRegExpMatchArray | null => {\n if (isRegExp(find)) {\n return find.exec(text)\n }\n\n const inputRuleMatch = find(text)\n\n if (!inputRuleMatch) {\n return null\n }\n\n const result: ExtendedRegExpMatchArray = [inputRuleMatch.text]\n\n result.index = inputRuleMatch.index\n result.input = text\n result.data = inputRuleMatch.data\n\n if (inputRuleMatch.replaceWith) {\n if (!inputRuleMatch.text.includes(inputRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"inputRuleMatch.replaceWith\" must be part of \"inputRuleMatch.text\".',\n )\n }\n\n result.push(inputRuleMatch.replaceWith)\n }\n\n return result\n}\n\nfunction run(config: {\n editor: Editor\n from: number\n to: number\n text: string\n rules: InputRule[]\n plugin: Plugin\n}): boolean {\n const {\n editor, from, to, text, rules, plugin,\n } = config\n const { view } = editor\n\n if (view.composing) {\n return false\n }\n\n const $from = view.state.doc.resolve(from)\n\n if (\n // check for code node\n $from.parent.type.spec.code\n // check for code mark\n || !!($from.nodeBefore || $from.nodeAfter)?.marks.find(mark => mark.type.spec.code)\n ) {\n return false\n }\n\n let matched = false\n\n const textBefore = getTextContentFromNodes($from) + text\n\n rules.forEach(rule => {\n if (matched) {\n return\n }\n\n const match = inputRuleMatcherHandler(textBefore, rule.find)\n\n if (!match) {\n return\n }\n\n const tr = view.state.tr\n const state = createChainableState({\n state: view.state,\n transaction: tr,\n })\n const range = {\n from: from - (match[0].length - text.length),\n to,\n }\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n })\n\n // stop if there are no changes\n if (handler === null || !tr.steps.length) {\n return\n }\n\n // store transform as meta data\n // so we can undo input rules within the `undoInputRules` command\n tr.setMeta(plugin, {\n transform: tr,\n from,\n to,\n text,\n })\n\n view.dispatch(tr)\n matched = true\n })\n\n return matched\n}\n\n/**\n * Create an input rules plugin. When enabled, it will cause text\n * input that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function inputRulesPlugin(props: { editor: Editor; rules: InputRule[] }): Plugin {\n const { editor, rules } = props\n const plugin = new Plugin({\n state: {\n init() {\n return null\n },\n apply(tr, prev) {\n const stored = tr.getMeta(plugin)\n\n if (stored) {\n return stored\n }\n\n // if InputRule is triggered by insertContent()\n const simulatedInputMeta = tr.getMeta('applyInputRules')\n const isSimulatedInput = !!simulatedInputMeta\n\n if (isSimulatedInput) {\n setTimeout(() => {\n const { from, text } = simulatedInputMeta\n const to = from + text.length\n\n run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n })\n }\n\n return tr.selectionSet || tr.docChanged ? null : prev\n },\n },\n\n props: {\n handleTextInput(view, from, to, text) {\n return run({\n editor,\n from,\n to,\n text,\n rules,\n plugin,\n })\n },\n\n handleDOMEvents: {\n compositionend: view => {\n setTimeout(() => {\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '',\n rules,\n plugin,\n })\n }\n })\n\n return false\n },\n },\n\n // add support for input rules to trigger on enter\n // this is useful for example for code blocks\n handleKeyDown(view, event) {\n if (event.key !== 'Enter') {\n return false\n }\n\n const { $cursor } = view.state.selection as TextSelection\n\n if ($cursor) {\n return run({\n editor,\n from: $cursor.pos,\n to: $cursor.pos,\n text: '\\n',\n rules,\n plugin,\n })\n }\n\n return false\n },\n },\n\n // @ts-ignore\n isInputRules: true,\n }) as Plugin\n\n return plugin\n}\n","export function isNumber(value: any): value is number {\n return typeof value === 'number'\n}\n","import { EditorState, Plugin } from '@tiptap/pm/state'\n\nimport { CommandManager } from './CommandManager.js'\nimport { Editor } from './Editor.js'\nimport { createChainableState } from './helpers/createChainableState.js'\nimport {\n CanCommands,\n ChainedCommands,\n ExtendedRegExpMatchArray,\n Range,\n SingleCommands,\n} from './types.js'\nimport { isNumber } from './utilities/isNumber.js'\nimport { isRegExp } from './utilities/isRegExp.js'\n\nexport type PasteRuleMatch = {\n index: number\n text: string\n replaceWith?: string\n match?: RegExpMatchArray\n data?: Record\n}\n\nexport type PasteRuleFinder = RegExp | ((text: string, event?: ClipboardEvent | null) => PasteRuleMatch[] | null | undefined)\n\n/**\n * Paste rules are used to react to pasted content.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport class PasteRule {\n find: PasteRuleFinder\n\n handler: (props: {\n state: EditorState\n range: Range\n match: ExtendedRegExpMatchArray\n commands: SingleCommands\n chain: () => ChainedCommands\n can: () => CanCommands\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n }) => void | null\n\n constructor(config: {\n find: PasteRuleFinder\n handler: (props: {\n can: () => CanCommands\n chain: () => ChainedCommands\n commands: SingleCommands\n dropEvent: DragEvent | null\n match: ExtendedRegExpMatchArray\n pasteEvent: ClipboardEvent | null\n range: Range\n state: EditorState\n }) => void | null\n }) {\n this.find = config.find\n this.handler = config.handler\n }\n}\n\nconst pasteRuleMatcherHandler = (\n text: string,\n find: PasteRuleFinder,\n event?: ClipboardEvent | null,\n): ExtendedRegExpMatchArray[] => {\n if (isRegExp(find)) {\n return [...text.matchAll(find)]\n }\n\n const matches = find(text, event)\n\n if (!matches) {\n return []\n }\n\n return matches.map(pasteRuleMatch => {\n const result: ExtendedRegExpMatchArray = [pasteRuleMatch.text]\n\n result.index = pasteRuleMatch.index\n result.input = text\n result.data = pasteRuleMatch.data\n\n if (pasteRuleMatch.replaceWith) {\n if (!pasteRuleMatch.text.includes(pasteRuleMatch.replaceWith)) {\n console.warn(\n '[tiptap warn]: \"pasteRuleMatch.replaceWith\" must be part of \"pasteRuleMatch.text\".',\n )\n }\n\n result.push(pasteRuleMatch.replaceWith)\n }\n\n return result\n })\n}\n\nfunction run(config: {\n editor: Editor\n state: EditorState\n from: number\n to: number\n rule: PasteRule\n pasteEvent: ClipboardEvent | null\n dropEvent: DragEvent | null\n}): boolean {\n const {\n editor, state, from, to, rule, pasteEvent, dropEvent,\n } = config\n\n const { commands, chain, can } = new CommandManager({\n editor,\n state,\n })\n\n const handlers: (void | null)[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isTextblock || node.type.spec.code) {\n return\n }\n\n const resolvedFrom = Math.max(from, pos)\n const resolvedTo = Math.min(to, pos + node.content.size)\n const textToMatch = node.textBetween(resolvedFrom - pos, resolvedTo - pos, undefined, '\\ufffc')\n\n const matches = pasteRuleMatcherHandler(textToMatch, rule.find, pasteEvent)\n\n matches.forEach(match => {\n if (match.index === undefined) {\n return\n }\n\n const start = resolvedFrom + match.index + 1\n const end = start + match[0].length\n const range = {\n from: state.tr.mapping.map(start),\n to: state.tr.mapping.map(end),\n }\n\n const handler = rule.handler({\n state,\n range,\n match,\n commands,\n chain,\n can,\n pasteEvent,\n dropEvent,\n })\n\n handlers.push(handler)\n })\n })\n\n const success = handlers.every(handler => handler !== null)\n\n return success\n}\n\nconst createClipboardPasteEvent = (text: string) => {\n const event = new ClipboardEvent('paste', {\n clipboardData: new DataTransfer(),\n })\n\n event.clipboardData?.setData('text/html', text)\n\n return event\n}\n\n/**\n * Create an paste rules plugin. When enabled, it will cause pasted\n * text that matches any of the given rules to trigger the rule’s\n * action.\n */\nexport function pasteRulesPlugin(props: { editor: Editor; rules: PasteRule[] }): Plugin[] {\n const { editor, rules } = props\n let dragSourceElement: Element | null = null\n let isPastedFromProseMirror = false\n let isDroppedFromProseMirror = false\n let pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n let dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n\n const processEvent = ({\n state,\n from,\n to,\n rule,\n pasteEvt,\n }: {\n state: EditorState\n from: number\n to: { b: number }\n rule: PasteRule\n pasteEvt: ClipboardEvent | null\n }) => {\n const tr = state.tr\n const chainableState = createChainableState({\n state,\n transaction: tr,\n })\n\n const handler = run({\n editor,\n state: chainableState,\n from: Math.max(from - 1, 0),\n to: to.b - 1,\n rule,\n pasteEvent: pasteEvt,\n dropEvent,\n })\n\n if (!handler || !tr.steps.length) {\n return\n }\n\n dropEvent = typeof DragEvent !== 'undefined' ? new DragEvent('drop') : null\n pasteEvent = typeof ClipboardEvent !== 'undefined' ? new ClipboardEvent('paste') : null\n\n return tr\n }\n\n const plugins = rules.map(rule => {\n return new Plugin({\n // we register a global drag handler to track the current drag source element\n view(view) {\n const handleDragstart = (event: DragEvent) => {\n dragSourceElement = view.dom.parentElement?.contains(event.target as Element)\n ? view.dom.parentElement\n : null\n }\n\n window.addEventListener('dragstart', handleDragstart)\n\n return {\n destroy() {\n window.removeEventListener('dragstart', handleDragstart)\n },\n }\n },\n\n props: {\n handleDOMEvents: {\n drop: (view, event: Event) => {\n isDroppedFromProseMirror = dragSourceElement === view.dom.parentElement\n dropEvent = event as DragEvent\n\n return false\n },\n\n paste: (_view, event: Event) => {\n const html = (event as ClipboardEvent).clipboardData?.getData('text/html')\n\n pasteEvent = event as ClipboardEvent\n\n isPastedFromProseMirror = !!html?.includes('data-pm-slice')\n\n return false\n },\n },\n },\n\n appendTransaction: (transactions, oldState, state) => {\n const transaction = transactions[0]\n const isPaste = transaction.getMeta('uiEvent') === 'paste' && !isPastedFromProseMirror\n const isDrop = transaction.getMeta('uiEvent') === 'drop' && !isDroppedFromProseMirror\n\n // if PasteRule is triggered by insertContent()\n const simulatedPasteMeta = transaction.getMeta('applyPasteRules')\n const isSimulatedPaste = !!simulatedPasteMeta\n\n if (!isPaste && !isDrop && !isSimulatedPaste) {\n return\n }\n\n // Handle simulated paste\n if (isSimulatedPaste) {\n const { from, text } = simulatedPasteMeta\n const to = from + text.length\n const pasteEvt = createClipboardPasteEvent(text)\n\n return processEvent({\n rule,\n state,\n from,\n to: { b: to },\n pasteEvt,\n })\n }\n\n // handle actual paste/drop\n const from = oldState.doc.content.findDiffStart(state.doc.content)\n const to = oldState.doc.content.findDiffEnd(state.doc.content)\n\n // stop if there is no changed range\n if (!isNumber(from) || !to || from === to.b) {\n return\n }\n\n return processEvent({\n rule,\n state,\n from,\n to,\n pasteEvt: pasteEvent,\n })\n },\n })\n })\n\n return plugins\n}\n","export function findDuplicates(items: any[]): any[] {\n const filtered = items.filter((el, index) => items.indexOf(el) !== index)\n\n return Array.from(new Set(filtered))\n}\n","import { keymap } from '@tiptap/pm/keymap'\nimport { Node as ProsemirrorNode, Schema } from '@tiptap/pm/model'\nimport { Plugin } from '@tiptap/pm/state'\nimport { Decoration, EditorView } from '@tiptap/pm/view'\n\nimport type { Editor } from './Editor.js'\nimport { getAttributesFromExtensions } from './helpers/getAttributesFromExtensions.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { getNodeType } from './helpers/getNodeType.js'\nimport { getRenderedAttributes } from './helpers/getRenderedAttributes.js'\nimport { getSchemaByResolvedExtensions } from './helpers/getSchemaByResolvedExtensions.js'\nimport { getSchemaTypeByName } from './helpers/getSchemaTypeByName.js'\nimport { isExtensionRulesEnabled } from './helpers/isExtensionRulesEnabled.js'\nimport { splitExtensions } from './helpers/splitExtensions.js'\nimport { Mark, NodeConfig } from './index.js'\nimport { InputRule, inputRulesPlugin } from './InputRule.js'\nimport { PasteRule, pasteRulesPlugin } from './PasteRule.js'\nimport { AnyConfig, Extensions, RawCommands } from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { findDuplicates } from './utilities/findDuplicates.js'\n\nexport class ExtensionManager {\n editor: Editor\n\n schema: Schema\n\n extensions: Extensions\n\n splittableMarks: string[] = []\n\n constructor(extensions: Extensions, editor: Editor) {\n this.editor = editor\n this.extensions = ExtensionManager.resolve(extensions)\n this.schema = getSchemaByResolvedExtensions(this.extensions, editor)\n this.setupExtensions()\n }\n\n /**\n * Returns a flattened and sorted extension list while\n * also checking for duplicated extensions and warns the user.\n * @param extensions An array of Tiptap extensions\n * @returns An flattened and sorted array of Tiptap extensions\n */\n static resolve(extensions: Extensions): Extensions {\n const resolvedExtensions = ExtensionManager.sort(ExtensionManager.flatten(extensions))\n const duplicatedNames = findDuplicates(resolvedExtensions.map(extension => extension.name))\n\n if (duplicatedNames.length) {\n console.warn(\n `[tiptap warn]: Duplicate extension names found: [${duplicatedNames\n .map(item => `'${item}'`)\n .join(', ')}]. This can lead to issues.`,\n )\n }\n\n return resolvedExtensions\n }\n\n /**\n * Create a flattened array of extensions by traversing the `addExtensions` field.\n * @param extensions An array of Tiptap extensions\n * @returns A flattened array of Tiptap extensions\n */\n static flatten(extensions: Extensions): Extensions {\n return (\n extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n const addExtensions = getExtensionField(\n extension,\n 'addExtensions',\n context,\n )\n\n if (addExtensions) {\n return [extension, ...this.flatten(addExtensions())]\n }\n\n return extension\n })\n // `Infinity` will break TypeScript so we set a number that is probably high enough\n .flat(10)\n )\n }\n\n /**\n * Sort extensions by priority.\n * @param extensions An array of Tiptap extensions\n * @returns A sorted array of Tiptap extensions by priority\n */\n static sort(extensions: Extensions): Extensions {\n const defaultPriority = 100\n\n return extensions.sort((a, b) => {\n const priorityA = getExtensionField(a, 'priority') || defaultPriority\n const priorityB = getExtensionField(b, 'priority') || defaultPriority\n\n if (priorityA > priorityB) {\n return -1\n }\n\n if (priorityA < priorityB) {\n return 1\n }\n\n return 0\n })\n }\n\n /**\n * Get all commands from the extensions.\n * @returns An object with all commands where the key is the command name and the value is the command function\n */\n get commands(): RawCommands {\n return this.extensions.reduce((commands, extension) => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const addCommands = getExtensionField(\n extension,\n 'addCommands',\n context,\n )\n\n if (!addCommands) {\n return commands\n }\n\n return {\n ...commands,\n ...addCommands(),\n }\n }, {} as RawCommands)\n }\n\n /**\n * Get all registered Prosemirror plugins from the extensions.\n * @returns An array of Prosemirror plugins\n */\n get plugins(): Plugin[] {\n const { editor } = this\n\n // With ProseMirror, first plugins within an array are executed first.\n // In Tiptap, we provide the ability to override plugins,\n // so it feels more natural to run plugins at the end of an array first.\n // That’s why we have to reverse the `extensions` array and sort again\n // based on the `priority` option.\n const extensions = ExtensionManager.sort([...this.extensions].reverse())\n\n const inputRules: InputRule[] = []\n const pasteRules: PasteRule[] = []\n\n const allPlugins = extensions\n .map(extension => {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n const plugins: Plugin[] = []\n\n const addKeyboardShortcuts = getExtensionField(\n extension,\n 'addKeyboardShortcuts',\n context,\n )\n\n let defaultBindings: Record boolean> = {}\n\n // bind exit handling\n if (extension.type === 'mark' && getExtensionField(extension, 'exitable', context)) {\n defaultBindings.ArrowRight = () => Mark.handleExit({ editor, mark: extension as Mark })\n }\n\n if (addKeyboardShortcuts) {\n const bindings = Object.fromEntries(\n Object.entries(addKeyboardShortcuts()).map(([shortcut, method]) => {\n return [shortcut, () => method({ editor })]\n }),\n )\n\n defaultBindings = { ...defaultBindings, ...bindings }\n }\n\n const keyMapPlugin = keymap(defaultBindings)\n\n plugins.push(keyMapPlugin)\n\n const addInputRules = getExtensionField(\n extension,\n 'addInputRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enableInputRules) && addInputRules) {\n inputRules.push(...addInputRules())\n }\n\n const addPasteRules = getExtensionField(\n extension,\n 'addPasteRules',\n context,\n )\n\n if (isExtensionRulesEnabled(extension, editor.options.enablePasteRules) && addPasteRules) {\n pasteRules.push(...addPasteRules())\n }\n\n const addProseMirrorPlugins = getExtensionField(\n extension,\n 'addProseMirrorPlugins',\n context,\n )\n\n if (addProseMirrorPlugins) {\n const proseMirrorPlugins = addProseMirrorPlugins()\n\n plugins.push(...proseMirrorPlugins)\n }\n\n return plugins\n })\n .flat()\n\n return [\n inputRulesPlugin({\n editor,\n rules: inputRules,\n }),\n ...pasteRulesPlugin({\n editor,\n rules: pasteRules,\n }),\n ...allPlugins,\n ]\n }\n\n /**\n * Get all attributes from the extensions.\n * @returns An array of attributes\n */\n get attributes() {\n return getAttributesFromExtensions(this.extensions)\n }\n\n /**\n * Get all node views from the extensions.\n * @returns An object with all node views where the key is the node name and the value is the node view function\n */\n get nodeViews() {\n const { editor } = this\n const { nodeExtensions } = splitExtensions(this.extensions)\n\n return Object.fromEntries(\n nodeExtensions\n .filter(extension => !!getExtensionField(extension, 'addNodeView'))\n .map(extension => {\n const extensionAttributes = this.attributes.filter(\n attribute => attribute.type === extension.name,\n )\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor,\n type: getNodeType(extension.name, this.schema),\n }\n const addNodeView = getExtensionField(\n extension,\n 'addNodeView',\n context,\n )\n\n if (!addNodeView) {\n return []\n }\n\n const nodeview = (\n node: ProsemirrorNode,\n view: EditorView,\n getPos: (() => number) | boolean,\n decorations: Decoration[],\n ) => {\n const HTMLAttributes = getRenderedAttributes(node, extensionAttributes)\n\n return addNodeView()({\n editor,\n node,\n getPos,\n decorations,\n HTMLAttributes,\n extension,\n })\n }\n\n return [extension.name, nodeview]\n }),\n )\n }\n\n /**\n * Go through all extensions, create extension storages & setup marks\n * & bind editor event listener.\n */\n private setupExtensions() {\n this.extensions.forEach(extension => {\n // store extension storage in editor\n this.editor.extensionStorage[extension.name] = extension.storage\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n editor: this.editor,\n type: getSchemaTypeByName(extension.name, this.schema),\n }\n\n if (extension.type === 'mark') {\n const keepOnSplit = callOrReturn(getExtensionField(extension, 'keepOnSplit', context)) ?? true\n\n if (keepOnSplit) {\n this.splittableMarks.push(extension.name)\n }\n }\n\n const onBeforeCreate = getExtensionField(\n extension,\n 'onBeforeCreate',\n context,\n )\n const onCreate = getExtensionField(extension, 'onCreate', context)\n const onUpdate = getExtensionField(extension, 'onUpdate', context)\n const onSelectionUpdate = getExtensionField(\n extension,\n 'onSelectionUpdate',\n context,\n )\n const onTransaction = getExtensionField(\n extension,\n 'onTransaction',\n context,\n )\n const onFocus = getExtensionField(extension, 'onFocus', context)\n const onBlur = getExtensionField(extension, 'onBlur', context)\n const onDestroy = getExtensionField(extension, 'onDestroy', context)\n\n if (onBeforeCreate) {\n this.editor.on('beforeCreate', onBeforeCreate)\n }\n\n if (onCreate) {\n this.editor.on('create', onCreate)\n }\n\n if (onUpdate) {\n this.editor.on('update', onUpdate)\n }\n\n if (onSelectionUpdate) {\n this.editor.on('selectionUpdate', onSelectionUpdate)\n }\n\n if (onTransaction) {\n this.editor.on('transaction', onTransaction)\n }\n\n if (onFocus) {\n this.editor.on('focus', onFocus)\n }\n\n if (onBlur) {\n this.editor.on('blur', onBlur)\n }\n\n if (onDestroy) {\n this.editor.on('destroy', onDestroy)\n }\n })\n }\n}\n","// see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts\n\nfunction getType(value: any): string {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nexport function isPlainObject(value: any): value is Record {\n if (getType(value) !== 'Object') {\n return false\n }\n\n return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype\n}\n","import { isPlainObject } from './isPlainObject.js'\n\nexport function mergeDeep(target: Record, source: Record): Record {\n const output = { ...target }\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) && isPlainObject(target[key])) {\n output[key] = mergeDeep(target[key], source[key])\n } else {\n output[key] = source[key]\n }\n })\n }\n\n return output\n}\n","import { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { ExtensionConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface ExtensionConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#commands\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/docs/editor/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n }\n}\n\n/**\n * The Extension class is the base class for all extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Extension {\n type = 'extension'\n\n name = 'extension'\n\n parent: Extension | null = null\n\n child: Extension | null = null\n\n options: Options\n\n storage: Storage\n\n config: ExtensionConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Extension(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Extension({ ...this.config, ...extendedConfig })\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { Range, TextSerializer } from '../types.js'\n\n/**\n * Gets the text between two positions in a Prosemirror node\n * and serializes it using the given text serializers and block separator (see getText)\n * @param startNode The Prosemirror node to start from\n * @param range The range of the text to get\n * @param options Options for the text serializer & block separator\n * @returns The text between the two positions\n */\nexport function getTextBetween(\n startNode: ProseMirrorNode,\n range: Range,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { from, to } = range\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n let text = ''\n\n startNode.nodesBetween(from, to, (node, pos, parent, index) => {\n if (node.isBlock && pos > from) {\n text += blockSeparator\n }\n\n const textSerializer = textSerializers?.[node.type.name]\n\n if (textSerializer) {\n if (parent) {\n text += textSerializer({\n node,\n pos,\n parent,\n index,\n range,\n })\n }\n // do not descend into child nodes when there exists a serializer\n return false\n }\n\n if (node.isText) {\n text += node?.text?.slice(Math.max(from, pos) - pos, to - pos) // eslint-disable-line\n }\n })\n\n return text\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\n\n/**\n * Find text serializers `toText` in a Prosemirror schema\n * @param schema The Prosemirror schema to search in\n * @returns A record of text serializers by node name\n */\nexport function getTextSerializersFromSchema(schema: Schema): Record {\n return Object.fromEntries(\n Object.entries(schema.nodes)\n .filter(([, node]) => node.spec.toText)\n .map(([name, node]) => [name, node.spec.toText]),\n )\n}\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\nimport { getTextBetween } from '../helpers/getTextBetween.js'\nimport { getTextSerializersFromSchema } from '../helpers/getTextSerializersFromSchema.js'\n\nexport type ClipboardTextSerializerOptions = {\n blockSeparator?: string,\n}\n\nexport const ClipboardTextSerializer = Extension.create({\n name: 'clipboardTextSerializer',\n\n addOptions() {\n return {\n blockSeparator: undefined,\n }\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('clipboardTextSerializer'),\n props: {\n clipboardTextSerializer: () => {\n const { editor } = this\n const { state, schema } = editor\n const { doc, selection } = state\n const { ranges } = selection\n const from = Math.min(...ranges.map(range => range.$from.pos))\n const to = Math.max(...ranges.map(range => range.$to.pos))\n const textSerializers = getTextSerializersFromSchema(schema)\n const range = { from, to }\n\n return getTextBetween(doc, range, {\n ...(this.options.blockSeparator !== undefined\n ? { blockSeparator: this.options.blockSeparator }\n : {}),\n textSerializers,\n })\n },\n },\n }),\n ]\n },\n})\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n blur: {\n /**\n * Removes focus from the editor.\n * @example editor.commands.blur()\n */\n blur: () => ReturnType,\n }\n }\n}\n\nexport const blur: RawCommands['blur'] = () => ({ editor, view }) => {\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n (view.dom as HTMLElement).blur()\n\n // Browsers should remove the caret on blur but safari does not.\n // See: https://github.com/ueberdosis/tiptap/issues/2405\n window?.getSelection()?.removeAllRanges()\n }\n })\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearContent: {\n /**\n * Clear the whole document.\n * @param emitUpdate Whether to emit an update event.\n * @example editor.commands.clearContent()\n */\n clearContent: (emitUpdate?: boolean) => ReturnType,\n }\n }\n}\n\nexport const clearContent: RawCommands['clearContent'] = (emitUpdate = false) => ({ commands }) => {\n return commands.setContent('', emitUpdate)\n}\n","import { liftTarget } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n clearNodes: {\n /**\n * Normalize nodes to a simple paragraph.\n * @example editor.commands.clearNodes()\n */\n clearNodes: () => ReturnType,\n }\n }\n}\n\nexport const clearNodes: RawCommands['clearNodes'] = () => ({ state, tr, dispatch }) => {\n const { selection } = tr\n const { ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n ranges.forEach(({ $from, $to }) => {\n state.doc.nodesBetween($from.pos, $to.pos, (node, pos) => {\n if (node.type.isText) {\n return\n }\n\n const { doc, mapping } = tr\n const $mappedFrom = doc.resolve(mapping.map(pos))\n const $mappedTo = doc.resolve(mapping.map(pos + node.nodeSize))\n const nodeRange = $mappedFrom.blockRange($mappedTo)\n\n if (!nodeRange) {\n return\n }\n\n const targetLiftDepth = liftTarget(nodeRange)\n\n if (node.type.isTextblock) {\n const { defaultType } = $mappedFrom.parent.contentMatchAt($mappedFrom.index())\n\n tr.setNodeMarkup(nodeRange.start, defaultType)\n }\n\n if (targetLiftDepth || targetLiftDepth === 0) {\n tr.lift(nodeRange, targetLiftDepth)\n }\n })\n })\n\n return true\n}\n","import { Command, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n command: {\n /**\n * Define a command inline.\n * @param fn The command function.\n * @example\n * editor.commands.command(({ tr, state }) => {\n * ...\n * return true\n * })\n */\n command: (fn: (props: Parameters[0]) => boolean) => ReturnType,\n }\n }\n}\n\nexport const command: RawCommands['command'] = fn => props => {\n return fn(props)\n}\n","import { createParagraphNear as originalCreateParagraphNear } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n createParagraphNear: {\n /**\n * Create a paragraph nearby.\n * @example editor.commands.createParagraphNear()\n */\n createParagraphNear: () => ReturnType\n }\n }\n}\n\nexport const createParagraphNear: RawCommands['createParagraphNear'] = () => ({ state, dispatch }) => {\n return originalCreateParagraphNear(state, dispatch)\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n cut: {\n /**\n * Cuts content from a range and inserts it at a given position.\n * @param range The range to cut.\n * @param range.from The start position of the range.\n * @param range.to The end position of the range.\n * @param targetPos The position to insert the content at.\n * @example editor.commands.cut({ from: 1, to: 3 }, 5)\n */\n cut: ({ from, to }: { from: number, to: number }, targetPos: number) => ReturnType,\n }\n }\n}\n\nexport const cut: RawCommands['cut'] = (originRange, targetPos) => ({ editor, tr }) => {\n const { state } = editor\n\n const contentSlice = state.doc.slice(originRange.from, originRange.to)\n\n tr.deleteRange(originRange.from, originRange.to)\n const newPos = tr.mapping.map(targetPos)\n\n tr.insert(newPos, contentSlice.content)\n\n tr.setSelection(new TextSelection(tr.doc.resolve(Math.max(0, newPos - 1))))\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteCurrentNode: {\n /**\n * Delete the node that currently has the selection anchor.\n * @example editor.commands.deleteCurrentNode()\n */\n deleteCurrentNode: () => ReturnType,\n }\n }\n}\n\nexport const deleteCurrentNode: RawCommands['deleteCurrentNode'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const currentNode = selection.$anchor.node()\n\n // if there is content inside the current node, break out of this command\n if (currentNode.content.size > 0) {\n return false\n }\n\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === currentNode.type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteNode: {\n /**\n * Delete a node with a given type or name.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.deleteNode('paragraph')\n */\n deleteNode: (typeOrName: string | NodeType) => ReturnType,\n }\n }\n}\n\nexport const deleteNode: RawCommands['deleteNode'] = typeOrName => ({ tr, state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const $pos = tr.selection.$anchor\n\n for (let depth = $pos.depth; depth > 0; depth -= 1) {\n const node = $pos.node(depth)\n\n if (node.type === type) {\n if (dispatch) {\n const from = $pos.before(depth)\n const to = $pos.after(depth)\n\n tr.delete(from, to).scrollIntoView()\n }\n\n return true\n }\n }\n\n return false\n}\n","import { Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteRange: {\n /**\n * Delete a given range.\n * @param range The range to delete.\n * @example editor.commands.deleteRange({ from: 1, to: 3 })\n */\n deleteRange: (range: Range) => ReturnType,\n }\n }\n}\n\nexport const deleteRange: RawCommands['deleteRange'] = range => ({ tr, dispatch }) => {\n const { from, to } = range\n\n if (dispatch) {\n tr.delete(from, to)\n }\n\n return true\n}\n","import { deleteSelection as originalDeleteSelection } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n deleteSelection: {\n /**\n * Delete the selection, if there is one.\n * @example editor.commands.deleteSelection()\n */\n deleteSelection: () => ReturnType\n }\n }\n}\n\nexport const deleteSelection: RawCommands['deleteSelection'] = () => ({ state, dispatch }) => {\n return originalDeleteSelection(state, dispatch)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n enter: {\n /**\n * Trigger enter.\n * @example editor.commands.enter()\n */\n enter: () => ReturnType,\n }\n }\n}\n\nexport const enter: RawCommands['enter'] = () => ({ commands }) => {\n return commands.keyboardShortcut('Enter')\n}\n","import { exitCode as originalExitCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n exitCode: {\n /**\n * Exit from a code block.\n * @example editor.commands.exitCode()\n */\n exitCode: () => ReturnType\n }\n }\n}\n\nexport const exitCode: RawCommands['exitCode'] = () => ({ state, dispatch }) => {\n return originalExitCode(state, dispatch)\n}\n","import { isRegExp } from './isRegExp.js'\n\n/**\n * Check if object1 includes object2\n * @param object1 Object\n * @param object2 Object\n */\nexport function objectIncludes(\n object1: Record,\n object2: Record,\n options: { strict: boolean } = { strict: true },\n): boolean {\n const keys = Object.keys(object2)\n\n if (!keys.length) {\n return true\n }\n\n return keys.every(key => {\n if (options.strict) {\n return object2[key] === object1[key]\n }\n\n if (isRegExp(object2[key])) {\n return object2[key].test(object1[key])\n }\n\n return object2[key] === object1[key]\n })\n}\n","import { Mark as ProseMirrorMark, MarkType, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Range } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\n\nfunction findMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): ProseMirrorMark | undefined {\n return marks.find(item => {\n return item.type === type && objectIncludes(item.attrs, attributes)\n })\n}\n\nfunction isMarkInSet(\n marks: ProseMirrorMark[],\n type: MarkType,\n attributes: Record = {},\n): boolean {\n return !!findMarkInSet(marks, type, attributes)\n}\n\nexport function getMarkRange(\n $pos: ResolvedPos,\n type: MarkType,\n attributes: Record = {},\n): Range | void {\n if (!$pos || !type) {\n return\n }\n\n let start = $pos.parent.childAfter($pos.parentOffset)\n\n if ($pos.parentOffset === start.offset && start.offset !== 0) {\n start = $pos.parent.childBefore($pos.parentOffset)\n }\n\n if (!start.node) {\n return\n }\n\n const mark = findMarkInSet([...start.node.marks], type, attributes)\n\n if (!mark) {\n return\n }\n\n let startIndex = start.index\n let startPos = $pos.start() + start.offset\n let endIndex = startIndex + 1\n let endPos = startPos + start.node.nodeSize\n\n findMarkInSet([...start.node.marks], type, attributes)\n\n while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {\n startIndex -= 1\n startPos -= $pos.parent.child(startIndex).nodeSize\n }\n\n while (\n endIndex < $pos.parent.childCount\n && isMarkInSet([...$pos.parent.child(endIndex).marks], type, attributes)\n ) {\n endPos += $pos.parent.child(endIndex).nodeSize\n endIndex += 1\n }\n\n return {\n from: startPos,\n to: endPos,\n }\n}\n","import { MarkType, Schema } from '@tiptap/pm/model'\n\nexport function getMarkType(nameOrType: string | MarkType, schema: Schema): MarkType {\n if (typeof nameOrType === 'string') {\n if (!schema.marks[nameOrType]) {\n throw Error(\n `There is no mark type named '${nameOrType}'. Maybe you forgot to add the extension?`,\n )\n }\n\n return schema.marks[nameOrType]\n }\n\n return nameOrType\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n extendMarkRange: {\n /**\n * Extends the text selection to the current mark by type or name.\n * @param typeOrName The type or name of the mark.\n * @param attributes The attributes of the mark.\n * @example editor.commands.extendMarkRange('bold')\n * @example editor.commands.extendMarkRange('mention', { userId: \"1\" })\n */\n extendMarkRange: (\n /**\n * The type or name of the mark.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const extendMarkRange: RawCommands['extendMarkRange'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const type = getMarkType(typeOrName, state.schema)\n const { doc, selection } = tr\n const { $from, from, to } = selection\n\n if (dispatch) {\n const range = getMarkRange($from, type, attributes)\n\n if (range && range.from <= from && range.to >= to) {\n const newSelection = TextSelection.create(doc, range.from, range.to)\n\n tr.setSelection(newSelection)\n }\n }\n\n return true\n}\n","import { Command, CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n first: {\n /**\n * Runs one command after the other and stops at the first which returns true.\n * @param commands The commands to run.\n * @example editor.commands.first([command1, command2])\n */\n first: (commands: Command[] | ((props: CommandProps) => Command[])) => ReturnType,\n }\n }\n}\n\nexport const first: RawCommands['first'] = commands => props => {\n const items = typeof commands === 'function'\n ? commands(props)\n : commands\n\n for (let i = 0; i < items.length; i += 1) {\n if (items[i](props)) {\n return true\n }\n }\n\n return false\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nexport function isTextSelection(value: unknown): value is TextSelection {\n return value instanceof TextSelection\n}\n","export function minMax(value = 0, min = 0, max = 0): number {\n return Math.min(Math.max(value, min), max)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Selection, TextSelection } from '@tiptap/pm/state'\n\nimport { FocusPosition } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\nexport function resolveFocusPosition(\n doc: ProseMirrorNode,\n position: FocusPosition = null,\n): Selection | null {\n if (!position) {\n return null\n }\n\n const selectionAtStart = Selection.atStart(doc)\n const selectionAtEnd = Selection.atEnd(doc)\n\n if (position === 'start' || position === true) {\n return selectionAtStart\n }\n\n if (position === 'end') {\n return selectionAtEnd\n }\n\n const minPos = selectionAtStart.from\n const maxPos = selectionAtEnd.to\n\n if (position === 'all') {\n return TextSelection.create(\n doc,\n minMax(0, minPos, maxPos),\n minMax(doc.content.size, minPos, maxPos),\n )\n }\n\n return TextSelection.create(\n doc,\n minMax(position, minPos, maxPos),\n minMax(position, minPos, maxPos),\n )\n}\n","export function isiOS(): boolean {\n return [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod',\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n}\n","import { isTextSelection } from '../helpers/isTextSelection.js'\nimport { resolveFocusPosition } from '../helpers/resolveFocusPosition.js'\nimport { FocusPosition, RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n focus: {\n /**\n * Focus the editor at the given position.\n * @param position The position to focus at.\n * @param options.scrollIntoView Scroll the focused position into view after focusing\n * @example editor.commands.focus()\n * @example editor.commands.focus(32, { scrollIntoView: false })\n */\n focus: (\n /**\n * The position to focus at.\n */\n position?: FocusPosition,\n\n /**\n * Optional options\n * @default { scrollIntoView: true }\n */\n options?: {\n scrollIntoView?: boolean,\n },\n ) => ReturnType,\n }\n }\n}\n\nexport const focus: RawCommands['focus'] = (position = null, options = {}) => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n options = {\n scrollIntoView: true,\n ...options,\n }\n\n const delayedFocus = () => {\n // focus within `requestAnimationFrame` breaks focus on iOS\n // so we have to call this\n if (isiOS()) {\n (view.dom as HTMLElement).focus()\n }\n\n // For React we have to focus asynchronously. Otherwise wild things happen.\n // see: https://github.com/ueberdosis/tiptap/issues/1520\n requestAnimationFrame(() => {\n if (!editor.isDestroyed) {\n view.focus()\n\n if (options?.scrollIntoView) {\n editor.commands.scrollIntoView()\n }\n }\n })\n }\n\n if ((view.hasFocus() && position === null) || position === false) {\n return true\n }\n\n // we don’t try to resolve a NodeSelection or CellSelection\n if (dispatch && position === null && !isTextSelection(editor.state.selection)) {\n delayedFocus()\n return true\n }\n\n // pass through tr.doc instead of editor.state.doc\n // since transactions could change the editors state before this command has been run\n const selection = resolveFocusPosition(tr.doc, position) || editor.state.selection\n const isSameSelection = editor.state.selection.eq(selection)\n\n if (dispatch) {\n if (!isSameSelection) {\n tr.setSelection(selection)\n }\n\n // `tr.setSelection` resets the stored marks\n // so we’ll restore them if the selection is the same as before\n if (isSameSelection && tr.storedMarks) {\n tr.setStoredMarks(tr.storedMarks)\n }\n\n delayedFocus()\n }\n\n return true\n}\n","import { CommandProps, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n forEach: {\n /**\n * Loop through an array of items.\n */\n forEach: (\n items: T[],\n fn: (\n item: T,\n props: CommandProps & {\n index: number,\n },\n ) => boolean,\n ) => ReturnType,\n }\n }\n}\n\nexport const forEach: RawCommands['forEach'] = (items, fn) => props => {\n return items.every((item, index) => fn(item, { ...props, index }))\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContent: {\n /**\n * Insert a node or string of HTML at the current position.\n * @example editor.commands.insertContent('

Example

')\n * @example editor.commands.insertContent('

Example

', { updateSelection: false })\n */\n insertContent: (\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n applyInputRules?: boolean\n applyPasteRules?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const insertContent: RawCommands['insertContent'] = (value, options) => ({ tr, commands }) => {\n return commands.insertContentAt(\n { from: tr.selection.from, to: tr.selection.to },\n value,\n options,\n )\n}\n","export function elementFromString(value: string): HTMLElement {\n // add a wrapper to preserve leading and trailing whitespace\n const wrappedValue = `${value}`\n\n const html = new window.DOMParser().parseFromString(wrappedValue, 'text/html').body\n\n return html\n}\n","import {\n DOMParser,\n Fragment,\n Node as ProseMirrorNode,\n ParseOptions,\n Schema,\n} from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\n\nexport type CreateNodeFromContentOptions = {\n slice?: boolean\n parseOptions?: ParseOptions\n errorOnInvalidContent?: boolean\n}\n\n/**\n * Takes a JSON or HTML content and creates a Prosemirror node or fragment from it.\n * @param content The JSON or HTML content to create the node from\n * @param schema The Prosemirror schema to use for the node\n * @param options Options for the parser\n * @returns The created Prosemirror node or fragment\n */\nexport function createNodeFromContent(\n content: Content,\n schema: Schema,\n options?: CreateNodeFromContentOptions,\n): ProseMirrorNode | Fragment {\n options = {\n slice: true,\n parseOptions: {},\n ...options,\n }\n\n const isJSONContent = typeof content === 'object' && content !== null\n const isTextContent = typeof content === 'string'\n\n if (isJSONContent) {\n try {\n const isArrayContent = Array.isArray(content) && content.length > 0\n\n // if the JSON Content is an array of nodes, create a fragment for each node\n if (isArrayContent) {\n return Fragment.fromArray(content.map(item => schema.nodeFromJSON(item)))\n }\n\n const node = schema.nodeFromJSON(content)\n\n if (options.errorOnInvalidContent) {\n node.check()\n }\n\n return node\n } catch (error) {\n if (options.errorOnInvalidContent) {\n throw new Error('[tiptap error]: Invalid JSON content', { cause: error as Error })\n }\n\n console.warn('[tiptap warn]: Invalid content.', 'Passed value:', content, 'Error:', error)\n\n return createNodeFromContent('', schema, options)\n }\n }\n\n if (isTextContent) {\n\n // Check for invalid content\n if (options.errorOnInvalidContent) {\n let hasInvalidContent = false\n let invalidContent = ''\n\n // A copy of the current schema with a catch-all node at the end\n const contentCheckSchema = new Schema({\n topNode: schema.spec.topNode,\n marks: schema.spec.marks,\n // Prosemirror's schemas are executed such that: the last to execute, matches last\n // This means that we can add a catch-all node at the end of the schema to catch any content that we don't know how to handle\n nodes: schema.spec.nodes.append({\n __tiptap__private__unknown__catch__all__node: {\n content: 'inline*',\n group: 'block',\n parseDOM: [\n {\n tag: '*',\n getAttrs: e => {\n // If this is ever called, we know that the content has something that we don't know how to handle in the schema\n hasInvalidContent = true\n // Try to stringify the element for a more helpful error message\n invalidContent = typeof e === 'string' ? e : e.outerHTML\n return null\n },\n },\n ],\n },\n }),\n })\n\n if (options.slice) {\n DOMParser.fromSchema(contentCheckSchema).parseSlice(elementFromString(content), options.parseOptions)\n } else {\n DOMParser.fromSchema(contentCheckSchema).parse(elementFromString(content), options.parseOptions)\n }\n\n if (options.errorOnInvalidContent && hasInvalidContent) {\n throw new Error('[tiptap error]: Invalid HTML content', { cause: new Error(`Invalid element found: ${invalidContent}`) })\n }\n }\n\n const parser = DOMParser.fromSchema(schema)\n\n if (options.slice) {\n return parser.parseSlice(elementFromString(content), options.parseOptions).content\n }\n\n return parser.parse(elementFromString(content), options.parseOptions)\n\n }\n\n return createNodeFromContent('', schema, options)\n}\n","import { Selection, Transaction } from '@tiptap/pm/state'\nimport { ReplaceAroundStep, ReplaceStep } from '@tiptap/pm/transform'\n\n// source: https://github.com/ProseMirror/prosemirror-state/blob/master/src/selection.js#L466\nexport function selectionToInsertionEnd(tr: Transaction, startLen: number, bias: number) {\n const last = tr.steps.length - 1\n\n if (last < startLen) {\n return\n }\n\n const step = tr.steps[last]\n\n if (!(step instanceof ReplaceStep || step instanceof ReplaceAroundStep)) {\n return\n }\n\n const map = tr.mapping.maps[last]\n let end = 0\n\n map.forEach((_from, _to, _newFrom, newTo) => {\n if (end === 0) {\n end = newTo\n }\n })\n\n tr.setSelection(Selection.near(tr.doc.resolve(end), bias))\n}\n","import { Fragment, Node as ProseMirrorNode, ParseOptions } from '@tiptap/pm/model'\n\nimport { createNodeFromContent } from '../helpers/createNodeFromContent.js'\nimport { selectionToInsertionEnd } from '../helpers/selectionToInsertionEnd.js'\nimport { Content, Range, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n insertContentAt: {\n /**\n * Insert a node or string of HTML at a specific position.\n * @example editor.commands.insertContentAt(0, '

Example

')\n */\n insertContentAt: (\n /**\n * The position to insert the content at.\n */\n position: number | Range,\n\n /**\n * The ProseMirror content to insert.\n */\n value: Content,\n\n /**\n * Optional options\n */\n options?: {\n /**\n * Options for parsing the content.\n */\n parseOptions?: ParseOptions\n\n /**\n * Whether to update the selection after inserting the content.\n */\n updateSelection?: boolean\n\n /**\n * Whether to apply input rules after inserting the content.\n */\n applyInputRules?: boolean\n\n /**\n * Whether to apply paste rules after inserting the content.\n */\n applyPasteRules?: boolean\n\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nconst isFragment = (nodeOrFragment: ProseMirrorNode | Fragment): nodeOrFragment is Fragment => {\n return !('type' in nodeOrFragment)\n}\n\nexport const insertContentAt: RawCommands['insertContentAt'] = (position, value, options) => ({ tr, dispatch, editor }) => {\n if (dispatch) {\n options = {\n parseOptions: {},\n updateSelection: true,\n applyInputRules: false,\n applyPasteRules: false,\n ...options,\n }\n\n let content: Fragment | ProseMirrorNode\n\n try {\n content = createNodeFromContent(value, editor.schema, {\n parseOptions: {\n preserveWhitespace: 'full',\n ...options.parseOptions,\n },\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n } catch (e) {\n editor.emit('contentError', {\n editor,\n error: e as Error,\n disableCollaboration: () => {\n console.error('[tiptap error]: Unable to disable collaboration at this point in time')\n },\n })\n return false\n }\n\n let { from, to } = typeof position === 'number' ? { from: position, to: position } : { from: position.from, to: position.to }\n\n let isOnlyTextContent = true\n let isOnlyBlockContent = true\n const nodes = isFragment(content) ? content : [content]\n\n nodes.forEach(node => {\n // check if added node is valid\n node.check()\n\n isOnlyTextContent = isOnlyTextContent ? node.isText && node.marks.length === 0 : false\n\n isOnlyBlockContent = isOnlyBlockContent ? node.isBlock : false\n })\n\n // check if we can replace the wrapping node by\n // the newly inserted content\n // example:\n // replace an empty paragraph by an inserted image\n // instead of inserting the image below the paragraph\n if (from === to && isOnlyBlockContent) {\n const { parent } = tr.doc.resolve(from)\n const isEmptyTextBlock = parent.isTextblock && !parent.type.spec.code && !parent.childCount\n\n if (isEmptyTextBlock) {\n from -= 1\n to += 1\n }\n }\n\n let newContent\n\n // if there is only plain text we have to use `insertText`\n // because this will keep the current marks\n if (isOnlyTextContent) {\n // if value is string, we can use it directly\n // otherwise if it is an array, we have to join it\n if (Array.isArray(value)) {\n newContent = value.map(v => v.text || '').join('')\n } else if (typeof value === 'object' && !!value && !!value.text) {\n newContent = value.text\n } else {\n newContent = value as string\n }\n\n tr.insertText(newContent, from, to)\n } else {\n newContent = content\n\n tr.replaceWith(from, to, newContent)\n }\n\n // set cursor at end of inserted content\n if (options.updateSelection) {\n selectionToInsertionEnd(tr, tr.steps.length - 1, -1)\n }\n\n if (options.applyInputRules) {\n tr.setMeta('applyInputRules', { from, text: newContent })\n }\n\n if (options.applyPasteRules) {\n tr.setMeta('applyPasteRules', { from, text: newContent })\n }\n }\n\n return true\n}\n","import {\n joinBackward as originalJoinBackward,\n joinDown as originalJoinDown,\n joinForward as originalJoinForward,\n joinUp as originalJoinUp,\n} from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinUp: {\n /**\n * Join the selected block or, if there is a text selection, the closest ancestor block of the selection that can be joined, with the sibling above it.\n * @example editor.commands.joinUp()\n */\n joinUp: () => ReturnType\n }\n joinDown: {\n /**\n * Join the selected block, or the closest ancestor of the selection that can be joined, with the sibling after it.\n * @example editor.commands.joinDown()\n */\n joinDown: () => ReturnType\n }\n joinBackward: {\n /**\n * If the selection is empty and at the start of a textblock, try to reduce the distance between that block and the one before it—if there's a block directly before it that can be joined, join them.\n * If not, try to move the selected block closer to the next one in the document structure by lifting it out of its\n * parent or moving it into a parent of the previous block. Will use the view for accurate (bidi-aware) start-of-textblock detection if given.\n * @example editor.commands.joinBackward()\n */\n joinBackward: () => ReturnType\n }\n joinForward: {\n /**\n * If the selection is empty and the cursor is at the end of a textblock, try to reduce or remove the boundary between that block and the one after it,\n * either by joining them or by moving the other block closer to this one in the tree structure.\n * Will use the view for accurate start-of-textblock detection if given.\n * @example editor.commands.joinForward()\n */\n joinForward: () => ReturnType\n }\n }\n}\n\nexport const joinUp: RawCommands['joinUp'] = () => ({ state, dispatch }) => {\n return originalJoinUp(state, dispatch)\n}\n\nexport const joinDown: RawCommands['joinDown'] = () => ({ state, dispatch }) => {\n return originalJoinDown(state, dispatch)\n}\n\nexport const joinBackward: RawCommands['joinBackward'] = () => ({ state, dispatch }) => {\n return originalJoinBackward(state, dispatch)\n}\n\nexport const joinForward: RawCommands['joinForward'] = () => ({ state, dispatch }) => {\n return originalJoinForward(state, dispatch)\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemBackward: {\n /**\n * Join two items backward.\n * @example editor.commands.joinItemBackward()\n */\n joinItemBackward: () => ReturnType\n }\n }\n}\n\nexport const joinItemBackward: RawCommands['joinItemBackward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, -1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinPoint } from '@tiptap/pm/transform'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinItemForward: {\n /**\n * Join two items Forwards.\n * @example editor.commands.joinItemForward()\n */\n joinItemForward: () => ReturnType\n }\n }\n}\n\nexport const joinItemForward: RawCommands['joinItemForward'] = () => ({\n state,\n dispatch,\n tr,\n}) => {\n try {\n const point = joinPoint(state.doc, state.selection.$from.pos, +1)\n\n if (point === null || point === undefined) {\n return false\n }\n\n tr.join(point, 2)\n\n if (dispatch) {\n dispatch(tr)\n }\n\n return true\n } catch (e) {\n return false\n }\n}\n","import { joinTextblockBackward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockBackward: {\n /**\n * A more limited form of joinBackward that only tries to join the current textblock to the one before it, if the cursor is at the start of a textblock.\n */\n joinTextblockBackward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockBackward: RawCommands['joinTextblockBackward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","import { joinTextblockForward as originalCommand } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n joinTextblockForward: {\n /**\n * A more limited form of joinForward that only tries to join the current textblock to the one after it, if the cursor is at the end of a textblock.\n */\n joinTextblockForward: () => ReturnType\n }\n }\n}\n\nexport const joinTextblockForward: RawCommands['joinTextblockForward'] = () => ({ state, dispatch }) => {\n return originalCommand(state, dispatch)\n}\n","export function isMacOS(): boolean {\n return typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n}\n","import { RawCommands } from '../types.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nfunction normalizeKeyName(name: string) {\n const parts = name.split(/-(?!$)/)\n let result = parts[parts.length - 1]\n\n if (result === 'Space') {\n result = ' '\n }\n\n let alt\n let ctrl\n let shift\n let meta\n\n for (let i = 0; i < parts.length - 1; i += 1) {\n const mod = parts[i]\n\n if (/^(cmd|meta|m)$/i.test(mod)) {\n meta = true\n } else if (/^a(lt)?$/i.test(mod)) {\n alt = true\n } else if (/^(c|ctrl|control)$/i.test(mod)) {\n ctrl = true\n } else if (/^s(hift)?$/i.test(mod)) {\n shift = true\n } else if (/^mod$/i.test(mod)) {\n if (isiOS() || isMacOS()) {\n meta = true\n } else {\n ctrl = true\n }\n } else {\n throw new Error(`Unrecognized modifier name: ${mod}`)\n }\n }\n\n if (alt) {\n result = `Alt-${result}`\n }\n\n if (ctrl) {\n result = `Ctrl-${result}`\n }\n\n if (meta) {\n result = `Meta-${result}`\n }\n\n if (shift) {\n result = `Shift-${result}`\n }\n\n return result\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n keyboardShortcut: {\n /**\n * Trigger a keyboard shortcut.\n * @param name The name of the keyboard shortcut.\n * @example editor.commands.keyboardShortcut('Mod-b')\n */\n keyboardShortcut: (name: string) => ReturnType,\n }\n }\n}\n\nexport const keyboardShortcut: RawCommands['keyboardShortcut'] = name => ({\n editor,\n view,\n tr,\n dispatch,\n}) => {\n const keys = normalizeKeyName(name).split(/-(?!$)/)\n const key = keys.find(item => !['Alt', 'Ctrl', 'Meta', 'Shift'].includes(item))\n const event = new KeyboardEvent('keydown', {\n key: key === 'Space'\n ? ' '\n : key,\n altKey: keys.includes('Alt'),\n ctrlKey: keys.includes('Ctrl'),\n metaKey: keys.includes('Meta'),\n shiftKey: keys.includes('Shift'),\n bubbles: true,\n cancelable: true,\n })\n\n const capturedTransaction = editor.captureTransaction(() => {\n view.someProp('handleKeyDown', f => f(view, event))\n })\n\n capturedTransaction?.steps.forEach(step => {\n const newStep = step.map(tr.mapping)\n\n if (newStep && dispatch) {\n tr.maybeStep(newStep)\n }\n })\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { NodeRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getNodeType } from './getNodeType.js'\n\nexport function isNodeActive(\n state: EditorState,\n typeOrName: NodeType | string | null,\n attributes: Record = {},\n): boolean {\n const { from, to, empty } = state.selection\n const type = typeOrName ? getNodeType(typeOrName, state.schema) : null\n\n const nodeRanges: NodeRange[] = []\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (node.isText) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n\n nodeRanges.push({\n node,\n from: relativeFrom,\n to: relativeTo,\n })\n })\n\n const selectionRange = to - from\n const matchedNodeRanges = nodeRanges\n .filter(nodeRange => {\n if (!type) {\n return true\n }\n\n return type.name === nodeRange.node.type.name\n })\n .filter(nodeRange => objectIncludes(nodeRange.node.attrs, attributes, { strict: false }))\n\n if (empty) {\n return !!matchedNodeRanges.length\n }\n\n const range = matchedNodeRanges.reduce((sum, nodeRange) => sum + nodeRange.to - nodeRange.from, 0)\n\n return range >= selectionRange\n}\n","import { lift as originalLift } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n lift: {\n /**\n * Removes an existing wrap if possible lifting the node out of it\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.lift('paragraph')\n * @example editor.commands.lift('heading', { level: 1 })\n */\n lift: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const lift: RawCommands['lift'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (!isActive) {\n return false\n }\n\n return originalLift(state, dispatch)\n}\n","import { liftEmptyBlock as originalLiftEmptyBlock } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftEmptyBlock: {\n /**\n * If the cursor is in an empty textblock that can be lifted, lift the block.\n * @example editor.commands.liftEmptyBlock()\n */\n liftEmptyBlock: () => ReturnType,\n }\n }\n}\n\nexport const liftEmptyBlock: RawCommands['liftEmptyBlock'] = () => ({ state, dispatch, editor }) => {\n return originalLiftEmptyBlock(state, tr => {\n if (!dispatch) {\n return true\n }\n\n const { selection, storedMarks } = state\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!marks) { return dispatch(tr) }\n\n const { splittableMarks } = editor.extensionManager\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n return dispatch(tr)\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { liftListItem as originalLiftListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n liftListItem: {\n /**\n * Create a command to lift the list item around the selection up into a wrapping list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.liftListItem('listItem')\n */\n liftListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const liftListItem: RawCommands['liftListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalLiftListItem(type)(state, dispatch)\n}\n","import { newlineInCode as originalNewlineInCode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n newlineInCode: {\n /**\n * Add a newline character in code.\n * @example editor.commands.newlineInCode()\n */\n newlineInCode: () => ReturnType\n }\n }\n}\n\nexport const newlineInCode: RawCommands['newlineInCode'] = () => ({ state, dispatch }) => {\n return originalNewlineInCode(state, dispatch)\n}\n","import { Schema } from '@tiptap/pm/model'\n\n/**\n * Get the type of a schema item by its name.\n * @param name The name of the schema item\n * @param schema The Prosemiror schema to search in\n * @returns The type of the schema item (`node` or `mark`), or null if it doesn't exist\n */\nexport function getSchemaTypeNameByName(name: string, schema: Schema): 'node' | 'mark' | null {\n if (schema.nodes[name]) {\n return 'node'\n }\n\n if (schema.marks[name]) {\n return 'mark'\n }\n\n return null\n}\n","/**\n * Remove a property or an array of properties from an object\n * @param obj Object\n * @param key Key to remove\n */\nexport function deleteProps(obj: Record, propOrProps: string | string[]): Record {\n const props = typeof propOrProps === 'string'\n ? [propOrProps]\n : propOrProps\n\n return Object\n .keys(obj)\n .reduce((newObj: Record, prop) => {\n if (!props.includes(prop)) {\n newObj[prop] = obj[prop]\n }\n\n return newObj\n }, {})\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\nimport { deleteProps } from '../utilities/deleteProps.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n resetAttributes: {\n /**\n * Resets some node attributes to the default value.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node to reset.\n * @example editor.commands.resetAttributes('heading', 'level')\n */\n resetAttributes: (\n typeOrName: string | NodeType | MarkType,\n attributes: string | string[],\n ) => ReturnType\n }\n }\n}\n\nexport const resetAttributes: RawCommands['resetAttributes'] = (typeOrName, attributes) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n state.doc.nodesBetween(range.$from.pos, range.$to.pos, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, deleteProps(node.attrs, attributes))\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n tr.addMark(\n pos,\n pos + node.nodeSize,\n markType.create(deleteProps(mark.attrs, attributes)),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n scrollIntoView: {\n /**\n * Scroll the selection into view.\n * @example editor.commands.scrollIntoView()\n */\n scrollIntoView: () => ReturnType,\n }\n }\n}\n\nexport const scrollIntoView: RawCommands['scrollIntoView'] = () => ({ tr, dispatch }) => {\n if (dispatch) {\n tr.scrollIntoView()\n }\n\n return true\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectAll: {\n /**\n * Select the whole document.\n * @example editor.commands.selectAll()\n */\n selectAll: () => ReturnType,\n }\n }\n}\n\nexport const selectAll: RawCommands['selectAll'] = () => ({ tr, commands }) => {\n return commands.setTextSelection({\n from: 0,\n to: tr.doc.content.size,\n })\n}\n","import { selectNodeBackward as originalSelectNodeBackward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeBackward: {\n /**\n * Select a node backward.\n * @example editor.commands.selectNodeBackward()\n */\n selectNodeBackward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeBackward: RawCommands['selectNodeBackward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeBackward(state, dispatch)\n}\n","import { selectNodeForward as originalSelectNodeForward } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectNodeForward: {\n /**\n * Select a node forward.\n * @example editor.commands.selectNodeForward()\n */\n selectNodeForward: () => ReturnType\n }\n }\n}\n\nexport const selectNodeForward: RawCommands['selectNodeForward'] = () => ({ state, dispatch }) => {\n return originalSelectNodeForward(state, dispatch)\n}\n","import { selectParentNode as originalSelectParentNode } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectParentNode: {\n /**\n * Select the parent node.\n * @example editor.commands.selectParentNode()\n */\n selectParentNode: () => ReturnType\n }\n }\n}\n\nexport const selectParentNode: RawCommands['selectParentNode'] = () => ({ state, dispatch }) => {\n return originalSelectParentNode(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockEnd as originalSelectTextblockEnd } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockEnd: {\n /**\n * Moves the cursor to the end of current text block.\n * @example editor.commands.selectTextblockEnd()\n */\n selectTextblockEnd: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockEnd: RawCommands['selectTextblockEnd'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockEnd(state, dispatch)\n}\n","// @ts-ignore\n// TODO: add types to @types/prosemirror-commands\nimport { selectTextblockStart as originalSelectTextblockStart } from '@tiptap/pm/commands'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n selectTextblockStart: {\n /**\n * Moves the cursor to the start of current text block.\n * @example editor.commands.selectTextblockStart()\n */\n selectTextblockStart: () => ReturnType\n }\n }\n}\n\nexport const selectTextblockStart: RawCommands['selectTextblockStart'] = () => ({ state, dispatch }) => {\n return originalSelectTextblockStart(state, dispatch)\n}\n","import { Node as ProseMirrorNode, ParseOptions, Schema } from '@tiptap/pm/model'\n\nimport { Content } from '../types.js'\nimport { createNodeFromContent } from './createNodeFromContent.js'\n\n/**\n * Create a new Prosemirror document node from content.\n * @param content The JSON or HTML content to create the document from\n * @param schema The Prosemirror schema to use for the document\n * @param parseOptions Options for the parser\n * @returns The created Prosemirror document node\n */\nexport function createDocument(\n content: Content,\n schema: Schema,\n parseOptions: ParseOptions = {},\n options: { errorOnInvalidContent?: boolean } = {},\n): ProseMirrorNode {\n return createNodeFromContent(content, schema, {\n slice: false,\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent,\n }) as ProseMirrorNode\n}\n","import { ParseOptions } from '@tiptap/pm/model'\n\nimport { createDocument } from '../helpers/createDocument.js'\nimport { Content, RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setContent: {\n /**\n * Replace the whole document with new content.\n * @param content The new content.\n * @param emitUpdate Whether to emit an update event.\n * @param parseOptions Options for parsing the content.\n * @example editor.commands.setContent('

Example text

')\n */\n setContent: (\n /**\n * The new content.\n */\n content: Content,\n\n /**\n * Whether to emit an update event.\n * @default false\n */\n emitUpdate?: boolean,\n\n /**\n * Options for parsing the content.\n * @default {}\n */\n parseOptions?: ParseOptions,\n /**\n * Options for `setContent`.\n */\n options?: {\n /**\n * Whether to throw an error if the content is invalid.\n */\n errorOnInvalidContent?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const setContent: RawCommands['setContent'] = (content, emitUpdate = false, parseOptions = {}, options = {}) => ({\n editor, tr, dispatch, commands,\n}) => {\n const { doc } = tr\n\n // This is to keep backward compatibility with the previous behavior\n // TODO remove this in the next major version\n if (parseOptions.preserveWhitespace !== 'full') {\n const document = createDocument(content, editor.schema, parseOptions, {\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n })\n\n if (dispatch) {\n tr.replaceWith(0, doc.content.size, document).setMeta('preventUpdate', !emitUpdate)\n }\n return true\n }\n\n if (dispatch) {\n tr.setMeta('preventUpdate', !emitUpdate)\n }\n\n return commands.insertContentAt(\n { from: 0, to: doc.content.size },\n content,\n {\n parseOptions,\n errorOnInvalidContent: options.errorOnInvalidContent ?? editor.options.enableContentCheck,\n },\n )\n}\n","import { Mark, MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkType } from './getMarkType.js'\n\nexport function getMarkAttributes(\n state: EditorState,\n typeOrName: string | MarkType,\n): Record {\n const type = getMarkType(typeOrName, state.schema)\n const { from, to, empty } = state.selection\n const marks: Mark[] = []\n\n if (empty) {\n if (state.storedMarks) {\n marks.push(...state.storedMarks)\n }\n\n marks.push(...state.selection.$head.marks())\n } else {\n state.doc.nodesBetween(from, to, node => {\n marks.push(...node.marks)\n })\n }\n\n const mark = marks.find(markItem => markItem.type.name === type.name)\n\n if (!mark) {\n return {}\n }\n\n return { ...mark.attrs }\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { Transform } from '@tiptap/pm/transform'\n\n/**\n * Returns a new `Transform` based on all steps of the passed transactions.\n * @param oldDoc The Prosemirror node to start from\n * @param transactions The transactions to combine\n * @returns A new `Transform` with all steps of the passed transactions\n */\nexport function combineTransactionSteps(\n oldDoc: ProseMirrorNode,\n transactions: Transaction[],\n): Transform {\n const transform = new Transform(oldDoc)\n\n transactions.forEach(transaction => {\n transaction.steps.forEach(step => {\n transform.step(step)\n })\n })\n\n return transform\n}\n","import { ContentMatch, NodeType } from '@tiptap/pm/model'\n\n/**\n * Gets the default block type at a given match\n * @param match The content match to get the default block type from\n * @returns The default block type or null\n */\nexport function defaultBlockAt(match: ContentMatch): NodeType | null {\n for (let i = 0; i < match.edgeCount; i += 1) {\n const { type } = match.edge(i)\n\n if (type.isTextblock && !type.hasRequiredAttrs()) {\n return type\n }\n }\n\n return null\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate } from '../types.js'\n\n/**\n * Find children inside a Prosemirror node that match a predicate.\n * @param node The Prosemirror node to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildren(node: ProseMirrorNode, predicate: Predicate): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n node.descendants((child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { NodeWithPos, Predicate, Range } from '../types.js'\n\n/**\n * Same as `findChildren` but searches only within a `range`.\n * @param node The Prosemirror node to search in\n * @param range The range to search in\n * @param predicate The predicate to match\n * @returns An array of nodes with their positions\n */\nexport function findChildrenInRange(\n node: ProseMirrorNode,\n range: Range,\n predicate: Predicate,\n): NodeWithPos[] {\n const nodesWithPos: NodeWithPos[] = []\n\n // if (range.from === range.to) {\n // const nodeAt = node.nodeAt(range.from)\n\n // if (nodeAt) {\n // nodesWithPos.push({\n // node: nodeAt,\n // pos: range.from,\n // })\n // }\n // }\n\n node.nodesBetween(range.from, range.to, (child, pos) => {\n if (predicate(child)) {\n nodesWithPos.push({\n node: child,\n pos,\n })\n }\n })\n\n return nodesWithPos\n}\n","import { Node as ProseMirrorNode, ResolvedPos } from '@tiptap/pm/model'\n\nimport { Predicate } from '../types.js'\n\n/**\n * Finds the closest parent node to a resolved position that matches a predicate.\n * @param $pos The resolved position to search from\n * @param predicate The predicate to match\n * @returns The closest parent node to the resolved position that matches the predicate\n * @example ```js\n * findParentNodeClosestToPos($from, node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNodeClosestToPos(\n $pos: ResolvedPos,\n predicate: Predicate,\n):\n | {\n pos: number\n start: number\n depth: number\n node: ProseMirrorNode\n }\n | undefined {\n for (let i = $pos.depth; i > 0; i -= 1) {\n const node = $pos.node(i)\n\n if (predicate(node)) {\n return {\n pos: i > 0 ? $pos.before(i) : 0,\n start: $pos.start(i),\n depth: i,\n node,\n }\n }\n }\n}\n","import { Selection } from '@tiptap/pm/state'\n\nimport { Predicate } from '../types.js'\nimport { findParentNodeClosestToPos } from './findParentNodeClosestToPos.js'\n\n/**\n * Finds the closest parent node to the current selection that matches a predicate.\n * @param predicate The predicate to match\n * @returns A command that finds the closest parent node to the current selection that matches the predicate\n * @example ```js\n * findParentNode(node => node.type.name === 'paragraph')\n * ```\n */\nexport function findParentNode(predicate: Predicate) {\n return (selection: Selection) => findParentNodeClosestToPos(selection.$from, predicate)\n}\n","import { DOMSerializer, Fragment, Schema } from '@tiptap/pm/model'\n\nexport function getHTMLFromFragment(fragment: Fragment, schema: Schema): string {\n const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment)\n\n const temporaryDocument = document.implementation.createHTMLDocument()\n const container = temporaryDocument.createElement('div')\n\n container.appendChild(documentFragment)\n\n return container.innerHTML\n}\n","import { Schema } from '@tiptap/pm/model'\n\nimport { Editor } from '../Editor.js'\nimport { ExtensionManager } from '../ExtensionManager.js'\nimport { Extensions } from '../types.js'\nimport { getSchemaByResolvedExtensions } from './getSchemaByResolvedExtensions.js'\n\nexport function getSchema(extensions: Extensions, editor?: Editor): Schema {\n const resolvedExtensions = ExtensionManager.resolve(extensions)\n\n return getSchemaByResolvedExtensions(resolvedExtensions, editor)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent } from '../types.js'\nimport { getHTMLFromFragment } from './getHTMLFromFragment.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate HTML from a JSONContent\n * @param doc The JSONContent to generate HTML from\n * @param extensions The extensions to use for the schema\n * @returns The generated HTML\n */\nexport function generateHTML(doc: JSONContent, extensions: Extensions): string {\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getHTMLFromFragment(contentNode.content, schema)\n}\n","import { DOMParser } from '@tiptap/pm/model'\n\nimport { Extensions } from '../types.js'\nimport { elementFromString } from '../utilities/elementFromString.js'\nimport { getSchema } from './getSchema.js'\n\n/**\n * Generate JSONContent from HTML\n * @param html The HTML to generate JSONContent from\n * @param extensions The extensions to use for the schema\n * @returns The generated JSONContent\n */\nexport function generateJSON(html: string, extensions: Extensions): Record {\n const schema = getSchema(extensions)\n const dom = elementFromString(html)\n\n return DOMParser.fromSchema(schema).parse(dom).toJSON()\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { TextSerializer } from '../types.js'\nimport { getTextBetween } from './getTextBetween.js'\n\n/**\n * Gets the text of a Prosemirror node\n * @param node The Prosemirror node\n * @param options Options for the text serializer & block separator\n * @returns The text of the node\n * @example ```js\n * const text = getText(node, { blockSeparator: '\\n' })\n * ```\n */\nexport function getText(\n node: ProseMirrorNode,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n) {\n const range = {\n from: 0,\n to: node.content.size,\n }\n\n return getTextBetween(node, range, options)\n}\n","import { Node } from '@tiptap/pm/model'\n\nimport { Extensions, JSONContent, TextSerializer } from '../types.js'\nimport { getSchema } from './getSchema.js'\nimport { getText } from './getText.js'\nimport { getTextSerializersFromSchema } from './getTextSerializersFromSchema.js'\n\n/**\n * Generate raw text from a JSONContent\n * @param doc The JSONContent to generate text from\n * @param extensions The extensions to use for the schema\n * @param options Options for the text generation f.e. blockSeparator or textSerializers\n * @returns The generated text\n */\nexport function generateText(\n doc: JSONContent,\n extensions: Extensions,\n options?: {\n blockSeparator?: string\n textSerializers?: Record\n },\n): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n const schema = getSchema(extensions)\n const contentNode = Node.fromJSON(schema, doc)\n\n return getText(contentNode, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(schema),\n ...textSerializers,\n },\n })\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getNodeType } from './getNodeType.js'\n\nexport function getNodeAttributes(\n state: EditorState,\n typeOrName: string | NodeType,\n): Record {\n const type = getNodeType(typeOrName, state.schema)\n const { from, to } = state.selection\n const nodes: Node[] = []\n\n state.doc.nodesBetween(from, to, node => {\n nodes.push(node)\n })\n\n const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name)\n\n if (!node) {\n return {}\n }\n\n return { ...node.attrs }\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from './getMarkAttributes.js'\nimport { getNodeAttributes } from './getNodeAttributes.js'\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\n\n/**\n * Get node or mark attributes by type or name on the current editor state\n * @param state The current editor state\n * @param typeOrName The node or mark type or name\n * @returns The attributes of the node or mark or an empty object\n */\nexport function getAttributes(\n state: EditorState,\n typeOrName: string | NodeType | MarkType,\n): Record {\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (schemaType === 'node') {\n return getNodeAttributes(state, typeOrName as NodeType)\n }\n\n if (schemaType === 'mark') {\n return getMarkAttributes(state, typeOrName as MarkType)\n }\n\n return {}\n}\n","/**\n * Removes duplicated values within an array.\n * Supports numbers, strings and objects.\n */\nexport function removeDuplicates(array: T[], by = JSON.stringify): T[] {\n const seen: Record = {}\n\n return array.filter(item => {\n const key = by(item)\n\n return Object.prototype.hasOwnProperty.call(seen, key)\n ? false\n : (seen[key] = true)\n })\n}\n","import { Step, Transform } from '@tiptap/pm/transform'\n\nimport { Range } from '../types.js'\nimport { removeDuplicates } from '../utilities/removeDuplicates.js'\n\nexport type ChangedRange = {\n oldRange: Range,\n newRange: Range,\n}\n\n/**\n * Removes duplicated ranges and ranges that are\n * fully captured by other ranges.\n */\nfunction simplifyChangedRanges(changes: ChangedRange[]): ChangedRange[] {\n const uniqueChanges = removeDuplicates(changes)\n\n return uniqueChanges.length === 1\n ? uniqueChanges\n : uniqueChanges.filter((change, index) => {\n const rest = uniqueChanges.filter((_, i) => i !== index)\n\n return !rest.some(otherChange => {\n return change.oldRange.from >= otherChange.oldRange.from\n && change.oldRange.to <= otherChange.oldRange.to\n && change.newRange.from >= otherChange.newRange.from\n && change.newRange.to <= otherChange.newRange.to\n })\n })\n}\n\n/**\n * Returns a list of changed ranges\n * based on the first and last state of all steps.\n */\nexport function getChangedRanges(transform: Transform): ChangedRange[] {\n const { mapping, steps } = transform\n const changes: ChangedRange[] = []\n\n mapping.maps.forEach((stepMap, index) => {\n const ranges: Range[] = []\n\n // This accounts for step changes where no range was actually altered\n // e.g. when setting a mark, node attribute, etc.\n // @ts-ignore\n if (!stepMap.ranges.length) {\n const { from, to } = steps[index] as Step & {\n from?: number,\n to?: number,\n }\n\n if (from === undefined || to === undefined) {\n return\n }\n\n ranges.push({ from, to })\n } else {\n stepMap.forEach((from, to) => {\n ranges.push({ from, to })\n })\n }\n\n ranges.forEach(({ from, to }) => {\n const newStart = mapping.slice(index).map(from, -1)\n const newEnd = mapping.slice(index).map(to)\n const oldStart = mapping.invert().map(newStart, -1)\n const oldEnd = mapping.invert().map(newEnd)\n\n changes.push({\n oldRange: {\n from: oldStart,\n to: oldEnd,\n },\n newRange: {\n from: newStart,\n to: newEnd,\n },\n })\n })\n })\n\n return simplifyChangedRanges(changes)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { JSONContent } from '../types.js'\n\ninterface DebugJSONContent extends JSONContent {\n from: number\n to: number\n}\n\nexport function getDebugJSON(node: ProseMirrorNode, startOffset = 0): DebugJSONContent {\n const isTopNode = node.type === node.type.schema.topNodeType\n const increment = isTopNode ? 0 : 1\n const from = startOffset\n const to = from + node.nodeSize\n const marks = node.marks.map(mark => {\n const output: { type: string; attrs?: Record } = {\n type: mark.type.name,\n }\n\n if (Object.keys(mark.attrs).length) {\n output.attrs = { ...mark.attrs }\n }\n\n return output\n })\n const attrs = { ...node.attrs }\n const output: DebugJSONContent = {\n type: node.type.name,\n from,\n to,\n }\n\n if (Object.keys(attrs).length) {\n output.attrs = attrs\n }\n\n if (marks.length) {\n output.marks = marks\n }\n\n if (node.content.childCount) {\n output.content = []\n\n node.forEach((child, offset) => {\n output.content?.push(getDebugJSON(child, startOffset + offset + increment))\n })\n }\n\n if (node.text) {\n output.text = node.text\n }\n\n return output\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\nimport { MarkRange } from '../types.js'\nimport { getMarkRange } from './getMarkRange.js'\n\nexport function getMarksBetween(from: number, to: number, doc: ProseMirrorNode): MarkRange[] {\n const marks: MarkRange[] = []\n\n // get all inclusive marks on empty selection\n if (from === to) {\n doc\n .resolve(from)\n .marks()\n .forEach(mark => {\n const $pos = doc.resolve(from)\n const range = getMarkRange($pos, mark.type)\n\n if (!range) {\n return\n }\n\n marks.push({\n mark,\n ...range,\n })\n })\n } else {\n doc.nodesBetween(from, to, (node, pos) => {\n if (!node || node?.nodeSize === undefined) {\n return\n }\n\n marks.push(\n ...node.marks.map(mark => ({\n from: pos,\n to: pos + node.nodeSize,\n mark,\n })),\n )\n })\n }\n\n return marks\n}\n","import { Node, NodeType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\n/**\n * Finds the first node of a given type or name in the current selection.\n * @param state The editor state.\n * @param typeOrName The node type or name.\n * @param pos The position to start searching from.\n * @param maxDepth The maximum depth to search.\n * @returns The node and the depth as an array.\n */\nexport const getNodeAtPosition = (state: EditorState, typeOrName: string | NodeType, pos: number, maxDepth = 20) => {\n const $pos = state.doc.resolve(pos)\n\n let currentDepth = maxDepth\n let node: Node | null = null\n\n while (currentDepth > 0 && node === null) {\n const currentNode = $pos.node(currentDepth)\n\n if (currentNode?.type.name === typeOrName) {\n node = currentNode\n } else {\n currentDepth -= 1\n }\n }\n\n return [node, currentDepth] as [Node | null, number]\n}\n","import { ExtensionAttribute } from '../types.js'\n\n/**\n * Return attributes of an extension that should be splitted by keepOnSplit flag\n * @param extensionAttributes Array of extension attributes\n * @param typeName The type of the extension\n * @param attributes The attributes of the extension\n * @returns The splitted attributes\n */\nexport function getSplittedAttributes(\n extensionAttributes: ExtensionAttribute[],\n typeName: string,\n attributes: Record,\n): Record {\n return Object.fromEntries(Object\n .entries(attributes)\n .filter(([name]) => {\n const extensionAttribute = extensionAttributes.find(item => {\n return item.type === typeName && item.name === name\n })\n\n if (!extensionAttribute) {\n return false\n }\n\n return extensionAttribute.attribute.keepOnSplit\n }))\n}\n","import { MarkType } from '@tiptap/pm/model'\nimport { EditorState } from '@tiptap/pm/state'\n\nimport { MarkRange } from '../types.js'\nimport { objectIncludes } from '../utilities/objectIncludes.js'\nimport { getMarkType } from './getMarkType.js'\n\nexport function isMarkActive(\n state: EditorState,\n typeOrName: MarkType | string | null,\n attributes: Record = {},\n): boolean {\n const { empty, ranges } = state.selection\n const type = typeOrName ? getMarkType(typeOrName, state.schema) : null\n\n if (empty) {\n return !!(state.storedMarks || state.selection.$from.marks())\n .filter(mark => {\n if (!type) {\n return true\n }\n\n return type.name === mark.type.name\n })\n .find(mark => objectIncludes(mark.attrs, attributes, { strict: false }))\n }\n\n let selectionRange = 0\n const markRanges: MarkRange[] = []\n\n ranges.forEach(({ $from, $to }) => {\n const from = $from.pos\n const to = $to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (!node.isText && !node.marks.length) {\n return\n }\n\n const relativeFrom = Math.max(from, pos)\n const relativeTo = Math.min(to, pos + node.nodeSize)\n const range = relativeTo - relativeFrom\n\n selectionRange += range\n\n markRanges.push(\n ...node.marks.map(mark => ({\n mark,\n from: relativeFrom,\n to: relativeTo,\n })),\n )\n })\n })\n\n if (selectionRange === 0) {\n return false\n }\n\n // calculate range of matched mark\n const matchedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return type.name === markRange.mark.type.name\n })\n .filter(markRange => objectIncludes(markRange.mark.attrs, attributes, { strict: false }))\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // calculate range of marks that excludes the searched mark\n // for example `code` doesn’t allow any other marks\n const excludedRange = markRanges\n .filter(markRange => {\n if (!type) {\n return true\n }\n\n return markRange.mark.type !== type && markRange.mark.type.excludes(type)\n })\n .reduce((sum, markRange) => sum + markRange.to - markRange.from, 0)\n\n // we only include the result of `excludedRange`\n // if there is a match at all\n const range = matchedRange > 0 ? matchedRange + excludedRange : matchedRange\n\n return range >= selectionRange\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { getSchemaTypeNameByName } from './getSchemaTypeNameByName.js'\nimport { isMarkActive } from './isMarkActive.js'\nimport { isNodeActive } from './isNodeActive.js'\n\nexport function isActive(\n state: EditorState,\n name: string | null,\n attributes: Record = {},\n): boolean {\n if (!name) {\n return isNodeActive(state, null, attributes) || isMarkActive(state, null, attributes)\n }\n\n const schemaType = getSchemaTypeNameByName(name, state.schema)\n\n if (schemaType === 'node') {\n return isNodeActive(state, name, attributes)\n }\n\n if (schemaType === 'mark') {\n return isMarkActive(state, name, attributes)\n }\n\n return false\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nimport { findParentNode } from './findParentNode.js'\n\nexport const isAtEndOfNode = (state: EditorState, nodeType?: string) => {\n const { $from, $to, $anchor } = state.selection\n\n if (nodeType) {\n const parentNode = findParentNode(node => node.type.name === nodeType)(state.selection)\n\n if (!parentNode) {\n return false\n }\n\n const $parentPos = state.doc.resolve(parentNode.pos + 1)\n\n if ($anchor.pos + 1 === $parentPos.end()) {\n return true\n }\n\n return false\n }\n\n if ($to.parentOffset < $to.parent.nodeSize - 2 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { EditorState } from '@tiptap/pm/state'\n\nexport const isAtStartOfNode = (state: EditorState) => {\n const { $from, $to } = state.selection\n\n if ($from.parentOffset > 0 || $from.pos !== $to.pos) {\n return false\n }\n\n return true\n}\n","import { getExtensionField } from '../helpers/getExtensionField.js'\nimport { NodeConfig } from '../index.js'\nimport { Extensions } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\nimport { splitExtensions } from './splitExtensions.js'\n\nexport function isList(name: string, extensions: Extensions): boolean {\n const { nodeExtensions } = splitExtensions(extensions)\n const extension = nodeExtensions.find(item => item.name === name)\n\n if (!extension) {\n return false\n }\n\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n const group = callOrReturn(getExtensionField(extension, 'group', context))\n\n if (typeof group !== 'string') {\n return false\n }\n\n return group.split(' ').includes('list')\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\n\n/**\n * Returns true if the given prosemirror node is empty.\n */\nexport function isNodeEmpty(\n node: ProseMirrorNode,\n {\n checkChildren = true,\n ignoreWhitespace = false,\n }: {\n /**\n * When true (default), it will also check if all children are empty.\n */\n checkChildren?: boolean;\n /**\n * When true, it will ignore whitespace when checking for emptiness.\n */\n ignoreWhitespace?: boolean;\n } = {},\n): boolean {\n if (ignoreWhitespace) {\n if (node.type.name === 'hardBreak') {\n // Hard breaks are considered empty\n return true\n }\n if (node.isText) {\n return /^\\s*$/m.test(node.text ?? '')\n }\n }\n\n if (node.isText) {\n return !node.text\n }\n\n if (node.isAtom || node.isLeaf) {\n return false\n }\n\n if (node.content.childCount === 0) {\n return true\n }\n\n if (checkChildren) {\n let isContentEmpty = true\n\n node.content.forEach(childNode => {\n if (isContentEmpty === false) {\n // Exit early for perf\n return\n }\n\n if (!isNodeEmpty(childNode, { ignoreWhitespace, checkChildren })) {\n isContentEmpty = false\n }\n })\n\n return isContentEmpty\n }\n\n return false\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nexport function isNodeSelection(value: unknown): value is NodeSelection {\n return value instanceof NodeSelection\n}\n","import { EditorView } from '@tiptap/pm/view'\n\nimport { minMax } from '../utilities/minMax.js'\n\nexport function posToDOMRect(view: EditorView, from: number, to: number): DOMRect {\n const minPos = 0\n const maxPos = view.state.doc.content.size\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const start = view.coordsAtPos(resolvedFrom)\n const end = view.coordsAtPos(resolvedEnd, -1)\n const top = Math.min(start.top, end.top)\n const bottom = Math.max(start.bottom, end.bottom)\n const left = Math.min(start.left, end.left)\n const right = Math.max(start.right, end.right)\n const width = right - left\n const height = bottom - top\n const x = left\n const y = top\n const data = {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x,\n y,\n }\n\n return {\n ...data,\n toJSON: () => data,\n }\n}\n","import { MarkType, ResolvedPos } from '@tiptap/pm/model'\nimport { EditorState, Transaction } from '@tiptap/pm/state'\n\nimport { getMarkAttributes } from '../helpers/getMarkAttributes.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isTextSelection } from '../helpers/index.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMark: {\n /**\n * Add a mark with new attributes.\n * @param typeOrName The mark type or name.\n * @example editor.commands.setMark('bold', { level: 1 })\n */\n setMark: (typeOrName: string | MarkType, attributes?: Record) => ReturnType\n }\n }\n}\n\nfunction canSetMark(state: EditorState, tr: Transaction, newMarkType: MarkType) {\n const { selection } = tr\n let cursor: ResolvedPos | null = null\n\n if (isTextSelection(selection)) {\n cursor = selection.$cursor\n }\n\n if (cursor) {\n const currentMarks = state.storedMarks ?? cursor.marks()\n\n // There can be no current marks that exclude the new mark\n return (\n !!newMarkType.isInSet(currentMarks)\n || !currentMarks.some(mark => mark.type.excludes(newMarkType))\n )\n }\n\n const { ranges } = selection\n\n return ranges.some(({ $from, $to }) => {\n let someNodeSupportsMark = $from.depth === 0\n ? state.doc.inlineContent && state.doc.type.allowsMarkType(newMarkType)\n : false\n\n state.doc.nodesBetween($from.pos, $to.pos, (node, _pos, parent) => {\n // If we already found a mark that we can enable, return false to bypass the remaining search\n if (someNodeSupportsMark) {\n return false\n }\n\n if (node.isInline) {\n const parentAllowsMarkType = !parent || parent.type.allowsMarkType(newMarkType)\n const currentMarksAllowMarkType = !!newMarkType.isInSet(node.marks)\n || !node.marks.some(otherMark => otherMark.type.excludes(newMarkType))\n\n someNodeSupportsMark = parentAllowsMarkType && currentMarksAllowMarkType\n }\n return !someNodeSupportsMark\n })\n\n return someNodeSupportsMark\n })\n}\nexport const setMark: RawCommands['setMark'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n const type = getMarkType(typeOrName, state.schema)\n\n if (dispatch) {\n if (empty) {\n const oldAttributes = getMarkAttributes(state, type)\n\n tr.addStoredMark(\n type.create({\n ...oldAttributes,\n ...attributes,\n }),\n )\n } else {\n ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n const someHasMark = node.marks.find(mark => mark.type === type)\n\n // if there is already a mark of this type\n // we know that we have to merge its attributes\n // otherwise we add a fresh new mark\n if (someHasMark) {\n node.marks.forEach(mark => {\n if (type === mark.type) {\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n type.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n } else {\n tr.addMark(trimmedFrom, trimmedTo, type.create(attributes))\n }\n })\n })\n }\n }\n\n return canSetMark(state, tr, type)\n}\n","import type { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setMeta: {\n /**\n * Store a metadata property in the current transaction.\n * @param key The key of the metadata property.\n * @param value The value to store.\n * @example editor.commands.setMeta('foo', 'bar')\n */\n setMeta: (key: string | Plugin | PluginKey, value: any) => ReturnType,\n }\n }\n}\n\nexport const setMeta: RawCommands['setMeta'] = (key, value) => ({ tr }) => {\n tr.setMeta(key, value)\n\n return true\n}\n","import { setBlockType } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNode: {\n /**\n * Replace a given range with a node.\n * @param typeOrName The type or name of the node\n * @param attributes The attributes of the node\n * @example editor.commands.setNode('paragraph')\n */\n setNode: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const setNode: RawCommands['setNode'] = (typeOrName, attributes = {}) => ({ state, dispatch, chain }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n // TODO: use a fallback like insertContent?\n if (!type.isTextblock) {\n console.warn('[tiptap warn]: Currently \"setNode()\" only supports text block nodes.')\n\n return false\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(({ commands }) => {\n const canSetBlock = setBlockType(type, attributes)(state)\n\n if (canSetBlock) {\n return true\n }\n\n return commands.clearNodes()\n })\n .command(({ state: updatedState }) => {\n return setBlockType(type, attributes)(updatedState, dispatch)\n })\n .run()\n )\n}\n","import { NodeSelection } from '@tiptap/pm/state'\n\nimport { RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setNodeSelection: {\n /**\n * Creates a NodeSelection.\n * @param position - Position of the node.\n * @example editor.commands.setNodeSelection(10)\n */\n setNodeSelection: (position: number) => ReturnType\n }\n }\n}\n\nexport const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const from = minMax(position, 0, doc.content.size)\n const selection = NodeSelection.create(doc, from)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { TextSelection } from '@tiptap/pm/state'\n\nimport { Range, RawCommands } from '../types.js'\nimport { minMax } from '../utilities/minMax.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n setTextSelection: {\n /**\n * Creates a TextSelection.\n * @param position The position of the selection.\n * @example editor.commands.setTextSelection(10)\n */\n setTextSelection: (position: number | Range) => ReturnType\n }\n }\n}\n\nexport const setTextSelection: RawCommands['setTextSelection'] = position => ({ tr, dispatch }) => {\n if (dispatch) {\n const { doc } = tr\n const { from, to } = typeof position === 'number' ? { from: position, to: position } : position\n const minPos = TextSelection.atStart(doc).from\n const maxPos = TextSelection.atEnd(doc).to\n const resolvedFrom = minMax(from, minPos, maxPos)\n const resolvedEnd = minMax(to, minPos, maxPos)\n const selection = TextSelection.create(doc, resolvedFrom, resolvedEnd)\n\n tr.setSelection(selection)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { sinkListItem as originalSinkListItem } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n sinkListItem: {\n /**\n * Sink the list item down into an inner list.\n * @param typeOrName The type or name of the node.\n * @example editor.commands.sinkListItem('listItem')\n */\n sinkListItem: (typeOrName: string | NodeType) => ReturnType\n }\n }\n}\n\nexport const sinkListItem: RawCommands['sinkListItem'] = typeOrName => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalSinkListItem(type)(state, dispatch)\n}\n","import { EditorState, NodeSelection, TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { defaultBlockAt } from '../helpers/defaultBlockAt.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\nfunction ensureMarks(state: EditorState, splittableMarks?: string[]) {\n const marks = state.storedMarks || (state.selection.$to.parentOffset && state.selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks?.includes(mark.type.name))\n\n state.tr.ensureMarks(filteredMarks)\n }\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitBlock: {\n /**\n * Forks a new node from an existing node.\n * @param options.keepMarks Keep marks from the previous node.\n * @example editor.commands.splitBlock()\n * @example editor.commands.splitBlock({ keepMarks: true })\n */\n splitBlock: (options?: { keepMarks?: boolean }) => ReturnType\n }\n }\n}\n\nexport const splitBlock: RawCommands['splitBlock'] = ({ keepMarks = true } = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const { selection, doc } = tr\n const { $from, $to } = selection\n const extensionAttributes = editor.extensionManager.attributes\n const newAttributes = getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n )\n\n if (selection instanceof NodeSelection && selection.node.isBlock) {\n if (!$from.parentOffset || !canSplit(doc, $from.pos)) {\n return false\n }\n\n if (dispatch) {\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.split($from.pos).scrollIntoView()\n }\n\n return true\n }\n\n if (!$from.parent.isBlock) {\n return false\n }\n\n const atEnd = $to.parentOffset === $to.parent.content.size\n\n const deflt = $from.depth === 0\n ? undefined\n : defaultBlockAt($from.node(-1).contentMatchAt($from.indexAfter(-1)))\n\n let types = atEnd && deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n\n let can = canSplit(tr.doc, tr.mapping.map($from.pos), 1, types)\n\n if (\n !types\n && !can\n && canSplit(tr.doc, tr.mapping.map($from.pos), 1, deflt ? [{ type: deflt }] : undefined)\n ) {\n can = true\n types = deflt\n ? [\n {\n type: deflt,\n attrs: newAttributes,\n },\n ]\n : undefined\n }\n\n if (dispatch) {\n if (can) {\n if (selection instanceof TextSelection) {\n tr.deleteSelection()\n }\n\n tr.split(tr.mapping.map($from.pos), 1, types)\n\n if (deflt && !atEnd && !$from.parentOffset && $from.parent.type !== deflt) {\n const first = tr.mapping.map($from.before())\n const $first = tr.doc.resolve(first)\n\n if ($from.node(-1).canReplaceWith($first.index(), $first.index() + 1, deflt)) {\n tr.setNodeMarkup(tr.mapping.map($from.before()), deflt)\n }\n }\n }\n\n if (keepMarks) {\n ensureMarks(state, editor.extensionManager.splittableMarks)\n }\n\n tr.scrollIntoView()\n }\n\n return can\n}\n","import {\n Fragment, Node as ProseMirrorNode, NodeType, Slice,\n} from '@tiptap/pm/model'\nimport { TextSelection } from '@tiptap/pm/state'\nimport { canSplit } from '@tiptap/pm/transform'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSplittedAttributes } from '../helpers/getSplittedAttributes.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n splitListItem: {\n /**\n * Splits one list item into two list items.\n * @param typeOrName The type or name of the node.\n * @param overrideAttrs The attributes to ensure on the new node.\n * @example editor.commands.splitListItem('listItem')\n */\n splitListItem: (typeOrName: string | NodeType, overrideAttrs?: Record) => ReturnType\n }\n }\n}\n\nexport const splitListItem: RawCommands['splitListItem'] = (typeOrName, overrideAttrs = {}) => ({\n tr, state, dispatch, editor,\n}) => {\n const type = getNodeType(typeOrName, state.schema)\n const { $from, $to } = state.selection\n\n // @ts-ignore\n // eslint-disable-next-line\n const node: ProseMirrorNode = state.selection.node\n\n if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {\n return false\n }\n\n const grandParent = $from.node(-1)\n\n if (grandParent.type !== type) {\n return false\n }\n\n const extensionAttributes = editor.extensionManager.attributes\n\n if ($from.parent.content.size === 0 && $from.node(-1).childCount === $from.indexAfter(-1)) {\n // In an empty block. If this is a nested list, the wrapping\n // list item should be split. Otherwise, bail out and let next\n // command handle lifting.\n if (\n $from.depth === 2\n || $from.node(-3).type !== type\n || $from.index(-2) !== $from.node(-2).childCount - 1\n ) {\n return false\n }\n\n if (dispatch) {\n let wrap = Fragment.empty\n // eslint-disable-next-line\n const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3\n\n // Build a fragment containing empty versions of the structure\n // from the outer list item to the parent node of the cursor\n for (let d = $from.depth - depthBefore; d >= $from.depth - 3; d -= 1) {\n wrap = Fragment.from($from.node(d).copy(wrap))\n }\n\n // eslint-disable-next-line\n const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3\n\n // Add a second list item with an empty default start node\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n const nextType = type.contentMatch.defaultType?.createAndFill(newNextTypeAttributes) || undefined\n\n wrap = wrap.append(Fragment.from(type.createAndFill(null, nextType) || undefined))\n\n const start = $from.before($from.depth - (depthBefore - 1))\n\n tr.replace(start, $from.after(-depthAfter), new Slice(wrap, 4 - depthBefore, 0))\n\n let sel = -1\n\n tr.doc.nodesBetween(start, tr.doc.content.size, (n, pos) => {\n if (sel > -1) {\n return false\n }\n\n if (n.isTextblock && n.content.size === 0) {\n sel = pos + 1\n }\n })\n\n if (sel > -1) {\n tr.setSelection(TextSelection.near(tr.doc.resolve(sel)))\n }\n\n tr.scrollIntoView()\n }\n\n return true\n }\n\n const nextType = $to.pos === $from.end() ? grandParent.contentMatchAt(0).defaultType : null\n\n const newTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n grandParent.type.name,\n grandParent.attrs,\n ),\n ...overrideAttrs,\n }\n const newNextTypeAttributes = {\n ...getSplittedAttributes(\n extensionAttributes,\n $from.node().type.name,\n $from.node().attrs,\n ),\n ...overrideAttrs,\n }\n\n tr.delete($from.pos, $to.pos)\n\n const types = nextType\n ? [\n { type, attrs: newTypeAttributes },\n { type: nextType, attrs: newNextTypeAttributes },\n ]\n : [{ type, attrs: newTypeAttributes }]\n\n if (!canSplit(tr.doc, $from.pos, 2)) {\n return false\n }\n\n if (dispatch) {\n const { selection, storedMarks } = state\n const { splittableMarks } = editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n tr.split($from.pos, 2, types).scrollIntoView()\n\n if (!marks || !dispatch) {\n return true\n }\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n\n return true\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { Transaction } from '@tiptap/pm/state'\nimport { canJoin } from '@tiptap/pm/transform'\n\nimport { findParentNode } from '../helpers/findParentNode.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isList } from '../helpers/isList.js'\nimport { RawCommands } from '../types.js'\n\nconst joinListBackwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const before = tr.doc.resolve(Math.max(0, list.pos - 1)).before(list.depth)\n\n if (before === undefined) {\n return true\n }\n\n const nodeBefore = tr.doc.nodeAt(before)\n const canJoinBackwards = list.node.type === nodeBefore?.type && canJoin(tr.doc, list.pos)\n\n if (!canJoinBackwards) {\n return true\n }\n\n tr.join(list.pos)\n\n return true\n}\n\nconst joinListForwards = (tr: Transaction, listType: NodeType): boolean => {\n const list = findParentNode(node => node.type === listType)(tr.selection)\n\n if (!list) {\n return true\n }\n\n const after = tr.doc.resolve(list.start).after(list.depth)\n\n if (after === undefined) {\n return true\n }\n\n const nodeAfter = tr.doc.nodeAt(after)\n const canJoinForwards = list.node.type === nodeAfter?.type && canJoin(tr.doc, after)\n\n if (!canJoinForwards) {\n return true\n }\n\n tr.join(after)\n\n return true\n}\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleList: {\n /**\n * Toggle between different list types.\n * @param listTypeOrName The type or name of the list.\n * @param itemTypeOrName The type or name of the list item.\n * @param keepMarks Keep marks when toggling.\n * @param attributes Attributes for the new list.\n * @example editor.commands.toggleList('bulletList', 'listItem')\n */\n toggleList: (listTypeOrName: string | NodeType, itemTypeOrName: string | NodeType, keepMarks?: boolean, attributes?: Record) => ReturnType;\n }\n }\n}\n\nexport const toggleList: RawCommands['toggleList'] = (listTypeOrName, itemTypeOrName, keepMarks, attributes = {}) => ({\n editor, tr, state, dispatch, chain, commands, can,\n}) => {\n const { extensions, splittableMarks } = editor.extensionManager\n const listType = getNodeType(listTypeOrName, state.schema)\n const itemType = getNodeType(itemTypeOrName, state.schema)\n const { selection, storedMarks } = state\n const { $from, $to } = selection\n const range = $from.blockRange($to)\n\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (!range) {\n return false\n }\n\n const parentList = findParentNode(node => isList(node.type.name, extensions))(selection)\n\n if (range.depth >= 1 && parentList && range.depth - parentList.depth <= 1) {\n // remove list\n if (parentList.node.type === listType) {\n return commands.liftListItem(itemType)\n }\n\n // change list type\n if (\n isList(parentList.node.type.name, extensions)\n && listType.validContent(parentList.node.content)\n && dispatch\n ) {\n return chain()\n .command(() => {\n tr.setNodeMarkup(parentList.pos, listType)\n\n return true\n })\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n }\n if (!keepMarks || !marks || !dispatch) {\n\n return chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n }\n\n return (\n chain()\n // try to convert node to default node if needed\n .command(() => {\n const canWrapInList = can().wrapInList(listType, attributes)\n\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n\n if (canWrapInList) {\n return true\n }\n\n return commands.clearNodes()\n })\n .wrapInList(listType, attributes)\n .command(() => joinListBackwards(tr, listType))\n .command(() => joinListForwards(tr, listType))\n .run()\n )\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { isMarkActive } from '../helpers/isMarkActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleMark: {\n /**\n * Toggle a mark on and off.\n * @param typeOrName The mark type or name.\n * @param attributes The attributes of the mark.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.toggleMark('bold')\n */\n toggleMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n /**\n * The attributes of the mark.\n */\n attributes?: Record,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const toggleMark: RawCommands['toggleMark'] = (typeOrName, attributes = {}, options = {}) => ({ state, commands }) => {\n const { extendEmptyMarkRange = false } = options\n const type = getMarkType(typeOrName, state.schema)\n const isActive = isMarkActive(state, type, attributes)\n\n if (isActive) {\n return commands.unsetMark(type, { extendEmptyMarkRange })\n }\n\n return commands.setMark(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleNode: {\n /**\n * Toggle a node with another node.\n * @param typeOrName The type or name of the node.\n * @param toggleTypeOrName The type or name of the node to toggle.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleNode('heading', 'paragraph')\n */\n toggleNode: (\n typeOrName: string | NodeType,\n toggleTypeOrName: string | NodeType,\n attributes?: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const toggleNode: RawCommands['toggleNode'] = (typeOrName, toggleTypeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const toggleType = getNodeType(toggleTypeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.setNode(toggleType)\n }\n\n return commands.setNode(type, attributes)\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { isNodeActive } from '../helpers/isNodeActive.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n toggleWrap: {\n /**\n * Wraps nodes in another node, or removes an existing wrap.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.toggleWrap('blockquote')\n */\n toggleWrap: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const toggleWrap: RawCommands['toggleWrap'] = (typeOrName, attributes = {}) => ({ state, commands }) => {\n const type = getNodeType(typeOrName, state.schema)\n const isActive = isNodeActive(state, type, attributes)\n\n if (isActive) {\n return commands.lift(type)\n }\n\n return commands.wrapIn(type, attributes)\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n undoInputRule: {\n /**\n * Undo an input rule.\n * @example editor.commands.undoInputRule()\n */\n undoInputRule: () => ReturnType,\n }\n }\n}\n\nexport const undoInputRule: RawCommands['undoInputRule'] = () => ({ state, dispatch }) => {\n const plugins = state.plugins\n\n for (let i = 0; i < plugins.length; i += 1) {\n const plugin = plugins[i]\n let undoable\n\n // @ts-ignore\n // eslint-disable-next-line\n if (plugin.spec.isInputRules && (undoable = plugin.getState(state))) {\n if (dispatch) {\n const tr = state.tr\n const toUndo = undoable.transform\n\n for (let j = toUndo.steps.length - 1; j >= 0; j -= 1) {\n tr.step(toUndo.steps[j].invert(toUndo.docs[j]))\n }\n\n if (undoable.text) {\n const marks = tr.doc.resolve(undoable.from).marks()\n\n tr.replaceWith(undoable.from, undoable.to, state.schema.text(undoable.text, marks))\n } else {\n tr.delete(undoable.from, undoable.to)\n }\n }\n\n return true\n }\n }\n\n return false\n}\n","import { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetAllMarks: {\n /**\n * Remove all marks in the current selection.\n * @example editor.commands.unsetAllMarks()\n */\n unsetAllMarks: () => ReturnType,\n }\n }\n}\n\nexport const unsetAllMarks: RawCommands['unsetAllMarks'] = () => ({ tr, dispatch }) => {\n const { selection } = tr\n const { empty, ranges } = selection\n\n if (empty) {\n return true\n }\n\n if (dispatch) {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos)\n })\n }\n\n return true\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarkRange } from '../helpers/getMarkRange.js'\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n unsetMark: {\n /**\n * Remove all marks in the current selection.\n * @param typeOrName The mark type or name.\n * @param options.extendEmptyMarkRange Removes the mark even across the current selection. Defaults to `false`.\n * @example editor.commands.unsetMark('bold')\n */\n unsetMark: (\n /**\n * The mark type or name.\n */\n typeOrName: string | MarkType,\n\n options?: {\n /**\n * Removes the mark even across the current selection. Defaults to `false`.\n */\n extendEmptyMarkRange?: boolean\n },\n ) => ReturnType\n }\n }\n}\n\nexport const unsetMark: RawCommands['unsetMark'] = (typeOrName, options = {}) => ({ tr, state, dispatch }) => {\n const { extendEmptyMarkRange = false } = options\n const { selection } = tr\n const type = getMarkType(typeOrName, state.schema)\n const { $from, empty, ranges } = selection\n\n if (!dispatch) {\n return true\n }\n\n if (empty && extendEmptyMarkRange) {\n let { from, to } = selection\n const attrs = $from.marks().find(mark => mark.type === type)?.attrs\n const range = getMarkRange($from, type, attrs)\n\n if (range) {\n from = range.from\n to = range.to\n }\n\n tr.removeMark(from, to, type)\n } else {\n ranges.forEach(range => {\n tr.removeMark(range.$from.pos, range.$to.pos, type)\n })\n }\n\n tr.removeStoredMark(type)\n\n return true\n}\n","import { MarkType, NodeType } from '@tiptap/pm/model'\n\nimport { getMarkType } from '../helpers/getMarkType.js'\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { getSchemaTypeNameByName } from '../helpers/getSchemaTypeNameByName.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n updateAttributes: {\n /**\n * Update attributes of a node or mark.\n * @param typeOrName The type or name of the node or mark.\n * @param attributes The attributes of the node or mark.\n * @example editor.commands.updateAttributes('mention', { userId: \"2\" })\n */\n updateAttributes: (\n /**\n * The type or name of the node or mark.\n */\n typeOrName: string | NodeType | MarkType,\n\n /**\n * The attributes of the node or mark.\n */\n attributes: Record,\n ) => ReturnType\n }\n }\n}\n\nexport const updateAttributes: RawCommands['updateAttributes'] = (typeOrName, attributes = {}) => ({ tr, state, dispatch }) => {\n let nodeType: NodeType | null = null\n let markType: MarkType | null = null\n\n const schemaType = getSchemaTypeNameByName(\n typeof typeOrName === 'string' ? typeOrName : typeOrName.name,\n state.schema,\n )\n\n if (!schemaType) {\n return false\n }\n\n if (schemaType === 'node') {\n nodeType = getNodeType(typeOrName as NodeType, state.schema)\n }\n\n if (schemaType === 'mark') {\n markType = getMarkType(typeOrName as MarkType, state.schema)\n }\n\n if (dispatch) {\n tr.selection.ranges.forEach(range => {\n const from = range.$from.pos\n const to = range.$to.pos\n\n state.doc.nodesBetween(from, to, (node, pos) => {\n if (nodeType && nodeType === node.type) {\n tr.setNodeMarkup(pos, undefined, {\n ...node.attrs,\n ...attributes,\n })\n }\n\n if (markType && node.marks.length) {\n node.marks.forEach(mark => {\n if (markType === mark.type) {\n const trimmedFrom = Math.max(pos, from)\n const trimmedTo = Math.min(pos + node.nodeSize, to)\n\n tr.addMark(\n trimmedFrom,\n trimmedTo,\n markType.create({\n ...mark.attrs,\n ...attributes,\n }),\n )\n }\n })\n }\n })\n })\n }\n\n return true\n}\n","import { wrapIn as originalWrapIn } from '@tiptap/pm/commands'\nimport { NodeType } from '@tiptap/pm/model'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapIn: {\n /**\n * Wraps nodes in another node.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapIn('blockquote')\n */\n wrapIn: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapIn: RawCommands['wrapIn'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapIn(type, attributes)(state, dispatch)\n}\n","import { NodeType } from '@tiptap/pm/model'\nimport { wrapInList as originalWrapInList } from '@tiptap/pm/schema-list'\n\nimport { getNodeType } from '../helpers/getNodeType.js'\nimport { RawCommands } from '../types.js'\n\ndeclare module '@tiptap/core' {\n interface Commands {\n wrapInList: {\n /**\n * Wrap a node in a list.\n * @param typeOrName The type or name of the node.\n * @param attributes The attributes of the node.\n * @example editor.commands.wrapInList('bulletList')\n */\n wrapInList: (typeOrName: string | NodeType, attributes?: Record) => ReturnType\n }\n }\n}\n\nexport const wrapInList: RawCommands['wrapInList'] = (typeOrName, attributes = {}) => ({ state, dispatch }) => {\n const type = getNodeType(typeOrName, state.schema)\n\n return originalWrapInList(type, attributes)(state, dispatch)\n}\n","import * as commands from '../commands/index.js'\nimport { Extension } from '../Extension.js'\n\nexport * from '../commands/index.js'\n\nexport const Commands = Extension.create({\n name: 'commands',\n\n addCommands() {\n return {\n ...commands,\n }\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Editable = Extension.create({\n name: 'editable',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('editable'),\n props: {\n editable: () => this.editor.options.editable,\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const FocusEvents = Extension.create({\n name: 'focusEvents',\n\n addProseMirrorPlugins() {\n const { editor } = this\n\n return [\n new Plugin({\n key: new PluginKey('focusEvents'),\n props: {\n handleDOMEvents: {\n focus: (view, event: Event) => {\n editor.isFocused = true\n\n const transaction = editor.state.tr\n .setMeta('focus', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n blur: (view, event: Event) => {\n editor.isFocused = false\n\n const transaction = editor.state.tr\n .setMeta('blur', { event })\n .setMeta('addToHistory', false)\n\n view.dispatch(transaction)\n\n return false\n },\n },\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey, Selection } from '@tiptap/pm/state'\n\nimport { CommandManager } from '../CommandManager.js'\nimport { Extension } from '../Extension.js'\nimport { createChainableState } from '../helpers/createChainableState.js'\nimport { isiOS } from '../utilities/isiOS.js'\nimport { isMacOS } from '../utilities/isMacOS.js'\n\nexport const Keymap = Extension.create({\n name: 'keymap',\n\n addKeyboardShortcuts() {\n const handleBackspace = () => this.editor.commands.first(({ commands }) => [\n () => commands.undoInputRule(),\n\n // maybe convert first text block node to default node\n () => commands.command(({ tr }) => {\n const { selection, doc } = tr\n const { empty, $anchor } = selection\n const { pos, parent } = $anchor\n const $parentPos = $anchor.parent.isTextblock && pos > 0 ? tr.doc.resolve(pos - 1) : $anchor\n const parentIsIsolating = $parentPos.parent.type.spec.isolating\n\n const parentPos = $anchor.pos - $anchor.parentOffset\n\n const isAtStart = (parentIsIsolating && $parentPos.parent.childCount === 1)\n ? parentPos === $anchor.pos\n : Selection.atStart(doc).from === pos\n\n if (\n !empty\n || !parent.type.isTextblock\n || parent.textContent.length\n || !isAtStart\n || (isAtStart && $anchor.parent.type.name === 'paragraph') // prevent clearNodes when no nodes to clear, otherwise history stack is appended\n ) {\n return false\n }\n\n return commands.clearNodes()\n }),\n\n () => commands.deleteSelection(),\n () => commands.joinBackward(),\n () => commands.selectNodeBackward(),\n ])\n\n const handleDelete = () => this.editor.commands.first(({ commands }) => [\n () => commands.deleteSelection(),\n () => commands.deleteCurrentNode(),\n () => commands.joinForward(),\n () => commands.selectNodeForward(),\n ])\n\n const handleEnter = () => this.editor.commands.first(({ commands }) => [\n () => commands.newlineInCode(),\n () => commands.createParagraphNear(),\n () => commands.liftEmptyBlock(),\n () => commands.splitBlock(),\n ])\n\n const baseKeymap = {\n Enter: handleEnter,\n 'Mod-Enter': () => this.editor.commands.exitCode(),\n Backspace: handleBackspace,\n 'Mod-Backspace': handleBackspace,\n 'Shift-Backspace': handleBackspace,\n Delete: handleDelete,\n 'Mod-Delete': handleDelete,\n 'Mod-a': () => this.editor.commands.selectAll(),\n }\n\n const pcKeymap = {\n ...baseKeymap,\n }\n\n const macKeymap = {\n ...baseKeymap,\n 'Ctrl-h': handleBackspace,\n 'Alt-Backspace': handleBackspace,\n 'Ctrl-d': handleDelete,\n 'Ctrl-Alt-Backspace': handleDelete,\n 'Alt-Delete': handleDelete,\n 'Alt-d': handleDelete,\n 'Ctrl-a': () => this.editor.commands.selectTextblockStart(),\n 'Ctrl-e': () => this.editor.commands.selectTextblockEnd(),\n }\n\n if (isiOS() || isMacOS()) {\n return macKeymap\n }\n\n return pcKeymap\n },\n\n addProseMirrorPlugins() {\n return [\n // With this plugin we check if the whole document was selected and deleted.\n // In this case we will additionally call `clearNodes()` to convert e.g. a heading\n // to a paragraph if necessary.\n // This is an alternative to ProseMirror's `AllSelection`, which doesn’t work well\n // with many other commands.\n new Plugin({\n key: new PluginKey('clearDocument'),\n appendTransaction: (transactions, oldState, newState) => {\n const { empty, from, to } = oldState.selection\n\n if (empty) {\n return\n }\n\n const docChanges = transactions.some(transaction => transaction.docChanged)\n && oldState.doc.nodeSize !== newState.doc.nodeSize\n\n if (!docChanges) {\n return\n }\n\n const allFrom = Selection.atStart(oldState.doc).from\n const allEnd = Selection.atEnd(oldState.doc).to\n const allWasSelected = from === allFrom && to === allEnd\n\n if (!allWasSelected) {\n return\n }\n\n const isEmpty = newState.doc.textBetween(0, newState.doc.content.size, ' ', ' ').length === 0\n\n if (!isEmpty) {\n return\n }\n\n const tr = newState.tr\n const state = createChainableState({\n state: newState,\n transaction: tr,\n })\n const { commands } = new CommandManager({\n editor: this.editor,\n state,\n })\n\n commands.clearNodes()\n\n if (!tr.steps.length) {\n return\n }\n\n return tr\n },\n }),\n ]\n },\n})\n","import { Plugin, PluginKey } from '@tiptap/pm/state'\n\nimport { Extension } from '../Extension.js'\n\nexport const Tabindex = Extension.create({\n name: 'tabindex',\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey('tabindex'),\n props: {\n attributes: (): { [name: string]: string; } => (this.editor.isEditable ? { tabindex: '0' } : {}),\n },\n }),\n ]\n },\n})\n","import {\n Fragment, Node, ResolvedPos,\n} from '@tiptap/pm/model'\n\nimport { Editor } from './Editor.js'\nimport { Content, Range } from './types.js'\n\nexport class NodePos {\n private resolvedPos: ResolvedPos\n\n private isBlock: boolean\n\n private editor: Editor\n\n private get name(): string {\n return this.node.type.name\n }\n\n constructor(pos: ResolvedPos, editor: Editor, isBlock = false, node: Node | null = null) {\n this.isBlock = isBlock\n this.resolvedPos = pos\n this.editor = editor\n this.currentNode = node\n }\n\n private currentNode: Node | null = null\n\n get node(): Node {\n return this.currentNode || this.resolvedPos.node()\n }\n\n get element(): HTMLElement {\n return this.editor.view.domAtPos(this.pos).node as HTMLElement\n }\n\n public actualDepth: number | null = null\n\n get depth(): number {\n return this.actualDepth ?? this.resolvedPos.depth\n }\n\n get pos(): number {\n return this.resolvedPos.pos\n }\n\n get content(): Fragment {\n return this.node.content\n }\n\n set content(content: Content) {\n let from = this.from\n let to = this.to\n\n if (this.isBlock) {\n if (this.content.size === 0) {\n console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`)\n return\n }\n\n from = this.from + 1\n to = this.to - 1\n }\n\n this.editor.commands.insertContentAt({ from, to }, content)\n }\n\n get attributes(): { [key: string]: any } {\n return this.node.attrs\n }\n\n get textContent(): string {\n return this.node.textContent\n }\n\n get size(): number {\n return this.node.nodeSize\n }\n\n get from(): number {\n if (this.isBlock) {\n return this.pos\n }\n\n return this.resolvedPos.start(this.resolvedPos.depth)\n }\n\n get range(): Range {\n return {\n from: this.from,\n to: this.to,\n }\n }\n\n get to(): number {\n if (this.isBlock) {\n return this.pos + this.size\n }\n\n return this.resolvedPos.end(this.resolvedPos.depth) + (this.node.isText ? 0 : 1)\n }\n\n get parent(): NodePos | null {\n if (this.depth === 0) {\n return null\n }\n\n const parentPos = this.resolvedPos.start(this.resolvedPos.depth - 1)\n const $pos = this.resolvedPos.doc.resolve(parentPos)\n\n return new NodePos($pos, this.editor)\n }\n\n get before(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.from - (this.isBlock ? 1 : 2))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.from - 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get after(): NodePos | null {\n let $pos = this.resolvedPos.doc.resolve(this.to + (this.isBlock ? 2 : 1))\n\n if ($pos.depth !== this.depth) {\n $pos = this.resolvedPos.doc.resolve(this.to + 3)\n }\n\n return new NodePos($pos, this.editor)\n }\n\n get children(): NodePos[] {\n const children: NodePos[] = []\n\n this.node.content.forEach((node, offset) => {\n const isBlock = node.isBlock && !node.isTextblock\n\n const targetPos = this.pos + offset + 1\n const $pos = this.resolvedPos.doc.resolve(targetPos)\n\n if (!isBlock && $pos.depth <= this.depth) {\n return\n }\n\n const childNodePos = new NodePos($pos, this.editor, isBlock, isBlock ? node : null)\n\n if (isBlock) {\n childNodePos.actualDepth = this.depth + 1\n }\n\n children.push(new NodePos($pos, this.editor, isBlock, isBlock ? node : null))\n })\n\n return children\n }\n\n get firstChild(): NodePos | null {\n return this.children[0] || null\n }\n\n get lastChild(): NodePos | null {\n const children = this.children\n\n return children[children.length - 1] || null\n }\n\n closest(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n let node: NodePos | null = null\n let currentNode = this.parent\n\n while (currentNode && !node) {\n if (currentNode.node.type.name === selector) {\n if (Object.keys(attributes).length > 0) {\n const nodeAttributes = currentNode.node.attrs\n const attrKeys = Object.keys(attributes)\n\n for (let index = 0; index < attrKeys.length; index += 1) {\n const key = attrKeys[index]\n\n if (nodeAttributes[key] !== attributes[key]) {\n break\n }\n }\n } else {\n node = currentNode\n }\n }\n\n currentNode = currentNode.parent\n }\n\n return node\n }\n\n querySelector(selector: string, attributes: { [key: string]: any } = {}): NodePos | null {\n return this.querySelectorAll(selector, attributes, true)[0] || null\n }\n\n querySelectorAll(selector: string, attributes: { [key: string]: any } = {}, firstItemOnly = false): NodePos[] {\n let nodes: NodePos[] = []\n\n if (!this.children || this.children.length === 0) {\n return nodes\n }\n const attrKeys = Object.keys(attributes)\n\n /**\n * Finds all children recursively that match the selector and attributes\n * If firstItemOnly is true, it will return the first item found\n */\n this.children.forEach(childPos => {\n // If we already found a node and we only want the first item, we dont need to keep going\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n if (childPos.node.type.name === selector) {\n const doesAllAttributesMatch = attrKeys.every(key => attributes[key] === childPos.node.attrs[key])\n\n if (doesAllAttributesMatch) {\n nodes.push(childPos)\n }\n }\n\n // If we already found a node and we only want the first item, we can stop here and skip the recursion\n if (firstItemOnly && nodes.length > 0) {\n return\n }\n\n nodes = nodes.concat(childPos.querySelectorAll(selector, attributes, firstItemOnly))\n })\n\n return nodes\n }\n\n setAttribute(attributes: { [key: string]: any }) {\n const oldSelection = this.editor.state.selection\n\n this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from)\n .run()\n }\n}\n","export const style = `.ProseMirror {\n position: relative;\n}\n\n.ProseMirror {\n word-wrap: break-word;\n white-space: pre-wrap;\n white-space: break-spaces;\n -webkit-font-variant-ligatures: none;\n font-variant-ligatures: none;\n font-feature-settings: \"liga\" 0; /* the above doesn't seem to work in Edge */\n}\n\n.ProseMirror [contenteditable=\"false\"] {\n white-space: normal;\n}\n\n.ProseMirror [contenteditable=\"false\"] [contenteditable=\"true\"] {\n white-space: pre-wrap;\n}\n\n.ProseMirror pre {\n white-space: pre-wrap;\n}\n\nimg.ProseMirror-separator {\n display: inline !important;\n border: none !important;\n margin: 0 !important;\n width: 0 !important;\n height: 0 !important;\n}\n\n.ProseMirror-gapcursor {\n display: none;\n pointer-events: none;\n position: absolute;\n margin: 0;\n}\n\n.ProseMirror-gapcursor:after {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n width: 20px;\n border-top: 1px solid black;\n animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;\n}\n\n@keyframes ProseMirror-cursor-blink {\n to {\n visibility: hidden;\n }\n}\n\n.ProseMirror-hideselection *::selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection *::-moz-selection {\n background: transparent;\n}\n\n.ProseMirror-hideselection * {\n caret-color: transparent;\n}\n\n.ProseMirror-focused .ProseMirror-gapcursor {\n display: block;\n}\n\n.tippy-box[data-animation=fade][data-state=hidden] {\n opacity: 0\n}`\n","export function createStyleTag(style: string, nonce?: string, suffix?: string): HTMLStyleElement {\n const tiptapStyleTag = (document.querySelector(`style[data-tiptap-style${suffix ? `-${suffix}` : ''}]`))\n\n if (tiptapStyleTag !== null) {\n return tiptapStyleTag\n }\n\n const styleNode = document.createElement('style')\n\n if (nonce) {\n styleNode.setAttribute('nonce', nonce)\n }\n\n styleNode.setAttribute(`data-tiptap-style${suffix ? `-${suffix}` : ''}`, '')\n styleNode.innerHTML = style\n document.getElementsByTagName('head')[0].appendChild(styleNode)\n\n return styleNode\n}\n","import {\n MarkType,\n Node as ProseMirrorNode,\n NodeType,\n Schema,\n} from '@tiptap/pm/model'\nimport {\n EditorState, Plugin, PluginKey, Transaction,\n} from '@tiptap/pm/state'\nimport { EditorView } from '@tiptap/pm/view'\n\nimport { CommandManager } from './CommandManager.js'\nimport { EventEmitter } from './EventEmitter.js'\nimport { ExtensionManager } from './ExtensionManager.js'\nimport {\n ClipboardTextSerializer, Commands, Editable, FocusEvents, Keymap, Tabindex,\n} from './extensions/index.js'\nimport { createDocument } from './helpers/createDocument.js'\nimport { getAttributes } from './helpers/getAttributes.js'\nimport { getHTMLFromFragment } from './helpers/getHTMLFromFragment.js'\nimport { getText } from './helpers/getText.js'\nimport { getTextSerializersFromSchema } from './helpers/getTextSerializersFromSchema.js'\nimport { isActive } from './helpers/isActive.js'\nimport { isNodeEmpty } from './helpers/isNodeEmpty.js'\nimport { resolveFocusPosition } from './helpers/resolveFocusPosition.js'\nimport { NodePos } from './NodePos.js'\nimport { style } from './style.js'\nimport {\n CanCommands,\n ChainedCommands,\n EditorEvents,\n EditorOptions,\n JSONContent,\n SingleCommands,\n TextSerializer,\n} from './types.js'\nimport { createStyleTag } from './utilities/createStyleTag.js'\nimport { isFunction } from './utilities/isFunction.js'\n\nexport * as extensions from './extensions/index.js'\n\nexport interface EditorStorage extends Record { }\n// @ts-ignore\nexport interface TiptapEditorHTMLElement extends HTMLElement {\n editor?: Editor\n}\n\nexport class Editor extends EventEmitter {\n private commandManager!: CommandManager\n\n public extensionManager!: ExtensionManager\n\n private css!: HTMLStyleElement\n\n public schema!: Schema\n\n public view!: EditorView\n\n public isFocused = false\n\n /**\n * The editor is considered initialized after the `create` event has been emitted.\n */\n public isInitialized = false\n\n public extensionStorage: Record = {}\n\n public options: EditorOptions = {\n element: document.createElement('div'),\n content: '',\n injectCSS: true,\n injectNonce: undefined,\n extensions: [],\n autofocus: false,\n editable: true,\n editorProps: {},\n parseOptions: {},\n coreExtensionOptions: {},\n enableInputRules: true,\n enablePasteRules: true,\n enableCoreExtensions: true,\n enableContentCheck: false,\n onBeforeCreate: () => null,\n onCreate: () => null,\n onUpdate: () => null,\n onSelectionUpdate: () => null,\n onTransaction: () => null,\n onFocus: () => null,\n onBlur: () => null,\n onDestroy: () => null,\n onContentError: ({ error }) => { throw error },\n }\n\n constructor(options: Partial = {}) {\n super()\n this.setOptions(options)\n this.createExtensionManager()\n this.createCommandManager()\n this.createSchema()\n this.on('beforeCreate', this.options.onBeforeCreate)\n this.emit('beforeCreate', { editor: this })\n this.on('contentError', this.options.onContentError)\n this.createView()\n this.injectCSS()\n this.on('create', this.options.onCreate)\n this.on('update', this.options.onUpdate)\n this.on('selectionUpdate', this.options.onSelectionUpdate)\n this.on('transaction', this.options.onTransaction)\n this.on('focus', this.options.onFocus)\n this.on('blur', this.options.onBlur)\n this.on('destroy', this.options.onDestroy)\n\n window.setTimeout(() => {\n if (this.isDestroyed) {\n return\n }\n\n this.commands.focus(this.options.autofocus)\n this.emit('create', { editor: this })\n this.isInitialized = true\n }, 0)\n }\n\n /**\n * Returns the editor storage.\n */\n public get storage(): EditorStorage {\n return this.extensionStorage\n }\n\n /**\n * An object of all registered commands.\n */\n public get commands(): SingleCommands {\n return this.commandManager.commands\n }\n\n /**\n * Create a command chain to call multiple commands at once.\n */\n public chain(): ChainedCommands {\n return this.commandManager.chain()\n }\n\n /**\n * Check if a command or a command chain can be executed. Without executing it.\n */\n public can(): CanCommands {\n return this.commandManager.can()\n }\n\n /**\n * Inject CSS styles.\n */\n private injectCSS(): void {\n if (this.options.injectCSS && document) {\n this.css = createStyleTag(style, this.options.injectNonce)\n }\n }\n\n /**\n * Update editor options.\n *\n * @param options A list of options\n */\n public setOptions(options: Partial = {}): void {\n this.options = {\n ...this.options,\n ...options,\n }\n\n if (!this.view || !this.state || this.isDestroyed) {\n return\n }\n\n if (this.options.editorProps) {\n this.view.setProps(this.options.editorProps)\n }\n\n this.view.updateState(this.state)\n }\n\n /**\n * Update editable state of the editor.\n */\n public setEditable(editable: boolean, emitUpdate = true): void {\n this.setOptions({ editable })\n\n if (emitUpdate) {\n this.emit('update', { editor: this, transaction: this.state.tr })\n }\n }\n\n /**\n * Returns whether the editor is editable.\n */\n public get isEditable(): boolean {\n // since plugins are applied after creating the view\n // `editable` is always `true` for one tick.\n // that’s why we also have to check for `options.editable`\n return this.options.editable && this.view && this.view.editable\n }\n\n /**\n * Returns the editor state.\n */\n public get state(): EditorState {\n return this.view.state\n }\n\n /**\n * Register a ProseMirror plugin.\n *\n * @param plugin A ProseMirror plugin\n * @param handlePlugins Control how to merge the plugin into the existing plugins.\n */\n public registerPlugin(\n plugin: Plugin,\n handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[],\n ): void {\n const plugins = isFunction(handlePlugins)\n ? handlePlugins(plugin, [...this.state.plugins])\n : [...this.state.plugins, plugin]\n\n const state = this.state.reconfigure({ plugins })\n\n this.view.updateState(state)\n }\n\n /**\n * Unregister a ProseMirror plugin.\n *\n * @param nameOrPluginKey The plugins name\n */\n public unregisterPlugin(nameOrPluginKey: string | PluginKey): void {\n if (this.isDestroyed) {\n return\n }\n\n // @ts-ignore\n const name = typeof nameOrPluginKey === 'string' ? `${nameOrPluginKey}$` : nameOrPluginKey.key\n\n const state = this.state.reconfigure({\n // @ts-ignore\n plugins: this.state.plugins.filter(plugin => !plugin.key.startsWith(name)),\n })\n\n this.view.updateState(state)\n }\n\n /**\n * Creates an extension manager.\n */\n private createExtensionManager(): void {\n\n const coreExtensions = this.options.enableCoreExtensions ? [\n Editable,\n ClipboardTextSerializer.configure({\n blockSeparator: this.options.coreExtensionOptions?.clipboardTextSerializer?.blockSeparator,\n }),\n Commands,\n FocusEvents,\n Keymap,\n Tabindex,\n ] : []\n const allExtensions = [...coreExtensions, ...this.options.extensions].filter(extension => {\n return ['extension', 'node', 'mark'].includes(extension?.type)\n })\n\n this.extensionManager = new ExtensionManager(allExtensions, this)\n }\n\n /**\n * Creates an command manager.\n */\n private createCommandManager(): void {\n this.commandManager = new CommandManager({\n editor: this,\n })\n }\n\n /**\n * Creates a ProseMirror schema.\n */\n private createSchema(): void {\n this.schema = this.extensionManager.schema\n }\n\n /**\n * Creates a ProseMirror view.\n */\n private createView(): void {\n this.view = new EditorView(this.options.element, {\n ...this.options.editorProps,\n dispatchTransaction: this.dispatchTransaction.bind(this),\n state: EditorState.create({\n doc: this.schema.topNodeType.create(),\n }),\n })\n\n let doc: ProseMirrorNode\n\n try {\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: this.options.enableContentCheck },\n )\n } catch (e) {\n if (!(e instanceof Error) || !['[tiptap error]: Invalid JSON content', '[tiptap error]: Invalid HTML content'].includes(e.message)) {\n // Not the content error we were expecting\n throw e\n }\n this.emit('contentError', {\n editor: this,\n error: e as Error,\n disableCollaboration: () => {\n // To avoid syncing back invalid content, reinitialize the extensions without the collaboration extension\n this.options.extensions = this.options.extensions.filter(extension => extension.name !== 'collaboration')\n\n // Restart the initialization process by recreating the extension manager with the new set of extensions\n this.createExtensionManager()\n },\n })\n\n // Content is invalid, but attempt to create it anyway, stripping out the invalid parts\n doc = createDocument(\n this.options.content,\n this.schema,\n this.options.parseOptions,\n { errorOnInvalidContent: false },\n )\n }\n const selection = resolveFocusPosition(doc, this.options.autofocus) || undefined\n // `editor.view` is not yet available at this time.\n // Therefore we will add all plugins and node views directly afterwards.\n const newState = EditorState.create({\n plugins: this.extensionManager.plugins,\n doc,\n selection,\n })\n\n this.view.setProps({\n state: newState,\n nodeViews: this.extensionManager.nodeViews,\n })\n this.prependClass()\n\n // Let’s store the editor instance in the DOM element.\n // So we’ll have access to it for tests.\n // @ts-ignore\n const dom = this.view.dom as TiptapEditorHTMLElement\n\n dom.editor = this\n }\n\n /**\n * Creates all node views.\n */\n public createNodeViews(): void {\n if (this.view.isDestroyed) {\n return\n }\n\n this.view.setProps({\n nodeViews: this.extensionManager.nodeViews,\n })\n }\n\n /**\n * Prepend class name to element.\n */\n public prependClass(): void {\n this.view.dom.className = `tiptap ${this.view.dom.className}`\n }\n\n public isCapturingTransaction = false\n\n private capturedTransaction: Transaction | null = null\n\n public captureTransaction(fn: Function) {\n this.isCapturingTransaction = true\n fn()\n this.isCapturingTransaction = false\n\n const tr = this.capturedTransaction\n\n this.capturedTransaction = null\n\n return tr\n }\n\n /**\n * The callback over which to send transactions (state updates) produced by the view.\n *\n * @param transaction An editor state transaction\n */\n private dispatchTransaction(transaction: Transaction): void {\n // if the editor / the view of the editor was destroyed\n // the transaction should not be dispatched as there is no view anymore.\n if (this.view.isDestroyed) {\n return\n }\n\n if (this.isCapturingTransaction) {\n if (!this.capturedTransaction) {\n this.capturedTransaction = transaction\n\n return\n }\n\n transaction.steps.forEach(step => this.capturedTransaction?.step(step))\n\n return\n }\n\n const state = this.state.apply(transaction)\n const selectionHasChanged = !this.state.selection.eq(state.selection)\n\n this.emit('beforeTransaction', {\n editor: this,\n transaction,\n nextState: state,\n })\n this.view.updateState(state)\n this.emit('transaction', {\n editor: this,\n transaction,\n })\n\n if (selectionHasChanged) {\n this.emit('selectionUpdate', {\n editor: this,\n transaction,\n })\n }\n\n const focus = transaction.getMeta('focus')\n const blur = transaction.getMeta('blur')\n\n if (focus) {\n this.emit('focus', {\n editor: this,\n event: focus.event,\n transaction,\n })\n }\n\n if (blur) {\n this.emit('blur', {\n editor: this,\n event: blur.event,\n transaction,\n })\n }\n\n if (!transaction.docChanged || transaction.getMeta('preventUpdate')) {\n return\n }\n\n this.emit('update', {\n editor: this,\n transaction,\n })\n }\n\n /**\n * Get attributes of the currently selected node or mark.\n */\n public getAttributes(nameOrType: string | NodeType | MarkType): Record {\n return getAttributes(this.state, nameOrType)\n }\n\n /**\n * Returns if the currently selected node or mark is active.\n *\n * @param name Name of the node or mark\n * @param attributes Attributes of the node or mark\n */\n public isActive(name: string, attributes?: {}): boolean\n public isActive(attributes: {}): boolean\n public isActive(nameOrAttributes: string, attributesOrUndefined?: {}): boolean {\n const name = typeof nameOrAttributes === 'string' ? nameOrAttributes : null\n\n const attributes = typeof nameOrAttributes === 'string' ? attributesOrUndefined : nameOrAttributes\n\n return isActive(this.state, name, attributes)\n }\n\n /**\n * Get the document as JSON.\n */\n public getJSON(): JSONContent {\n return this.state.doc.toJSON()\n }\n\n /**\n * Get the document as HTML.\n */\n public getHTML(): string {\n return getHTMLFromFragment(this.state.doc.content, this.schema)\n }\n\n /**\n * Get the document as text.\n */\n public getText(options?: {\n blockSeparator?: string\n textSerializers?: Record\n }): string {\n const { blockSeparator = '\\n\\n', textSerializers = {} } = options || {}\n\n return getText(this.state.doc, {\n blockSeparator,\n textSerializers: {\n ...getTextSerializersFromSchema(this.schema),\n ...textSerializers,\n },\n })\n }\n\n /**\n * Check if there is no content.\n */\n public get isEmpty(): boolean {\n return isNodeEmpty(this.state.doc)\n }\n\n /**\n * Get the number of characters for the current document.\n *\n * @deprecated\n */\n public getCharacterCount(): number {\n console.warn(\n '[tiptap warn]: \"editor.getCharacterCount()\" is deprecated. Please use \"editor.storage.characterCount.characters()\" instead.',\n )\n\n return this.state.doc.content.size - 2\n }\n\n /**\n * Destroy the editor.\n */\n public destroy(): void {\n this.emit('destroy')\n\n if (this.view) {\n this.view.destroy()\n }\n\n this.removeAllListeners()\n }\n\n /**\n * Check if the editor is already destroyed.\n */\n public get isDestroyed(): boolean {\n // @ts-ignore\n return !this.view?.docView\n }\n\n public $node(selector: string, attributes?: { [key: string]: any }): NodePos | null {\n return this.$doc?.querySelector(selector, attributes) || null\n }\n\n public $nodes(selector: string, attributes?: { [key: string]: any }): NodePos[] | null {\n return this.$doc?.querySelectorAll(selector, attributes) || null\n }\n\n public $pos(pos: number) {\n const $pos = this.state.doc.resolve(pos)\n\n return new NodePos($pos, this)\n }\n\n get $doc() {\n return this.$pos(0)\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a mark when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function markInputRule(config: {\n find: InputRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n const markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that adds a node when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function nodeInputRule(config: {\n /**\n * The regex to match.\n */\n find: InputRuleFinder\n\n /**\n * The node type to add.\n */\n type: NodeType\n\n /**\n * A function that returns the attributes for the node\n * can also be an object of attributes\n */\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const { tr } = state\n const start = range.from\n let end = range.to\n\n const newNode = config.type.create(attributes)\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n let matchStart = start + offset\n\n if (matchStart > end) {\n matchStart = end\n } else {\n end = matchStart + match[1].length\n }\n\n // insert last typed character\n const lastChar = match[0][match[0].length - 1]\n\n tr.insertText(lastChar, start + match[0].length - 1)\n\n // insert node from input rule\n tr.replaceWith(matchStart, end, newNode)\n } else if (match[0]) {\n const insertionStart = config.type.isInline ? start : start - 1\n\n tr.insert(insertionStart, config.type.create(attributes)).delete(\n tr.mapping.map(start),\n tr.mapping.map(end),\n )\n }\n\n tr.scrollIntoView()\n },\n })\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule that changes the type of a textblock when the\n * matched text is typed into it. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textblockTypeInputRule(config: {\n find: InputRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n const $start = state.doc.resolve(range.from)\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n\n if (!$start.node(-1).canReplaceWith($start.index(-1), $start.indexAfter(-1), config.type)) {\n return null\n }\n\n state.tr\n .delete(range.from, range.to)\n .setBlockType(range.from, range.from, config.type, attributes)\n },\n })\n}\n","import { InputRule, InputRuleFinder } from '../InputRule.js'\n\n/**\n * Build an input rule that replaces text when the\n * matched text is typed into it.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function textInputRule(config: {\n find: InputRuleFinder,\n replace: string,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Node as ProseMirrorNode, NodeType } from '@tiptap/pm/model'\nimport { canJoin, findWrapping } from '@tiptap/pm/transform'\n\nimport { Editor } from '../Editor.js'\nimport { InputRule, InputRuleFinder } from '../InputRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an input rule for automatically wrapping a textblock when a\n * given string is typed. When using a regular expresion you’ll\n * probably want the regexp to start with `^`, so that the pattern can\n * only occur at the start of a textblock.\n *\n * `type` is the type of node to wrap in.\n *\n * By default, if there’s a node with the same type above the newly\n * wrapped node, the rule will try to join those\n * two nodes. You can pass a join predicate, which takes a regular\n * expression match and the node before the wrapped node, and can\n * return a boolean to indicate whether a join should happen.\n * @see https://tiptap.dev/guide/custom-extensions/#input-rules\n */\nexport function wrappingInputRule(config: {\n find: InputRuleFinder,\n type: NodeType,\n keepMarks?: boolean,\n keepAttributes?: boolean,\n editor?: Editor\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray) => Record)\n | false\n | null\n ,\n joinPredicate?: (match: ExtendedRegExpMatchArray, node: ProseMirrorNode) => boolean,\n}) {\n return new InputRule({\n find: config.find,\n handler: ({\n state, range, match, chain,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match) || {}\n const tr = state.tr.delete(range.from, range.to)\n const $start = tr.doc.resolve(range.from)\n const blockRange = $start.blockRange()\n const wrapping = blockRange && findWrapping(blockRange, config.type, attributes)\n\n if (!wrapping) {\n return null\n }\n\n tr.wrap(blockRange, wrapping)\n\n if (config.keepMarks && config.editor) {\n const { selection, storedMarks } = state\n const { splittableMarks } = config.editor.extensionManager\n const marks = storedMarks || (selection.$to.parentOffset && selection.$from.marks())\n\n if (marks) {\n const filteredMarks = marks.filter(mark => splittableMarks.includes(mark.type.name))\n\n tr.ensureMarks(filteredMarks)\n }\n }\n if (config.keepAttributes) {\n /** If the nodeType is `bulletList` or `orderedList` set the `nodeType` as `listItem` */\n const nodeType = config.type.name === 'bulletList' || config.type.name === 'orderedList' ? 'listItem' : 'taskList'\n\n chain().updateAttributes(nodeType, attributes).run()\n }\n\n const before = tr.doc.resolve(range.from - 1).nodeBefore\n\n if (\n before\n && before.type === config.type\n && canJoin(tr.doc, range.from - 1)\n && (!config.joinPredicate || config.joinPredicate(match, before))\n ) {\n tr.join(range.from - 1)\n }\n },\n })\n}\n","import {\n DOMOutputSpec, Mark as ProseMirrorMark, MarkSpec, MarkType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { MarkConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Node } from './Node.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n export interface MarkConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n },\n extension: Mark,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: MarkType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Keep mark after split node\n */\n keepOnSplit?: boolean | (() => boolean)\n\n /**\n * Inclusive\n */\n inclusive?:\n | MarkSpec['inclusive']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inclusive']\n editor?: Editor\n }) => MarkSpec['inclusive'])\n\n /**\n * Excludes\n */\n excludes?:\n | MarkSpec['excludes']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['excludes']\n editor?: Editor\n }) => MarkSpec['excludes'])\n\n /**\n * Marks this Mark as exitable\n */\n exitable?: boolean | (() => boolean)\n\n /**\n * Group\n */\n group?:\n | MarkSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => MarkSpec['group'])\n\n /**\n * Spanning\n */\n spanning?:\n | MarkSpec['spanning']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['spanning']\n editor?: Editor\n }) => MarkSpec['spanning'])\n\n /**\n * Code\n */\n code?:\n | boolean\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => boolean)\n\n /**\n * Parse HTML\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => MarkSpec['parseDOM']\n\n /**\n * Render HTML\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n mark: ProseMirrorMark\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * Attributes\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Mark class is used to create custom mark extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Mark {\n type = 'mark'\n\n name = 'mark'\n\n parent: Mark | null = null\n\n child: Mark | null = null\n\n options: Options\n\n storage: Storage\n\n config: MarkConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Mark(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Mark(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n\n static handleExit({ editor, mark }: { editor: Editor; mark: Mark }) {\n const { tr } = editor.state\n const currentPos = editor.state.selection.$from\n const isAtEnd = currentPos.pos === currentPos.end()\n\n if (isAtEnd) {\n const currentMarks = currentPos.marks()\n const isInMark = !!currentMarks.find(m => m?.type.name === mark.name)\n\n if (!isInMark) {\n return false\n }\n\n const removeMark = currentMarks.find(m => m?.type.name === mark.name)\n\n if (removeMark) {\n tr.removeStoredMark(removeMark)\n }\n tr.insertText(' ', currentPos.pos)\n\n editor.view.dispatch(tr)\n\n return true\n }\n\n return false\n }\n}\n","import {\n DOMOutputSpec, Node as ProseMirrorNode, NodeSpec, NodeType,\n} from '@tiptap/pm/model'\nimport { Plugin, Transaction } from '@tiptap/pm/state'\n\nimport { Editor } from './Editor.js'\nimport { getExtensionField } from './helpers/getExtensionField.js'\nimport { NodeConfig } from './index.js'\nimport { InputRule } from './InputRule.js'\nimport { Mark } from './Mark.js'\nimport { PasteRule } from './PasteRule.js'\nimport {\n AnyConfig,\n Attributes,\n Extensions,\n GlobalAttributes,\n KeyboardShortcutCommand,\n NodeViewRenderer,\n ParentConfig,\n RawCommands,\n} from './types.js'\nimport { callOrReturn } from './utilities/callOrReturn.js'\nimport { mergeDeep } from './utilities/mergeDeep.js'\n\ndeclare module '@tiptap/core' {\n interface NodeConfig {\n // @ts-ignore - this is a dynamic key\n [key: string]: any\n\n /**\n * The extension name - this must be unique.\n * It will be used to identify the extension.\n *\n * @example 'myExtension'\n */\n name: string\n\n /**\n * The priority of your extension. The higher, the earlier it will be called\n * and will take precedence over other extensions with a lower priority.\n * @default 100\n * @example 101\n */\n priority?: number\n\n /**\n * The default options for this extension.\n * @example\n * defaultOptions: {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n defaultOptions?: Options\n\n /**\n * This method will add options to this extension\n * @see https://tiptap.dev/guide/custom-extensions#settings\n * @example\n * addOptions() {\n * return {\n * myOption: 'foo',\n * myOtherOption: 10,\n * }\n */\n addOptions?: (this: {\n name: string\n parent: Exclude>['addOptions'], undefined>\n }) => Options\n\n /**\n * The default storage this extension can save data to.\n * @see https://tiptap.dev/guide/custom-extensions#storage\n * @example\n * defaultStorage: {\n * prefetchedUsers: [],\n * loading: false,\n * }\n */\n addStorage?: (this: {\n name: string\n options: Options\n parent: Exclude>['addStorage'], undefined>\n }) => Storage\n\n /**\n * This function adds globalAttributes to specific nodes.\n * @see https://tiptap.dev/guide/custom-extensions#global-attributes\n * @example\n * addGlobalAttributes() {\n * return [\n * {\n // Extend the following extensions\n * types: [\n * 'heading',\n * 'paragraph',\n * ],\n * // … with those attributes\n * attributes: {\n * textAlign: {\n * default: 'left',\n * renderHTML: attributes => ({\n * style: `text-align: ${attributes.textAlign}`,\n * }),\n * parseHTML: element => element.style.textAlign || 'left',\n * },\n * },\n * },\n * ]\n * }\n */\n addGlobalAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n extensions: (Node | Mark)[]\n parent: ParentConfig>['addGlobalAttributes']\n }) => GlobalAttributes\n\n /**\n * This function adds commands to the editor\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addCommands() {\n * return {\n * myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),\n * }\n * }\n */\n addCommands?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addCommands']\n }) => Partial\n\n /**\n * This function registers keyboard shortcuts.\n * @see https://tiptap.dev/guide/custom-extensions#keyboard-shortcuts\n * @example\n * addKeyboardShortcuts() {\n * return {\n * 'Mod-l': () => this.editor.commands.toggleBulletList(),\n * }\n * },\n */\n addKeyboardShortcuts?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addKeyboardShortcuts']\n }) => {\n [key: string]: KeyboardShortcutCommand\n }\n\n /**\n * This function adds input rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#input-rules\n * @example\n * addInputRules() {\n * return [\n * markInputRule({\n * find: inputRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addInputRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addInputRules']\n }) => InputRule[]\n\n /**\n * This function adds paste rules to the editor.\n * @see https://tiptap.dev/guide/custom-extensions#paste-rules\n * @example\n * addPasteRules() {\n * return [\n * markPasteRule({\n * find: pasteRegex,\n * type: this.type,\n * }),\n * ]\n * },\n */\n addPasteRules?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addPasteRules']\n }) => PasteRule[]\n\n /**\n * This function adds Prosemirror plugins to the editor\n * @see https://tiptap.dev/guide/custom-extensions#prosemirror-plugins\n * @example\n * addProseMirrorPlugins() {\n * return [\n * customPlugin(),\n * ]\n * }\n */\n addProseMirrorPlugins?: (this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addProseMirrorPlugins']\n }) => Plugin[]\n\n /**\n * This function adds additional extensions to the editor. This is useful for\n * building extension kits.\n * @example\n * addExtensions() {\n * return [\n * BulletList,\n * OrderedList,\n * ListItem\n * ]\n * }\n */\n addExtensions?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addExtensions']\n }) => Extensions\n\n /**\n * This function extends the schema of the node.\n * @example\n * extendNodeSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendNodeSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendNodeSchema']\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * This function extends the schema of the mark.\n * @example\n * extendMarkSchema() {\n * return {\n * group: 'inline',\n * selectable: false,\n * }\n * }\n */\n extendMarkSchema?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['extendMarkSchema']\n editor?: Editor\n },\n extension: Node,\n ) => Record)\n | null\n\n /**\n * The editor is not ready yet.\n */\n onBeforeCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBeforeCreate']\n }) => void)\n | null\n\n /**\n * The editor is ready.\n */\n onCreate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onCreate']\n }) => void)\n | null\n\n /**\n * The content has changed.\n */\n onUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onUpdate']\n }) => void)\n | null\n\n /**\n * The selection has changed.\n */\n onSelectionUpdate?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onSelectionUpdate']\n }) => void)\n | null\n\n /**\n * The editor state has changed.\n */\n onTransaction?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onTransaction']\n },\n props: {\n editor: Editor\n transaction: Transaction\n },\n ) => void)\n | null\n\n /**\n * The editor is focused.\n */\n onFocus?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onFocus']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor isn’t focused anymore.\n */\n onBlur?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onBlur']\n },\n props: {\n event: FocusEvent\n },\n ) => void)\n | null\n\n /**\n * The editor is destroyed.\n */\n onDestroy?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['onDestroy']\n }) => void)\n | null\n\n /**\n * Node View\n */\n addNodeView?:\n | ((this: {\n name: string\n options: Options\n storage: Storage\n editor: Editor\n type: NodeType\n parent: ParentConfig>['addNodeView']\n }) => NodeViewRenderer)\n | null\n\n /**\n * Defines if this node should be a top level node (doc)\n * @default false\n * @example true\n */\n topNode?: boolean\n\n /**\n * The content expression for this node, as described in the [schema\n * guide](/docs/guide/#schema.content_expressions). When not given,\n * the node does not allow any content.\n *\n * You can read more about it on the Prosemirror documentation here\n * @see https://prosemirror.net/docs/guide/#schema.content_expressions\n * @default undefined\n * @example content: 'block+'\n * @example content: 'headline paragraph block*'\n */\n content?:\n | NodeSpec['content']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['content']\n editor?: Editor\n }) => NodeSpec['content'])\n\n /**\n * The marks that are allowed inside of this node. May be a\n * space-separated string referring to mark names or groups, `\"_\"`\n * to explicitly allow all marks, or `\"\"` to disallow marks. When\n * not given, nodes with inline content default to allowing all\n * marks, other nodes default to not allowing marks.\n *\n * @example marks: 'strong em'\n */\n marks?:\n | NodeSpec['marks']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['marks']\n editor?: Editor\n }) => NodeSpec['marks'])\n\n /**\n * The group or space-separated groups to which this node belongs,\n * which can be referred to in the content expressions for the\n * schema.\n *\n * By default Tiptap uses the groups 'block' and 'inline' for nodes. You\n * can also use custom groups if you want to group specific nodes together\n * and handle them in your schema.\n * @example group: 'block'\n * @example group: 'inline'\n * @example group: 'customBlock' // this uses a custom group\n */\n group?:\n | NodeSpec['group']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['group']\n editor?: Editor\n }) => NodeSpec['group'])\n\n /**\n * Should be set to true for inline nodes. (Implied for text nodes.)\n */\n inline?:\n | NodeSpec['inline']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['inline']\n editor?: Editor\n }) => NodeSpec['inline'])\n\n /**\n * Can be set to true to indicate that, though this isn't a [leaf\n * node](https://prosemirror.net/docs/ref/#model.NodeType.isLeaf), it doesn't have directly editable\n * content and should be treated as a single unit in the view.\n *\n * @example atom: true\n */\n atom?:\n | NodeSpec['atom']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['atom']\n editor?: Editor\n }) => NodeSpec['atom'])\n\n /**\n * Controls whether nodes of this type can be selected as a [node\n * selection](https://prosemirror.net/docs/ref/#state.NodeSelection). Defaults to true for non-text\n * nodes.\n *\n * @default true\n * @example selectable: false\n */\n selectable?:\n | NodeSpec['selectable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['selectable']\n editor?: Editor\n }) => NodeSpec['selectable'])\n\n /**\n * Determines whether nodes of this type can be dragged without\n * being selected. Defaults to false.\n *\n * @default: false\n * @example: draggable: true\n */\n draggable?:\n | NodeSpec['draggable']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['draggable']\n editor?: Editor\n }) => NodeSpec['draggable'])\n\n /**\n * Can be used to indicate that this node contains code, which\n * causes some commands to behave differently.\n */\n code?:\n | NodeSpec['code']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['code']\n editor?: Editor\n }) => NodeSpec['code'])\n\n /**\n * Controls way whitespace in this a node is parsed. The default is\n * `\"normal\"`, which causes the [DOM parser](https://prosemirror.net/docs/ref/#model.DOMParser) to\n * collapse whitespace in normal mode, and normalize it (replacing\n * newlines and such with spaces) otherwise. `\"pre\"` causes the\n * parser to preserve spaces inside the node. When this option isn't\n * given, but [`code`](https://prosemirror.net/docs/ref/#model.NodeSpec.code) is true, `whitespace`\n * will default to `\"pre\"`. Note that this option doesn't influence\n * the way the node is rendered—that should be handled by `toDOM`\n * and/or styling.\n */\n whitespace?:\n | NodeSpec['whitespace']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['whitespace']\n editor?: Editor\n }) => NodeSpec['whitespace'])\n\n /**\n * When enabled, enables both\n * [`definingAsContext`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingAsContext) and\n * [`definingForContent`](https://prosemirror.net/docs/ref/#model.NodeSpec.definingForContent).\n *\n * @default false\n * @example isolating: true\n */\n defining?:\n | NodeSpec['defining']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['defining']\n editor?: Editor\n }) => NodeSpec['defining'])\n\n /**\n * When enabled (default is false), the sides of nodes of this type\n * count as boundaries that regular editing operations, like\n * backspacing or lifting, won't cross. An example of a node that\n * should probably have this enabled is a table cell.\n */\n isolating?:\n | NodeSpec['isolating']\n | ((this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['isolating']\n editor?: Editor\n }) => NodeSpec['isolating'])\n\n /**\n * Associates DOM parser information with this node, which can be\n * used by [`DOMParser.fromSchema`](https://prosemirror.net/docs/ref/#model.DOMParser^fromSchema) to\n * automatically derive a parser. The `node` field in the rules is\n * implied (the name of this node will be filled in automatically).\n * If you supply your own parser, you do not need to also specify\n * parsing rules in your schema.\n *\n * @example parseHTML: [{ tag: 'div', attrs: { 'data-id': 'my-block' } }]\n */\n parseHTML?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['parseHTML']\n editor?: Editor\n }) => NodeSpec['parseDOM']\n\n /**\n * A description of a DOM structure. Can be either a string, which is\n * interpreted as a text node, a DOM node, which is interpreted as\n * itself, a `{dom, contentDOM}` object, or an array.\n *\n * An array describes a DOM element. The first value in the array\n * should be a string—the name of the DOM element, optionally prefixed\n * by a namespace URL and a space. If the second element is plain\n * object, it is interpreted as a set of attributes for the element.\n * Any elements after that (including the 2nd if it's not an attribute\n * object) are interpreted as children of the DOM elements, and must\n * either be valid `DOMOutputSpec` values, or the number zero.\n *\n * The number zero (pronounced “hole”) is used to indicate the place\n * where a node's child nodes should be inserted. If it occurs in an\n * output spec, it should be the only child element in its parent\n * node.\n *\n * @example toDOM: ['div[data-id=\"my-block\"]', { class: 'my-block' }, 0]\n */\n renderHTML?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderHTML']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n HTMLAttributes: Record\n },\n ) => DOMOutputSpec)\n | null\n\n /**\n * renders the node as text\n * @example renderText: () => 'foo\n */\n renderText?:\n | ((\n this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['renderText']\n editor?: Editor\n },\n props: {\n node: ProseMirrorNode\n pos: number\n parent: ProseMirrorNode\n index: number\n },\n ) => string)\n | null\n\n /**\n * Add attributes to the node\n * @example addAttributes: () => ({ class: 'foo' })\n */\n addAttributes?: (this: {\n name: string\n options: Options\n storage: Storage\n parent: ParentConfig>['addAttributes']\n editor?: Editor\n }) => Attributes | {}\n }\n}\n\n/**\n * The Node class is used to create custom node extensions.\n * @see https://tiptap.dev/api/extensions#create-a-new-extension\n */\nexport class Node {\n type = 'node'\n\n name = 'node'\n\n parent: Node | null = null\n\n child: Node | null = null\n\n options: Options\n\n storage: Storage\n\n config: NodeConfig = {\n name: this.name,\n defaultOptions: {},\n }\n\n constructor(config: Partial> = {}) {\n this.config = {\n ...this.config,\n ...config,\n }\n\n this.name = this.config.name\n\n if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${this.name}\".`,\n )\n }\n\n // TODO: remove `addOptions` fallback\n this.options = this.config.defaultOptions\n\n if (this.config.addOptions) {\n this.options = callOrReturn(\n getExtensionField(this, 'addOptions', {\n name: this.name,\n }),\n )\n }\n\n this.storage = callOrReturn(\n getExtensionField(this, 'addStorage', {\n name: this.name,\n options: this.options,\n }),\n ) || {}\n }\n\n static create(config: Partial> = {}) {\n return new Node(config)\n }\n\n configure(options: Partial = {}) {\n // return a new instance so we can use the same extension\n // with different calls of `configure`\n const extension = this.extend({\n ...this.config,\n addOptions: () => {\n return mergeDeep(this.options as Record, options) as Options\n },\n })\n\n // Always preserve the current name\n extension.name = this.name\n // Set the parent to be our parent\n extension.parent = this.parent\n\n return extension\n }\n\n extend(\n extendedConfig: Partial> = {},\n ) {\n const extension = new Node(extendedConfig)\n\n extension.parent = this\n\n this.child = extension\n\n extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name\n\n if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {\n console.warn(\n `[tiptap warn]: BREAKING CHANGE: \"defaultOptions\" is deprecated. Please use \"addOptions\" instead. Found in extension: \"${extension.name}\".`,\n )\n }\n\n extension.options = callOrReturn(\n getExtensionField(extension, 'addOptions', {\n name: extension.name,\n }),\n )\n\n extension.storage = callOrReturn(\n getExtensionField(extension, 'addStorage', {\n name: extension.name,\n options: extension.options,\n }),\n )\n\n return extension\n }\n}\n","export function isAndroid(): boolean {\n return navigator.platform === 'Android' || /android/i.test(navigator.userAgent)\n}\n","import { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { NodeSelection } from '@tiptap/pm/state'\nimport { NodeView as ProseMirrorNodeView } from '@tiptap/pm/view'\n\nimport { Editor as CoreEditor } from './Editor.js'\nimport { Node } from './Node.js'\nimport { DecorationWithType, NodeViewRendererOptions, NodeViewRendererProps } from './types.js'\nimport { isAndroid } from './utilities/isAndroid.js'\nimport { isiOS } from './utilities/isiOS.js'\n\n/**\n * Node views are used to customize the rendered DOM structure of a node.\n * @see https://tiptap.dev/guide/node-views\n */\nexport class NodeView<\n Component,\n NodeEditor extends CoreEditor = CoreEditor,\n Options extends NodeViewRendererOptions = NodeViewRendererOptions,\n> implements ProseMirrorNodeView {\n component: Component\n\n editor: NodeEditor\n\n options: Options\n\n extension: Node\n\n node: ProseMirrorNode\n\n decorations: DecorationWithType[]\n\n getPos: any\n\n isDragging = false\n\n constructor(component: Component, props: NodeViewRendererProps, options?: Partial) {\n this.component = component\n this.editor = props.editor as NodeEditor\n this.options = {\n stopEvent: null,\n ignoreMutation: null,\n ...options,\n } as Options\n this.extension = props.extension\n this.node = props.node\n this.decorations = props.decorations as DecorationWithType[]\n this.getPos = props.getPos\n this.mount()\n }\n\n mount() {\n // eslint-disable-next-line\n return\n }\n\n get dom(): HTMLElement {\n return this.editor.view.dom as HTMLElement\n }\n\n get contentDOM(): HTMLElement | null {\n return null\n }\n\n onDragStart(event: DragEvent) {\n const { view } = this.editor\n const target = event.target as HTMLElement\n\n // get the drag handle element\n // `closest` is not available for text nodes so we may have to use its parent\n const dragHandle = target.nodeType === 3\n ? target.parentElement?.closest('[data-drag-handle]')\n : target.closest('[data-drag-handle]')\n\n if (!this.dom || this.contentDOM?.contains(target) || !dragHandle) {\n return\n }\n\n let x = 0\n let y = 0\n\n // calculate offset for drag element if we use a different drag handle element\n if (this.dom !== dragHandle) {\n const domBox = this.dom.getBoundingClientRect()\n const handleBox = dragHandle.getBoundingClientRect()\n\n // In React, we have to go through nativeEvent to reach offsetX/offsetY.\n const offsetX = event.offsetX ?? (event as any).nativeEvent?.offsetX\n const offsetY = event.offsetY ?? (event as any).nativeEvent?.offsetY\n\n x = handleBox.x - domBox.x + offsetX\n y = handleBox.y - domBox.y + offsetY\n }\n\n event.dataTransfer?.setDragImage(this.dom, x, y)\n\n // we need to tell ProseMirror that we want to move the whole node\n // so we create a NodeSelection\n const selection = NodeSelection.create(view.state.doc, this.getPos())\n const transaction = view.state.tr.setSelection(selection)\n\n view.dispatch(transaction)\n }\n\n stopEvent(event: Event) {\n if (!this.dom) {\n return false\n }\n\n if (typeof this.options.stopEvent === 'function') {\n return this.options.stopEvent({ event })\n }\n\n const target = event.target as HTMLElement\n const isInElement = this.dom.contains(target) && !this.contentDOM?.contains(target)\n\n // any event from child nodes should be handled by ProseMirror\n if (!isInElement) {\n return false\n }\n\n const isDragEvent = event.type.startsWith('drag')\n const isDropEvent = event.type === 'drop'\n const isInput = ['INPUT', 'BUTTON', 'SELECT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable\n\n // any input event within node views should be ignored by ProseMirror\n if (isInput && !isDropEvent && !isDragEvent) {\n return true\n }\n\n const { isEditable } = this.editor\n const { isDragging } = this\n const isDraggable = !!this.node.type.spec.draggable\n const isSelectable = NodeSelection.isSelectable(this.node)\n const isCopyEvent = event.type === 'copy'\n const isPasteEvent = event.type === 'paste'\n const isCutEvent = event.type === 'cut'\n const isClickEvent = event.type === 'mousedown'\n\n // ProseMirror tries to drag selectable nodes\n // even if `draggable` is set to `false`\n // this fix prevents that\n if (!isDraggable && isSelectable && isDragEvent) {\n event.preventDefault()\n }\n\n if (isDraggable && isDragEvent && !isDragging) {\n event.preventDefault()\n return false\n }\n\n // we have to store that dragging started\n if (isDraggable && isEditable && !isDragging && isClickEvent) {\n const dragHandle = target.closest('[data-drag-handle]')\n const isValidDragHandle = dragHandle && (this.dom === dragHandle || this.dom.contains(dragHandle))\n\n if (isValidDragHandle) {\n this.isDragging = true\n\n document.addEventListener(\n 'dragend',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'drop',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n\n document.addEventListener(\n 'mouseup',\n () => {\n this.isDragging = false\n },\n { once: true },\n )\n }\n }\n\n // these events are handled by prosemirror\n if (\n isDragging\n || isDropEvent\n || isCopyEvent\n || isPasteEvent\n || isCutEvent\n || (isClickEvent && isSelectable)\n ) {\n return false\n }\n\n return true\n }\n\n ignoreMutation(mutation: MutationRecord | { type: 'selection'; target: Element }) {\n if (!this.dom || !this.contentDOM) {\n return true\n }\n\n if (typeof this.options.ignoreMutation === 'function') {\n return this.options.ignoreMutation({ mutation })\n }\n\n // a leaf/atom node is like a black box for ProseMirror\n // and should be fully handled by the node view\n if (this.node.isLeaf || this.node.isAtom) {\n return true\n }\n\n // ProseMirror should handle any selections\n if (mutation.type === 'selection') {\n return false\n }\n\n // try to prevent a bug on iOS and Android that will break node views on enter\n // this is because ProseMirror can’t preventDispatch on enter\n // this will lead to a re-render of the node view on enter\n // see: https://github.com/ueberdosis/tiptap/issues/1214\n // see: https://github.com/ueberdosis/tiptap/issues/2534\n if (\n this.dom.contains(mutation.target)\n && mutation.type === 'childList'\n && (isiOS() || isAndroid())\n && this.editor.isFocused\n ) {\n const changedNodes = [\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ] as HTMLElement[]\n\n // we’ll check if every changed node is contentEditable\n // to make sure it’s probably mutated by ProseMirror\n if (changedNodes.every(node => node.isContentEditable)) {\n return false\n }\n }\n\n // we will allow mutation contentDOM with attributes\n // so we can for example adding classes within our node view\n if (this.contentDOM === mutation.target && mutation.type === 'attributes') {\n return true\n }\n\n // ProseMirror should handle any changes within contentDOM\n if (this.contentDOM.contains(mutation.target)) {\n return false\n }\n\n return true\n }\n\n updateAttributes(attributes: {}) {\n this.editor.commands.command(({ tr }) => {\n const pos = this.getPos()\n\n tr.setNodeMarkup(pos, undefined, {\n ...this.node.attrs,\n ...attributes,\n })\n\n return true\n })\n }\n\n deleteNode(): void {\n const from = this.getPos()\n const to = from + this.node.nodeSize\n\n this.editor.commands.deleteRange({ from, to })\n }\n}\n","import { MarkType } from '@tiptap/pm/model'\n\nimport { getMarksBetween } from '../helpers/getMarksBetween.js'\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray } from '../types.js'\nimport { callOrReturn } from '../utilities/callOrReturn.js'\n\n/**\n * Build an paste rule that adds a mark when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function markPasteRule(config: {\n find: PasteRuleFinder\n type: MarkType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({\n state, range, match, pasteEvent,\n }) => {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const { tr } = state\n const captureGroup = match[match.length - 1]\n const fullMatch = match[0]\n let markEnd = range.to\n\n if (captureGroup) {\n const startSpaces = fullMatch.search(/\\S/)\n const textStart = range.from + fullMatch.indexOf(captureGroup)\n const textEnd = textStart + captureGroup.length\n\n const excludedMarks = getMarksBetween(range.from, range.to, state.doc)\n .filter(item => {\n // @ts-ignore\n const excluded = item.mark.type.excluded as MarkType[]\n\n return excluded.find(type => type === config.type && type !== item.mark.type)\n })\n .filter(item => item.to > textStart)\n\n if (excludedMarks.length) {\n return null\n }\n\n if (textEnd < range.to) {\n tr.delete(textEnd, range.to)\n }\n\n if (textStart > range.from) {\n tr.delete(range.from + startSpaces, textStart)\n }\n\n markEnd = range.from + startSpaces + captureGroup.length\n\n tr.addMark(range.from + startSpaces, markEnd, config.type.create(attributes || {}))\n\n tr.removeStoredMark(config.type)\n }\n },\n })\n}\n","// source: https://stackoverflow.com/a/6969486\nexport function escapeForRegEx(string: string): string {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n}\n","export function isString(value: any): value is string {\n return typeof value === 'string'\n}\n","import { NodeType } from '@tiptap/pm/model'\n\nimport { PasteRule, PasteRuleFinder } from '../PasteRule.js'\nimport { ExtendedRegExpMatchArray, JSONContent } from '../types.js'\nimport { callOrReturn } from '../utilities/index.js'\n\n/**\n * Build an paste rule that adds a node when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function nodePasteRule(config: {\n find: PasteRuleFinder\n type: NodeType\n getAttributes?:\n | Record\n | ((match: ExtendedRegExpMatchArray, event: ClipboardEvent) => Record)\n | false\n | null\n getContent?:\n | JSONContent[]\n | ((attrs: Record) => JSONContent[])\n | false\n | null\n}) {\n return new PasteRule({\n find: config.find,\n handler({\n match, chain, range, pasteEvent,\n }) {\n const attributes = callOrReturn(config.getAttributes, undefined, match, pasteEvent)\n const content = callOrReturn(config.getContent, undefined, attributes)\n\n if (attributes === false || attributes === null) {\n return null\n }\n\n const node = { type: config.type.name, attrs: attributes } as JSONContent\n\n if (content) {\n node.content = content\n }\n\n if (match.input) {\n chain().deleteRange(range).insertContentAt(range.from, node)\n }\n },\n })\n}\n","import { PasteRule, PasteRuleFinder } from '../PasteRule.js'\n\n/**\n * Build an paste rule that replaces text when the\n * matched text is pasted into it.\n * @see https://tiptap.dev/guide/custom-extensions/#paste-rules\n */\nexport function textPasteRule(config: {\n find: PasteRuleFinder,\n replace: string,\n}) {\n return new PasteRule({\n find: config.find,\n handler: ({ state, range, match }) => {\n let insert = config.replace\n let start = range.from\n const end = range.to\n\n if (match[1]) {\n const offset = match[0].lastIndexOf(match[1])\n\n insert += match[0].slice(offset + match[1].length)\n start += offset\n\n const cutOff = start - end\n\n if (cutOff > 0) {\n insert = match[0].slice(offset - cutOff, offset) + insert\n start = end\n }\n }\n\n state.tr.insertText(insert, start, end)\n },\n })\n}\n","import { Transaction } from '@tiptap/pm/state'\n\nexport interface TrackerResult {\n position: number\n deleted: boolean\n}\n\nexport class Tracker {\n transaction: Transaction\n\n currentStep: number\n\n constructor(transaction: Transaction) {\n this.transaction = transaction\n this.currentStep = this.transaction.steps.length\n }\n\n map(position: number): TrackerResult {\n let deleted = false\n\n const mappedPosition = this.transaction.steps\n .slice(this.currentStep)\n .reduce((newPosition, step) => {\n const mapResult = step.getMap().mapResult(newPosition)\n\n if (mapResult.deleted) {\n deleted = true\n }\n\n return mapResult.pos\n }, position)\n\n return {\n position: mappedPosition,\n deleted,\n }\n }\n}\n"],"names":["Schema","run","Plugin","keymap","PluginKey","liftTarget","originalCreateParagraphNear","state","TextSelection","originalDeleteSelection","originalExitCode","Selection","Fragment","DOMParser","ReplaceStep","ReplaceAroundStep","originalJoinUp","originalJoinDown","originalJoinBackward","originalJoinForward","joinPoint","originalCommand","originalLift","originalLiftEmptyBlock","originalLiftListItem","originalNewlineInCode","originalSelectNodeBackward","originalSelectNodeForward","originalSelectParentNode","originalSelectTextblockEnd","originalSelectTextblockStart","transform","Transform","DOMSerializer","Node","NodeSelection","setBlockType","originalSinkListItem","canSplit","Slice","canJoin","originalWrapIn","originalWrapInList","EditorView","EditorState","findWrapping"],"mappings":"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"} \ No newline at end of file -diff --git a/node_modules/@tiptap/core/dist/packages/core/src/Editor.d.ts b/node_modules/@tiptap/core/dist/packages/core/src/Editor.d.ts +diff --git a/dist/packages/core/src/Editor.d.ts b/dist/packages/core/src/Editor.d.ts index 5a63966..37282fe 100644 ---- a/node_modules/@tiptap/core/dist/packages/core/src/Editor.d.ts -+++ b/node_modules/@tiptap/core/dist/packages/core/src/Editor.d.ts +--- a/dist/packages/core/src/Editor.d.ts ++++ b/dist/packages/core/src/Editor.d.ts @@ -6,6 +6,7 @@ import { ExtensionManager } from './ExtensionManager.js'; import { NodePos } from './NodePos.js'; import { CanCommands, ChainedCommands, EditorEvents, EditorOptions, JSONContent, SingleCommands, TextSerializer } from './types.js'; diff --git a/packages/editor/patches/@tiptap+extension-list-keymap+2.6.6.patch b/packages/editor/patches/@tiptap%2Fextension-list-keymap@2.6.6.patch similarity index 82% rename from packages/editor/patches/@tiptap+extension-list-keymap+2.6.6.patch rename to packages/editor/patches/@tiptap%2Fextension-list-keymap@2.6.6.patch index fd80023a1..65984a403 100644 --- a/packages/editor/patches/@tiptap+extension-list-keymap+2.6.6.patch +++ b/packages/editor/patches/@tiptap%2Fextension-list-keymap@2.6.6.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/@tiptap/extension-list-keymap/dist/index.cjs b/node_modules/@tiptap/extension-list-keymap/dist/index.cjs +diff --git a/dist/index.cjs b/dist/index.cjs index 0f8ae36..adeee92 100644 ---- a/node_modules/@tiptap/extension-list-keymap/dist/index.cjs -+++ b/node_modules/@tiptap/extension-list-keymap/dist/index.cjs +--- a/dist/index.cjs ++++ b/dist/index.cjs @@ -82,7 +82,9 @@ const handleBackspace = (editor, name, parentListTypes) => { // the previous item is a list (orderedList or bulletList) // move the cursor into the list and delete the current item @@ -25,10 +25,10 @@ index 0f8ae36..adeee92 100644 const $prev = editor.state.doc.resolve(listItemPos.$pos.pos - 2); const prevNode = $prev.node(listItemPos.depth); const previousListItemHasSubList = listItemHasSubList(name, editor.state, prevNode); -diff --git a/node_modules/@tiptap/extension-list-keymap/dist/index.js b/node_modules/@tiptap/extension-list-keymap/dist/index.js +diff --git a/dist/index.js b/dist/index.js index f7ab1e4..6ea03d5 100644 ---- a/node_modules/@tiptap/extension-list-keymap/dist/index.js -+++ b/node_modules/@tiptap/extension-list-keymap/dist/index.js +--- a/dist/index.js ++++ b/dist/index.js @@ -78,7 +78,9 @@ const handleBackspace = (editor, name, parentListTypes) => { // the previous item is a list (orderedList or bulletList) // move the cursor into the list and delete the current item diff --git a/packages/editor/patches/katex+0.16.11.patch b/packages/editor/patches/katex@0.16.11.patch similarity index 99% rename from packages/editor/patches/katex+0.16.11.patch rename to packages/editor/patches/katex@0.16.11.patch index 4ca505d8e..f726ae411 100644 --- a/packages/editor/patches/katex+0.16.11.patch +++ b/packages/editor/patches/katex@0.16.11.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/katex/dist/katex.min.css b/node_modules/katex/dist/katex.min.css +diff --git a/dist/katex.min.css b/dist/katex.min.css index 975b828..a6b8987 100644 ---- a/node_modules/katex/dist/katex.min.css -+++ b/node_modules/katex/dist/katex.min.css +--- a/dist/katex.min.css ++++ b/dist/katex.min.css @@ -1 +1 @@ -@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.11"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} +.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.11"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/packages/editor/patches/prosemirror-model+1.22.3.patch b/packages/editor/patches/prosemirror-model@1.25.3.patch similarity index 80% rename from packages/editor/patches/prosemirror-model+1.22.3.patch rename to packages/editor/patches/prosemirror-model@1.25.3.patch index 37444376f..1b644ff3e 100644 --- a/packages/editor/patches/prosemirror-model+1.22.3.patch +++ b/packages/editor/patches/prosemirror-model@1.25.3.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/prosemirror-model/dist/index.cjs b/node_modules/prosemirror-model/dist/index.cjs -index aa31355..1409b46 100644 ---- a/node_modules/prosemirror-model/dist/index.cjs -+++ b/node_modules/prosemirror-model/dist/index.cjs +diff --git a/dist/index.cjs b/dist/index.cjs +index b34cd59f3cda71520f18494aad17e01a0f800421..aea0154df64d7d0fc69039ee0a52a45d54ad545f 100644 +--- a/dist/index.cjs ++++ b/dist/index.cjs @@ -95,6 +95,7 @@ var Fragment = function () { var nodeStart = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; var parent = arguments.length > 4 ? arguments[4] : undefined; @@ -10,7 +10,7 @@ index aa31355..1409b46 100644 var child = this.content[i], end = pos + child.nodeSize; if (end > from && f(child, nodeStart + pos, parent || null, i) !== false && child.content.size) { -@@ -2817,7 +2818,7 @@ function _renderSpec(doc, structure, xmlNS, blockArraysIn) { +@@ -2834,7 +2835,7 @@ function _renderSpec(doc, structure, xmlNS, blockArraysIn) { var tagName = structure[0], suspicious; if (typeof tagName != "string") throw new RangeError("Invalid array passed to renderSpec"); @@ -19,10 +19,10 @@ index aa31355..1409b46 100644 var space = tagName.indexOf(" "); if (space > 0) { xmlNS = tagName.slice(0, space); -diff --git a/node_modules/prosemirror-model/dist/index.js b/node_modules/prosemirror-model/dist/index.js -index 0097d9f..19d7031 100644 ---- a/node_modules/prosemirror-model/dist/index.js -+++ b/node_modules/prosemirror-model/dist/index.js +diff --git a/dist/index.js b/dist/index.js +index c933a50adf002f81f88312ce53ba3ccee49f86d6..a82807398a9273ff6611f4b598f92daa0ce2b069 100644 +--- a/dist/index.js ++++ b/dist/index.js @@ -84,6 +84,7 @@ class Fragment { */ nodesBetween(from, to, f, nodeStart = 0, parent) { @@ -31,7 +31,7 @@ index 0097d9f..19d7031 100644 let child = this.content[i], end = pos + child.nodeSize; if (end > from && f(child, nodeStart + pos, parent || null, i) !== false && child.content.size) { let start = pos + 1; -@@ -3397,9 +3398,9 @@ function renderSpec(doc, structure, xmlNS, blockArraysIn) { +@@ -3406,9 +3407,9 @@ function renderSpec(doc, structure, xmlNS, blockArraysIn) { let tagName = structure[0], suspicious; if (typeof tagName != "string") throw new RangeError("Invalid array passed to renderSpec"); diff --git a/packages/editor/patches/prosemirror-view+1.34.2.patch b/packages/editor/patches/prosemirror-view@1.41.3.patch similarity index 57% rename from packages/editor/patches/prosemirror-view+1.34.2.patch rename to packages/editor/patches/prosemirror-view@1.41.3.patch index fa4d8ad10..57b695f16 100644 --- a/packages/editor/patches/prosemirror-view+1.34.2.patch +++ b/packages/editor/patches/prosemirror-view@1.41.3.patch @@ -1,18 +1,18 @@ -diff --git a/node_modules/prosemirror-view/dist/index.cjs b/node_modules/prosemirror-view/dist/index.cjs -index 8ea57c7..c289489 100644 ---- a/node_modules/prosemirror-view/dist/index.cjs -+++ b/node_modules/prosemirror-view/dist/index.cjs -@@ -980,8 +980,8 @@ var ViewDesc = function () { - if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset)) return; +diff --git a/dist/index.cjs b/dist/index.cjs +index 8c8948eceeb9d8af1779f5bda31bd7a88dafebd7..bceee1aaf01d5b8c6c8ca45b05e3636a882b0804 100644 +--- a/dist/index.cjs ++++ b/dist/index.cjs +@@ -999,8 +999,8 @@ var ViewDesc = function () { + if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset)) return; var domSelExtended = false; - if ((domSel.extend || anchor == head) && !brKludge) { + if ((domSel.extend || anchor == head) && !(brKludge && gecko)) { - domSel.collapse(anchorDOM.node, anchorDOM.offset); try { + domSel.collapse(anchorDOM.node, anchorDOM.offset); if (anchor != head) domSel.extend(headDOM.node, headDOM.offset); domSelExtended = true; } catch (_) {} -@@ -3456,7 +3456,7 @@ editHandlers.drop = function (view, _event) { +@@ -3532,7 +3532,7 @@ editHandlers.drop = function (view, _event) { }); tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end))); } @@ -21,21 +21,21 @@ index 8ea57c7..c289489 100644 view.dispatch(tr.setMeta("uiEvent", "drop")); }; handlers.focus = function (view) { -diff --git a/node_modules/prosemirror-view/dist/index.js b/node_modules/prosemirror-view/dist/index.js -index 9583dc3..6899e62 100644 ---- a/node_modules/prosemirror-view/dist/index.js -+++ b/node_modules/prosemirror-view/dist/index.js -@@ -1052,8 +1052,8 @@ class ViewDesc { +diff --git a/dist/index.js b/dist/index.js +index 08aa138d630f9e40e6f314ab54f35a0f81fd3e3a..f3a5ed220c7495e4a3ceb8282f243d4c496c5b98 100644 +--- a/dist/index.js ++++ b/dist/index.js +@@ -1073,8 +1073,8 @@ class ViewDesc { // browsers support it yet. let domSelExtended = false; - if ((domSel.extend || anchor == head) && !brKludge) { + if ((domSel.extend || anchor == head) && !(brKludge && gecko)) { - domSel.collapse(anchorDOM.node, anchorDOM.offset); try { + domSel.collapse(anchorDOM.node, anchorDOM.offset); if (anchor != head) domSel.extend(headDOM.node, headDOM.offset); domSelExtended = true; -@@ -3731,7 +3731,7 @@ editHandlers.drop = (view, _event) => { +@@ -3787,7 +3787,7 @@ editHandlers.drop = (view, _event) => { tr.mapping.maps[tr.mapping.maps.length - 1].forEach((_from, _to, _newFrom, newTo) => end = newTo); tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end))); } diff --git a/packages/editor/src/extensions/code-block/highlighter.ts b/packages/editor/src/extensions/code-block/highlighter.ts index d6986d8c5..59b57abef 100644 --- a/packages/editor/src/extensions/code-block/highlighter.ts +++ b/packages/editor/src/extensions/code-block/highlighter.ts @@ -24,7 +24,7 @@ import { findParentNodeClosestToPos, NodeWithPos } from "@tiptap/core"; -import { Root, refractor } from "refractor/lib/core.js"; +import { RefractorRoot, refractor } from "refractor/lib/core.js"; import { RootContent } from "hast"; import { ReplaceAroundStep, ReplaceStep } from "prosemirror-transform"; import { toCaretPosition, toCodeLines } from "./utils.js"; @@ -60,7 +60,7 @@ function parseNodes( }, [] as { text: string; classes: string[] }[]); } -function getHighlightNodes(result: Root) { +function getHighlightNodes(result: RefractorRoot) { return result.children || []; } diff --git a/packages/editor/src/extensions/react/react-node-view.tsx b/packages/editor/src/extensions/react/react-node-view.tsx index 565ec4219..c38042a14 100644 --- a/packages/editor/src/extensions/react/react-node-view.tsx +++ b/packages/editor/src/extensions/react/react-node-view.tsx @@ -18,7 +18,12 @@ along with this program. If not, see . */ import React, { FunctionComponent, SyntheticEvent } from "react"; -import { NodeView, Decoration, DecorationSource } from "prosemirror-view"; +import { + NodeView, + Decoration, + DecorationSource, + ViewMutationRecord +} from "prosemirror-view"; import { Node as PMNode, Slice } from "prosemirror-model"; import { NodeSelection } from "prosemirror-state"; import { PortalProviderAPI } from "./react-portal-provider.js"; @@ -29,19 +34,11 @@ import { ContentDOM } from "./types.js"; import { Editor, NodeViewRendererProps } from "@tiptap/core"; -import { __serializeForClipboard, EditorView } from "prosemirror-view"; +import { EditorView } from "prosemirror-view"; import { EmotionThemeProvider } from "@notesnook/theme"; import { isAndroid, isiOS } from "../../utils/platform.js"; import { useToolbarStore } from "../../toolbar/stores/toolbar-store.js"; -// This is hacky workaround to manually handle serialization when -// drag/dropping on mobile devices. -declare module "prosemirror-view" { - export function __serializeForClipboard( - view: EditorView, - slice: Slice - ): { dom: HTMLElement; text: string }; -} const portalProviderAPI = new PortalProviderAPI(); export class ReactNodeView

implements NodeView { private domRef!: HTMLElement; @@ -394,9 +391,7 @@ export class ReactNodeView

implements NodeView { return true; } - ignoreMutation( - mutation: MutationRecord | { type: "selection"; target: Element } - ) { + ignoreMutation(mutation: ViewMutationRecord) { if (!this.dom || !this.contentDOM) { return true; } @@ -495,7 +490,7 @@ function forceHandleDrag(event: DragEvent, editor: Editor) { if (!event.dataTransfer) return; const { view } = editor; const slice = view.state.selection.content(); - const { dom, text } = __serializeForClipboard(view, slice); + const { dom, text } = view.serializeForClipboard(slice); event.dataTransfer.clearData(); event.dataTransfer.setData("Text", text); diff --git a/packages/intl/bun.lock b/packages/intl/bun.lock index 2a8ef5b0a..1ddeff5c4 100644 --- a/packages/intl/bun.lock +++ b/packages/intl/bun.lock @@ -23,6 +23,9 @@ }, }, }, + "patchedDependencies": { + "@lingui/cli@5.5.1": "patches/@lingui%2Fcli@5.5.1.patch", + }, "packages": { "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], diff --git a/packages/intl/package.json b/packages/intl/package.json index 4505e8110..eb599554e 100644 --- a/packages/intl/package.json +++ b/packages/intl/package.json @@ -27,8 +27,7 @@ "compile": "lingui compile --typescript", "build-locale": "bun scripts/generate-strings.mjs && bun run extract && bun run compile", "build": "bun run build-locale && bunx vite build && bun run scripts/postbuild.mjs", - "watch": "nodemon --watch scripts/ --watch src --ext ts,mjs --exec \"bun run build\"", - "postinstall": "patch-package" + "watch": "nodemon --watch scripts/ --watch src --ext ts,mjs --exec \"bun run build\"" }, "devDependencies": { "@lingui/cli": "5.5.1", @@ -47,5 +46,8 @@ "peerDependencies": { "@lingui/macro": "*", "react": ">=18" + }, + "patchedDependencies": { + "@lingui/cli@5.5.1": "patches/@lingui%2Fcli@5.5.1.patch" } } diff --git a/packages/intl/patches/@lingui%2Fcli@5.5.1.patch b/packages/intl/patches/@lingui%2Fcli@5.5.1.patch new file mode 100644 index 000000000..3a0670e05 --- /dev/null +++ b/packages/intl/patches/@lingui%2Fcli@5.5.1.patch @@ -0,0 +1,15 @@ +diff --git a/dist/api/pseudoLocalize.js b/dist/api/pseudoLocalize.js +index fa44b2bc99c2774df3966723858eb30408e3d69b..cd28728d0a8baafef80b3e5c078265d8683fe37e 100644 +--- a/dist/api/pseudoLocalize.js ++++ b/dist/api/pseudoLocalize.js +@@ -49,8 +49,8 @@ function default_1(message) { + message = addDelimitersVariables(message); + message = (0, pseudolocale_1.default)(message, { + delimiter, +- prepend: "", +- append: "", ++ prepend: "[!!", ++ append: "!!]", + }); + return removeDelimiters(message); + } diff --git a/packages/intl/patches/@lingui+cli+5.1.2.patch b/packages/intl/patches/@lingui+cli+5.1.2.patch deleted file mode 100644 index ae555209a..000000000 --- a/packages/intl/patches/@lingui+cli+5.1.2.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/node_modules/@lingui/cli/dist/api/pseudoLocalize.js b/node_modules/@lingui/cli/dist/api/pseudoLocalize.js -index 34f3952..83cbc1e 100644 ---- a/node_modules/@lingui/cli/dist/api/pseudoLocalize.js -+++ b/node_modules/@lingui/cli/dist/api/pseudoLocalize.js -@@ -48,8 +48,9 @@ function default_1(message) { - message = addDelimiters(message); - message = (0, pseudolocale_1.default)(message, { - delimiter, -- prepend: "", -- append: "", -+ prepend: "[!!", -+ append: "!!]", -+ extend: 0.3 - }); - return removeDelimiters(message); - } diff --git a/packages/sodium/bun.lock b/packages/sodium/bun.lock index ca5a83540..e2b8c132f 100644 --- a/packages/sodium/bun.lock +++ b/packages/sodium/bun.lock @@ -18,6 +18,9 @@ }, }, }, + "patchedDependencies": { + "libsodium-sumo@0.7.15": "patches/libsodium-sumo@0.7.15.patch", + }, "packages": { "@arrows/array": ["@arrows/array@1.4.1", "", { "dependencies": { "@arrows/composition": "^1.2.2" } }, "sha512-MGYS8xi3c4tTy1ivhrVntFvufoNzje0PchjEz6G/SsWRgUKxL4tKwS6iPdO8vsaJYldagAeWMd5KRD0aX3Q39g=="], diff --git a/packages/sodium/package.json b/packages/sodium/package.json index 5dcb4f99d..a958118fa 100644 --- a/packages/sodium/package.json +++ b/packages/sodium/package.json @@ -35,7 +35,6 @@ "bench": "bun run benches/bench.ts", "postbuild": "bun run scripts/postbuild.mjs", "prepublishOnly": "bun run build && bun run test", - "postinstall": "patch-package", "build": "tsdown src/browser.ts src/node.ts", "watch": "bun run build -- --watch" }, @@ -57,5 +56,8 @@ }, "dependencies": { "libsodium-wrappers-sumo": "^0.7.15" + }, + "patchedDependencies": { + "libsodium-sumo@0.7.15": "patches/libsodium-sumo@0.7.15.patch" } } diff --git a/packages/sodium/patches/libsodium-sumo+0.7.15.patch b/packages/sodium/patches/libsodium-sumo@0.7.15.patch similarity index 99% rename from packages/sodium/patches/libsodium-sumo+0.7.15.patch rename to packages/sodium/patches/libsodium-sumo@0.7.15.patch index 461beb8ab..402804780 100644 --- a/packages/sodium/patches/libsodium-sumo+0.7.15.patch +++ b/packages/sodium/patches/libsodium-sumo@0.7.15.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js b/node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js +diff --git a/dist/modules-sumo/libsodium-sumo.js b/dist/modules-sumo/libsodium-sumo.js index 8931a6a..60b7b0f 100644 ---- a/node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js -+++ b/node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js +--- a/dist/modules-sumo/libsodium-sumo.js ++++ b/dist/modules-sumo/libsodium-sumo.js @@ -1 +1 @@ -!function(A){function I(A){"use strict";var I;void 0===(I=A)&&(I={});var g=I;"object"!=typeof g.sodium&&("object"==typeof global?g=global:"object"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(B=C).onAbort=I,B.print=function(A){},B.printErr=function(A){},B.onRuntimeInitialized=function(){try{B._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},B.useBackupModule=function(){return new Promise((function(A,I){(B={}).onAbort=I,B.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){"getRandomValue"!==A&&delete C[A]})),Object.keys(B).forEach((function(A){C[A]=B[A]})),A()};var g,B=void 0!==B?B:{},Q="object"==typeof window,i="function"==typeof importScripts,o="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,E=Object.assign({},B),a="";if(o){var _=require("fs"),c=require("path");a=__dirname+"/",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),"undefined"!=typeof module&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:"undefined"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith("blob:")?"":a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}));B.print;var t,r=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var e,y={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,o=I,E=C.length,a=I+(3*E>>2)-("="==C[E-2])-("="==C[E-1]);i>4,o>2),o>>0>P>>>0?a+1|0:a)|0,a=(QA=(_=P)>>>0>(P=P+QA|0)>>>0?a+1|0:a)+yA|0,iA=eA=P+rA|0,eA=a=eA>>>0

>>0?a+1|0:a,P=UI(P^(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24)^-79577749,QA^(o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)^528734635,32),kA=a=f,a=a+1013904242|0,QA=P,V=a=(P=P-23791573|0)>>>0<4271175723?a+1|0:a,_A=UI(P^aA,a^_A,40),a=(a=eA)+(eA=f)|0,aA=UI(QA^(h=aA=_A+iA|0),kA^(D=h>>>0<_A>>>0?a+1|0:a),48),a=V+(R=f)|0,k=a=(aA=P+(p=aA)|0)>>>0

>>0?a+1|0:a,aA=a=UI(_A^(n=aA),eA^a,1),V=P=f,eA=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,kA=a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,tA=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,P=(_A=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)+(QA=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24)|0,a=(GA=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)+(KA=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)|0,a=(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24)+(P>>>0>>0?a+1|0:a)|0,a=kA+(iA=(_=P)>>>0>(P=P+tA|0)>>>0?a+1|0:a)|0,a=(tA=P+eA|0)>>>0

>>0?a+1|0:a,_=UI(P^(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)^725511199,iA^(o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24)^-1694144372,32),e=UI(QA^(c=_-2067093701|0),KA^(x=(J=P=f)-((_>>>0<2067093701)+1150833018|0)|0),40),a=(L=f)+a|0,a=(Y=(F=P=e+tA|0)>>>0>>0?a+1|0:a)+V|0,a=(F>>>0>(P=F+aA|0)>>>0?a+1|0:a)+X|0,a=(QA=(t=P)>>>0>(P=P+oA|0)>>>0?a+1|0:a)+z|0,l=z=P+g|0,s=a=z>>>0

>>0?a+1|0:a,w=aA,wA=V,V=P,iA=QA,aA=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,P=a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,KA=a=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i=QA=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,X=a,a=(FA=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)+(r=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)|0,a=i+((z=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)>>>0>(t=z+(QA=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)|0)>>>0?a+1|0:a)|0,a=(tA=(X=t+X|0)>>>0>>0?a+1|0:a)+P|0,fA=t=X+aA|0,t=a=t>>>0>>0?a+1|0:a,y=z,z=UI(X^(o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)^-1377402159,tA^(o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24)^1359893119,32),tA=a=f,a=a+1779033703|0,X=z,U=a=(z=z-205731576|0)>>>0<4089235720?a+1|0:a,r=UI(y^(S=z),a^r,40),a=(m=f)+t|0,y=UI(X^(t=z=r+fA|0),tA^(G=r>>>0>t>>>0?a+1|0:a),48),a=UI(y^V,(T=f)^iA,32),W=z=f,u=a,B=a=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,tA=fA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,K=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,z=(iA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24)+(X=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)|0,a=(SA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24)+(d=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)|0,a=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)+(z>>>0>>0?a+1|0:a)|0,a=B+(V=(M=z)>>>0>(z=K+z|0)>>>0?a+1|0:a)|0,a=(K=z+tA|0)>>>0>>0?a+1|0:a,V=UI(z^(o[A+88|0]|o[A+89|0]<<8|o[A+90|0]<<16|o[A+91|0]<<24)^327033209,V^(o[A+92|0]|o[A+93|0]<<8|o[A+94|0]<<16|o[A+95|0]<<24)^1541459225,32),X=UI(X^(tA=V+1595750129|0),(M=d)^(d=(b=z=f)-((V>>>0<2699217167)+1521486533|0)|0),40),a=(IA=f)+a|0,z=UI((K=z=X+K|0)^V,b^(M=K>>>0>>0?a+1|0:a),48),a=d+($=f)|0,H=a=(z=tA+(d=z)|0)>>>0>>0?a+1|0:a,a=W+a|0,O=w^(V=u+(b=z)|0),w=a=V>>>0>>0?a+1|0:a,tA=UI(O,a^wA,40),a=(wA=f)+s|0,z=UI(l=u^(s=z=tA+l|0),W^(u=s>>>0>>0?a+1|0:a),48),a=w+(CA=f)|0,W=a=(w=V+(l=z)|0)>>>0>>0?a+1|0:a,z=(v=UI(w^tA,wA^a,1))+(V=o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)|0,a=(hA=f)+(wA=o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)|0,nA=z,q=z>>>0>>0?a+1|0:a,Z=sA,z=o[I+96|0]|o[I+97|0]<<8|o[I+98|0]<<16|o[I+99|0]<<24,tA=a=o[I+100|0]|o[I+101|0]<<8|o[I+102|0]<<16|o[I+103|0]<<24,X=(a=h)+(h=UI(b^X,H^IA,1))|0,a=(b=f)+D|0,a=(h>>>0>X>>>0?a+1|0:a)+tA|0,a=(D=(D=X)>>>0>(X=z+X|0)>>>0?a+1|0:a)+Z|0,O=H=X+gA|0,H=a=H>>>0>>0?a+1|0:a,F=UI(_^F,Y^J,48),Y=a=UI(F^X,(J=f)^D,32),a=U+T|0,a=(IA=X=f)+(S=(X=y+S|0)>>>0>>0?a+1|0:a)|0,U=a=(D=X)>>>0>(y=D+Y|0)>>>0?a+1|0:a,h=UI(y^h,b^a,40),a=(T=f)+H|0,a=(b=h>>>0>(H=X=h+O|0)>>>0?a+1|0:a)+q|0,a=(_=H>>>0>(X=H+nA|0)>>>0?a+1|0:a)+pA|0,nA=q=X+EA|0,q=a=q>>>0>>0?a+1|0:a,O=X,Z=_,X=o[I+116|0]|o[I+117|0]<<8|o[I+118|0]<<16|o[I+119|0]<<24,I=o[I+112|0]|o[I+113|0]<<8|o[I+114|0]<<16|o[I+115|0]<<24,r=UI(r^D,S^m,1),a=(m=f)+M|0,a=((_=r+K|0)>>>0>>0?a+1|0:a)+X|0,a=(D=(S=_)>>>0>(_=I+_|0)>>>0?a+1|0:a)+pA|0,MA=S=_+EA|0,S=a=S>>>0<_>>>0?a+1|0:a,a=UI(_^p,D^R,32),AA=_=f,p=a,D=_,a=J+x|0,F=_=c+F|0,K=a=_>>>0>>0?a+1|0:a,a=a+D|0,M=_=_+p|0,R=a=F>>>0>_>>>0?a+1|0:a,D=UI(_^r,m^a,40),a=(m=f)+S|0,p=UI((_=D+MA|0)^p,AA^(c=_>>>0>>0?a+1|0:a),48),a=UI(p^O,(MA=f)^Z,32),AA=r=f,S=a,O=r,e=UI(e^F,K^L,1),a=G+(F=f)|0,a=((r=t)>>>0>(t=t+e|0)>>>0?a+1|0:a)+BA|0,a=(t=(r=t+j|0)>>>0>>0?a+1|0:a)+wA|0,Z=G=r+V|0,G=a=G>>>0>>0?a+1|0:a,K=e,r=UI(r^d,t^$,32),a=(d=f)+k|0,n=UI(K^(t=e=r+n|0),(k=r>>>0>t>>>0?a+1|0:a)^F,40),a=($=f)+G|0,F=e=n+Z|0,e=UI(r^e,d^(G=e>>>0>>0?a+1|0:a),48),a=k+(E=f)|0,k=e,d=a=(e=t+e|0)>>>0>>0?a+1|0:a,a=a+O|0,a=(K=e)>>>0>(e=e+S|0)>>>0?a+1|0:a,O=e,e^=v,v=a,r=UI(e,hA^a,40),a=(hA=f)+q|0,q=e=r+nA|0,a=Q+(Z=r>>>0>e>>>0?a+1|0:a)|0,nA=e=e+g|0,J=a=e>>>0>>0?a+1|0:a,e=_,x=gA,L=sA,_=UI(Y^H,b^IA,48),a=U+(IA=f)|0,Y=_,U=a=(t=y+_|0)>>>0>>0?a+1|0:a,_=UI(t^h,T^a,1),a=(y=f)+L|0,a=((h=_+x|0)>>>0<_>>>0?a+1|0:a)+c|0,a=SA+(e=(c=e+h|0)>>>0>>0?a+1|0:a)|0,H=h=c+iA|0,h=a=h>>>0>>0?a+1|0:a,c=UI(c^k,e^E,32),a=W+(b=f)|0,k=c,w=a=(c=w+c|0)>>>0>>0?a+1|0:a,e=UI(_^c,a^y,40),a=(a=h)+(h=f)|0,y=_=e+H|0,_=UI(_^k,b^(H=_>>>0>>0?a+1|0:a),48),a=w+(T=f)|0,b=_,W=a=(w=c+_|0)>>>0>>0?a+1|0:a,_=UI(e^w,h^a,1),a=(h=f)+J|0,a=B+(e=(c=_+nA|0)>>>0<_>>>0?a+1|0:a)|0,nA=k=c+fA|0,k=a=k>>>0>>0?a+1|0:a,J=_,x=h,a=R+MA|0,a=(_=p+M|0)>>>0

>>0?a+1|0:a,p=_,M=a,a=UI(_^D,m^a,1),D=h=f,_=a,a=G+X|0,a=((F=I+F|0)>>>0>>0?a+1|0:a)+h|0,a=DA+(F=(h=_+F|0)>>>0>>0?a+1|0:a)|0,R=G=h+oA|0,G=a=G>>>0>>0?a+1|0:a,h=UI(h^l,F^CA,32),a=U+(l=f)|0,F=h,U=a=(U=t)>>>0>(t=t+h|0)>>>0?a+1|0:a,h=UI(_^t,a^D,40),a=(m=f)+G|0,D=_=h+R|0,_=UI(G=_^F,l^(F=_>>>0>>0?a+1|0:a),48),a=U+(CA=f)|0,U=_,G=_=t+_|0,l=a=_>>>0>>0?a+1|0:a,R=c,L=e,_=UI(n^K,d^$,1),a=(t=f)+N|0,a=u+((c=_+cA|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(e=(c=c+s|0)>>>0>>0?a+1|0:a)|0,u=s=c+j|0,s=a=s>>>0>>0?a+1|0:a,n=_,_=(c=UI(c^Y,e^IA,32))+p|0,a=(p=f)+M|0,e=_,t=UI(_^n,(Y=_>>>0>>0?a+1|0:a)^t,40),a=(IA=f)+s|0,s=_=t+u|0,K=UI(_^c,p^(u=_>>>0>>0?a+1|0:a),48),c=UI(K^R,(a=L)^(L=f),32),a=(R=f)+l|0,p=_=c+G|0,n=UI(_^J,(M=_>>>0>>0?a+1|0:a)^x,40),a=(J=f)+k|0,k=_=n+nA|0,_=UI(_^c,R^(d=_>>>0>>0?a+1|0:a),48),a=M+($=f)|0,M=_,R=a=(c=p)>>>0>(p=p+_|0)>>>0?a+1|0:a,_=UI(p^n,J^a,1),a=pA+(nA=f)|0,J=_,MA=_=EA+_|0,n=a=_>>>0>>0?a+1|0:a,c=rA,_=UI(h^G,m^l,1),a=H+(h=f)|0,a=((G=y)>>>0>(y=_+y|0)>>>0?a+1|0:a)+yA|0,a=(G=(c=c+y|0)>>>0>>0?a+1|0:a)+kA|0,x=y=c+eA|0,H=a=y>>>0>>0?a+1|0:a,l=_,y=UI(S^q,Z^AA,48),a=UI(y^c,(m=f)^G,32),AA=_=f,S=a,c=_,a=Y+L|0,a=(_=e+K|0)>>>0>>0?a+1|0:a,e=_,Y=a,a=a+c|0,G=_=_+S|0,K=a=e>>>0>_>>>0?a+1|0:a,c=UI(_^l,a^h,40),a=(a=H)+(H=f)|0,l=_=c+x|0,q=a=_>>>0>>0?a+1|0:a,a=a+n|0,Z=a=(h=_+MA|0)>>>0<_>>>0?a+1|0:a,n=a,_=UI(t^e,Y^IA,1),a=P+(t=f)|0,a=F+((e=_+aA|0)>>>0>>0?a+1|0:a)|0,a=tA+(D=(e=e+D|0)>>>0>>0?a+1|0:a)|0,x=F=e+z|0,F=a=F>>>0>>0?a+1|0:a,Y=_,a=UI(e^b,D^T,32),L=_=f,e=a,D=_,a=m+v|0,b=_=y+O|0,v=a=_>>>0>>0?a+1|0:a,a=a+D|0,a=(y=_+e|0)>>>0<_>>>0?a+1|0:a,_=y^Y,Y=a,D=UI(_,a^t,40),a=(T=f)+F|0,t=_=D+x|0,O=UI(_^e,L^(F=_>>>0>>0?a+1|0:a),48),a=UI(O^h,(IA=f)^n,32),MA=_=f,x=a,n=_,_=UI(r^b,v^hA,1),a=u+(r=f)|0,a=FA+((e=_+s|0)>>>0>>0?a+1|0:a)|0,a=(s=(e=e+QA|0)>>>0>>0?a+1|0:a)+GA|0,b=u=e+_A|0,u=a=u>>>0>>0?a+1|0:a,e=UI(e^U,s^CA,32),a=W+(v=f)|0,U=e,s=r,r=a=(e=w+e|0)>>>0>>0?a+1|0:a,s=UI(_^e,s^a,40),a=(CA=f)+u|0,w=_=s+b|0,_=UI(b=_^U,v^(U=_>>>0>>0?a+1|0:a),48),a=r+(m=f)|0,r=_,u=_=e+_|0,b=a=_>>>0>>0?a+1|0:a,a=a+n|0,W=a=(n=_+x|0)>>>0<_>>>0?a+1|0:a,e=UI(n^J,nA^a,40),a=Z+(v=f)|0,a=((_=e+h|0)>>>0>>0?a+1|0:a)+sA|0,h=_,Z=_=_+gA|0,J=a=h>>>0>_>>>0?a+1|0:a,L=BA,h=UI(S^l,q^AA,48),a=(hA=f)+K|0,S=_=h+G|0,a=UI(_^c,(G=_>>>0>>0?a+1|0:a)^H,1),H=c=f,_=a,a=F+Q|0,a=((t=t+g|0)>>>0>>0?a+1|0:a)+c|0,a=(t=(c=_+t|0)>>>0>>0?a+1|0:a)+L|0,K=F=c+j|0,F=a=F>>>0>>0?a+1|0:a,c=UI(c^r,t^m,32),a=R+(l=f)|0,p=a=(r=c+p|0)>>>0

>>0?a+1|0:a,t=UI(_^r,a^H,40),a=(q=f)+F|0,F=_=t+K|0,c=UI(_^c,l^(H=_>>>0>>0?a+1|0:a),48),a=p+(K=f)|0,l=a=(p=c+r|0)>>>0>>0?a+1|0:a,_=UI(t^p,q^a,1),a=(q=f)+J|0,a=wA+((r=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=(t=(r=r+V|0)>>>0>>0?a+1|0:a)+N|0,nA=N=r+cA|0,N=a=N>>>0>>0?a+1|0:a,R=_,L=r,m=t,r=rA,_=UI(s^u,b^CA,1),a=d+(s=f)|0,a=((t=k)>>>0>(k=_+k|0)>>>0?a+1|0:a)+yA|0,a=GA+(t=(r=r+k|0)>>>0>>0?a+1|0:a)|0,d=k=r+_A|0,u=a=k>>>0<_A>>>0?a+1|0:a,k=_,t=a=UI(r^h,t^hA,32),a=Y+IA|0,a=(b=_=f)+(y=(_=y+O|0)>>>0>>0?a+1|0:a)|0,Y=a=(h=_+t|0)>>>0<_>>>0?a+1|0:a,k=UI(h^k,a^s,40),a=(IA=f)+u|0,u=UI(d=(r=k+d|0)^t,b^(t=r>>>0>>0?a+1|0:a),48),a=UI(u^L,(CA=f)^m,32),hA=s=f,d=a,b=s,_=UI(_^D,y^T,1),a=tA+(s=f)|0,a=U+((y=_+z|0)>>>0>>0?a+1|0:a)|0,a=FA+(w=(y=y+w|0)>>>0>>0?a+1|0:a)|0,L=D=y+QA|0,D=a=D>>>0>>0?a+1|0:a,U=_,O=s,y=UI(y^M,w^$,32),a=(M=f)+G|0,s=_=y+S|0,w=UI(_^U,(S=_>>>0>>0?a+1|0:a)^O,40),a=(T=f)+D|0,U=_=w+L|0,_=UI(_^y,M^(G=_>>>0>>0?a+1|0:a),48),a=S+(L=f)|0,D=_,S=_=s+_|0,M=a=_>>>0>>0?a+1|0:a,a=a+b|0,b=_=_+d|0,y=q,q=a=S>>>0>_>>>0?a+1|0:a,y=UI(_^R,y^a,40),a=(a=N)+(N=f)|0,O=_=y+nA|0,R=a=_>>>0>>0?a+1|0:a,s=t,_=UI(x^Z,J^MA,48),a=W+($=f)|0,W=_,t=(_=n+_|0)^e,e=a=_>>>0>>0?a+1|0:a,t=UI(t,a^v,1),a=(v=f)+s|0,a=B+((r=t+r|0)>>>0>>0?a+1|0:a)|0,a=(s=(r=r+fA|0)>>>0>>0?a+1|0:a)+P|0,Z=n=r+aA|0,n=a=n>>>0>>0?a+1|0:a,r=UI(r^D,s^L,32),a=l+(J=f)|0,l=r,p=a=(s=p+r|0)>>>0

>>0?a+1|0:a,t=UI(t^s,v^a,40),a=(a=n)+(n=f)|0,D=r=t+Z|0,r=UI(x=r^l,J^(l=r>>>0>>0?a+1|0:a),48),a=p+(nA=f)|0,v=r,Z=a=(p=s+r|0)>>>0>>0?a+1|0:a,r=UI(t^p,n^a,1),a=(n=f)+R|0,a=Q+((t=r+O|0)>>>0>>0?a+1|0:a)|0,a=X+(s=(t=t+g|0)>>>0>>0?a+1|0:a)|0,MA=J=I+t|0,J=a=J>>>0>>0?a+1|0:a,x=r,L=n,n=t,m=s,r=UI(w^S,M^T,1),a=(s=f)+H|0,a=DA+((t=r+F|0)>>>0>>0?a+1|0:a)|0,a=(w=(t=t+oA|0)>>>0>>0?a+1|0:a)+X|0,H=F=I+t|0,F=a=F>>>0>>0?a+1|0:a,S=r,t=a=UI(t^W,w^$,32),w=r=f,a=Y+CA|0,Y=a=(r=h+u|0)>>>0>>0?a+1|0:a,a=a+w|0,a=(h=r)>>>0>(r=r+t|0)>>>0?a+1|0:a,u=r,r^=S,S=a,s=UI(r,a^s,40),a=(T=f)+F|0,w=UI(F=(r=s+H|0)^t,w^(t=r>>>0>>0?a+1|0:a),48),a=UI(w^n,(a=m)^(m=f),32),$=n=f,F=a,H=e,e=c,a=UI(h^k,Y^IA,1),M=c=f,h=a,a=G+kA|0,a=((k=U+eA|0)>>>0>>0?a+1|0:a)+c|0,k=a=(c=h+k|0)>>>0>>0?a+1|0:a,e=UI(c^e,a^K,32),a=(a=H)+(H=f)|0,h=UI((_=e+_|0)^h,M^(Y=_>>>0>>0?a+1|0:a),40),a=k+(IA=f)|0,U=h,a=SA+((G=c)>>>0>(c=c+h|0)>>>0?a+1|0:a)|0,G=a=(h=c+iA|0)>>>0>>0?a+1|0:a,c=UI(e^h,H^a,48),a=Y+(CA=f)|0,K=_,e=c,Y=_=_+c|0,H=a=K>>>0>_>>>0?a+1|0:a,a=a+n|0,K=a=(n=_+F|0)>>>0<_>>>0?a+1|0:a,_=(k=UI(n^x,a^L,40))+MA|0,a=(MA=f)+J|0,M=_,W=_>>>0>>0?a+1|0:a,_=UI(d^O,R^hA,48),a=(d=f)+q|0,b=c=_+b|0,x=N,N=a=c>>>0<_>>>0?a+1|0:a,a=UI(c^y,x^a,1),O=c=f,y=a,a=t+B|0,a=((r=r+fA|0)>>>0>>0?a+1|0:a)+c|0,a=wA+(r=(c=r+y|0)>>>0>>0?a+1|0:a)|0,R=t=c+V|0,t=a=t>>>0>>0?a+1|0:a,c=UI(c^e,r^CA,32),a=Z+(J=f)|0,q=c,c=(e=p+c|0)^y,y=a=e>>>0

>>0?a+1|0:a,r=UI(c,O^a,40),a=(a=t)+(t=f)|0,O=c=r+R|0,c=UI(p=c^q,J^(q=c>>>0>>0?a+1|0:a),48),a=y+(CA=f)|0,Z=c,e=a=(c=e+c|0)>>>0>>0?a+1|0:a,r=UI(c^r,t^a,1),a=(p=f)+W|0,a=pA+((t=r+M|0)>>>0>>0?a+1|0:a)|0,a=(y=(t=t+EA|0)>>>0>>0?a+1|0:a)+BA|0,AA=R=t+j|0,R=a=R>>>0>>0?a+1|0:a,J=r,x=t,L=y,r=UI(U^Y,H^IA,1),a=(H=f)+sA|0,a=l+(r>>>0>(t=r+gA|0)>>>0?a+1|0:a)|0,y=a=(t=t+D|0)>>>0>>0?a+1|0:a,a=UI(_^t,a^d,32),d=_=f,D=a,a=S+m|0,a=(_=w+u|0)>>>0>>0?a+1|0:a,w=_,Y=a,a=d+a|0,S=_=_+D|0,U=a=w>>>0>_>>>0?a+1|0:a,_=UI(_^r,H^a,40),a=y+(m=f)|0,u=_,a=tA+((_=t+_|0)>>>0>>0?a+1|0:a)|0,a=(_=_+z|0)>>>0>>0?a+1|0:a,H=_,_^=D,D=a,y=UI(_,d^a,48),a=UI(y^x,(a=L)^(L=f),32),IA=_=f,d=a,l=_,_=UI(s^w,Y^T,1),a=kA+(t=f)|0,a=G+((r=_+eA|0)>>>0>>0?a+1|0:a)|0,a=(s=(r=r+h|0)>>>0>>0?a+1|0:a)+P|0,G=w=r+aA|0,w=a=w>>>0>>0?a+1|0:a,h=_,Y=t,_=(r=UI(r^v,s^nA,32))+b|0,a=(b=f)+N|0,t=_,s=UI(s=_^h,(h=_>>>0>>0?a+1|0:a)^Y,40),a=(T=f)+w|0,w=_=s+G|0,r=UI(_^r,b^(N=_>>>0>>0?a+1|0:a),48),a=h+(Y=f)|0,G=_=r+t|0,b=a=_>>>0>>0?a+1|0:a,a=a+l|0,l=a=(h=_+d|0)>>>0<_>>>0?a+1|0:a,t=UI(h^J,a^p,40),a=(v=f)+R|0,R=_=t+AA|0,J=a=_>>>0>>0?a+1|0:a,_=c,p=e,e=r,c=UI(F^M,W^$,48),a=K+(AA=f)|0,F=c,n=a=(r=n+c|0)>>>0>>0?a+1|0:a,a=UI(r^k,MA^a,1),K=c=f,k=a,a=D+NA|0,a=((D=H+cA|0)>>>0>>0?a+1|0:a)+c|0,D=a=(c=D+k|0)>>>0>>0?a+1|0:a,e=UI(c^e,a^Y,32),a=(H=f)+p|0,k=UI((_=e+_|0)^k,K^(p=_>>>0>>0?a+1|0:a),40),a=D+(M=f)|0,a=FA+((D=c)>>>0>(c=c+k|0)>>>0?a+1|0:a)|0,Y=a=(D=c+QA|0)>>>0>>0?a+1|0:a,c=UI(e^D,H^a,48),a=p+($=f)|0,H=c,K=a=(p=_+c|0)>>>0<_>>>0?a+1|0:a,_=UI(p^k,M^a,1),a=(k=f)+J|0,a=DA+((c=_+R|0)>>>0<_>>>0?a+1|0:a)|0,a=pA+(e=(c=c+oA|0)>>>0>>0?a+1|0:a)|0,hA=M=c+EA|0,M=a=M>>>0>>0?a+1|0:a,W=_,x=c,_=UI(s^G,b^T,1),a=(s=f)+q|0,a=GA+((c=_+O|0)>>>0<_>>>0?a+1|0:a)|0,a=SA+(G=(c=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,O=b=c+iA|0,b=a=b>>>0>>0?a+1|0:a,q=_,a=UI(c^F,G^AA,32),AA=_=f,c=a,a=U+L|0,S=_=y+S|0,F=a=_>>>0>>0?a+1|0:a,a=AA+a|0,U=a=(y=_+c|0)>>>0<_>>>0?a+1|0:a,s=UI(y^q,a^s,40),a=(L=f)+b|0,G=_=s+O|0,q=UI(_^c,AA^(b=_>>>0>>0?a+1|0:a),48),a=UI(q^x,(AA=f)^e,32),T=_=f,O=a,e=_,c=rA,_=UI(S^u,F^m,1),a=N+(F=f)|0,a=((S=w)>>>0>(w=_+w|0)>>>0?a+1|0:a)+yA|0,a=DA+(w=(c=c+w|0)>>>0>>0?a+1|0:a)|0,S=N=c+oA|0,N=a=N>>>0>>0?a+1|0:a,c=UI(c^Z,w^CA,32),a=n+(u=f)|0,n=c,a=(c=r+c|0)>>>0>>0?a+1|0:a,r=F,F=a,r=UI(_^c,r^a,40),a=(m=f)+N|0,w=_=r+S|0,_=UI(_^n,u^(N=_>>>0>>0?a+1|0:a),48),a=F+(x=f)|0,F=_,S=_=c+_|0,u=a=_>>>0>>0?a+1|0:a,a=a+e|0,a=(n=_+O|0)>>>0<_>>>0?a+1|0:a,_=n^W,W=a,k=UI(_,a^k,40),a=(CA=f)+M|0,M=_=k+hA|0,Z=_>>>0>>0?a+1|0:a,_=UI(d^R,J^IA,48),a=l+(IA=f)|0,d=_,a=(_=h+_|0)>>>0>>0?a+1|0:a,h=_,l=a,a=UI(_^t,a^v,1),v=_=f,e=a,a=b+wA|0,a=((c=G+V|0)>>>0>>0?a+1|0:a)+_|0,a=FA+(c=(_=c+e|0)>>>0>>0?a+1|0:a)|0,G=t=_+QA|0,t=a=t>>>0>>0?a+1|0:a,_=UI(_^F,c^x,32),a=K+(b=f)|0,F=_,p=a=(c=p+_|0)>>>0

>>0?a+1|0:a,e=UI(c^e,v^a,40),a=(v=f)+t|0,G=_=e+G|0,_=UI(t=_^F,b^(F=_>>>0>>0?a+1|0:a),48),a=p+(hA=f)|0,p=_,K=a=(t=c+_|0)>>>0>>0?a+1|0:a,_=UI(t^e,v^a,1),a=(b=f)+Z|0,a=kA+((c=_+M|0)>>>0<_>>>0?a+1|0:a)|0,a=(e=(c=c+eA|0)>>>0>>0?a+1|0:a)+sA|0,nA=v=c+gA|0,v=a=v>>>0>>0?a+1|0:a,R=_,J=c,x=e,_=UI(r^S,m^u,1),a=GA+(e=f)|0,a=Y+((c=_+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=NA+(r=(c=c+D|0)>>>0>>0?a+1|0:a)|0,u=D=c+cA|0,D=a=D>>>0>>0?a+1|0:a,Y=_,S=e,a=UI(c^d,r^IA,32),d=_=f,r=a,c=_,a=U+AA|0,a=(_=y+q|0)>>>0>>0?a+1|0:a,y=_,U=a,a=a+c|0,a=(e=_+r|0)>>>0<_>>>0?a+1|0:a,_=e^Y,Y=a,_=UI(_,a^S,40),a=(a=D)+(D=f)|0,S=c=_+u|0,u=a=c>>>0<_>>>0?a+1|0:a,d=UI(c^r,d^a,48),a=UI(d^J,(a=x)^(x=f),32),m=c=f,q=a,c=UI(y^s,U^L,1),a=(y=f)+yA|0,a=N+((r=c+rA|0)>>>0>>0?a+1|0:a)|0,a=B+(s=(r=r+w|0)>>>0>>0?a+1|0:a)|0,L=w=r+fA|0,w=a=w>>>0>>0?a+1|0:a,N=c,U=y,r=UI(r^H,s^$,32),a=(H=f)+l|0,y=c=r+h|0,c=(s=UI(c^N,(h=c>>>0>>0?a+1|0:a)^U,40))+L|0,a=(L=f)+w|0,N=c,c=UI(c^r,H^(U=c>>>0>>0?a+1|0:a),48),a=h+(AA=f)|0,H=c,l=c=y+c|0,J=a=c>>>0>>0?a+1|0:a,a=m+a|0,a=(r=c+q|0)>>>0>>0?a+1|0:a,c=b,b=a,y=UI(r^R,c^a,40),a=(IA=f)+v|0,w=c=y+nA|0,a=UI(c^q,m^(v=c>>>0>>0?a+1|0:a),48),m=c=f,q=a,c=_,a=Y+x|0,Y=_=e+d|0,d=a=_>>>0>>0?a+1|0:a,a=UI(_^c,a^D,1),e=c=f,_=a,a=U+Q|0,a=((h=N+g|0)>>>0>>0?a+1|0:a)+c|0,a=tA+(h=(c=_+h|0)>>>0>>0?a+1|0:a)|0,x=D=c+z|0,D=a=D>>>0>>0?a+1|0:a,N=_,U=e,_=UI(M^O,Z^T,48),a=W+(T=f)|0,M=_,a=(_=n+_|0)>>>0>>0?a+1|0:a,n=_,c=UI(c^p,h^hA,32),W=a,a=a+(O=f)|0,e=_=c+_|0,h=UI(_^N,(p=_>>>0>>0?a+1|0:a)^U,40),a=(Z=f)+D|0,D=_=h+x|0,_=UI(_^c,O^(N=_>>>0>>0?a+1|0:a),48),a=p+($=f)|0,U=_,O=a=(p=e+_|0)>>>0>>0?a+1|0:a,_=UI(h^p,Z^a,1),a=FA+(x=f)|0,Z=_,hA=_=QA+_|0,e=a=_>>>0>>0?a+1|0:a,_=UI(k^n,W^CA,1),a=(h=f)+u|0,a=SA+((c=_+S|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(n=(c=c+iA|0)>>>0>>0?a+1|0:a)|0,W=k=c+j|0,k=a=k>>>0>>0?a+1|0:a,S=h,c=UI(c^H,n^AA,32),a=K+(AA=f)|0,u=c,a=(h=t+c|0)>>>0>>0?a+1|0:a,t=S,S=a,n=UI(_^h,t^a,40),a=(CA=f)+k|0,H=_=n+W|0,a=(K=_>>>0>>0?a+1|0:a)+e|0,k=a=(e=_+hA|0)>>>0<_>>>0?a+1|0:a,W=a=UI(e^q,a^m,32),R=_=f,_=UI(s^l,J^L,1),a=(t=f)+F|0,a=X+((c=_+G|0)>>>0<_>>>0?a+1|0:a)|0,a=(s=(c=I+c|0)>>>0>>0?a+1|0:a)+P|0,J=F=c+aA|0,F=a=F>>>0>>0?a+1|0:a,G=_,l=t,c=UI(c^M,s^T,32),a=(M=f)+d|0,t=_=c+Y|0,_=(s=UI(_^G,(Y=_>>>0>>0?a+1|0:a)^l,40))+J|0,a=(J=f)+F|0,F=_,_=UI(_^c,M^(G=_>>>0>>0?a+1|0:a),48),a=Y+(T=f)|0,Y=_,M=a=(_=t+_|0)>>>0>>0?a+1|0:a,a=a+R|0,d=a=(t=_)>>>0>(_=_+W|0)>>>0?a+1|0:a,c=UI(_^Z,x^a,40),a=k+(x=f)|0,l=c,a=Q+((c=e+c|0)>>>0>>0?a+1|0:a)|0,Z=c=c+g|0,e=c^W,W=a=c>>>0>>0?a+1|0:a,c=UI(e,R^a,48),a=d+(R=f)|0,d=a=(k=_+c|0)>>>0<_>>>0?a+1|0:a,_=a=UI(k^l,x^a,1),l=e=f,e=UI(t^s,M^J,1),a=N+(s=f)|0,a=SA+((t=e+D|0)>>>0>>0?a+1|0:a)|0,a=DA+(D=(t=t+iA|0)>>>0>>0?a+1|0:a)|0,x=N=t+oA|0,N=a=N>>>0>>0?a+1|0:a,M=e,J=s,a=b+m|0,a=(e=r+q|0)>>>0>>0?a+1|0:a,b=e,u=UI(H^u,K^AA,48),s=UI(t^u,D^(AA=f),32),H=a,a=a+(hA=f)|0,D=e=s+e|0,e=UI(e^M,(K=e>>>0>>0?a+1|0:a)^J,40),a=(M=f)+N|0,J=a=(r=e+x|0)>>>0>>0?a+1|0:a,a=a+l|0,a=B+((q=r)>>>0>(r=_+r|0)>>>0?a+1|0:a)|0,a=(t=(r=r+fA|0)>>>0>>0?a+1|0:a)+yA|0,nA=N=r+rA|0,x=a=N>>>0>>0?a+1|0:a,L=_,m=r,a=UI(y^b,H^IA,1),y=r=f,_=a,a=G+GA|0,a=((N=F+_A|0)>>>0<_A>>>0?a+1|0:a)+r|0,a=tA+(N=(r=_+N|0)>>>0>>0?a+1|0:a)|0,H=F=r+z|0,F=a=F>>>0>>0?a+1|0:a,G=_,a=UI(r^U,N^$,32),b=_=f,r=a,N=_,a=S+AA|0,S=_=h+u|0,U=a=_>>>0>>0?a+1|0:a,a=a+N|0,a=(h=_+r|0)>>>0<_>>>0?a+1|0:a,_=h^G;G=a,N=UI(_,a^y,40),a=(AA=f)+F|0,u=UI(F=(_=N+H|0)^r,b^(r=_>>>0>>0?a+1|0:a),48),a=UI(a=u^m,(m=f)^t,32),IA=t=f,H=a,F=t,t=UI(n^S,U^CA,1),a=BA+(n=f)|0,a=v+((y=t+j|0)>>>0>>0?a+1|0:a)|0,a=kA+(w=(y=y+w|0)>>>0>>0?a+1|0:a)|0,U=S=y+eA|0,S=a=S>>>0>>0?a+1|0:a,y=UI(y^Y,w^T,32),a=O+(b=f)|0,Y=y,p=a=(y=p+y|0)>>>0

>>0?a+1|0:a,w=UI(t^y,a^n,40),a=(T=f)+S|0,n=t=w+U|0,t=UI(S=t^Y,b^(Y=t>>>0>>0?a+1|0:a),48),a=p+($=f)|0,S=t,U=t=y+t|0,b=a=t>>>0>>0?a+1|0:a,a=a+F|0,a=(y=t+H|0)>>>0>>0?a+1|0:a,t=l,l=a,p=UI(y^L,t^a,40),a=(v=f)+x|0,F=t=p+nA|0,t=UI(x=t^H,IA^(H=t>>>0

>>0?a+1|0:a),48),a=l+(IA=f)|0,l=t,y=a=(t=y+t|0)>>>0>>0?a+1|0:a,v=a=UI(t^p,v^a,1),CA=a,O=p=f,p=r,r=e,e=UI(s^q,J^hA,48),a=K+(hA=f)|0,K=e,a=(e=D+e|0)>>>0>>0?a+1|0:a,D=_,_=r^e,r=a,_=UI(_,a^M,1),a=(M=f)+p|0,a=NA+(_>>>0>(s=D+_|0)>>>0?a+1|0:a)|0,a=sA+(D=(s=s+cA|0)>>>0>>0?a+1|0:a)|0,q=p=s+gA|0,p=a=p>>>0>>0?a+1|0:a,s=UI(s^S,D^$,32),a=d+(J=f)|0,S=a=(D=s+k|0)>>>0>>0?a+1|0:a,k=UI(_^D,M^a,40),a=($=f)+p|0,M=_=k+q|0,s=UI(_^s,J^(d=_>>>0>>0?a+1|0:a),48),a=S+(q=f)|0,J=_=s+D|0,S=_,x=a=_>>>0>>0?a+1|0:a,D=e,p=r,a=G+m|0,a=(_=h+u|0)>>>0>>0?a+1|0:a,h=_,_^=N,N=a,a=UI(_,AA^a,1),L=_=f,G=a,r=a,a=Y+P|0,a=((e=n+aA|0)>>>0>>0?a+1|0:a)+_|0,n=a=(_=e)>>>0>(e=r+e|0)>>>0?a+1|0:a,r=UI(c^e,a^R,32),a=(a=p)+(p=f)|0,u=_=r+D|0,c=UI(c=_^G,L^(G=_>>>0>>0?a+1|0:a),40),a=n+(R=f)|0,a=wA+((_=c+e|0)>>>0>>0?a+1|0:a)|0,L=a=(D=_+V|0)>>>0>>0?a+1|0:a,p=UI(r^D,p^a,48),nA=a=f,_=UI(w^U,b^T,1),a=(r=f)+W|0,a=pA+((e=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=X+(w=(e=e+EA|0)>>>0>>0?a+1|0:a)|0,W=n=I+e|0,U=a=n>>>0>>0?a+1|0:a,b=_,n=UI(e^K,w^hA,32),a=(T=f)+N|0,N=_=n+h|0,e=UI(_^b,(K=_>>>0>>0?a+1|0:a)^r,40),a=(a=U)+(U=f)|0,b=_=e+W|0,W=a=_>>>0>>0?a+1|0:a,r=a,a=X+O|0,a=((w=I+v|0)>>>0>>0?a+1|0:a)+r|0,Y=a=(r=_+w|0)>>>0>>0?a+1|0:a,_=UI(r^p,nA^a,32),a=(v=f)+x|0,h=UI((w=_+S|0)^CA,(a=w>>>0<_>>>0?a+1|0:a)^O,40),O=a,a=sA+(S=f)|0,a=Y+((Z=h+gA|0)>>>0>>0?a+1|0:a)|0,a=(Y=r+Z|0)>>>0>>0?a+1|0:a,r=v,v=a,r=UI(_^Y,r^a,48),a=(a=O)+(O=f)|0,_=h^(w=r+w|0),h=a=w>>>0>>0?a+1|0:a,Z=a=UI(_,a^S,1),CA=a,m=_=f,S=t,AA=y,t=e,e=UI(n^b,W^T,48),a=K+(b=f)|0,n=_=e+N|0,N=a=_>>>0>>0?a+1|0:a,t=UI(_^t,a^U,1),a=(W=f)+NA|0,a=L+((_=t+cA|0)>>>0>>0?a+1|0:a)|0,D=a=(y=_+D|0)>>>0>>0?a+1|0:a,_=UI(y^s,a^q,32),a=(U=f)+AA|0,S=s=_+S|0,K=a=s>>>0<_>>>0?a+1|0:a,t=UI(t^s,a^W,40),a=DA+(hA=f)|0,W=t,a=D+((t=oA+t|0)>>>0>>0?a+1|0:a)|0,y=a=(t=t+y|0)>>>0>>0?a+1|0:a,s=UI(_^t,a^U,48),a=(a=K)+(K=f)|0,q=_=s+S|0,U=_,L=a=_>>>0>>0?a+1|0:a,a=G+nA|0,S=(_=p+u|0)^c,c=a=_>>>0

>>0?a+1|0:a,a=UI(S,a^R,1),R=D=f,S=a,a=d+tA|0,a=((p=M+z|0)>>>0>>0?a+1|0:a)+D|0,G=a=(G=p)>>>0>(p=p+S|0)>>>0?a+1|0:a,u=D=UI(p^l,IA^a,32),M=a=f,a=a+N|0,d=D=D+n|0,l=a=u>>>0>D>>>0?a+1|0:a,D=UI(D^S,R^a,40),a=yA+(R=f)|0,a=G+((n=D+rA|0)>>>0>>0?a+1|0:a)|0,n=a=(S=p)>>>0>(p=p+n|0)>>>0?a+1|0:a,S=UI(p^u,a^M,48),IA=a=f,N=a,k=UI(k^J,x^$,1),G=a=f,u=e,a=a+P|0,a=H+((e=k+aA|0)>>>0>>0?a+1|0:a)|0,a=(e=e+F|0)>>>0>>0?a+1|0:a,F=e^u,u=a,F=UI(F,a^b,32),a=($=f)+c|0,H=_=F+_|0,c=UI(_^k,(c=G)^(G=_>>>0>>0?a+1|0:a),40),a=pA+(M=f)|0,a=u+((_=c+EA|0)>>>0>>0?a+1|0:a)|0,u=_=_+e|0,b=a=_>>>0>>0?a+1|0:a,e=a,a=m+SA|0,a=((k=Z+iA|0)>>>0>>0?a+1|0:a)+e|0,Z=a=(e=_+k|0)>>>0>>0?a+1|0:a,_=UI(e^S,a^N,32),a=(J=f)+L|0,N=UI((k=_+U|0)^CA,(a=k>>>0<_>>>0?a+1|0:a)^m,40),x=U=f,m=a,a=U+kA|0,a=Z+((U=N+eA|0)>>>0>>0?a+1|0:a)|0,Z=a=(U=e+U|0)>>>0>>0?a+1|0:a,e=UI(_^U,a^J,48),a=(J=f)+m|0,_=(k=e+k|0)^N,N=a=k>>>0>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=w,T=s,s=c,c=UI(F^u,b^$,48),a=(F=f)+G|0,G=_=c+H|0,u=a=_>>>0>>0?a+1|0:a,s=UI(_^s,a^M,1),a=(M=f)+FA|0,a=((_=s+QA|0)>>>0>>0?a+1|0:a)+n|0,p=a=(w=_+p|0)>>>0<_>>>0?a+1|0:a,_=UI(w^T,a^K,32),a=(n=f)+h|0,H=h=_+AA|0,K=a=h>>>0<_>>>0?a+1|0:a,s=UI(s^h,a^M,40),a=B+(T=f)|0,M=s,a=p+((s=fA+s|0)>>>0>>0?a+1|0:a)|0,b=a=(h=s+w|0)>>>0>>0?a+1|0:a,s=UI(_^h,a^n,48),a=(a=K)+(K=f)|0,H=_=s+H|0,AA=a=_>>>0>>0?a+1|0:a,p=r,w=t,a=l+IA|0,r=a=(_=S+d|0)>>>0>>0?a+1|0:a,t=UI(_^D,a^R,1),a=(D=f)+BA|0,a=((n=t+j|0)>>>0>>0?a+1|0:a)+y|0,y=UI(p^(w=w+n|0),(a=w>>>0>>0?a+1|0:a)^O,32),n=a,S=t,a=(p=f)+u|0,a=(t=y+G|0)>>>0>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^D,40),a=Q+(u=f)|0,a=((D=t+g|0)>>>0>>0?a+1|0:a)+n|0,d=a=(n=D)>>>0>(D=D+w|0)>>>0?a+1|0:a,p=UI(y^D,a^p,48),IA=a=f,w=a,y=UI(q^W,L^hA,1),l=a=f,W=r,a=a+wA|0,a=v+((r=y+V|0)>>>0>>0?a+1|0:a)|0,n=F,F=a=(r=r+Y|0)>>>0>>0?a+1|0:a,n=UI(c^r,n^a,32),a=($=f)+W|0,Y=_=n+_|0,c=UI(_^y,(c=l)^(l=_>>>0>>0?a+1|0:a),40),a=GA+(W=f)|0,a=F+((_=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,v=_=_+r|0,q=a=_>>>0>>0?a+1|0:a,r=a,a=m+tA|0,a=((y=z+x|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+y|0)>>>0>>0?a+1|0:a,_=UI(r^p,a^w,32),a=(O=f)+AA|0,w=UI((y=_+H|0)^x,(a=y>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=P+(R=f)|0,a=F+((L=w+aA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+L|0)>>>0>>0?a+1|0:a,r=O,O=a,r=UI(_^F,r^a,48),a=(a=x)+(x=f)|0,_=(y=r+y|0)^w,w=a=y>>>0>>0?a+1|0:a,R=a=UI(_,a^R,1),L=_=f,m=s,s=c,c=UI(n^v,q^$,48),a=(a=l)+(l=f)|0,Y=_=c+Y|0,n=W,W=a=_>>>0>>0?a+1|0:a,s=UI(_^s,n^a,1),a=(v=f)+kA|0,a=d+((_=s+eA|0)>>>0>>0?a+1|0:a)|0,n=D,D=_+D|0,_=K,K=a=n>>>0>D>>>0?a+1|0:a,_=UI(D^m,_^a,32),a=(a=N)+(N=f)|0,d=a=(n=_+k|0)>>>0<_>>>0?a+1|0:a,k=n,s=UI(s^n,a^v,40),a=wA+($=f)|0,v=s,a=K+((s=V+s|0)>>>0>>0?a+1|0:a)|0,K=a=(n=s+D|0)>>>0>>0?a+1|0:a,s=UI(_^n,a^N,48),a=(a=d)+(d=f)|0,q=_=s+k|0,m=a=_>>>0>>0?a+1|0:a,k=e,a=S+IA|0,e=a=(_=p+G|0)>>>0

>>0?a+1|0:a,t=UI(_^t,a^u,1),a=sA+(p=f)|0,a=b+((D=t+gA|0)>>>0>>0?a+1|0:a)|0,S=(D=h+D|0)^k,k=a=D>>>0>>0?a+1|0:a,h=UI(S,a^J,32),N=a=f,S=t,a=a+W|0,a=(t=h+Y|0)>>>0>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^p,40),a=Q+(u=f)|0,a=k+((p=t+g|0)>>>0>>0?a+1|0:a)|0,b=a=(p=D+p|0)>>>0>>0?a+1|0:a,k=UI(h^p,a^N,48),IA=a=f,D=a,h=UI(M^H,T^AA,1),Y=a=f,H=e,a=a+B|0,a=Z+((e=h+fA|0)>>>0>>0?a+1|0:a)|0,U=a=(e=e+U|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^l,32),a=(CA=f)+H|0,H=_=N+_|0,c=UI(_^h,(M=_>>>0>>0?a+1|0:a)^Y,40),a=X+(l=f)|0,a=U+((_=I+c|0)>>>0>>0?a+1|0:a)|0,U=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=L+pA|0,a=((h=R+EA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+m|0,D=UI((h=_+q|0)^R,(a=h>>>0<_>>>0?a+1|0:a)^L,40),J=a,a=NA+(R=f)|0,a=Y+((L=D+cA|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+L|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=J)+(J=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,R=a=UI(_,a^R,1),hA=a,L=_=f,AA=y,T=s,y=c,c=UI(N^U,W^CA,48),a=(N=f)+M|0,U=_=c+H|0,H=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^l,1),a=(l=f)+yA|0,a=b+((_=y+rA|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(M=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=FA+(CA=f)|0,b=y,a=p+((y=QA+y|0)>>>0>>0?a+1|0:a)|0,p=y+s|0,y=M,M=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=S+IA|0,r=a=(_=k+G|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^u,1),a=(k=f)+GA|0,a=K+((w=t+_A|0)>>>0>>0?a+1|0:a)|0,s=UI(s^(w=w+n|0),(a=w>>>0>>0?a+1|0:a)^x,32),S=n=f,n=a,G=t,a=S+H|0,a=(t=s+U|0)>>>0>>0?a+1|0:a,U=t,t^=G,G=a,t=UI(t,a^k,40),a=DA+(u=f)|0,a=((k=t+oA|0)>>>0>>0?a+1|0:a)+n|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,m^$,1),H=a=f,K=r,a=a+BA|0,a=O+((r=s+j|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+K|0,K=_=N+_|0,c=UI(_^s,(c=H)^(H=_>>>0>>0?a+1|0:a),40),a=SA+(v=f)|0,a=F+((_=c+iA|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=L+Q|0,a=((s=R+g|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^hA,(a=s>>>0<_>>>0?a+1|0:a)^L,40),L=a,a=kA+(x=f)|0,a=F+((m=w+eA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+H|0,H=_=c+K|0,K=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+FA|0,a=S+((_=y+QA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=BA+($=f)|0,v=y,a=n+((y=j+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+U|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^u,1),a=SA+(k=f)|0,a=M+((D=t+iA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^J,32),U=a=f,G=t,a=a+K|0,a=(t=h+H|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=pA+(H=f)|0,a=p+((k=t+EA|0)>>>0>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+X|0,a=Z+((e=I+h|0)>>>0>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=wA+(b=f)|0,a=Y+((_=c+V|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+sA|0,a=((h=x+gA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^x,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=B+(J=f)|0,a=Y+((m=D+fA|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+tA|0,a=U+((_=y+z|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=GA+(CA=f)|0,b=y,a=p+((y=_A+y|0)>>>0<_A>>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+DA|0,a=S+((w=t+oA|0)>>>0>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=yA+(H=f)|0,a=n+((k=t+rA|0)>>>0>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+P|0,a=R+((r=s+aA|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=NA+(v=f)|0,a=F+((_=c+cA|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=m+B|0,a=((s=J+fA|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=SA+(J=f)|0,a=F+((m=w+iA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+P|0,a=S+((_=y+aA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=yA+($=f)|0,v=y,a=n+((y=rA+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=DA+(k=f)|0,a=U+((D=t+oA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=GA+(H=f)|0,a=p+((k=t+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+BA|0,a=Z+((e=h+j|0)>>>0>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=NA+(b=f)|0,a=Y+((_=c+cA|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+wA|0,a=((h=J+V|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=X+(J=f)|0,a=Y+((m=I+D|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+pA|0,a=U+((_=y+EA|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=Q+(CA=f)|0,b=y,a=p+((y=g+y|0)>>>0>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+sA|0,a=S+((w=t+gA|0)>>>0>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=FA+(H=f)|0,a=n+((k=t+QA|0)>>>0>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+kA|0,a=R+((r=s+eA|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=tA+(v=f)|0,a=F+((_=c+z|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=m+NA|0,a=((s=J+cA|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=yA+(J=f)|0,a=F+((m=w+rA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+SA|0,a=S+((_=y+iA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=B+($=f)|0,v=y,a=n+((y=fA+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=FA+(k=f)|0,a=U+((D=t+QA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=P+(H=f)|0,a=p+((k=t+aA|0)>>>0>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+GA|0,a=Z+((e=h+_A|0)>>>0<_A>>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=kA+(b=f)|0,a=Y+((_=c+eA|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+DA|0,a=((h=J+oA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=Q+(J=f)|0,a=Y+((m=D+g|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(l=f)+BA|0,a=U+((_=y+j|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=w=_+AA|0,b=a=w>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=wA+(AA=f)|0,l=y,a=p+((y=V+y|0)>>>0>>0?a+1|0:a)|0,w=y+s|0,y=U,U=a=w>>>0>>0?a+1|0:a,y=UI(_^w,y^a,48),a=(a=b)+(b=f)|0,d=_=y+d|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+X|0,a=S+((p=I+t|0)>>>0>>0?a+1|0:a)|0,n=a=(p=p+n|0)>>>0>>0?a+1|0:a,S=s=UI(s^p,a^L,32),G=a=f,u=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,H=t,t^=u,u=a,t=UI(t,a^k,40),a=pA+(K=f)|0,a=n+((s=t+EA|0)>>>0>>0?a+1|0:a)|0,M=(s=s+p|0)^S,S=a=s>>>0

>>0?a+1|0:a,p=UI(M,a^G,48),L=a=f,k=a,G=n=UI(q^v,O^$,1),M=a=f,v=r,a=a+tA|0,a=R+((r=n+z|0)>>>0>>0?a+1|0:a)|0,a=(r=r+F|0)>>>0>>0?a+1|0:a,F=N,N=a,n=UI(c^r,F^a,32),a=(T=f)+v|0,F=_=n+_|0,c=UI(c=_^G,(G=_>>>0>>0?a+1|0:a)^M,40),a=sA+(M=f)|0,a=N+((_=c+gA|0)>>>0>>0?a+1|0:a)|0,N=_=_+r|0,v=a=_>>>0>>0?a+1|0:a,r=a,a=m+wA|0,a=((R=V)>>>0>(V=J+V|0)>>>0?a+1|0:a)+r|0,wA=a=(_=_+V|0)>>>0>>0?a+1|0:a,V=UI(_^p,a^k,32),a=(q=f)+W|0,k=UI((r=d+V|0)^J,(a=r>>>0>>0?a+1|0:a)^m,40),R=a,a=pA+(O=f)|0,a=wA+((J=EA)>>>0>(EA=k+EA|0)>>>0?a+1|0:a)|0,a=(EA=_+EA|0)>>>0<_>>>0?a+1|0:a,_=V^EA,V=a,pA=UI(_,a^q,48);a=(wA=f)+R|0,r=a=(_=r+pA|0)>>>0>>0?a+1|0:a,a=UI(_^k,a^O,1),k=f,q=a,O=h,h=gA,R=sA,sA=UI(n^N,v^T,48),a=(n=f)+G|0,G=h,F=a=(gA=F+sA|0)>>>0>>0?a+1|0:a,h=UI(c^(N=gA),a^M,1),a=(M=f)+R|0,a=S+(h>>>0>(gA=G+h|0)>>>0?a+1|0:a)|0,c=a=(gA=s+gA|0)>>>0>>0?a+1|0:a,y=UI(y^gA,a^b,32),a=(a=D)+(D=f)|0,S=s=y+O|0,G=a=s>>>0>>0?a+1|0:a,s=UI(s^h,a^M,40),a=(M=f)+SA|0,a=(s>>>0>(iA=s+iA|0)>>>0?a+1|0:a)+c|0,c=a=(c=iA)>>>0>(iA=gA+iA|0)>>>0?a+1|0:a,y=UI(y^iA,a^D,48),a=(h=f)+G|0,D=gA=y+S|0,SA=a=gA>>>0>>0?a+1|0:a,S=I,G=X,a=u+L|0,gA=a=(I=p+H|0)>>>0

>>0?a+1|0:a,X=UI(I^t,a^K,1),a=(p=f)+G|0,a=U+((t=S+X|0)>>>0>>0?a+1|0:a)|0,e=UI((t=t+w|0)^e,(a=t>>>0>>0?a+1|0:a)^x,32),S=a,U=oA,oA=X,a=(w=f)+F|0,F=p,p=a=(X=e+N|0)>>>0>>0?a+1|0:a,oA=UI(X^oA,F^a,40),a=(N=f)+DA|0,a=((DA=U+oA|0)>>>0>>0?a+1|0:a)+S|0,S=DA,t=e^(DA=t+DA|0),e=a=S>>>0>DA>>>0?a+1|0:a,a=UI(t,a^w,48),u=t=f,w=a,F=j,S=BA,j=UI(d^l,W^AA,1),G=a=f,a=a+NA|0,a=Z+((j=(U=j)+cA|0)>>>0>>0?a+1|0:a)|0,cA=a=(j=Y+j|0)>>>0>>0?a+1|0:a,BA=UI(j^sA,a^n,32),a=(Y=f)+gA|0,gA=I=BA+I|0,sA=UI(I^U,(n=I>>>0>>0?a+1|0:a)^G,40),a=(a=S)+(S=f)|0,a=cA+((I=sA+F|0)>>>0>>0?a+1|0:a)|0,cA=I=I+j|0,NA=a=I>>>0>>0?a+1|0:a,j=a,a=k+FA|0,a=((U=QA)>>>0>(QA=q+QA|0)>>>0?a+1|0:a)+j|0,FA=a=(j=I+QA|0)>>>0>>0?a+1|0:a,QA=UI(w^j,a^t,32),a=(U=f)+SA|0,t=I=QA+D|0,I=UI(I^q,(F=k)^(k=I>>>0>>0?a+1|0:a),40),a=GA+(G=f)|0,GA=I,a=FA+((I=_A+I|0)>>>0<_A>>>0?a+1|0:a)|0,a=(I=I+j|0)>>>0>>0?a+1|0:a,FA=I,H=(o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24)^I,F=a,K=a^(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24),j=UI(BA^cA,Y^NA,48),a=(cA=f)+n|0,n=I=j+gA|0,NA=a=I>>>0>>0?a+1|0:a,BA=rA,a=p+u|0,rA=a=(I=w+X|0)>>>0>>0?a+1|0:a,oA=UI(I^oA,a^N,1),a=(w=f)+yA|0,a=((BA=oA+BA|0)>>>0>>0?a+1|0:a)+c|0,BA=a=(yA=BA+iA|0)>>>0>>0?a+1|0:a,gA=UI(yA^pA,a^wA,32),a=(X=f)+NA|0,iA=a=(_A=gA+n|0)>>>0>>0?a+1|0:a,pA=gA,gA=UI(oA^_A,a^w,40),a=(c=f)+kA|0,a=(gA>>>0>(oA=gA+eA|0)>>>0?a+1|0:a)+BA|0,p=X,X=a=(yA=oA+yA|0)>>>0>>0?a+1|0:a,oA=UI(pA^(eA=yA),p^a,48),a=(w=f)+iA|0,a=(BA=oA+_A|0)>>>0>>0?a+1|0:a,_A=BA,BA^=H,C[A+8|0]=BA,C[A+9|0]=BA>>>8,C[A+10|0]=BA>>>16,C[A+11|0]=BA>>>24,iA=a,a^=K,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,yA=I,BA=rA,I=j,j=UI(s^D,M^SA,1),a=(kA=f)+Q|0,a=(j>>>0>(rA=j+g|0)>>>0?a+1|0:a)+V|0,EA=a=(D=rA)>>>0>(rA=EA+rA|0)>>>0?a+1|0:a,I=UI(I^rA,a^cA,32),a=(a=BA)+(BA=f)|0,cA=a=(yA=I+yA|0)>>>0>>0?a+1|0:a,pA=I,yA=UI(j^(V=yA),a^kA,40),a=(s=f)+B|0,a=EA+((I=yA+fA|0)>>>0>>0?a+1|0:a)|0,a=(I=I+rA|0)>>>0>>0?a+1|0:a,EA=I,I^=pA,pA=a,rA=UI(I,a^BA,48),a=(D=f)+cA|0,V=I=rA+V|0,cA=I>>>0>>0?a+1|0:a,sA=I=UI(n^sA,S^NA,1),kA=a=f,a=a+P|0,a=e+((I=I+aA|0)>>>0>>0?a+1|0:a)|0,P=a=(j=I+DA|0)>>>0>>0?a+1|0:a,I=(BA=UI(y^j,a^h,32))+_|0,a=(_=f)+r|0,DA=I,I=(aA=UI(e=I^sA,(sA=I>>>0>>0?a+1|0:a)^kA,40))+z|0,a=(z=f)+tA|0,a=P+(I>>>0>>0?a+1|0:a)|0,a=(P=I+j|0)>>>0>>0?a+1|0:a,j=P^KA^V,C[0|(I=A)]=j,C[I+1|0]=j>>>8,C[I+2|0]=j>>>16,C[I+3|0]=j>>>24,j=a^i^cA,C[I+4|0]=j,C[I+5|0]=j>>>8,C[I+6|0]=j>>>16,C[I+7|0]=j>>>24,j=(BA=UI(P^BA,a^_,48))+DA|0,a=(DA=f)+sA|0,a=(sA=j>>>0>>0?a+1|0:a)^(o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)^pA,P=(o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)^EA^j,C[I+16|0]=P,C[I+17|0]=P>>>8,C[I+18|0]=P>>>16,C[I+19|0]=P>>>24,C[I+20|0]=a,C[I+21|0]=a>>>8,C[I+22|0]=a>>>16,C[I+23|0]=a>>>24,I=UI(QA^FA,F^U,48),P=f,EA=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,a=(o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)^UI(gA^_A,c^iA,1)^I,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,a=f^EA^P,C[A+36|0]=a,C[A+37|0]=a>>>8,C[A+38|0]=a>>>16,C[A+39|0]=a>>>24,a=k+P|0,a=(EA=I+t|0)>>>0>>0?a+1|0:a,gA=(o[(I=A)+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^X^a,P=(o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24)^eA^EA,C[I+24|0]=P,C[I+25|0]=P>>>8,C[I+26|0]=P>>>16,C[I+27|0]=P>>>24,C[I+28|0]=gA,C[I+29|0]=gA>>>8,C[I+30|0]=gA>>>16,C[I+31|0]=gA>>>24,gA=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,I=rA^(o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24)^UI(j^aA,z^sA,1),C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,I=D^f^gA,C[A+44|0]=I,C[A+45|0]=I>>>8,C[A+46|0]=I>>>16,C[A+47|0]=I>>>24,j=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,I=BA^(o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)^UI(V^yA,s^cA,1),C[A+56|0]=I,C[A+57|0]=I>>>8,C[A+58|0]=I>>>16,C[A+59|0]=I>>>24,I=DA^f^j,C[A+60|0]=I,C[A+61|0]=I>>>8,C[A+62|0]=I>>>16,C[A+63|0]=I>>>24,j=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,I=oA^(o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24)^UI(EA^GA,a^G,1),C[A+48|0]=I,C[A+49|0]=I>>>8,C[A+50|0]=I>>>16,C[A+51|0]=I>>>24,I=w^f^j,C[A+52|0]=I,C[A+53|0]=I>>>8,C[A+54|0]=I>>>16,C[A+55|0]=I>>>24}function w(A,I,g,B,Q,E,a){var _,c,t,r,e,y,h,D,p,w,n,k,F,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA,iA,oA,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,kA=0,FA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0,zA=0,jA=0,XA=0,OA=0,WA=0,VA=0,ZA=0,TA=0,$A=0,AI=0,II=0;return s=t=s-560|0,SI(_A=t+352|0),a&&SA(_A,35600,34,0),FI(t+288|0,E,32,0),SA(rA=t+352|0,t+320|0,32,0),SA(rA,g,B,Q),j(rA,yA=t+224|0),hA=o[(aA=E)+32|0]|o[aA+33|0]<<8|o[aA+34|0]<<16|o[aA+35|0]<<24,DA=o[aA+36|0]|o[aA+37|0]<<8|o[aA+38|0]<<16|o[aA+39|0]<<24,cA=o[aA+40|0]|o[aA+41|0]<<8|o[aA+42|0]<<16|o[aA+43|0]<<24,EA=o[aA+44|0]|o[aA+45|0]<<8|o[aA+46|0]<<16|o[aA+47|0]<<24,_A=o[aA+48|0]|o[aA+49|0]<<8|o[aA+50|0]<<16|o[aA+51|0]<<24,E=o[aA+52|0]|o[aA+53|0]<<8|o[aA+54|0]<<16|o[aA+55|0]<<24,tA=o[aA+60|0]|o[aA+61|0]<<8|o[aA+62|0]<<16|o[aA+63|0]<<24,aA=o[aA+56|0]|o[aA+57|0]<<8|o[aA+58|0]<<16|o[aA+59|0]<<24,C[A+56|0]=aA,C[A+57|0]=aA>>>8,C[A+58|0]=aA>>>16,C[A+59|0]=aA>>>24,C[A+60|0]=tA,C[A+61|0]=tA>>>8,C[A+62|0]=tA>>>16,C[A+63|0]=tA>>>24,C[A+48|0]=_A,C[A+49|0]=_A>>>8,C[A+50|0]=_A>>>16,C[A+51|0]=_A>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=cA,C[A+41|0]=cA>>>8,C[A+42|0]=cA>>>16,C[A+43|0]=cA>>>24,C[A+44|0]=EA,C[A+45|0]=EA>>>8,C[A+46|0]=EA>>>16,C[A+47|0]=EA>>>24,C[0|(E=A+32|0)]=hA,C[E+1|0]=hA>>>8,C[E+2|0]=hA>>>16,C[E+3|0]=hA>>>24,C[E+4|0]=DA,C[E+5|0]=DA>>>8,C[E+6|0]=DA>>>16,C[E+7|0]=DA>>>24,S(yA),nA(t,yA),tg(A,t),SI(rA),a&&SA(rA,35600,34,0),SA(a=t+352|0,A,64,0),SA(a,g,B,Q),j(a,eA=t+160|0),S(eA),C[t+288|0]=248&o[t+288|0],C[t+319|0]=63&o[t+319|0]|64,g=o[23+(A=c=t+288|0)|0],cA=Ig(r=o[A+21|0]|o[A+22|0]<<8|g<<16&2031616,0,e=(o[eA+28|0]|o[eA+29|0]<<8|o[eA+30|0]<<16|o[eA+31|0]<<24)>>>7|0,0),_A=f,g=(A=o[eA+27|0])>>>24|0,Q=A<<8|(EA=o[eA+23|0]|o[eA+24|0]<<8|o[eA+25|0]<<16|o[eA+26|0]<<24)>>>24,A=Ig(y=2097151&((3&(DA=(A=(B=o[eA+28|0])>>>16|0)|g))<<30|(g=(B<<=16)|Q)>>>2),0,h=(a=o[c+23|0]|o[c+24|0]<<8|o[c+25|0]<<16|o[c+26|0]<<24)>>>5&2097151,0),g=f+_A|0,B=A>>>0>(Q=A+cA|0)>>>0?g+1|0:g,A=Ig(D=(g=o[eA+23|0])<<16&2031616|o[eA+21|0]|o[eA+22|0]<<8,0,p=(o[c+28|0]|o[c+29|0]<<8|o[c+30|0]<<16|o[c+31|0]<<24)>>>7|0,0),B=f+B|0,_A=g=A+Q|0,Q=A>>>0>g>>>0?B+1|0:B,B=(A=o[c+27|0])>>>24|0,a=A<<8|a>>>24,A=Ig(w=2097151&((3&(B|=g=(A=o[c+28|0])>>>16|0))<<30|(g=(A<<=16)|a)>>>2),0,n=EA>>>5&2097151,0),g=f+Q|0,aA=B=A+_A|0,Q=A>>>0>B>>>0?g+1|0:g,EA=Ig(h,0,n,0),_A=f,g=(A=o[c+19|0])>>>24|0,a=A<<8|(GA=o[c+15|0]|o[c+16|0]<<8|o[c+17|0]<<16|o[c+18|0]<<24)>>>24,B=g,g=Ig(k=(7&(B|=g=(A=o[c+20|0])>>>16|0))<<29|(g=(A<<=16)|a)>>>3,DA=B>>>3|0,e,0),A=f+_A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,a=(g=Ig(r,0,y,0))+B|0,B=f+A|0,g=g>>>0>(EA=a)>>>0?B+1|0:B,B=(A=o[eA+19|0])>>>24|0,_A=A<<8|(kA=o[eA+15|0]|o[eA+16|0]<<8|o[eA+17|0]<<16|o[eA+18|0]<<24)>>>24,A=Ig(F=(7&(cA=(A=(a=o[eA+20|0])>>>16|0)|B))<<29|(B=(a<<=16)|_A)>>>3,N=cA>>>3|0,p,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,A=Ig(D,0,w,0),g=f+g|0,hA=g=A>>>0>(yA=A+B|0)>>>0?g+1|0:g,fA=A=g-((yA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+Q|0,EA=B=(A=(2097151&A)<<11|(cA=yA- -1048576|0)>>>21)>>>0>(aA=A+aA|0)>>>0?B+1|0:B,wA=A=B-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&A)<<11|(_A=aA- -1048576|0)>>>21,a=A>>>21|0,A=Ig(p,0,n,0),g=f,B=A,A=Ig(e,0,h,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,pA=(A=B)+(B=Ig(y,0,w,0))|0,A=f+g|0,A=B>>>0>pA>>>0?A+1|0:A,rA=pA-(g=-2097152&(B=pA- -1048576|0))|0,g=(A-((131071&(Q=A-((pA>>>0<4293918720)-1|0)|0))+(g>>>0>pA>>>0)|0)|0)+a|0,R=g=(A=tA+rA|0)>>>0>>0?g+1|0:g,L=A,rA=Ig(A,g,470296,0),tA=f,g=Ig(e,0,w,0),A=f,a=g,g=Ig(y,0,p,0),A=f+A|0,g=g>>>0>(a=a+g|0)>>>0?A+1|0:A,A=Q>>>21|0,Q=(2097151&Q)<<11|B>>>21,B=A+g|0,bA=Q=(B=Q>>>0>(a=Q+a|0)>>>0?B+1|0:B)-((a>>>0<4293918720)-1|0)|0,A=a-(g=-2097152&(UA=a- -1048576|0))|0,P=a=B-((131071&Q)+(g>>>0>a>>>0)|0)|0,q=g=aA-(B=-2097152&_A)|0,z=Q=EA-((B>>>0>aA>>>0)+wA|0)|0,X=A,B=Ig(A,a,666643,0),A=f+tA|0,A=B>>>0>(a=B+rA|0)>>>0?A+1|0:A,B=Ig(g,Q,654183,0),g=f+A|0,sA=Q=B+a|0,_A=B>>>0>Q>>>0?g+1|0:g,pA=yA-(A=-2097152&cA)|0,fA=hA-((A>>>0>yA>>>0)+fA|0)|0,g=Ig(y,0,k,DA),B=f,Q=(A=g)+(g=Ig(G=GA>>>6&2097151,0,e,0))|0,A=f+B|0,A=g>>>0>Q>>>0?A+1|0:A,g=Ig(h,0,D,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(r,0,n,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(p,0,M=kA>>>6&2097151,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(w,0,F,N),g=f+A|0,yA=Q=B+Q|0,a=B>>>0>Q>>>0?g+1|0:g,g=(A=o[c+14|0])>>>24|0,Q=A<<8|(hA=o[c+10|0]|o[c+11|0]<<8|o[c+12|0]<<16|o[c+13|0]<<24)>>>24,g=Ig(K=2097151&((1&(g|=A=(B=o[c+15|0])>>>16|0))<<31|(A=(B<<=16)|Q)>>>1),0,e,0),A=f,B=g,g=Ig(y,0,G,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(n,0,k,DA))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(h,0,F,N),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,A=Ig(r,0,D,0),g=f+g|0,cA=B=A+Q|0,Q=A>>>0>B>>>0?g+1|0:g,g=(A=o[eA+14|0])>>>24|0,EA=A<<8|(aA=o[eA+10|0]|o[eA+11|0]<<8|o[eA+12|0]<<16|o[eA+13|0]<<24)>>>24,B=g,g=(A=o[eA+15|0])>>>16|0,g=Ig(U=2097151&((1&(g|=B))<<31|(A=A<<16|EA)>>>1),0,p,0),A=f+Q|0,A=g>>>0>(B=g+cA|0)>>>0?A+1|0:A,g=Ig(w,0,M,0),A=f+A|0,EA=A=g>>>0>(cA=g+B|0)>>>0?A+1|0:A,HA=g=A-((cA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,tA=B=(g=(2097151&g)<<11|(rA=cA- -1048576|0)>>>21)>>>0>(wA=g+yA|0)>>>0?B+1|0:B,MA=g=B-((wA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+fA|0,O=A=(g=(B=(2097151&g)<<11|(yA=wA- -1048576|0)>>>21)+pA|0)>>>0>>0?A+1|0:A,W=g,A=Ig(g,A,-997805,-1),g=f+_A|0,sA=B=A+sA|0,_A=A>>>0>B>>>0?g+1|0:g,pA=(dA=o[23+(_=t+224|0)|0]|o[_+24|0]<<8|o[_+25|0]<<16|o[_+26|0]<<24)>>>5&2097151,B=Ig(b=(A=o[c+2|0])<<16&2031616|o[0|c]|o[c+1|0]<<8,0,n,0),g=f,Q=(A=Ig(D,0,H=(a=o[c+2|0]|o[c+3|0]<<8|o[c+4|0]<<16|o[c+5|0]<<24)>>>5&2097151,0))+B|0,B=f+g|0,B=A>>>0>Q>>>0?B+1|0:B,A=Ig(Y=(o[c+7|0]|o[c+8|0]<<8|o[c+9|0]<<16|o[c+10|0]<<24)>>>7&2097151,0,M,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(U,0,J=hA>>>4&2097151,0),A=f+g|0,hA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=(g=o[c+6|0])<<8|a>>>24,B=A=g>>>24|0,g=(A=o[c+7|0])>>>16|0,g=Ig(d=2097151&((3&(g|=B))<<30|(A=A<<16|a)>>>2),0,F,N),A=f+Q|0,A=g>>>0>(B=g+hA|0)>>>0?A+1|0:A,Q=(g=Ig(G,0,m=(o[eA+7|0]|o[eA+8|0]<<8|o[eA+9|0]<<16|o[eA+10|0]<<24)>>>7&2097151,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,g=Ig(K,0,KA=aA>>>4&2097151,0),A=f+B|0,a=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,A=(g=o[eA+6|0])>>>24|0,hA=g<<8|(aA=o[eA+2|0]|o[eA+3|0]<<8|o[eA+4|0]<<16|o[eA+5|0]<<24)>>>24,g=A,A=Ig(k,DA,l=2097151&((3&(g|=B=(A=o[eA+7|0])>>>16|0))<<30|(A=A<<16|hA)>>>2),0),g=f+a|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,Q=B,B=Ig(u=(A=o[eA+2|0])<<16&2031616|o[0|eA]|o[eA+1|0]<<8,0,h,0),A=f+g|0,A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,g=Ig(r,0,x=aA>>>5&2097151,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,g=B,hA=B=B+pA|0,a=g=g>>>0>B>>>0?A+1|0:A,Q=o[_+21|0]|o[_+22|0]<<8,A=Ig(D,0,b,0),g=f,aA=(B=A)+(A=Ig(F,N,H,0))|0,B=f+g|0,B=A>>>0>aA>>>0?B+1|0:B,A=Ig(U,0,Y,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(J,0,KA,0),g=f+g|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,aA=(A=B)+(B=Ig(M,0,d,0))|0,A=f+g|0,A=B>>>0>aA>>>0?A+1|0:A,g=Ig(G,0,l,0),A=f+A|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,aA=(g=Ig(K,0,m,0))+B|0,B=f+A|0,B=g>>>0>aA>>>0?B+1|0:B,A=Ig(k,DA,x,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(r,0,u,0),g=f+g|0,A=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,g=(g=B)>>>0>(B=B+Q|0)>>>0?A+1|0:A,Q=B,B=(A=o[_+23|0])<<16&2031616,A=g,B=A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,eA=A=A-((Q>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+a|0,A=(g=(a=hA=(A=(2097151&A)<<11|(aA=Q- -1048576|0)>>>21)+hA|0)>>>0>>0?g+1|0:g)+_A|0,A=(_A=a+sA|0)>>>0>>0?A+1|0:A,kA=a- -1048576|0,FA=a=g-((a>>>0<4293918720)-1|0)|0,NA=_A-(g=-2097152&kA)|0,YA=A-((g>>>0>_A>>>0)+a|0)|0,hA=Q,_A=B,A=Ig(q,z,470296,0),g=f,B=A,A=Ig(L,R,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(W,O,654183,0))|0,A=f+g|0,GA=Q,a=B>>>0>Q>>>0?A+1|0:A,g=Ig(F,N,b,0),A=f,B=g,g=Ig(M,0,H,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,KA,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(J,0,m,0),B=f+g|0,B=A>>>0>(Q=A+Q|0)>>>0?B+1|0:B,A=Ig(U,0,d,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(G,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(K,0,l,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(k,DA,u,0))|0,g=f+A|0,pA=Q,B=B>>>0>Q>>>0?g+1|0:g,g=(A=o[_+19|0])>>>24|0,fA=A<<8|(sA=o[_+15|0]|o[_+16|0]<<8|o[_+17|0]<<16|o[_+18|0]<<24)>>>24,B=((JA=(A=(Q=o[_+20|0])>>>16|0)|g)>>>3|0)+B|0,pA=Q=(g=(7&JA)<<29|(g=(Q<<=16)|fA)>>>3)+pA|0,Q=g>>>0>Q>>>0?B+1|0:B,fA=sA>>>6&2097151,A=Ig(M,0,b,0),g=f,B=A,A=Ig(U,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,sA=(A=B)+(B=Ig(Y,0,m,0))|0,A=f+g|0,A=B>>>0>sA>>>0?A+1|0:A,B=Ig(J,0,l,0),g=f+A|0,g=B>>>0>(sA=B+sA|0)>>>0?g+1|0:g,B=Ig(d,0,KA,0),A=f+g|0,A=B>>>0>(sA=B+sA|0)>>>0?A+1|0:A,g=Ig(G,0,u,0),B=f+A|0,B=g>>>0>(sA=g+sA|0)>>>0?B+1|0:B,A=Ig(K,0,x,0),g=f+B|0,A=A>>>0>(sA=A+sA|0)>>>0?g+1|0:g,qA=A=(lA=sA+fA|0)>>>0>>0?A+1|0:A,ZA=A=A-((lA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(LA=lA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,jA=A=B>>>0>(zA=B+pA|0)>>>0?A+1|0:A,TA=A=A-((zA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(xA=zA- -1048576|0)>>>21,A=(A>>>21|0)+a|0,g=(B>>>0>(Q=B+GA|0)>>>0?A+1|0:A)+_A|0,_A=(B=Q+hA|0)-(A=-2097152&aA)|0,eA=A=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+eA|0)|0,$A=A=A-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(vA=_A- -1048576|0)>>>21,A=(A>>21)+YA|0,Q=A=B>>>0>(a=B+NA|0)>>>0?A+1|0:A,VA=A=A-((a>>>0<4293918720)-1|0)|0,RA=(2097151&A)<<11|(GA=a- -1048576|0)>>>21,hA=A>>21,JA=wA-(A=-2097152&yA)|0,MA=tA-((A>>>0>wA>>>0)+MA|0)|0,A=Ig(e,0,p,0),PA=g=f,NA=A,sA=A- -1048576|0,uA=g=g-((A>>>0<4293918720)-1|0)|0,V=A=g>>>21|0,A=Ig(v=(2097151&g)<<11|sA>>>21,A,-683901,-1),g=f+EA|0,g=A>>>0>(B=A+cA|0)>>>0?g+1|0:g,yA=B-(A=-2097152&rA)|0,aA=g-((A>>>0>B>>>0)+HA|0)|0,g=Ig(n,0,G,0),A=f,B=g,g=Ig(e,0,J,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(y,0,K,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,EA=(g=B)+(B=Ig(D,0,k,DA))|0,g=f+A|0,g=B>>>0>EA>>>0?g+1|0:g,A=Ig(h,0,M,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,A=Ig(r,0,F,N),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(p,0,KA,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,U,0),A=f+A|0,cA=B=g+EA|0,EA=g>>>0>B>>>0?A+1|0:A,A=Ig(y,0,J,0),g=f,B=A,A=Ig(e,0,Y,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,tA=(A=Ig(D,0,G,0))+B|0,B=f+g|0,B=A>>>0>tA>>>0?B+1|0:B,A=Ig(n,0,K,0),g=f+B|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,B=Ig(k,DA,F,N),A=f+g|0,A=B>>>0>(tA=B+tA|0)>>>0?A+1|0:A,g=Ig(h,0,U,0),A=f+A|0,A=g>>>0>(B=g+tA|0)>>>0?A+1|0:A,tA=(g=B)+(B=Ig(r,0,M,0))|0,g=f+A|0,g=B>>>0>tA>>>0?g+1|0:g,A=Ig(p,0,m,0),B=f+g|0,B=A>>>0>(tA=A+tA|0)>>>0?B+1|0:B,A=Ig(w,0,KA,0),g=f+B|0,fA=g=A>>>0>(pA=A+tA|0)>>>0?g+1|0:g,OA=A=g-((pA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(wA=pA- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,rA=A=g>>>0>(HA=g+cA|0)>>>0?A+1|0:A,mA=A=A-((HA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+aA|0,yA=g=(A=(2097151&A)<<11|(tA=HA- -1048576|0)>>>21)>>>0>(YA=A+yA|0)>>>0?g+1|0:g,XA=A=g-((YA>>>0<4293918720)-1|0)|0,EA=(2097151&A)<<11|(aA=YA- -1048576|0)>>>21,A=(A>>21)+MA|0,Z=A=(g=EA+JA|0)>>>0>>0?A+1|0:A,T=g,A=Ig(g,A,-683901,-1),g=f+hA|0,RA=B=A+RA|0,hA=A>>>0>B>>>0?g+1|0:g,A=Ig(y,0,b,0),g=f,B=A,A=Ig(n,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(F,N,Y,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(M,0,J,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(D,0,d,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(G,0,KA,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(K,0,U,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(k,DA,m,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(h,0,x,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(r,0,l,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(w,0,u,0),g=f+A|0,MA=EA=B+EA|0,B=B>>>0>EA>>>0?g+1|0:g,g=(A=o[_+27|0])>>>24|0,cA=A<<8|dA>>>24,EA=2097151&((3&(g|=A=(EA=o[_+28|0])>>>16|0))<<30|(A=(EA<<=16)|cA)>>>2),g=B,cA=A=EA+MA|0,EA=A>>>0>>0?g+1|0:g,JA=Ig(X,P,470296,0),MA=f,A=(B=(2097151&bA)<<11|UA>>>21)+(NA-(g=-2097152&sA)|0)|0,g=PA-((524287&uA)+(g>>>0>NA>>>0)|0)+(bA>>>21)|0,$=g=A>>>0>>0?g+1|0:g,AA=A,g=Ig(A,g,666643,0),A=f+MA|0,A=g>>>0>(B=g+JA|0)>>>0?A+1|0:A,sA=(g=Ig(L,R,654183,0))+B|0,B=f+A|0,B=g>>>0>sA>>>0?B+1|0:B,g=Ig(q,z,-997805,-1),A=f+B|0,A=g>>>0>(sA=g+sA|0)>>>0?A+1|0:A,B=Ig(W,O,136657,0),g=f+A|0,kA=(A=(2097151&FA)<<11|kA>>>21)+(sA=B+sA|0)|0,g=(FA>>>21|0)+(B>>>0>sA>>>0?g+1|0:g)|0,uA=sA=EA-((cA>>>0<4293918720)-1|0)|0,A=(A>>>0>kA>>>0?g+1|0:g)+EA|0,g=(EA=cA+kA|0)-(B=-2097152&(PA=cA- -1048576|0))|0,B=(A=(A=EA>>>0>>0?A+1|0:A)-((B>>>0>EA>>>0)+sA|0)|0)+hA|0,JA=EA=A-((g>>>0<4293918720)-1|0)|0,NA=(B=(cA=g+RA|0)>>>0>>0?B+1|0:B)-(((g=-2097152&(MA=g- -1048576|0))>>>0>cA>>>0)+EA|0)|0,dA=A=cA-g|0,EA=a,a=Q,WA=YA-(A=-2097152&aA)|0,sA=yA-((A>>>0>YA>>>0)+XA|0)|0,A=Ig(AA,$,-683901,-1),g=f,Q=(B=A)+(A=Ig(v,V,136657,0))|0,B=f+g|0,g=rA+(A>>>0>Q>>>0?B+1|0:B)|0,tA=(B=Q+HA|0)-(A=-2097152&tA)|0,yA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+mA|0)|0,g=Ig(v,V,-997805,-1),A=f+fA|0,A=g>>>0>(B=g+pA|0)>>>0?A+1|0:A,Q=(g=Ig(AA,$,136657,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(X,P,-683901,-1),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,aA=Q-(A=-2097152&wA)|0,hA=g-((A>>>0>Q>>>0)+OA|0)|0,g=Ig(n,0,J,0),A=f,B=g,g=Ig(y,0,Y,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(e,0,d,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(F,N,G,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(D,0,K,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(k,DA,M,0),g=f+A|0,g=B>>>0>(Q=B+Q|0)>>>0?g+1|0:g,B=Ig(h,0,KA,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(r,0,U,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(p,0,l,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(w,0,m,0),A=f+g|0,cA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,A=Ig(n,0,Y,0),g=f,B=A,A=Ig(e,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,rA=(A=B)+(B=Ig(D,0,J,0))|0,A=f+g|0,A=B>>>0>rA>>>0?A+1|0:A,g=Ig(y,0,d,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,A=Ig(G,0,M,0),g=f+B|0,g=A>>>0>(rA=A+rA|0)>>>0?g+1|0:g,B=Ig(F,N,K,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,B=Ig(k,DA,U,0),g=f+A|0,g=B>>>0>(rA=B+rA|0)>>>0?g+1|0:g,B=Ig(h,0,m,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,g=Ig(r,0,KA,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,rA=(A=Ig(p,0,x,0))+rA|0,g=f+B|0,B=Ig(w,0,l,0),A=f+(A>>>0>rA>>>0?g+1|0:g)|0,YA=A=B>>>0>(XA=B+rA|0)>>>0?A+1|0:A,gA=A=A-((XA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(bA=XA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,UA=A=B>>>0>(RA=B+cA|0)>>>0?A+1|0:A,CA=A=A-((RA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(FA=RA- -1048576|0)>>>21,A=(A>>>21|0)+hA|0,kA=A=B>>>0>(HA=B+aA|0)>>>0?A+1|0:A,BA=A=A-((HA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(fA=HA- -1048576|0)>>>21,A=(A>>21)+yA|0,Q=A=B>>>0>(aA=B+tA|0)>>>0?A+1|0:A,yA=A=A-((aA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(B=aA- -1048576|0)>>>21,A=(A>>21)+sA|0,OA=A=(cA=hA+WA|0)>>>0>>0?A+1|0:A,mA=cA,A=Ig(cA,A,-683901,-1),g=f,cA=A,A=Ig(T,Z,136657,0),g=f+g|0,A=(A>>>0>(cA=cA+A|0)>>>0?g+1|0:g)+a|0,AI=(a=EA+cA|0)-(g=-2097152&GA)|0,II=(A=a>>>0>>0?A+1|0:A)-((g>>>0>a>>>0)+VA|0)|0,hA=_A,cA=eA,_A=Ig(mA,OA,136657,0),a=f,WA=A=aA-(g=-2097152&B)|0,IA=Q=Q-((g>>>0>aA>>>0)+yA|0)|0,B=Ig(T,Z,-997805,-1),g=f+a|0,g=B>>>0>(_A=B+_A|0)>>>0?g+1|0:g,B=Ig(A,Q,-683901,-1),A=f+g|0,VA=Q=B+_A|0,EA=B>>>0>Q>>>0?A+1|0:A,A=Ig(W,O,470296,0),g=f,Q=(B=A)+(A=Ig(q,z,666643,0))|0,B=f+g|0,g=jA+(A>>>0>Q>>>0?B+1|0:B)|0,GA=A=Q+zA|0,a=g=A>>>0>>0?g+1|0:g,g=Ig(W,O,666643,0),A=f+qA|0,A=g>>>0>(B=g+lA|0)>>>0?A+1|0:A,tA=B-(g=-2097152&LA)|0,pA=A-((g>>>0>B>>>0)+ZA|0)|0,g=Ig(U,0,b,0),A=f,B=g,g=Ig(H,0,KA,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,l,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,B=Ig(J,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(d,0,m,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(K,0,u,0),g=f+B|0,aA=Q=A+Q|0,Q=A>>>0>Q>>>0?g+1|0:g,g=(A=o[_+14|0])>>>24|0,_A=A<<8|(yA=o[_+10|0]|o[_+11|0]<<8|o[_+12|0]<<16|o[_+13|0]<<24)>>>24,g=2097151&((1&(g|=B=(A=o[_+15|0])>>>16|0))<<31|(A=_A|A<<16)>>>1),A=Q,aA=B=g+aA|0,Q=g>>>0>B>>>0?A+1|0:A,_A=yA>>>4&2097151,A=Ig(b,0,KA,0),g=f,B=A,A=Ig(H,0,m,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(Y,0,x,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,yA=(A=B)+(B=Ig(J,0,u,0))|0,A=f+g|0,A=B>>>0>yA>>>0?A+1|0:A,g=Ig(d,0,l,0),B=f+A|0,A=g>>>0>(yA=g+yA|0)>>>0?B+1|0:B,eA=A=(LA=_A+yA|0)>>>0>>0?A+1|0:A,QA=A=A-((LA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+Q|0,wA=g=(A=(2097151&A)<<11|(sA=LA- -1048576|0)>>>21)>>>0>(jA=A+aA|0)>>>0?g+1|0:g,iA=A=g-((jA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(rA=jA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,yA=A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,oA=A=A-((tA>>>0<4293918720)-1|0)|0,g=(B=A>>21)+a|0,ZA=g=(g=(A=(2097151&A)<<11|(aA=tA- -1048576|0)>>>21)>>>0>(Q=A+GA|0)>>>0?g+1|0:g)-(((B=-2097152&xA)>>>0>Q>>>0)+TA|0)|0,xA=A=Q-B|0,_A=A- -1048576|0,TA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+EA|0,g=((A=(2097151&A)<<11|_A>>>21)>>>0>(Q=A+VA|0)>>>0?B+1|0:B)+cA|0,lA=g=(g=(A=Q)>>>0>(Q=Q+hA|0)>>>0?g+1|0:g)-(((B=-2097152&vA)>>>0>Q>>>0)+$A|0)|0,cA=A=Q-B|0,a=A- -1048576|0,qA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+II|0,vA=A=(B=(A=(2097151&A)<<11|a>>>21)>>>0>(EA=A+AI|0)>>>0?B+1|0:B)-((EA>>>0<4293918720)-1|0)|0,GA=dA- -1048576|0,pA=NA-((dA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(Q=EA- -1048576|0)>>>21,A=(A>>21)+NA|0,$A=(dA=hA+dA|0)-(g=-2097152&GA)|0,AI=(hA>>>0>dA>>>0?A+1|0:A)-((g>>>0>dA>>>0)+pA|0)|0,II=EA-(A=-2097152&Q)|0,VA=B-((A>>>0>EA>>>0)+vA|0)|0,zA=cA-(A=-2097152&a)|0,dA=lA-((A>>>0>cA>>>0)+qA|0)|0,A=Ig(mA,OA,-997805,-1),g=f,B=A,A=Ig(T,Z,654183,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(WA,IA,136657,0))|0,A=f+g|0,g=ZA+(B>>>0>Q>>>0?A+1|0:A)|0,lA=(B=Q+xA|0)-(A=-2097152&_A)|0,qA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+TA|0)|0,xA=HA-(A=-2097152&fA)|0,NA=kA-((A>>>0>HA>>>0)+BA|0)|0,g=Ig(AA,$,-997805,-1),A=f,B=g,g=Ig(v,V,654183,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(X,P,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(L,R,-683901,-1),B=f+g|0,g=UA+(A>>>0>(Q=A+Q|0)>>>0?B+1|0:B)|0,fA=(B=Q+RA|0)-(A=-2097152&FA)|0,kA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+CA|0)|0,g=Ig(AA,$,654183,0),A=f,B=g,g=Ig(v,V,470296,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(X,P,-997805,-1))+B|0,B=f+A|0,g=YA+(g>>>0>Q>>>0?B+1|0:B)|0,g=(A=Q+XA|0)>>>0>>0?g+1|0:g,B=A,A=Ig(L,R,136657,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(q,z,-683901,-1))|0,A=f+g|0,_A=Q-(g=-2097152&bA)|0,a=(B>>>0>Q>>>0?A+1|0:A)-((g>>>0>Q>>>0)+gA|0)|0,Q=(o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24)>>>7|0,A=Ig(e,0,b,0),g=f,EA=(B=A)+(A=Ig(y,0,H,0))|0,B=f+g|0,B=A>>>0>EA>>>0?B+1|0:B,A=Ig(D,0,Y,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(F,N,J,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(n,0,d,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(G,0,U,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(M,0,K,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,A=Ig(k,DA,KA,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(h,0,l,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(r,0,m,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(p,0,u,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,x,0),B=f+A|0,g=B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,UA=(B=(2097151&uA)<<11|PA>>>21)+(A=Q+EA|0)|0,A=(uA>>>21|0)+(g=A>>>0>>0?g+1|0:g)|0,hA=A=B>>>0>UA>>>0?A+1|0:A,vA=g=A-((UA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,cA=B=(g=(2097151&g)<<11|(DA=UA- -1048576|0)>>>21)>>>0>(FA=g+_A|0)>>>0?B+1|0:B,PA=g=B-((FA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+kA|0,_A=A=(g=(2097151&g)<<11|(EA=FA- -1048576|0)>>>21)>>>0>(fA=g+fA|0)>>>0?A+1|0:A,bA=g=A-((fA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+NA|0,uA=B=(g=(Q=(2097151&g)<<11|(a=fA- -1048576|0)>>>21)+xA|0)>>>0>>0?B+1|0:B,NA=g,A=Ig(g,B,-683901,-1),g=f+qA|0,kA=B=A+lA|0,Q=A>>>0>B>>>0?g+1|0:g,g=Ig(T,Z,470296,0),A=f+yA|0,A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,g=Ig(mA,OA,654183,0),A=f+(A-(((B=-2097152&aA)>>>0>tA>>>0)+oA|0)|0)|0,A=g>>>0>(aA=g+(tA-B|0)|0)>>>0?A+1|0:A,B=Ig(WA,IA,-997805,-1),g=f+A|0,g=B>>>0>(aA=B+aA|0)>>>0?g+1|0:g,YA=B=fA-(A=-2097152&a)|0,KA=_A=_A-((A>>>0>fA>>>0)+bA|0)|0,aA=(a=Ig(NA,uA,136657,0))+aA|0,A=f+g|0,B=Ig(B,_A,-683901,-1),g=f+(a>>>0>aA>>>0?A+1|0:A)|0,_A=g=B>>>0>(yA=B+aA|0)>>>0?g+1|0:g,bA=A=g-((yA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(a=yA- -1048576|0)>>>21,A=(A>>21)+Q|0,fA=g=(A=g>>>0>(aA=g+kA|0)>>>0?A+1|0:A)-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&g)<<11|(Q=aA- -1048576|0)>>>21,g=(g>>21)+dA|0,zA=kA=tA+zA|0,kA=tA>>>0>kA>>>0?g+1|0:g,dA=aA-(g=-2097152&Q)|0,XA=A-((g>>>0>aA>>>0)+fA|0)|0,lA=yA-(A=-2097152&a)|0,qA=_A-((A>>>0>yA>>>0)+bA|0)|0,A=Ig(T,Z,666643,0),B=wA+f|0,B=(a=A+jA|0)>>>0>>0?B+1|0:B,Q=(A=Ig(mA,OA,470296,0))+(a-(g=-2097152&rA)|0)|0,g=f+(B-((g>>>0>a>>>0)+iA|0)|0)|0,g=A>>>0>Q>>>0?g+1|0:g,B=Ig(WA,IA,654183,0),A=f+g|0,aA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=FA-(A=-2097152&EA)|0,_A=cA-((A>>>0>FA>>>0)+PA|0)|0,A=Ig(AA,$,470296,0),g=f,B=A,A=Ig(v,V,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(X,P,654183,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(L,R,-997805,-1))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(q,z,136657,0),A=f+A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,EA=(g=Ig(W,O,-683901,-1))+B|0,B=f+A|0,g=hA+(g>>>0>EA>>>0?B+1|0:B)|0,FA=(B=(2097151&JA)<<11|MA>>>21)+((EA=EA+UA|0)-(A=-2097152&DA)|0)|0,A=((g=EA>>>0>>0?g+1|0:g)-((A>>>0>EA>>>0)+vA|0)|0)+(JA>>21)|0,fA=A=B>>>0>FA>>>0?A+1|0:A,xA=A=A-((FA>>>0<4293918720)-1|0)|0,g=a,a=(2097151&A)<<11|(rA=FA- -1048576|0)>>>21,A=(A>>21)+_A|0,bA=A=(B=g+a|0)>>>0>>0?A+1|0:A,UA=B,A=Ig(B,A,-683901,-1),g=f+Q|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(NA,uA,-997805,-1))|0,A=f+g|0,A=B>>>0>Q>>>0?A+1|0:A,g=Ig(YA,KA,136657,0),B=f+A|0,MA=Q=g+Q|0,cA=g>>>0>Q>>>0?B+1|0:B,aA=LA-(A=-2097152&sA)|0,hA=eA-((A>>>0>LA>>>0)+QA|0)|0,g=Ig(b,0,m,0),A=f,B=g,g=Ig(H,0,l,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(Y,0,u,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,Q=(g=Ig(d,0,x,0))+B|0,B=f+A|0,g=g>>>0>Q>>>0?B+1|0:B,DA=B=(A=(o[_+7|0]|o[_+8|0]<<8|o[_+9|0]<<16|o[_+10|0]<<24)>>>7&2097151)+Q|0,EA=A>>>0>B>>>0?g+1|0:g,A=Ig(b,0,l,0),g=f,B=A,A=Ig(H,0,x,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(d,0,u,0))|0,A=f+g|0,_A=Q,Q=B>>>0>Q>>>0?A+1|0:A,A=(g=o[_+6|0])>>>24|0,a=g<<8|(vA=o[_+2|0]|o[_+3|0]<<8|o[_+4|0]<<16|o[_+5|0]<<24)>>>24,B=A,g=(A=o[_+7|0])>>>16|0,g|=B,B=Q,a=B=(A=2097151&((3&g)<<30|(A=A<<16|a)>>>2))>>>0>(_A=A+_A|0)>>>0?B+1|0:B,RA=A=B-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(wA=_A- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,tA=A=B>>>0>(eA=B+DA|0)>>>0?A+1|0:A,PA=A=A-((eA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+hA|0,B=(A=(2097151&A)<<11|(yA=eA- -1048576|0)>>>21)>>>0>(Q=A+aA|0)>>>0?B+1|0:B,g=Ig(mA,OA,666643,0),A=f+B|0,A=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,g=Ig(WA,IA,470296,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(UA,bA,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(NA,uA,654183,0),g=f+g|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,aA=(A=Ig(YA,KA,-997805,-1))+B|0,B=f+g|0,hA=B=A>>>0>aA>>>0?B+1|0:B,JA=A=B-((aA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(DA=aA- -1048576|0)>>>21,A=(A>>21)+cA|0,MA=B=(A=B>>>0>(Q=B+MA|0)>>>0?A+1|0:A)-((Q>>>0<4293918720)-1|0)|0,EA=(2097151&B)<<11|(cA=Q- -1048576|0)>>>21,B=(B>>21)+qA|0,HA=sA=EA+lA|0,sA=EA>>>0>sA>>>0?B+1|0:B,EA=Q,g=A,Q=(FA-(A=-2097152&rA)|0)+(rA=(2097151&pA)<<11|GA>>>21)|0,A=(fA-((A>>>0>FA>>>0)+xA|0)|0)+(pA>>21)|0,pA=A=Q>>>0>>0?A+1|0:A,lA=A=A-((Q>>>0<4293918720)-1|0)|0,FA=B=A>>21,A=Ig(mA=(2097151&A)<<11|(fA=Q- -1048576|0)>>>21,B,-683901,-1),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,qA=B-(A=-2097152&cA)|0,LA=g-((A>>>0>B>>>0)+MA|0)|0,g=Ig(mA,FA,136657,0),A=f+hA|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,jA=B-(g=-2097152&DA)|0,JA=A-((g>>>0>B>>>0)+JA|0)|0,g=Ig(WA,IA,666643,0),A=f+(tA-(((B=-2097152&yA)>>>0>eA>>>0)+PA|0)|0)|0,A=g>>>0>(EA=g+(eA-B|0)|0)>>>0?A+1|0:A,B=Ig(UA,bA,-997805,-1),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(NA,uA,470296,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,g=Ig(YA,KA,654183,0),A=f+B|0,MA=EA=g+EA|0,hA=g>>>0>EA>>>0?A+1|0:A,B=vA>>>5&2097151,A=Ig(b,0,x,0),g=f,cA=A,A=Ig(H,0,u,0),g=f+g|0,A=A>>>0>(EA=cA+A|0)>>>0?g+1|0:g,cA=g=B+EA|0,B=A=g>>>0>>0?A+1|0:A,eA=(g=Ig(b,0,u,0))+(A=(A=o[_+2|0])<<16&2031616|o[0|_]|o[_+1|0]<<8)|0,g=f,rA=g=A>>>0>eA>>>0?g+1|0:g,xA=g=g-((eA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+B|0,yA=A=(g=(2097151&g)<<11|(tA=eA- -1048576|0)>>>21)>>>0>(GA=g+cA|0)>>>0?A+1|0:A,vA=g=A-((GA>>>0<4293918720)-1|0)|0,B=(2097151&g)<<11|(aA=GA- -1048576|0)>>>21,g=(g>>>21|0)+a|0,g=B>>>0>(EA=B+_A|0)>>>0?g+1|0:g,B=Ig(UA,bA,654183,0),A=f+(g-(((a=-2097152&wA)>>>0>EA>>>0)+RA|0)|0)|0,A=B>>>0>(_A=B+(EA-a|0)|0)>>>0?A+1|0:A,g=Ig(NA,uA,666643,0),A=f+A|0,A=g>>>0>(B=g+_A|0)>>>0?A+1|0:A,DA=(g=B)+(B=Ig(YA,KA,470296,0))|0,g=f+A|0,cA=g=B>>>0>DA>>>0?g+1|0:g,PA=g=g-((DA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+hA|0,wA=g=(B=(g=(2097151&g)<<11|(EA=DA- -1048576|0)>>>21)>>>0>(_A=g+MA|0)>>>0?B+1|0:B)-((_A>>>0<4293918720)-1|0)|0,hA=(2097151&g)<<11|(a=_A- -1048576|0)>>>21,g=(g>>21)+JA|0,uA=NA=hA+jA|0,hA=hA>>>0>NA>>>0?g+1|0:g,A=Ig(mA,FA,-997805,-1),g=f+B|0,g=A>>>0>(_A=A+_A|0)>>>0?g+1|0:g,JA=_A-(A=-2097152&a)|0,MA=g-((A>>>0>_A>>>0)+wA|0)|0,g=Ig(mA,FA,654183,0),A=f+cA|0,A=g>>>0>(B=g+DA|0)>>>0?A+1|0:A,NA=B-(g=-2097152&EA)|0,wA=A-((g>>>0>B>>>0)+PA|0)|0,A=Ig(UA,bA,470296,0),B=f+(yA-(((g=-2097152&aA)>>>0>GA>>>0)+vA|0)|0)|0,B=A>>>0>(a=A+(GA-g|0)|0)>>>0?B+1|0:B,g=Ig(YA,KA,666643,0),A=f+B|0,_A=a=g+a|0,B=g>>>0>a>>>0?A+1|0:A,g=Ig(UA,bA,666643,0),A=f+(rA-((4095&xA)+((a=-2097152&tA)>>>0>eA>>>0)|0)|0)|0,DA=A=g>>>0>(aA=g+(eA-a|0)|0)>>>0?A+1|0:A,rA=A=A-((aA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(cA=aA- -1048576|0)>>>21,A=(A>>21)+B|0,B=A=a>>>0>(EA=a+_A|0)>>>0?A+1|0:A,tA=A=A-((EA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(_A=EA- -1048576|0)>>>21,A=(A>>21)+wA|0,a=a>>>0>(yA=a+NA|0)>>>0?A+1|0:A,A=Ig(mA,FA,470296,0),B=f+B|0,B=A>>>0>(g=A+EA|0)>>>0?B+1|0:B,EA=g-(A=-2097152&_A)|0,_A=B-((A>>>0>g>>>0)+tA|0)|0,g=Ig(mA,FA,666643,0),A=f+(DA-(((B=-2097152&cA)>>>0>aA>>>0)+rA|0)|0)|0,g=(B=(A=g>>>0>(wA=g+(aA-B|0)|0)>>>0?A+1|0:A)>>21)+_A|0,A=(A=(g=(A=(2097151&A)<<11|wA>>>21)>>>0>(rA=A+EA|0)>>>0?g+1|0:g)>>21)+a|0,g=(g=(A=(g=(2097151&g)<<11|rA>>>21)>>>0>(tA=g+yA|0)>>>0?A+1|0:A)>>21)+MA|0,B=(A=(g=(A=(2097151&A)<<11|tA>>>21)>>>0>(a=A+JA|0)>>>0?g+1|0:g)>>21)+hA|0,A=(g=(B=(g=(2097151&g)<<11|a>>>21)>>>0>(yA=g+uA|0)>>>0?B+1|0:B)>>21)+LA|0,g=(B=(A=(B=(2097151&B)<<11|yA>>>21)>>>0>(aA=B+qA|0)>>>0?A+1|0:A)>>21)+sA|0,A=(A=(g=(A=(2097151&A)<<11|aA>>>21)>>>0>(hA=A+HA|0)>>>0?g+1|0:g)>>21)+XA|0,g=(g=(A=(g=(2097151&g)<<11|hA>>>21)>>>0>(DA=g+dA|0)>>>0?A+1|0:A)>>21)+kA|0,B=(A=(g=(A=(2097151&A)<<11|DA>>>21)>>>0>(cA=A+zA|0)>>>0?g+1|0:g)>>21)+VA|0,A=(g=(B=(g=(2097151&g)<<11|cA>>>21)>>>0>(EA=g+II|0)>>>0?B+1|0:B)>>21)+AI|0,fA=(sA=Q-(g=-2097152&fA)|0)+((2097151&(A=(B=(2097151&B)<<11|EA>>>21)>>>0>(_A=B+$A|0)>>>0?A+1|0:A))<<11|_A>>>21)|0,A=(pA-((g>>>0>Q>>>0)+lA|0)|0)+(A>>21)|0,pA=g=(A=sA>>>0>fA>>>0?A+1|0:A)>>21,wA=(A=Ig(kA=(2097151&A)<<11|fA>>>21,g,666643,0))+(g=2097151&wA)|0,A=f,Q=A=g>>>0>wA>>>0?A+1|0:A,C[0|E]=wA,C[E+1|0]=(255&A)<<24|wA>>>8,A=2097151&rA,g=Ig(kA,pA,470296,0)+A|0,B=f,A=(Q>>21)+(A>>>0>g>>>0?B+1|0:B)|0,A=(rA=(sA=(2097151&Q)<<11|wA>>>21)+g|0)>>>0>>0?A+1|0:A,C[E+4|0]=(2047&A)<<21|rA>>>11,g=A,B=rA,C[E+3|0]=(7&A)<<29|B>>>3,C[E+2|0]=31&((65535&Q)<<16|wA>>>16)|B<<5,Q=2097151&tA,tA=Ig(kA,pA,654183,0)+Q|0,A=f,rA=(2097151&g)<<11|B>>>21,g=(g>>21)+(Q=Q>>>0>tA>>>0?A+1|0:A)|0,A=g=(tA=rA+tA|0)>>>0>>0?g+1|0:g,C[E+6|0]=(63&A)<<26|tA>>>6,Q=tA,tA=0,C[E+5|0]=tA<<13|(1572864&B)>>>19|Q<<2,B=2097151&a,a=Ig(kA,pA,-997805,-1)+B|0,g=f,g=B>>>0>a>>>0?g+1|0:g,tA=(2097151&(B=A))<<11|Q>>>21,B=(A>>=21)+g|0,B=(a=tA+a|0)>>>0>>0?B+1|0:B,C[E+9|0]=(511&B)<<23|a>>>9,C[E+8|0]=(1&B)<<31|a>>>1,g=0,C[E+7|0]=g<<18|(2080768&Q)>>>14|a<<7,g=2097151&yA,Q=Ig(kA,pA,136657,0)+g|0,A=f,A=g>>>0>Q>>>0?A+1|0:A,yA=(2097151&(g=B))<<11|a>>>21,g=A+(B=g>>21)|0,g=(Q=yA+Q|0)>>>0>>0?g+1|0:g,C[E+12|0]=(4095&g)<<20|Q>>>12,B=Q,C[E+11|0]=(15&g)<<28|B>>>4,Q=0,C[E+10|0]=Q<<15|(1966080&a)>>>17|B<<4,Q=2097151&aA,a=Ig(kA,pA,-683901,-1)+Q|0,A=f,A=Q>>>0>a>>>0?A+1|0:A,Q=g,g=A+(g>>=21)|0,g=(Q=(aA=a)+(a=(2097151&Q)<<11|B>>>21)|0)>>>0>>0?g+1|0:g,C[E+14|0]=(127&g)<<25|Q>>>7,a=0,C[E+13|0]=a<<12|(1048576&B)>>>20|Q<<1,A=g>>21,B=(g=(2097151&g)<<11|Q>>>21)>>>0>(a=g+(2097151&hA)|0)>>>0?A+1|0:A,C[E+17|0]=(1023&B)<<22|a>>>10,C[E+16|0]=(3&B)<<30|a>>>2,g=0,C[E+15|0]=g<<17|(2064384&Q)>>>15|a<<6,A=B>>21,A=(g=(2097151&B)<<11|a>>>21)>>>0>(B=g+(2097151&DA)|0)>>>0?A+1|0:A,C[E+20|0]=(8191&A)<<19|B>>>13,C[E+19|0]=(31&A)<<27|B>>>5,Q=(g=2097151&cA)+(cA=(2097151&A)<<11|B>>>21)|0,g=A>>21,g=Q>>>0>>0?g+1|0:g,cA=Q,C[E+21|0]=Q,DA=0,C[E+18|0]=DA<<14|(1835008&a)>>>18|B<<3,C[E+22|0]=(255&g)<<24|Q>>>8,B=g>>21,B=(Q=(a=(2097151&g)<<11|Q>>>21)+(2097151&EA)|0)>>>0>>0?B+1|0:B,C[E+25|0]=(2047&B)<<21|Q>>>11,C[E+24|0]=(7&B)<<29|Q>>>3,C[E+23|0]=31&((65535&g)<<16|cA>>>16)|Q<<5,A=B>>21,A=(g=(2097151&B)<<11|Q>>>21)>>>0>(B=g+(2097151&_A)|0)>>>0?A+1|0:A,C[E+27|0]=(63&A)<<26|B>>>6,a=0,C[E+26|0]=a<<13|(1572864&Q)>>>19|B<<2,g=A,A>>=21,g=(Q=(_A=(2097151&g)<<11|B>>>21)+(a=2097151&fA)|0)>>>0>>0?A+1|0:A,C[E+31|0]=(131071&g)<<15|Q>>>17,A=Q,C[E+30|0]=(511&g)<<23|A>>>9,Q=0,C[E+28|0]=Q<<18|(2080768&B)>>>14|A<<7,C[E+29|0]=_A+fA>>>1,XC(c,64),XC(_,64),I&&(i[I>>2]=64,i[I+4>>2]=0),s=t+560|0,0}function n(A,I,g){var B,Q,i,E,a,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0;Z=Ig(B=(W=o[g+2|0])<<16&2031616|o[0|g]|o[g+1|0]<<8,0,Q=(QA=o[I+23|0]|o[I+24|0]<<8|o[I+25|0]<<16|o[I+26|0]<<24)>>>5&2097151,0),V=f,O=Ig(i=(W=o[I+23|0])<<16&2031616|o[I+21|0]|o[I+22|0]<<8,0,E=(T=o[g+2|0]|o[g+3|0]<<8|o[g+4|0]<<16|o[g+5|0]<<24)>>>5&2097151,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(a=(o[g+7|0]|o[g+8|0]<<8|o[g+9|0]<<16|o[g+10|0]<<24)>>>7&2097151,0,_=(aA=o[I+15|0]|o[I+16|0]<<8|o[I+17|0]<<16|o[I+18|0]<<24)>>>6&2097151,0),O=f+W|0,IA=Z=V+Z|0,V=V>>>0>Z>>>0?O+1|0:O,O=(W=o[I+14|0])>>>24|0,$=W<<8|(gA=o[I+10|0]|o[I+11|0]<<8|o[I+12|0]<<16|o[I+13|0]<<24)>>>24,O=Ig(c=2097151&((1&(CA=(W=O)|(O=(Z=o[I+15|0])>>>16|0)))<<31|(W=(Z<<=16)|$)>>>1),0,t=(AA=o[g+10|0]|o[g+11|0]<<8|o[g+12|0]<<16|o[g+13|0]<<24)>>>4&2097151,0),V=f+V|0,CA=W=O+IA|0,Z=W>>>0>>0?V+1|0:V,V=(O=o[g+6|0])>>>24|0,IA=O<<8|T>>>24,T=r=2097151&((3&(V|=O=(W=o[g+7|0])>>>16|0))<<30|(W=IA|W<<16)>>>2),IA=0,$=(W=o[I+19|0])<<8|aA>>>24,V=O=W>>>24|0,W=(O=o[I+20|0])>>>16|0,G=V=(W|=V)>>>3|0,O=Ig(T,IA,e=(7&W)<<29|(O=O<<16|$)>>>3,V),W=f+Z|0,W=O>>>0>($=O+CA|0)>>>0?W+1|0:W,V=Ig(y=(T=o[g+15|0]|o[g+16|0]<<8|o[g+17|0]<<16|o[g+18|0]<<24)>>>6&2097151,0,s=(o[I+7|0]|o[I+8|0]<<8|o[I+9|0]<<16|o[I+10|0]<<24)>>>7&2097151,0),O=f+W|0,IA=Z=V+$|0,Z=V>>>0>Z>>>0?O+1|0:O,$=(W=o[g+14|0])<<8|AA>>>24,W=O=W>>>24|0,V=(O=o[g+15|0])>>>16|0,O=Ig(h=2097151&((1&(V|=W))<<31|(W=(O<<=16)|$)>>>1),0,D=gA>>>4&2097151,0),W=f+Z|0,AA=V=O+IA|0,IA=O>>>0>V>>>0?W+1|0:W,W=(O=o[g+19|0])>>>24|0,Z=O<<8|T>>>24,V=(O=o[g+20|0])>>>16|0,p=(7&(V|=W))<<29|(O=Z|O<<16)>>>3,eA=W=V>>>3|0,Z=W,W=(O=o[I+6|0])>>>24|0,T=O<<8|(CA=o[I+2|0]|o[I+3|0]<<8|o[I+4|0]<<16|o[I+5|0]<<24)>>>24,V=W,W=(O=o[I+7|0])>>>16|0,W=Ig(p,Z,w=2097151&((3&(W|=V))<<30|(O=O<<16|T)>>>2),0),O=f+IA|0,V=W>>>0>(Z=W+AA|0)>>>0?O+1|0:O,W=Ig(n=(W=o[g+23|0])<<16&2031616|o[g+21|0]|o[g+22|0]<<8,0,k=CA>>>5&2097151,0),O=f+V|0,V=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,O=Ig(F=(W=o[I+2|0])<<16&2031616|o[0|I]|o[I+1|0]<<8,0,hA=(CA=o[g+23|0]|o[g+24|0]<<8|o[g+25|0]<<16|o[g+26|0]<<24)>>>5&2097151,0),W=f+V|0,T=Z=O+Z|0,IA=O>>>0>Z>>>0?W+1|0:W,O=Ig(i,0,B,0),W=f,Z=(V=O)+(O=Ig(e,G,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,O=Ig(a,0,c,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(t,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,W=Ig(_,0,r,0),O=f+O|0,O=W>>>0>(V=W+Z|0)>>>0?O+1|0:O,Z=(W=V)+(V=Ig(y,0,w,0))|0,W=f+O|0,W=V>>>0>Z>>>0?W+1|0:W,O=Ig(h,0,s,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,Z=(O=Ig(p,eA,k,0))+Z|0,W=f+V|0,V=Ig(n,0,F,0),O=f+(O>>>0>Z>>>0?W+1|0:W)|0,Z=O=V>>>0>($=V+Z|0)>>>0?O+1|0:O,yA=O=O-(($>>>0<4293918720)-1|0)|0,W=(W=O>>>21|0)+IA|0,oA=V=(W=(O=(2097151&O)<<11|(cA=$- -1048576|0)>>>21)>>>0>(T=O+T|0)>>>0?W+1|0:W)-((T>>>0<4293918720)-1|0)|0,iA=T-(O=-2097152&(EA=T- -1048576|0))|0,BA=W-((O>>>0>T>>>0)+V|0)|0,IA=(W=o[g+27|0])<<8|CA>>>24,V=O=W>>>24|0,T=Ig(S=2097151&((3&(V|=W=(O=o[g+28|0])>>>16|0))<<30|(W=(O<<=16)|IA)>>>2),0,DA=(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)>>>7|0,0),IA=f,W=(O=o[I+27|0])>>>24|0,I=Ig(N=2097151&((3&(W|=V=(I=o[I+28|0])>>>16|0))<<30|(O=O<<8|QA>>>24|I<<16)>>>2),0,fA=(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)>>>7|0,0),O=f+IA|0,O=I>>>0>(g=I+T|0)>>>0?O+1|0:O,V=g,I=Ig(Q,0,fA,0),g=f,IA=(W=I)+(I=Ig(hA,0,DA,0))|0,W=f+g|0,W=I>>>0>IA>>>0?W+1|0:W,I=Ig(S,0,N,0),W=f+W|0,IA=W=I>>>0>(CA=I+IA|0)>>>0?W+1|0:W,AA=I=W-((CA>>>0<4293918720)-1|0)|0,W=I>>>21|0,T=(I=(2097151&I)<<11|(g=CA- -1048576|0)>>>21)+V|0,V=W+O|0,aA=W=(V=I>>>0>T>>>0?V+1|0:V)-((T>>>0<4293918720)-1|0)|0,I=T-(O=-2097152&(gA=T- -1048576|0))|0,K=O=V-((131071&W)+(O>>>0>T>>>0)|0)|0,U=I,I=Ig(I,O,666643,0),O=f+BA|0,nA=W=I+iA|0,T=I>>>0>W>>>0?O+1|0:O,iA=CA-(I=-2097152&g)|0,tA=IA-((131071&AA)+(I>>>0>CA>>>0)|0)|0,I=Ig(n,0,DA,0),g=f,W=(O=I)+(I=Ig(hA,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,fA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,S,0),O=f+W|0,AA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,g=Ig(Q,0,hA,0),O=f,V=(W=g)+(g=Ig(p,eA,DA,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,O=(g=Ig(n,0,N,0))+V|0,V=f+W|0,V=g>>>0>O>>>0?V+1|0:V,W=(g=Ig(e,G,fA,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,BA=(g=Ig(i,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>BA>>>0?W+1|0:W,_A=g=W-((BA>>>0<4293918720)-1|0)|0,W=I+(O=g>>>21|0)|0,g=W=(g=(2097151&g)<<11|(IA=BA- -1048576|0)>>>21)>>>0>(AA=g+AA|0)>>>0?W+1|0:W,QA=W=W-((AA>>>0<4293918720)-1|0)|0,O=iA,iA=(2097151&W)<<11|(I=AA- -1048576|0)>>>21,W=(W>>>21|0)+tA|0,b=W=(V=O+iA|0)>>>0>>0?W+1|0:W,H=I=AA-(O=-2097152&I)|0,Y=AA=g-((O>>>0>AA>>>0)+QA|0)|0,J=V,g=Ig(V,W,470296,0),O=f+T|0,O=g>>>0>(W=g+nA|0)>>>0?O+1|0:O,I=Ig(I,AA,654183,0),V=f+O|0,tA=g=I+W|0,T=I>>>0>g>>>0?V+1|0:V,QA=BA-(I=-2097152&IA)|0,BA=CA-((I>>>0>BA>>>0)+_A|0)|0,I=Ig(p,eA,N,0),g=f,W=(O=I)+(I=Ig(y,0,DA,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,hA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,n,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(_,0,fA,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,S,0),W=f+O|0,CA=g=I+g|0,IA=I>>>0>g>>>0?W+1|0:W,I=Ig(h,0,DA,0),g=f,W=(O=I)+(I=Ig(y,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(Q,0,p,eA))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(e,G,hA,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(i,0,n,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(c,0,fA,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(_,0,S,0),O=f+W|0,I=O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,sA=O=O-((g>>>0<4293918720)-1|0)|0,V=(W=O>>>21|0)+IA|0,iA=V=(O=(2097151&O)<<11|(_A=g- -1048576|0)>>>21)>>>0>(pA=O+CA|0)>>>0?V+1|0:V,NA=O=V-((pA>>>0<4293918720)-1|0)|0,IA=(2097151&O)<<11|(AA=pA- -1048576|0)>>>21,O=(O>>>21|0)+BA|0,d=O=(V=IA+QA|0)>>>0>>0?O+1|0:O,m=V,O=Ig(V,O,-997805,-1),W=f+T|0,BA=V=O+tA|0,T=O>>>0>V>>>0?W+1|0:W,IA=$,$=Z,O=Ig(B,0,e,G),W=f,Z=(V=O)+(O=Ig(_,0,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(a,0,D,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(t,0,s,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(c,0,r,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(y,0,k,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(h,0,w,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(p,eA,F,0),O=f+V|0,CA=Z=W+Z|0,Z=W>>>0>Z>>>0?O+1|0:O,O=Ig(B,0,_,0),W=f,V=O,O=Ig(E,0,c,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,QA=(O=V)+(V=Ig(a,0,s,0))|0,O=f+W|0,O=V>>>0>QA>>>0?O+1|0:O,V=Ig(t,0,w,0),W=f+O|0,W=V>>>0>(QA=V+QA|0)>>>0?W+1|0:W,O=Ig(r,0,D,0),V=f+W|0,V=O>>>0>(QA=O+QA|0)>>>0?V+1|0:V,QA=(W=Ig(y,0,F,0))+QA|0,O=f+V|0,V=Ig(h,0,k,0),W=f+(W>>>0>QA>>>0?O+1|0:O)|0,KA=W=V>>>0>(MA=V+QA|0)>>>0?W+1|0:W,xA=W=W-((MA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(GA=MA- -1048576|0)>>>21,W=(W>>>21|0)+Z|0,rA=W=V>>>0>(UA=V+CA|0)>>>0?W+1|0:W,vA=W=W-((UA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(nA=UA- -1048576|0)>>>21,W=(W>>>21|0)+$|0,W=V>>>0>(IA=V+IA|0)>>>0?W+1|0:W,O=Ig(J,b,666643,0),W=f+(W-(((V=-2097152&cA)>>>0>IA>>>0)+yA|0)|0)|0,W=O>>>0>(Z=O+(IA-V|0)|0)>>>0?W+1|0:W,V=Ig(H,Y,470296,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(m,d,654183,0),W=f+O|0,tA=W=V>>>0>(kA=V+Z|0)>>>0?W+1|0:W,mA=W=W-((kA>>>0<4293918720)-1|0)|0,O=(O=W>>21)+T|0,BA=O=(W=(2097151&W)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(yA=W+BA|0)>>>0?O+1|0:O,bA=W=O-((yA>>>0<4293918720)-1|0)|0,JA=(2097151&W)<<11|(cA=yA- -1048576|0)>>>21,CA=W>>21,O=Ig(B,0,N,0),W=f,V=O,O=Ig(Q,0,E,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,Z=(O=Ig(a,0,e,G))+V|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(_,0,t,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(i,0,r,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(y,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(h,0,c,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(s,0,p,eA),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(k,0,hA,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(w,0,n,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=(O=Z)+(Z=Ig(S,0,F,0))|0,O=f+W|0,T=V,IA=V>>>0>>0?O+1|0:O,FA=Ig(DA,0,fA,0),$=V=(SA=f)-((FA>>>0<4293918720)-1|0)|0,W=FA-(O=-2097152&(Z=FA- -1048576|0))|0,O=(aA>>>21|0)+(O=SA-((524287&V)+(O>>>0>FA>>>0)|0)|0)|0,l=O=(V=(gA=(2097151&aA)<<11|gA>>>21)+W|0)>>>0>>0?O+1|0:O,u=V,W=(2097151&oA)<<11|EA>>>21,gA=Ig(V,O,666643,0)+W|0,O=f+(oA>>>21|0)|0,O=W>>>0>gA>>>0?O+1|0:O,V=Ig(U,K,470296,0),W=f+O|0,W=(V>>>0>(gA=V+gA|0)>>>0?W+1|0:W)+IA|0,W=(O=T+gA|0)>>>0>>0?W+1|0:W,gA=(V=Ig(J,b,654183,0))+O|0,O=f+W|0,dA=T- -1048576|0,FA=IA=IA-((T>>>0<4293918720)-1|0)|0,W=Ig(H,Y,-997805,-1),V=f+(V>>>0>gA>>>0?O+1|0:O)|0,V=W>>>0>(T=W+gA|0)>>>0?V+1|0:V,EA=(O=Ig(m,d,136657,0))+(T-(W=-2097152&dA)|0)|0,W=f+(V-((W>>>0>T>>>0)+IA|0)|0)|0,V=(aA=O>>>0>EA>>>0?W+1|0:W)+CA|0,HA=O=EA+JA|0,gA=V=O>>>0>>0?V+1|0:V,SA=pA-(O=-2097152&AA)|0,pA=iA-((O>>>0>pA>>>0)+NA|0)|0,x=V=$>>>21|0,W=(O=g)+(g=Ig(M=(2097151&$)<<11|Z>>>21,V,-683901,-1))|0,O=f+I|0,iA=W-(I=-2097152&_A)|0,oA=(g>>>0>W>>>0?O+1|0:O)-((I>>>0>W>>>0)+sA|0)|0,I=Ig(Q,0,y,0),g=f,O=I,I=Ig(t,0,DA,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(h,0,N,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(i,0,p,eA),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(_,0,hA,0),O=f+O|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,n,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(D,0,fA,0),W=f+W|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(c,0,S,0),V=f+W|0,Z=g=I+g|0,I=I>>>0>g>>>0?V+1|0:V,g=Ig(t,0,N,0),O=f,W=g,g=Ig(a,0,DA,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,y,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,V=(g=Ig(Q,0,h,0))+W|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(e,G,p,eA),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,g=Ig(c,0,hA,0),V=f+W|0,V=g>>>0>(O=g+O|0)>>>0?V+1|0:V,W=(g=Ig(_,0,n,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,g=Ig(s,0,fA,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,AA=(g=Ig(D,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>AA>>>0?W+1|0:W,YA=g=W-((AA>>>0<4293918720)-1|0)|0,V=I+(O=g>>>21|0)|0,IA=V=(g=(2097151&g)<<11|(T=AA- -1048576|0)>>>21)>>>0>(_A=g+Z|0)>>>0?V+1|0:V,sA=I=V-((_A>>>0<4293918720)-1|0)|0,W=(O=I>>>21|0)+oA|0,Z=W=(I=(2097151&I)<<11|($=_A- -1048576|0)>>>21)>>>0>(iA=I+iA|0)>>>0?W+1|0:W,oA=g=W-((iA>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,v=V=(g=(W=(2097151&g)<<11|(I=iA- -1048576|0)>>>21)+SA|0)>>>0>>0?V+1|0:V,NA=EA- -1048576|0,JA=W=aA-((EA>>>0<4293918720)-1|0)|0,lA=g,g=Ig(g,V,-683901,-1),O=f+gA|0,SA=O=(W=(O=g>>>0>(V=g+HA|0)>>>0?O+1|0:O)-(((g=-2097152&NA)>>>0>V>>>0)+W|0)|0)-(((gA=V-g|0)>>>0<4293918720)-1|0)|0,P=gA-(g=-2097152&(pA=gA- -1048576|0))|0,RA=W-((g>>>0>gA>>>0)+O|0)|0,g=Ig(lA,v,136657,0),W=f+(BA-(((O=-2097152&cA)>>>0>yA>>>0)+bA|0)|0)|0,uA=V=g+(yA-O|0)|0,g=g>>>0>V>>>0?W+1|0:W,wA=iA-(I&=-2097152)|0,cA=Z-((I>>>0>iA>>>0)+oA|0)|0,I=Ig(u,l,-683901,-1),O=f,W=I,I=Ig(M,x,136657,0),O=f+O|0,W=IA+(I>>>0>(V=W+I|0)>>>0?O+1|0:O)|0,aA=(O=V+_A|0)-(I=-2097152&$)|0,gA=(W=O>>>0<_A>>>0?W+1|0:W)-((I>>>0>O>>>0)+sA|0)|0,I=Ig(M,x,-997805,-1),O=f+CA|0,O=I>>>0>(W=I+AA|0)>>>0?O+1|0:O,I=Ig(u,l,136657,0),O=f+O|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(U,K,-683901,-1))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,IA=V-(I=-2097152&T)|0,$=W-((I>>>0>V>>>0)+YA|0)|0,I=Ig(Q,0,t,0),O=f,V=(W=I)+(I=Ig(a,0,N,0))|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,DA,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(y,0,e,G),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(i,0,h,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,W=(I=Ig(_,0,p,eA))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,O=(I=Ig(D,0,hA,0))+W|0,W=f+V|0,W=I>>>0>O>>>0?W+1|0:W,V=(I=Ig(c,0,n,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,I=Ig(w,0,fA,0),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(s,0,S,0),O=f+W|0,Z=V=I+V|0,I=I>>>0>V>>>0?O+1|0:O,O=Ig(Q,0,a,0),W=f,T=(V=O)+(O=Ig(E,0,DA,0))|0,V=f+W|0,V=O>>>0>T>>>0?V+1|0:V,O=Ig(i,0,t,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(r,0,N,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(_,0,y,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(e,G,h,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,W=Ig(c,0,p,eA),V=f+O|0,V=W>>>0>(T=W+T|0)>>>0?V+1|0:V,O=Ig(s,0,hA,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(D,0,n,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(k,0,fA,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(w,0,S,0),O=f+W|0,yA=O=V>>>0>(bA=V+T|0)>>>0?O+1|0:O,q=O=O-((bA>>>0<4293918720)-1|0)|0,W=I+(W=O>>>21|0)|0,EA=W=(O=(2097151&O)<<11|(oA=bA- -1048576|0)>>>21)>>>0>(HA=O+Z|0)>>>0?W+1|0:W,z=I=W-((HA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+$|0,iA=O=(I=(2097151&I)<<11|(_A=HA- -1048576|0)>>>21)>>>0>(YA=I+IA|0)>>>0?O+1|0:O,j=I=O-((YA>>>0<4293918720)-1|0)|0,W=(W=I>>21)+gA|0,CA=W=(I=(2097151&I)<<11|(BA=YA- -1048576|0)>>>21)>>>0>(sA=I+aA|0)>>>0?W+1|0:W,LA=I=W-((sA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+cA|0,R=O=(I=(V=(2097151&I)<<11|(Z=sA- -1048576|0)>>>21)+wA|0)>>>0>>0?O+1|0:O,wA=I,I=Ig(I,O,-683901,-1),V=f+g|0,PA=O=I+uA|0,T=I>>>0>O>>>0?V+1|0:V,qA=kA-(I=-2097152&QA)|0,mA=tA-((I>>>0>kA>>>0)+mA|0)|0,I=Ig(H,Y,666643,0),O=f+(rA-(((g=-2097152&nA)>>>0>UA>>>0)+vA|0)|0)|0,O=I>>>0>(W=I+(UA-g|0)|0)>>>0?O+1|0:O,g=(I=Ig(m,d,470296,0))+W|0,W=f+O|0,nA=g,g=I>>>0>g>>>0?W+1|0:W,AA=MA-(I=-2097152&GA)|0,IA=KA-((I>>>0>MA>>>0)+xA|0)|0,I=Ig(B,0,c,0),O=f,W=I,I=Ig(E,0,D,0),V=f+O|0,V=I>>>0>(W=W+I|0)>>>0?V+1|0:V,I=Ig(a,0,w,0),O=f+V|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(t,0,k,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,s,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(h,0,F,0),W=f+O|0,$=V=I+V|0,I=I>>>0>V>>>0?W+1|0:W,O=Ig(B,0,D,0),W=f,gA=(V=O)+(O=Ig(E,0,s,0))|0,V=f+W|0,V=O>>>0>gA>>>0?V+1|0:V,W=Ig(a,0,k,0),O=f+V|0,O=W>>>0>(gA=W+gA|0)>>>0?O+1|0:O,V=Ig(t,0,F,0),W=f+O|0,W=V>>>0>(gA=V+gA|0)>>>0?W+1|0:W,V=Ig(r,0,w,0),O=f+W|0,tA=O=V>>>0>(kA=V+gA|0)>>>0?O+1|0:O,X=O=O-((kA>>>0<4293918720)-1|0)|0,V=I+(W=O>>>21|0)|0,cA=V=(O=(2097151&O)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(KA=O+$|0)>>>0?V+1|0:V,xA=I=V-((KA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(aA=KA- -1048576|0)>>>21)>>>0>(V=I+AA|0)>>>0?O+1|0:O,I=Ig(m,d,666643,0),W=f+O|0,gA=W=I>>>0>(GA=I+V|0)>>>0?W+1|0:W,vA=I=W-((GA>>>0<4293918720)-1|0)|0,O=g+(O=I>>21)|0,IA=O=(I=(2097151&I)<<11|(AA=GA- -1048576|0)>>>21)>>>0>(rA=I+nA|0)>>>0?O+1|0:O,uA=I=O-((rA>>>0<4293918720)-1|0)|0,W=(O=I>>21)+mA|0,W=(I=(2097151&I)<<11|($=rA- -1048576|0)>>>21)>>>0>(g=I+qA|0)>>>0?W+1|0:W,I=Ig(lA,v,-997805,-1),V=f+W|0,V=I>>>0>(O=I+g|0)>>>0?V+1|0:V,UA=I=sA-(g=-2097152&Z)|0,L=W=CA-((g>>>0>sA>>>0)+LA|0)|0,Z=(g=Ig(wA,R,136657,0))+O|0,O=f+V|0,I=Ig(I,W,-683901,-1),O=f+(g>>>0>Z>>>0?O+1|0:O)|0,Z=O=I>>>0>(CA=I+Z|0)>>>0?O+1|0:O,MA=I=O-((CA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+T|0,g=O=(T=nA=(I=(2097151&I)<<11|(V=CA- -1048576|0)>>>21)+PA|0)>>>0>>0?O+1|0:O,sA=O=O-((T>>>0<4293918720)-1|0)|0,nA=(2097151&O)<<11|(I=T- -1048576|0)>>>21,O=(O>>21)+RA|0,RA=mA=nA+P|0,nA=nA>>>0>mA>>>0?O+1|0:O,LA=T-(I&=-2097152)|0,PA=g-((I>>>0>T>>>0)+sA|0)|0,qA=CA-(I=-2097152&V)|0,mA=Z-((I>>>0>CA>>>0)+MA|0)|0,I=Ig(lA,v,654183,0),W=f+(IA-(((g=-2097152&$)>>>0>rA>>>0)+uA|0)|0)|0,W=I>>>0>(O=I+(rA-g|0)|0)>>>0?W+1|0:W,g=(I=Ig(wA,R,-997805,-1))+O|0,O=f+W|0,O=I>>>0>g>>>0?O+1|0:O,I=Ig(UA,L,136657,0),O=f+O|0,uA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,MA=YA-(g=-2097152&BA)|0,rA=iA-((g>>>0>YA>>>0)+j|0)|0,g=Ig(u,l,-997805,-1),O=f,V=(W=g)+(g=Ig(M,x,654183,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,136657,0),O=f+W|0,O=g>>>0>(V=g+V|0)>>>0?O+1|0:O,g=Ig(J,b,-683901,-1),O=f+O|0,W=EA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,BA=(O=V+HA|0)-(g=-2097152&_A)|0,_A=(W=O>>>0>>0?W+1|0:W)-((g>>>0>O>>>0)+z|0)|0,g=Ig(u,l,654183,0),O=f,V=(W=g)+(g=Ig(M,x,470296,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,-997805,-1),O=f+W|0,W=yA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,W=(g=V+bA|0)>>>0>>0?W+1|0:W,V=(O=g)+(g=Ig(J,b,136657,0))|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,W=(g=Ig(H,Y,-683901,-1))+V|0,V=f+O|0,V=g>>>0>W>>>0?V+1|0:V,$=W-(g=-2097152&oA)|0,Z=V-((g>>>0>W>>>0)+q|0)|0,g=Ig(B,0,DA,0),O=f,W=g,g=Ig(E,0,N,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,a,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,g=Ig(e,G,t,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(Q,0,r,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(y,0,c,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(_,0,h,0))+O|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,g=Ig(D,0,p,eA),O=f+O|0,O=g>>>0>(W=g+V|0)>>>0?O+1|0:O,g=Ig(w,0,hA,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(s,0,n,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(F,0,fA,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(S,0,k,0))+O|0,O=f+W|0,O=(FA>>>21|0)+(O=g>>>0>V>>>0?O+1|0:O)|0,CA=O=(g=(2097151&FA)<<11|dA>>>21)>>>0>(EA=g+V|0)>>>0?O+1|0:O,bA=g=O-((EA>>>0<4293918720)-1|0)|0,W=(W=g>>>21|0)+Z|0,IA=W=(g=(2097151&g)<<11|(T=EA- -1048576|0)>>>21)>>>0>(iA=g+$|0)>>>0?W+1|0:W,sA=g=W-((iA>>>0<4293918720)-1|0)|0,O=(W=g>>21)+_A|0,Z=O=(g=(2097151&g)<<11|($=iA- -1048576|0)>>>21)>>>0>(BA=g+BA|0)>>>0?O+1|0:O,oA=O=O-((BA>>>0<4293918720)-1|0)|0,W=(W=O>>21)+rA|0,rA=W=(O=(V=(2097151&O)<<11|(g=BA- -1048576|0)>>>21)+MA|0)>>>0>>0?W+1|0:W,dA=O,W=Ig(O,W,-683901,-1),O=f+I|0,_A=V=W+uA|0,I=W>>>0>V>>>0?O+1|0:O,O=Ig(lA,v,470296,0),V=f+(gA-(((W=-2097152&AA)>>>0>GA>>>0)+vA|0)|0)|0,V=O>>>0>(AA=O+(GA-W|0)|0)>>>0?V+1|0:V,O=Ig(wA,R,654183,0),W=f+V|0,W=O>>>0>(AA=O+AA|0)>>>0?W+1|0:W,V=Ig(UA,L,-997805,-1),O=f+W|0,O=V>>>0>(AA=V+AA|0)>>>0?O+1|0:O,FA=g=BA-(W=-2097152&g)|0,eA=Z=Z-((W>>>0>BA>>>0)+oA|0)|0,AA=(V=Ig(dA,rA,136657,0))+AA|0,W=f+O|0,g=Ig(g,Z,-683901,-1),V=f+(V>>>0>AA>>>0?W+1|0:W)|0,Z=V=g>>>0>(gA=g+AA|0)>>>0?V+1|0:V,yA=W=V-((gA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(g=gA- -1048576|0)>>>21,W=(W>>21)+I|0,oA=V=(W=V>>>0>(AA=V+_A|0)>>>0?W+1|0:W)-((AA>>>0<4293918720)-1|0)|0,BA=(2097151&V)<<11|(I=AA- -1048576|0)>>>21,V=(V>>21)+mA|0,hA=_A=BA+qA|0,_A=BA>>>0>_A>>>0?V+1|0:V,DA=AA-(I&=-2097152)|0,fA=W-((I>>>0>AA>>>0)+oA|0)|0,HA=gA-(I=-2097152&g)|0,YA=Z-((I>>>0>gA>>>0)+yA|0)|0,I=Ig(lA,v,666643,0),W=f+(cA-(((g=-2097152&aA)>>>0>KA>>>0)+xA|0)|0)|0,W=I>>>0>(O=I+(KA-g|0)|0)>>>0?W+1|0:W,I=Ig(wA,R,470296,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(UA,L,654183,0),W=f+V|0,AA=g=I+g|0,I=I>>>0>g>>>0?W+1|0:W,$=iA-(g=-2097152&$)|0,Z=IA-((g>>>0>iA>>>0)+sA|0)|0,g=Ig(u,l,470296,0),O=f,W=g,g=Ig(M,x,666643,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(U,K,654183,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(J,b,-997805,-1))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(H,Y,136657,0),W=f+W|0,O=CA+(g>>>0>(V=g+O|0)>>>0?W+1|0:W)|0,O=(g=V+EA|0)>>>0>>0?O+1|0:O,W=g,g=Ig(m,d,-683901,-1),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,oA=(g=(2097151&JA)<<11|NA>>>21)+(V-(W=-2097152&T)|0)|0,W=(O-((W>>>0>V>>>0)+bA|0)|0)+(JA>>21)|0,iA=W=g>>>0>oA>>>0?W+1|0:W,sA=g=W-((oA>>>0<4293918720)-1|0)|0,W=(O=g>>21)+Z|0,JA=W=(g=(V=(2097151&g)<<11|(BA=oA- -1048576|0)>>>21)+$|0)>>>0>>0?W+1|0:W,yA=g,g=Ig(g,W,-683901,-1),V=f+I|0,V=g>>>0>(O=g+AA|0)>>>0?V+1|0:V,I=Ig(dA,rA,-997805,-1),W=f+V|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(FA,eA,136657,0),O=f+W|0,NA=g=I+g|0,$=I>>>0>g>>>0?O+1|0:O,T=kA-(I=-2097152&QA)|0,IA=tA-((I>>>0>kA>>>0)+X|0)|0,I=Ig(B,0,s,0),g=f,O=I,I=Ig(E,0,w,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(a,0,F,0),W=f+W|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(r,0,k,0),O=f+W|0,I=I>>>0>(W=g=I+g|0)>>>0?O+1|0:O,g=Ig(B,0,w,0),O=f,Z=(V=g)+(g=Ig(E,0,k,0))|0,V=f+O|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(r,0,F,0),O=f+V|0,g=O=g>>>0>(Z=g+Z|0)>>>0?O+1|0:O,lA=O=O-((Z>>>0<4293918720)-1|0)|0,V=O>>>21|0,EA=(O=(2097151&O)<<11|(cA=Z- -1048576|0)>>>21)+W|0,W=I+V|0,aA=W=O>>>0>EA>>>0?W+1|0:W,KA=I=W-((EA>>>0<4293918720)-1|0)|0,O=(V=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(gA=EA- -1048576|0)>>>21)>>>0>(W=I+T|0)>>>0?O+1|0:O,V=(I=Ig(wA,R,666643,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(UA,L,470296,0),W=f+W|0,W=I>>>0>(O=I+V|0)>>>0?W+1|0:W,V=(I=Ig(yA,JA,136657,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,W=(I=Ig(dA,rA,654183,0))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,I=Ig(FA,eA,-997805,-1),O=f+V|0,CA=O=I>>>0>(AA=I+W|0)>>>0?O+1|0:O,GA=I=O-((AA>>>0<4293918720)-1|0)|0,W=(V=I>>21)+$|0,NA=O=(W=(I=(O=(2097151&I)<<11|(T=AA- -1048576|0)>>>21)+NA|0)>>>0>>0?W+1|0:W)-((I>>>0<4293918720)-1|0)|0,$=(2097151&O)<<11|(IA=I- -1048576|0)>>>21,O=(O>>21)+YA|0,MA=QA=$+HA|0,tA=$>>>0>QA>>>0?O+1|0:O,$=I,V=W,W=(iA-(((O=-2097152&BA)>>>0>oA>>>0)+sA|0)|0)+(SA>>21)|0,QA=W=(I=(oA-O|0)+(BA=(2097151&SA)<<11|pA>>>21)|0)>>>0>>0?W+1|0:W,bA=W=W-((I>>>0<4293918720)-1|0)|0,oA=O=W>>21,W=Ig(wA=(2097151&W)<<11|(iA=I- -1048576|0)>>>21,O,-683901,-1),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,HA=$-(W=-2097152&IA)|0,YA=O-((W>>>0>$>>>0)+NA|0)|0,O=Ig(wA,oA,136657,0),W=f+CA|0,W=O>>>0>(V=O+AA|0)>>>0?W+1|0:W,sA=V-(O=-2097152&T)|0,NA=W-((O>>>0>V>>>0)+GA|0)|0,V=(O=Ig(UA,L,666643,0))+(EA-(W=-2097152&gA)|0)|0,W=f+(aA-((W>>>0>EA>>>0)+KA|0)|0)|0,W=O>>>0>V>>>0?W+1|0:W,$=(O=Ig(yA,JA,-997805,-1))+V|0,V=f+W|0,V=O>>>0>$>>>0?V+1|0:V,W=Ig(dA,rA,470296,0),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,V=Ig(FA,eA,654183,0),W=f+O|0,SA=$=V+$|0,CA=V>>>0>$>>>0?W+1|0:W,$=Z,Z=g,g=Ig(E,0,F,0),O=f,W=g,g=Ig(B,0,k,0),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,g=Ig(B,0,F,0),kA=W=f,EA=g,aA=g- -1048576|0,KA=g=W-((g>>>0<4293918720)-1|0)|0,W=g>>>21|0,BA=(g=(2097151&g)<<11|aA>>>21)+V|0,V=W+O|0,gA=V=g>>>0>BA>>>0?V+1|0:V,GA=g=V-((BA>>>0<4293918720)-1|0)|0,O=(W=g>>>21|0)+Z|0,O=(g=(2097151&g)<<11|(AA=BA- -1048576|0)>>>21)>>>0>(V=g+$|0)>>>0?O+1|0:O,Z=(g=Ig(yA,JA,654183,0))+(V-(W=-2097152&cA)|0)|0,V=f+(O-((8191&lA)+(W>>>0>V>>>0)|0)|0)|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(dA,rA,666643,0),W=f+V|0,W=g>>>0>(O=g+Z|0)>>>0?W+1|0:W,T=(g=Ig(FA,eA,470296,0))+O|0,O=f+W|0,IA=O=g>>>0>T>>>0?O+1|0:O,pA=g=O-((T>>>0<4293918720)-1|0)|0,W=(W=g>>21)+CA|0,V=W=(g=(2097151&g)<<11|($=T- -1048576|0)>>>21)>>>0>(Z=g+SA|0)>>>0?W+1|0:W,cA=O=W-((Z>>>0<4293918720)-1|0)|0,CA=(2097151&O)<<11|(g=Z- -1048576|0)>>>21,O=(O>>21)+NA|0,CA=CA>>>0>(rA=SA=CA+sA|0)>>>0?O+1|0:O,W=Ig(wA,oA,-997805,-1),O=f+V|0,dA=(Z=W+Z|0)-(g&=-2097152)|0,NA=(W>>>0>Z>>>0?O+1|0:O)-((g>>>0>Z>>>0)+cA|0)|0,g=Ig(wA,oA,654183,0),V=f+IA|0,V=g>>>0>(O=g+T|0)>>>0?V+1|0:V,SA=O-(g=-2097152&$)|0,pA=V-((g>>>0>O>>>0)+pA|0)|0,g=Ig(yA,JA,470296,0),W=f+(gA-((8191&GA)+((O=-2097152&AA)>>>0>BA>>>0)|0)|0)|0,W=g>>>0>(V=g+(BA-O|0)|0)>>>0?W+1|0:W,g=Ig(FA,eA,666643,0),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,Z=O,g=Ig(yA,JA,666643,0),V=f+(kA-((2047&KA)+((O=-2097152&aA)>>>0>EA>>>0)|0)|0)|0,T=V=g>>>0>(AA=g+(EA-O|0)|0)>>>0?V+1|0:V,cA=g=V-((AA>>>0<4293918720)-1|0)|0,W=W+(O=g>>21)|0,aA=g=(W=(g=(2097151&g)<<11|(IA=AA- -1048576|0)>>>21)>>>0>($=g+Z|0)>>>0?W+1|0:W)-(($>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,g=(g=(2097151&g)<<11|(Z=$- -1048576|0)>>>21)>>>0>(gA=g+SA|0)>>>0?V+1|0:V,O=Ig(wA,oA,470296,0),W=f+W|0,W=O>>>0>(V=O+$|0)>>>0?W+1|0:W,Z=V-(O=-2097152&Z)|0,$=W-((O>>>0>V>>>0)+aA|0)|0,O=Ig(wA,oA,666643,0),V=f+(T-(((W=-2097152&IA)>>>0>AA>>>0)+cA|0)|0)|0,O=(W=(V=O>>>0>(BA=O+(AA-W|0)|0)>>>0?V+1|0:V)>>21)+$|0,W=g+(V=(O=(V=(2097151&V)<<11|BA>>>21)>>>0>(Z=V+Z|0)>>>0?O+1|0:O)>>21)|0,O=(O=(W=(g=$=(O=(2097151&O)<<11|Z>>>21)+gA|0)>>>0>>0?W+1|0:W)>>21)+NA|0,W=(W=(O=(W=(2097151&W)<<11|g>>>21)>>>0>(cA=W+dA|0)>>>0?O+1|0:O)>>21)+CA|0,V=(O=(W=(O=(2097151&O)<<11|cA>>>21)>>>0>(aA=O+rA|0)>>>0?W+1|0:W)>>21)+YA|0,O=(W=(V=(W=(2097151&W)<<11|aA>>>21)>>>0>(gA=W+HA|0)>>>0?V+1|0:V)>>21)+tA|0,W=(V=(O=(V=(2097151&V)<<11|gA>>>21)>>>0>(AA=V+MA|0)>>>0?O+1|0:O)>>21)+fA|0,O=(O=(W=(O=(2097151&O)<<11|AA>>>21)>>>0>(CA=O+DA|0)>>>0?W+1|0:W)>>21)+_A|0,W=(W=(O=(W=(2097151&W)<<11|CA>>>21)>>>0>(T=W+hA|0)>>>0?O+1|0:O)>>21)+PA|0,V=(O=(W=(O=(2097151&O)<<11|T>>>21)>>>0>(IA=O+LA|0)>>>0?W+1|0:W)>>21)+nA|0,W=(QA-((I>>>0<(O=-2097152&iA)>>>0)+bA|0)|0)+((V=(W=(2097151&W)<<11|IA>>>21)>>>0>($=W+RA|0)>>>0?V+1|0:V)>>21)|0,QA=O=(W=(iA=(tA=I-O|0)+((2097151&V)<<11|$>>>21)|0)>>>0>>0?W+1|0:W)>>21,I=(I=Ig(tA=(2097151&W)<<11|iA>>>21,O,666643,0))+(O=2097151&BA)|0,V=f,C[0|A]=I,V=I>>>0>>0?V+1|0:V,C[A+1|0]=(255&V)<<24|I>>>8,O=2097151&Z,Z=Ig(tA,QA,470296,0)+O|0,W=f,W=(V>>21)+(W=O>>>0>Z>>>0?W+1|0:W)|0,W=(Z=(BA=(2097151&V)<<11|I>>>21)+Z|0)>>>0>>0?W+1|0:W,C[A+4|0]=(2047&W)<<21|Z>>>11;C[A+3|0]=(7&W)<<29|Z>>>3,C[A+2|0]=31&((65535&V)<<16|I>>>16)|Z<<5,I=2097151&g,g=Ig(tA,QA,654183,0)+I|0,V=f,V=I>>>0>g>>>0?V+1|0:V,I=W,O=(W>>=21)+V|0,I=O=(I=(2097151&I)<<11|Z>>>21)>>>0>(g=I+g|0)>>>0?O+1|0:O,C[A+6|0]=(63&O)<<26|g>>>6,W=0,C[A+5|0]=W<<13|(1572864&Z)>>>19|g<<2,W=2097151&cA,V=Ig(tA,QA,-997805,-1)+W|0,O=f,O=W>>>0>V>>>0?O+1|0:O,W=(W=I>>21)+O|0,W=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0>>0?W+1|0:W,C[A+9|0]=(511&W)<<23|I>>>9,C[A+8|0]=(1&W)<<31|I>>>1,O=0,C[A+7|0]=O<<18|(2080768&g)>>>14|I<<7,g=2097151&aA,O=Ig(tA,QA,136657,0)+g|0,V=f,V=g>>>0>O>>>0?V+1|0:V,g=(Z=(2097151&(g=W))<<11|I>>>21)+O|0,O=(W>>=21)+V|0,O=g>>>0>>0?O+1|0:O,C[A+12|0]=(4095&O)<<20|g>>>12,C[A+11|0]=(15&O)<<28|g>>>4,W=0,C[A+10|0]=W<<15|(1966080&I)>>>17|g<<4,I=2097151&gA,V=Ig(tA,QA,-683901,-1)+I|0,W=f,W=I>>>0>V>>>0?W+1|0:W,I=O,O=W+(O>>=21)|0,O=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0>>0?O+1|0:O,C[A+14|0]=(127&O)<<25|I>>>7,W=0,C[A+13|0]=W<<12|(1048576&g)>>>20|I<<1,W=O>>21,W=(g=(O=(2097151&O)<<11|I>>>21)+(2097151&AA)|0)>>>0>>0?W+1|0:W,C[A+17|0]=(1023&W)<<22|g>>>10,C[A+16|0]=(3&W)<<30|g>>>2,O=0,C[A+15|0]=O<<17|(2064384&I)>>>15|g<<6,I=W,W>>=21,V=(I=(O=(2097151&I)<<11|g>>>21)+(2097151&CA)|0)>>>0>>0?W+1|0:W,C[A+20|0]=(8191&V)<<19|I>>>13,C[A+19|0]=(31&V)<<27|I>>>5,O=V>>21,O=(W=(Z=(2097151&V)<<11|I>>>21)+(2097151&T)|0)>>>0>>0?O+1|0:O,Z=W,C[A+21|0]=W,W=0,C[A+18|0]=W<<14|(1835008&g)>>>18|I<<3,C[A+22|0]=(255&O)<<24|Z>>>8,W=O>>21,W=(I=(g=(2097151&O)<<11|Z>>>21)+(2097151&IA)|0)>>>0>>0?W+1|0:W,C[A+25|0]=(2047&W)<<21|I>>>11,C[A+24|0]=(7&W)<<29|I>>>3,C[A+23|0]=31&((65535&O)<<16|Z>>>16)|I<<5,O=(2097151&W)<<11|I>>>21,W>>=21,W=(g=O+(2097151&$)|0)>>>0>>0?W+1|0:W,C[A+27|0]=(63&W)<<26|g>>>6,O=0,C[A+26|0]=O<<13|(1572864&I)>>>19|g<<2,I=W,O=W>>=21,O=(I=(Z=(2097151&I)<<11|g>>>21)+(V=2097151&iA)|0)>>>0>>0?O+1|0:O,C[A+31|0]=(131071&O)<<15|I>>>17,C[A+30|0]=(511&O)<<23|I>>>9,W=0,C[A+28|0]=W<<18|(2080768&g)>>>14|I<<7,C[A+29|0]=Z+iA>>>1}function k(A,I,g,C){for(var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0;E=(B=_<<3)+g|0,Q=o[0|(B=I+B|0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,G=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,c=Q<<24|(65280&Q)<<8,t=(a=16711680&Q)<<24,a=a>>>8|0,B=(e=-16777216&Q)>>>24|0,i[E>>2]=t|e<<8|-16777216&((255&G)<<24|Q>>>8)|16711680&((16777215&G)<<8|Q>>>24)|G>>>8&65280|G>>>24,Q=B|a|c,B=0,i[E+4>>2]=Q|B,16!=(0|(_=_+1|0)););for(I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I,I=i[A+60>>2],i[C+56>>2]=i[A+56>>2],i[C+60>>2]=I,I=i[A+52>>2],i[C+48>>2]=i[A+48>>2],i[C+52>>2]=I,I=i[A+44>>2],i[C+40>>2]=i[A+40>>2],i[C+44>>2]=I,I=i[A+36>>2],i[C+32>>2]=i[A+32>>2],i[C+36>>2]=I,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I;E=i[C+56>>2],a=i[C+60>>2],B=i[(I=G=(M=P<<3)+g|0)>>2],I=i[I+4>>2],k=Q=i[C+36>>2],Q=UI(p=i[C+32>>2],Q,50),_=f,Q=UI(p,k,46)^Q,_^=f,Q=UI(p,k,23)^Q,I=(f^_)+I|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,B=(_=i[(Q=M+34416|0)>>2])+B|0,I=i[Q+4>>2]+I|0,I=B>>>0<_>>>0?I+1|0:I,Q=(_=((t=i[C+48>>2])^(y=i[C+40>>2]))&p^t)+B|0,B=(((w=i[C+52>>2])^(F=i[C+44>>2]))&k^w)+I|0,I=(Q>>>0<_>>>0?B+1|0:B)+a|0,I=(E=Q+E|0)>>>0>>0?I+1|0:I,_=(Q=i[C+24>>2])+E|0,B=i[C+28>>2]+I|0,s=B=Q>>>0>_>>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,n=B=i[C+4>>2],B=UI(Q=i[C>>2],B,36),a=f,B=UI(Q,n,30)^B,a^=f,e=E+(UI(Q,n,25)^B)|0,B=I+(f^a)|0,B=E>>>0>e>>>0?B+1|0:B,c=(I=e)+(e=Q&((a=i[C+16>>2])|(E=i[C+8>>2]))|E&a)|0,I=(I=B)+(n&((B=i[C+20>>2])|(h=i[C+12>>2]))|B&h)|0,e=I=c>>>0>>0?I+1|0:I,i[C+56>>2]=c,i[C+60>>2]=I,r=a,D=B,N=i[(I=l=(S=8|M)+g|0)>>2],U=i[I+4>>2],B=((k^F)&s^F)+w|0,B=(I=(a=(y^p)&_^y)+t|0)>>>0>>0?B+1|0:B,a=UI(_,s,50),t=f,a=UI(_,s,46)^a,t^=f,a=(w=UI(_,s,23)^a)+I|0,I=(f^t)+B|0,I=(a>>>0>>0?I+1|0:I)+U|0,I=(B=a+N|0)>>>0>>0?I+1|0:I,a=(a=B)+(t=i[(B=S+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(I=a>>>0>>0?B+1|0:B)+D|0,w=B=(t=a+r|0)>>>0>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+((h|n)&e|h&n)|0,I=(B=a+((Q|E)&c|Q&E)|0)>>>0>>0?I+1|0:I,a=UI(c,e,36),r=f,a=UI(c,e,30)^a,r^=f,D=B,B=UI(c,e,25)^a,I=(f^r)+I|0,r=I=B>>>0>(a=D+B|0)>>>0?I+1|0:I,i[C+48>>2]=a,i[C+52>>2]=I,D=E,S=h,I=(h=i[(B=Y=(E=16|M)+g|0)>>2])+y|0,B=i[B+4>>2]+F|0,B=I>>>0>>0?B+1|0:B,E=(y=I)+(h=i[(I=E+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=((s^k)&w^k)+(I=E>>>0>>0?I+1|0:I)|0,I=(B=(B=E)+(E=(_^p)&t^p)|0)>>>0>>0?I+1|0:I,E=UI(t,w,50),h=f,E=UI(t,w,46)^E,h^=f,E=(y=UI(t,w,23)^E)+B|0,B=(f^h)+I|0,B=(y=E>>>0>>0?B+1|0:B)+S|0,S=B=(h=E)>>>0>(E=E+D|0)>>>0?B+1|0:B,i[C+8>>2]=E,i[C+12>>2]=B,I=UI(a,r,36),B=f,I=UI(a,r,30)^I,B^=f,F=UI(a,r,25)^I,I=((e|n)&r|e&n)+(f^B)|0,B=y+((D=F+((Q|c)&a|Q&c)|0)>>>0>>0?I+1|0:I)|0,h=B=(y=h+D|0)>>>0>>0?B+1|0:B,i[C+40>>2]=y,i[C+44>>2]=B,D=Q,B=(B=p)+(p=i[(I=u=(Q=24|M)+g|0)>>2])|0,I=i[I+4>>2]+k|0,I=B>>>0

>>0?I+1|0:I,Q=(F=B)+(p=i[(B=Q+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(s^(s^w)&S)+(B=Q>>>0

>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=_^(_^t)&E)|0)>>>0>>0?B+1|0:B,Q=UI(E,S,50),p=f,Q=UI(E,S,46)^Q,p^=f,Q=(k=UI(E,S,23)^Q)+I|0,I=(f^p)+B|0,B=(I=Q>>>0>>0?I+1|0:I)+n|0,k=B=(n=Q+D|0)>>>0>>0?B+1|0:B,i[C>>2]=n,i[C+4>>2]=B,B=UI(y,h,36),p=f,B=UI(y,h,30)^B,D=f^p,F=UI(y,h,25)^B,B=((e|r)&h|e&r)+(f^D)|0,I=I+((p=F+((a|c)&y|a&c)|0)>>>0>>0?B+1|0:B)|0,p=I=(D=Q+p|0)>>>0>>0?I+1|0:I,i[C+32>>2]=D,i[C+36>>2]=I,Q=i[(B=m=(I=32|M)+g|0)>>2],B=s+i[B+4>>2]|0,B=(Q=Q+_|0)>>>0<_>>>0?B+1|0:B,Q=(_=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(w^(w^S)&k)+(I=Q>>>0<_>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=t^(E^t)&n)|0)>>>0>>0?I+1|0:I,Q=UI(n,k,50),_=f,Q=UI(n,k,46)^Q,_^=f,Q=(s=UI(n,k,23)^Q)+B|0,B=(f^_)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(D,p,36),_=f,B=UI(D,p,30)^B,s=f^_,N=UI(D,p,25)^B,B=((r|h)&p|r&h)+(f^s)|0,I=((_=N+((a|y)&D|a&y)|0)>>>0>>0?B+1|0:B)+I|0,_=I=(s=Q+_|0)>>>0<_>>>0?I+1|0:I,i[C+24>>2]=s,i[C+28>>2]=I,B=e+F|0,F=B=(e=Q+c|0)>>>0>>0?B+1|0:B,i[C+56>>2]=e,i[C+60>>2]=B,Q=i[(I=J=(B=40|M)+g|0)>>2],I=w+i[I+4>>2]|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,Q=(c=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=E^(E^n)&e)|0)>>>0>>0?B+1|0:B,Q=UI(e,F,50),c=f,Q=UI(e,F,46)^Q,c^=f,Q=(t=UI(e,F,23)^Q)+I|0,I=(f^c)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(s,_,36),c=f,B=UI(s,_,30)^B,t=f^c,w=UI(s,_,25)^B,B=((h|p)&_|h&p)+(f^t)|0,B=((c=w+((y|D)&s|y&D)|0)>>>0>>0?B+1|0:B)+I|0,c=B=(t=Q+c|0)>>>0>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+r|0,N=I=(r=Q+a|0)>>>0>>0?I+1|0:I,i[C+48>>2]=r,i[C+52>>2]=I,Q=i[(B=H=(I=48|M)+g|0)>>2],B=S+i[B+4>>2]|0,B=(Q=Q+E|0)>>>0>>0?B+1|0:B,Q=(E=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=n^(e^n)&r)|0)>>>0>>0?I+1|0:I,Q=UI(r,N,50),E=f,Q=UI(r,N,46)^Q,E^=f,Q=(a=UI(r,N,23)^Q)+B|0,B=(f^E)+I|0,a=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(t,c,36),E=f,B=UI(t,c,30)^B,w=f^E,S=UI(t,c,25)^B,B=((_|p)&c|_&p)+(f^w)|0,I=((E=S+((s|D)&t|s&D)|0)>>>0>>0?B+1|0:B)+I|0,w=I=(B=E)>>>0>(E=Q+E|0)>>>0?I+1|0:I,i[C+8>>2]=E,i[C+12>>2]=I,B=a+h|0,S=B=(U=Q+y|0)>>>0>>0?B+1|0:B,i[C+40>>2]=U,i[C+44>>2]=B,Q=i[(I=d=(B=56|M)+g|0)>>2],I=k+i[I+4>>2]|0,I=(Q=Q+n|0)>>>0>>0?I+1|0:I,Q=(a=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(F^(F^N)&S)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=e^(e^r)&U)|0)>>>0>>0?B+1|0:B,Q=UI(U,S,50),a=f,Q=UI(U,S,46)^Q,a^=f,Q=(h=UI(U,S,23)^Q)+I|0,I=(f^a)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(E,w,36),a=f,B=UI(E,w,30)^B,h=f^a,y=UI(E,w,25)^B,B=((_|c)&w|_&c)+(f^h)|0,B=((a=y+((t|s)&E|t&s)|0)>>>0>>0?B+1|0:B)+I|0,h=B=(h=a)>>>0>(a=Q+a|0)>>>0?B+1|0:B,i[C>>2]=a,i[C+4>>2]=B,I=I+p|0,k=I=(y=Q+D|0)>>>0>>0?I+1|0:I,i[C+32>>2]=y,i[C+36>>2]=I,Q=i[(B=x=(I=64|M)+g|0)>>2],B=F+i[B+4>>2]|0,B=(Q=Q+e|0)>>>0>>0?B+1|0:B,Q=(e=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(N^(S^N)&k)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=r^(r^U)&y)|0)>>>0>>0?I+1|0:I,Q=UI(y,k,50),e=f,Q=UI(y,k,46)^Q,e^=f,Q=(n=UI(y,k,23)^Q)+B|0,B=(f^e)+I|0,p=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(a,h,36),e=f,B=UI(a,h,30)^B,n=f^e,D=UI(a,h,25)^B,B=((c|w)&h|c&w)+(f^n)|0,I=((e=D+((E|t)&a|E&t)|0)>>>0>>0?B+1|0:B)+I|0,e=I=(n=Q+e|0)>>>0>>0?I+1|0:I,i[C+56>>2]=n,i[C+60>>2]=I,B=_+p|0,F=B=(_=Q+s|0)>>>0>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,Q=i[(I=b=(B=72|M)+g|0)>>2],I=N+i[I+4>>2]|0,I=(Q=Q+r|0)>>>0>>0?I+1|0:I,Q=(r=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=U^(y^U)&_)|0)>>>0>>0?B+1|0:B,Q=UI(_,F,50),r=f,Q=UI(_,F,46)^Q,r^=f,Q=(p=UI(_,F,23)^Q)+I|0,I=(f^r)+B|0,I=Q>>>0

>>0?I+1|0:I,B=UI(n,e,36),r=f,B=UI(n,e,30)^B,p=f^r,D=UI(n,e,25)^B,B=((h|w)&e|h&w)+(f^p)|0,B=((r=D+((E|a)&n|E&a)|0)>>>0>>0?B+1|0:B)+I|0,r=B=(p=Q+r|0)>>>0>>0?B+1|0:B,i[C+48>>2]=p,i[C+52>>2]=B,I=I+c|0,N=I=(c=Q+t|0)>>>0>>0?I+1|0:I,i[C+16>>2]=c,i[C+20>>2]=I,I=(I=U)+(t=i[(B=U=(Q=80|M)+g|0)>>2])|0,B=i[B+4>>2]+S|0,B=I>>>0>>0?B+1|0:B,Q=(s=I)+(t=i[(I=Q+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=y^(_^y)&c)|0)>>>0>>0?I+1|0:I,Q=UI(c,N,50),t=f,Q=UI(c,N,46)^Q,t^=f,Q=(D=UI(c,N,23)^Q)+B|0,B=(f^t)+I|0,s=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(p,r,36),t=f,B=UI(p,r,30)^B,D=f^t,S=UI(p,r,25)^B,B=((e|h)&r|e&h)+(f^D)|0,I=((t=S+((a|n)&p|a&n)|0)>>>0>>0?B+1|0:B)+I|0,t=I=(D=Q+t|0)>>>0>>0?I+1|0:I,i[C+40>>2]=D,i[C+44>>2]=I,B=s+w|0,w=B=(s=Q+E|0)>>>0>>0?B+1|0:B,i[C+8>>2]=s,i[C+12>>2]=B,B=34416+(I=88|M)|0,E=i[(I=K=I+g|0)>>2],Q=i[B>>2]+E|0,I=i[B+4>>2]+i[I+4>>2]|0,B=k+(Q>>>0>>0?I+1|0:I)|0,B=(F^(F^N)&w)+(B=(I=Q+y|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=_^(_^c)&s)+I|0)>>>0>>0?B+1|0:B,Q=UI(s,w,50),E=f,Q=UI(s,w,46)^Q,E^=f,Q=(y=UI(s,w,23)^Q)+I|0,I=(f^E)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(D,t,36),E=f,B=UI(D,t,30)^B,y=f^E,S=UI(D,t,25)^B,B=((e|r)&t|e&r)+(f^y)|0,B=((E=S+((p|n)&D|p&n)|0)>>>0>>0?B+1|0:B)+I|0,y=B=(y=E)>>>0>(E=Q+E|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,I=I+h|0,h=I=(B=a)>>>0>(a=Q+a|0)>>>0?I+1|0:I,i[C>>2]=a,i[C+4>>2]=I,B=34416+(I=96|M)|0,S=i[(I=v=I+g|0)>>2],Q=i[B>>2]+S|0,B=i[B+4>>2]+i[I+4>>2]|0,I=F+(Q>>>0>>0?B+1|0:B)|0,I=(B=Q+_|0)>>>0<_>>>0?I+1|0:I,Q=(_=c^(c^s)&a)+B|0,B=(N^(w^N)&h)+I|0,B=Q>>>0<_>>>0?B+1|0:B,I=UI(a,h,50),_=f,I=UI(a,h,46)^I,_^=f,F=Q,Q=UI(a,h,23)^I,B=(f^_)+B|0,k=B=(I=F+Q|0)>>>0>>0?B+1|0:B,Q=I,I=UI(E,y,36),_=f,I=UI(E,y,30)^I,S=f^_,F=UI(E,y,25)^I,I=((t|r)&y|t&r)+(f^S)|0,B=((_=F+((p|D)&E|p&D)|0)>>>0>>0?I+1|0:I)+B|0,_=B=(S=Q+_|0)>>>0<_>>>0?B+1|0:B,i[C+24>>2]=S,i[C+28>>2]=B,B=e+k|0,e=B=(n=Q+n|0)>>>0>>0?B+1|0:B,i[C+56>>2]=n,i[C+60>>2]=B,B=34416+(I=104|M)|0,k=i[(I=L=I+g|0)>>2],Q=i[B>>2]+k|0,I=i[B+4>>2]+i[I+4>>2]|0,B=N+(Q>>>0>>0?I+1|0:I)|0,B=(I=Q+c|0)>>>0>>0?B+1|0:B,Q=(c=s^(a^s)&n)+I|0,I=(w^(h^w)&e)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(n,e,50),c=f,B=UI(n,e,46)^B,c^=f,k=UI(n,e,23)^B,B=(f^c)+I|0,F=B=(Q=k+Q|0)>>>0>>0?B+1|0:B,I=B,B=UI(S,_,36),c=f,B=UI(S,_,30)^B,k=f^c,N=UI(S,_,25)^B,B=((t|y)&_|t&y)+(f^k)|0,I=((c=N+((E|D)&S|E&D)|0)>>>0>>0?B+1|0:B)+I|0,c=I=(k=Q+c|0)>>>0>>0?I+1|0:I,i[C+16>>2]=k,i[C+20>>2]=I,I=r+F|0,r=I=(p=Q+p|0)>>>0>>0?I+1|0:I,i[C+48>>2]=p,i[C+52>>2]=I,B=34416+(I=112|M)|0,F=i[(Q=N=I+g|0)>>2],I=i[B>>2]+F|0,B=i[B+4>>2]+i[Q+4>>2]|0,B=w+(I>>>0>>0?B+1|0:B)|0,B=(h^(e^h)&r)+(B=(I=I+s|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=a^(a^n)&p)+I|0)>>>0>>0?B+1|0:B,Q=UI(p,r,50),s=f,Q=UI(p,r,46)^Q,s^=f,Q=(w=UI(p,r,23)^Q)+I|0,I=(f^s)+B|0,F=I=Q>>>0>>0?I+1|0:I,B=I,I=UI(k,c,36),s=f,I=UI(k,c,30)^I,w=f^s,R=UI(k,c,25)^I,I=((_|y)&c|_&y)+(f^w)|0,B=((s=R+((E|S)&k|E&S)|0)>>>0>>0?I+1|0:I)+B|0,s=B=(w=Q+s|0)>>>0>>0?B+1|0:B,i[C+8>>2]=w,i[C+12>>2]=B,B=t+F|0,Q=B=(t=Q+D|0)>>>0>>0?B+1|0:B,i[C+40>>2]=t,i[C+44>>2]=B,B=34416+(I=120|M)|0,M=i[(I=D=I+g|0)>>2],F=i[B>>2]+M|0,B=i[B+4>>2]+i[I+4>>2]|0,I=h+(F>>>0>>0?B+1|0:B)|0,I=(e^(e^r)&Q)+(I=(B=a+F|0)>>>0>>0?I+1|0:I)|0,I=(B=(a=n^(p^n)&t)+B|0)>>>0>>0?I+1|0:I,a=UI(t,Q,50),e=f,a=UI(t,Q,46)^a,e^=f,Q=(a=UI(t,Q,23)^a)+B|0,B=(f^e)+I|0,B=Q>>>0>>0?B+1|0:B,a=Q,e=B,I=B,B=UI(w,s,36),t=f,B=UI(w,s,30)^B,r=f^t,h=UI(w,s,25)^B,B=((_|c)&s|_&c)+(f^r)|0,I=((t=h+((k|S)&w|k&S)|0)>>>0>>0?B+1|0:B)+I|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,i[C>>2]=Q,i[C+4>>2]=I,B=e+y|0,B=(r=E)>>>0>(E=E+a|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,64!=(0|P);)c=((P=P+16|0)<<3)+g|0,a=i[G>>2],_=i[G+4>>2],R=i[b>>2],e=I=i[b+4>>2],B=I,Q=I=i[N+4>>2],I=UI(S=i[N>>2],I,45),E=f,r=((63&Q)<<26|S>>>6)^(I=UI(S,Q,3)^I),I=(Q>>>6^(t=f^E))+B|0,B=((E=r+R|0)>>>0>>0?I+1|0:I)+_|0,B=(I=E+a|0)>>>0>>0?B+1|0:B,a=E=i[l+4>>2],E=UI(_=i[l>>2],E,63),t=f,E=((127&a)<<25|_>>>7)^UI(_,a,56)^E,B=(f^t^a>>>7)+B|0,E=B=E>>>0>(k=E+I|0)>>>0?B+1|0:B,i[c>>2]=k,i[c+4>>2]=B,_=(N=i[U>>2])+_|0,I=(c=i[U+4>>2])+a|0,B=_>>>0>>0?I+1|0:I,a=I=i[D+4>>2],I=UI(F=i[D>>2],I,45),t=f,r=_,_=((63&a)<<26|F>>>6)^UI(F,a,3)^I,B=(f^t^a>>>6)+B|0,_=_>>>0>(r=r+_|0)>>>0?B+1|0:B,B=UI(t=i[Y>>2],I=i[Y+4>>2],63),h=f,s=r,r=((127&I)<<25|t>>>7)^UI(t,I,56)^B,B=(f^h^I>>>7)+_|0,_=B=r>>>0>(w=s+r|0)>>>0?B+1|0:B,i[G+136>>2]=w,i[G+140>>2]=B,B=(U=i[K>>2])+t|0,I=(t=i[K+4>>2])+I|0,r=UI(k,E,45),h=f,r=(y=((63&E)<<26|k>>>6)^UI(k,E,3)^r)+B|0,B=(f^h^E>>>6)+(B>>>0>>0?I+1|0:I)|0,B=r>>>0>>0?B+1|0:B,h=I=i[u+4>>2],I=UI(y=i[u>>2],I,63),n=f,s=r,r=((127&h)<<25|y>>>7)^UI(y,h,56)^I,B=(f^n^h>>>7)+B|0,r=B=r>>>0>(M=s+r|0)>>>0?B+1|0:B,i[G+144>>2]=M,i[G+148>>2]=B,y=(l=i[v>>2])+y|0,I=(I=h)+(h=i[v+4>>2])|0,B=y>>>0>>0?I+1|0:I,I=UI(w,_,45),n=f,p=((63&_)<<26|w>>>6)^UI(w,_,3)^I,B=(f^n^_>>>6)+B|0,B=(y=p+y|0)>>>0

>>0?B+1|0:B,n=I=i[m+4>>2],I=UI(p=i[m>>2],I,63),D=f,s=y,y=((127&n)<<25|p>>>7)^UI(p,n,56)^I,B=(f^D^n>>>7)+B|0,y=B=y>>>0>(Y=s+y|0)>>>0?B+1|0:B,i[G+152>>2]=Y,i[G+156>>2]=B,I=(u=i[L>>2])+p|0,B=(B=n)+(n=i[L+4>>2])|0,p=UI(M,r,45),D=f,p=((63&r)<<26|M>>>6)^UI(M,r,3)^p,B=(f^D^r>>>6)+(I>>>0>>0?B+1|0:B)|0,p=(s=p+I|0)>>>0

>>0?B+1|0:B,B=UI(D=i[J>>2],I=i[J+4>>2],63),m=f,K=s,s=((127&I)<<25|D>>>7)^(B=UI(D,I,56)^B),B=(I>>>7^(J=f^m))+p|0,p=B=s>>>0>(m=K+s|0)>>>0?B+1|0:B,i[G+160>>2]=m,i[G+164>>2]=B,I=I+Q|0,I=(B=D+S|0)>>>0>>0?I+1|0:I,D=UI(Y,y,45),s=f,D=(J=((63&y)<<26|Y>>>6)^UI(Y,y,3)^D)+B|0,B=(f^s^y>>>6)+I|0,B=D>>>0>>0?B+1|0:B,s=i[H>>2],H=I=i[H+4>>2],I=UI(s,I,63),J=f,I=UI(s,H,56)^I,K=D,B=(H>>>7^(b=f^J))+B|0,D=B=(D=((127&H)<<25|s>>>7)^I)>>>0>(J=K+D|0)>>>0?B+1|0:B,i[G+168>>2]=J,i[G+172>>2]=B,I=a+H|0,I=(B=s+F|0)>>>0>>0?I+1|0:I,K=s=i[d+4>>2],s=UI(b=i[d>>2],s,63),H=f,s=(d=((127&K)<<25|b>>>7)^UI(b,K,56)^s)+B|0,B=(f^H^K>>>7)+I|0,I=s>>>0>>0?B+1|0:B,B=UI(m,p,45),H=f,B=UI(m,p,3)^B,d=f^H,H=s,I=(p>>>6^d)+I|0,s=I=(s=((63&p)<<26|m>>>6)^B)>>>0>(H=H+s|0)>>>0?I+1|0:I,i[G+176>>2]=H,i[G+180>>2]=I,v=i[x>>2],x=I=i[x+4>>2],d=I,I=UI(R,e,63),B=f,L=((127&e)<<25|R>>>7)^UI(R,e,56)^I,I=(f^B^e>>>7)+_|0,B=((w=L+w|0)>>>0>>0?I+1|0:I)+d|0,B=(I=w+v|0)>>>0>>0?B+1|0:B,_=UI(H,s,45),w=f,d=(_=((63&s)<<26|H>>>6)^UI(H,s,3)^_)+I|0,I=(f^w^s>>>6)+B|0,_=I=_>>>0>d>>>0?I+1|0:I,i[G+192>>2]=d,i[G+196>>2]=I,B=E+K|0,B=(I=k+b|0)>>>0>>0?B+1|0:B,w=UI(v,x,63),b=f,K=((127&x)<<25|v>>>7)^UI(v,x,56)^w,B=(f^b^x>>>7)+B|0,I=(w=K+I|0)>>>0>>0?B+1|0:B,B=UI(J,D,45),b=f,B=UI(J,D,3)^B,x=w,I=(D>>>6^(K=f^b))+I|0,w=I=(w=((63&D)<<26|J>>>6)^B)>>>0>(b=x+w|0)>>>0?I+1|0:I,i[G+184>>2]=b,i[G+188>>2]=I,I=UI(U,t,63),B=f,I=((127&t)<<25|U>>>7)^UI(U,t,56)^I,B=(f^B^t>>>7)+c|0,I=y+(I>>>0>(K=I+N|0)>>>0?B+1|0:B)|0,I=(B=Y+K|0)>>>0>>0?I+1|0:I,y=UI(d,_,45),Y=f,y=UI(d,_,3)^y,K=f^Y,Y=(y^=(63&_)<<26|d>>>6)+B|0,B=(_>>>6^K)+I|0,y=B=y>>>0>Y>>>0?B+1|0:B,i[G+208>>2]=Y,i[G+212>>2]=B,I=UI(N,c,63),B=f,K=UI(N,c,56)^I,B=((I=c>>>7|0)^f^B)+e|0,I=r+((c=(N=K^((127&c)<<25|N>>>7))+R|0)>>>0>>0?B+1|0:B)|0,I=(B=c+M|0)>>>0>>0?I+1|0:I,e=UI(b,w,45),c=f,r=(e=((63&w)<<26|b>>>6)^UI(b,w,3)^e)+B|0,B=(f^c^w>>>6)+I|0,e=B=e>>>0>r>>>0?B+1|0:B,i[G+200>>2]=r,i[G+204>>2]=B,I=UI(u,n,63),B=f,N=((127&n)<<25|u>>>7)^UI(u,n,56)^I,I=(f^B^n>>>7)+h|0,B=D+((c=N+l|0)>>>0>>0?I+1|0:I)|0,B=(I=c+J|0)>>>0>>0?B+1|0:B,c=UI(Y,y,45),D=f,N=I,I=y>>>6|0,c=((63&y)<<26|Y>>>6)^UI(Y,y,3)^c,B=(I^f^D)+B|0,c=B=c>>>0>(y=N+c|0)>>>0?B+1|0:B,i[G+224>>2]=y,i[G+228>>2]=B,I=UI(l,h,63),B=f,I=UI(l,h,56)^I,D=f^B,N=((127&h)<<25|l>>>7)^I,I=((B=h>>>7|0)^D)+t|0,B=p+((h=N+U|0)>>>0>>0?I+1|0:I)|0,B=(I=h+m|0)>>>0>>0?B+1|0:B,t=UI(r,e,45),h=f,D=I,I=e>>>6|0,e=((63&e)<<26|r>>>6)^UI(r,e,3)^t,I=(I^f^h)+B|0,e=I=(t=D+e|0)>>>0>>0?I+1|0:I,i[G+216>>2]=t,i[G+220>>2]=I,I=UI(F,a,63),B=f,h=((127&a)<<25|F>>>7)^UI(F,a,56)^I,B=(f^B^a>>>7)+Q|0,B=w+((I=h+S|0)>>>0>>0?B+1|0:B)|0,I=(r=I+b|0)>>>0>>0?B+1|0:B,B=UI(y,c,45),h=f,D=r,r=UI(y,c,3)^B,B=c>>>6|0,c=D+(r^=(63&c)<<26|y>>>6)|0,I=(B^f^h)+I|0,i[G+240>>2]=c,i[G+244>>2]=c>>>0>>0?I+1|0:I,I=UI(S,Q,63),B=f,I=UI(S,Q,56)^I,c=f^B,B=((B=Q>>>7|0)^c)+n|0,I=s+((I^=(127&Q)<<25|S>>>7)>>>0>(Q=I+u|0)>>>0?B+1|0:B)|0,I=(B=Q+H|0)>>>0>>0?I+1|0:I,Q=UI(t,e,45),c=f,r=B,B=e>>>6|0,Q=((63&e)<<26|t>>>6)^UI(t,e,3)^Q,B=(B^f^c)+I|0,Q=B=Q>>>0>(e=r+Q|0)>>>0?B+1|0:B,i[G+232>>2]=e,i[G+236>>2]=B,I=UI(k,E,63),B=f,r=UI(k,E,56)^I,B=((I=E>>>7|0)^f^B)+a|0,I=_+((E=(c=r^((127&E)<<25|k>>>7))+F|0)>>>0>>0?B+1|0:B)|0,I=(B=E+d|0)>>>0>>0?I+1|0:I,E=UI(e,Q,45),a=f,r=B,B=Q>>>6|0,Q=r+(E=((63&Q)<<26|e>>>6)^UI(e,Q,3)^E)|0,B=(B^f^a)+I|0,i[G+248>>2]=Q,i[G+252>>2]=Q>>>0>>0?B+1|0:B;I=I+i[A+4>>2]|0,I=(g=Q+i[A>>2]|0)>>>0>>0?I+1|0:I,i[A>>2]=g,i[A+4>>2]=I,B=i[A+12>>2]+i[C+12>>2]|0,I=(g=i[C+8>>2])+i[A+8>>2]|0,i[A+8>>2]=I,i[A+12>>2]=I>>>0>>0?B+1|0:B,B=i[A+20>>2]+i[C+20>>2]|0,I=(g=i[C+16>>2])+i[A+16>>2]|0,i[A+16>>2]=I,i[A+20>>2]=I>>>0>>0?B+1|0:B,I=i[A+28>>2]+i[C+28>>2]|0,g=(B=i[C+24>>2])+i[A+24>>2]|0,i[A+24>>2]=g,i[A+28>>2]=g>>>0>>0?I+1|0:I,B=i[A+36>>2]+i[C+36>>2]|0,I=(g=i[C+32>>2])+i[A+32>>2]|0,i[A+32>>2]=I,i[A+36>>2]=I>>>0>>0?B+1|0:B,I=i[A+44>>2]+i[C+44>>2]|0,g=(B=i[C+40>>2])+i[A+40>>2]|0,i[A+40>>2]=g,i[A+44>>2]=g>>>0>>0?I+1|0:I,B=i[A+52>>2]+i[C+52>>2]|0,I=(g=i[C+48>>2])+i[A+48>>2]|0,i[A+48>>2]=I,i[A+52>>2]=I>>>0>>0?B+1|0:B,B=i[A+60>>2]+i[C+60>>2]|0,I=(g=i[C+56>>2])+i[A+56>>2]|0,i[A+56>>2]=I,i[A+60>>2]=I>>>0>>0?B+1|0:B}function F(A,I){var g,C=0,B=0,Q=0,E=0,c=0,t=0,r=0,e=0,y=0,p=0,w=0,n=0,k=0,F=0,S=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0;if(s=g=s-4096|0,A){A:{I:{if(2==(0|(E=i[A+36>>2]))){if(oA=i[A+4>>2],(IA=i[I>>2])|(V=o[I+8|0])>>>0>=2)break I;IA=0}else V=o[I+8|0],oA=i[A+4>>2],IA=i[I>>2];if(bg(g+3072|0,0,1024),bg(g+2104|0,0,968),i[g+2048>>2]=IA,i[g+2052>>2]=0,u=i[I+4>>2],i[g+2064>>2]=V,i[g+2068>>2]=0,i[g+2056>>2]=u,i[g+2060>>2]=0,i[g+2072>>2]=i[A+16>>2],i[g+2076>>2]=0,u=i[A+8>>2],i[g+2088>>2]=E,i[g+2092>>2]=0,i[g+2080>>2]=u,i[g+2084>>2]=0,!i[A+20>>2])break A;for(u=0;(S=127&r)||(u=(z=z+1|0)?u:u+1|0,i[g+2096>>2]=z,i[g+2100>>2]=u,E=bg(g,0,1024),bg(E+1024|0,0,1024),N(C=E+3072|0,E+2048|0,E),N(C,E,E+1024|0)),S=i[4+(E=(g+1024|0)+(S<<3)|0)>>2],i[(C=(r<<3)+oA|0)>>2]=i[E>>2],i[C+4>>2]=S,(S=i[A+20>>2])>>>0>(r=r+1|0)>>>0;);break A}S=i[A+20>>2],cA=1}if(!((u=(aA=!(V|IA))<<1)>>>0>=S>>>0))for(E=i[A+24>>2],iA=i[I+4>>2],r=(z=(a(E,iA)+u|0)+a(S,V)|0)+((z>>>0)%(E>>>0)|0?-1:E-1|0)|0,tA=V+1|0;;){C=i[A+28>>2],EA=1==((z>>>0)%((E=i[A+24>>2])>>>0)|0)?z-1|0:r,r=cA?i[i[A>>2]+4>>2]+(EA<<10)|0:(u<<3)+oA|0,B=i[r>>2],r=i[r+4>>2],i[I+12>>2]=u,C=aA?iA:(r>>>0)%(C>>>0)|0;A:if(IA)r=E+((0|C)==(0|iA)?~S+u|0:(u?0:-1)-S|0)|0,Q=0,3!=(0|V)&&(Q=a(S,tA));else{if(!V){r=u-1|0,Q=0;break A}if(r=a(S,V),(0|C)==(0|iA)){r=(r+u|0)-1|0,Q=0;break A}r=r-!u|0,Q=0}S=Q,c=(p=i[i[A>>2]+4>>2])+(a(C,E)<<10)|0,y=(C=r-1|0)>>>0>(Q=C+S|0)>>>0,Ig(B,0,B,0),Ig(r,0,f,0),S=Q-(r=f)|0,C=0,e=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if(r=y-(Q>>>0>>0)|0){if(!E)break a;break E}h=S-a((S>>>0)/(E>>>0)|0,E)|0,D=0,f=0;break A}if(!S)break o;break i}if(!((B=E-1|0)&E))break Q;t=0-(B=(_(E)+33|0)-_(r)|0)|0;break C}h=0,D=r,f=0;break A}if((C=32-_(r)|0)>>>0<31)break B;break g}if(h=B&S,D=0,1==(0|E))break I;E=31&(S=FC(E)),(63&S)>>>0>=32?B=r>>>E|0:(C=r>>>E|0,B=0),f=C;break A}B=C+1|0,t=63-C|0}if(Q=31&(C=63&B),C>>>0>=32?(C=0,y=r>>>Q|0):(C=r>>>Q|0,y=((1<>>Q),Q=31&(t&=63),t>>>0>=32?(r=S<>>32-Q|r<>>31,y=(C=y<<1|r>>>31)-(b=E&(Q=F-(d+(C>>>0>t>>>0)|0)>>31))|0,C=d-(C>>>0>>0)|0,r=r<<1|S>>>31,S=e|S<<1,e=1&Q,B=B-1|0;);h=y,D=C,f=r<<1|S>>>31;break A}h=S,D=r,r=0}f=r}if(f=D,r=(h<<10)+c|0,E=p+(EA<<10)|0,_A=p+(z<<10)|0,IA)N(E,r,_A);else{for(Ng(g+3072|0,r,1024),r=0;Q=i[(B=(S=r<<3)+(C=g+3072|0)|0)>>2],p=i[(y=E+S|0)>>2],y=i[B+4>>2]^i[y+4>>2],i[B>>2]=Q^p,i[B+4>>2]=y,y=i[(B=(Q=8|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,y=i[(B=(Q=16|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,Q=i[(S=(B=24|S)+C|0)>>2],y=i[(B=B+E|0)>>2],B=i[S+4>>2]^i[B+4>>2],i[S>>2]=Q^y,i[S+4>>2]=B,128!=(0|(r=r+4|0)););for(Ng(g+2048|0,C,1024),S=0,r=0;Q=(y=i[56+(E=(g+3072|0)+(r<<7)|0)>>2])+(B=i[E+24>>2])|0,p=(F=i[E+60>>2])+(C=i[E+28>>2])|0,e=Ig(B<<1&-2,1&(C<<1|B>>>31),y,0),B=f+(B>>>0>Q>>>0?p+1|0:p)|0,p=(C=e+Q|0)>>>0>>0?B+1|0:B,c=(e=UI(C^i[E+120>>2],p^i[E+124>>2],32))+(B=i[E+88>>2])|0,t=(k=f)+(Q=i[E+92>>2])|0,d=Ig(e,0,B<<1&-2,1&(Q<<1|B>>>31)),B=f+(B>>>0>c>>>0?t+1|0:t)|0,b=UI(y^(Q=d+c|0),F^(v=Q>>>0>>0?B+1|0:B),40),w=1+(B=p+(BA=f)|0)|0,t=B,y=(B=C+b|0)>>>0>>0?w:t,d=(C=Ig(b,0,C<<1&-2,1&(p<<1|C>>>31)))+B|0,B=f+y|0,k=UI(d^e,k^(X=C>>>0>d>>>0?B+1|0:B),48),Y=w=f,y=(n=i[E+44>>2])+(C=i[E+12>>2])|0,e=(p=i[E+40>>2])+(B=i[E+8>>2])|0,c=Ig(B<<1&-2,1&(C<<1|B>>>31),p,0),B=f+(B>>>0>e>>>0?y+1|0:y)|0,c=(C=e+c|0)>>>0>>0?B+1|0:B,e=(t=UI(C^i[E+104>>2],c^i[E+108>>2],32))+(y=i[E+72>>2])|0,F=(M=f)+(B=i[E+76>>2])|0,G=Ig(t,0,y<<1&-2,1&(B<<1|y>>>31)),y=f+(e>>>0>>0?F+1|0:F)|0,e=UI(H=p^(B=G+e|0),n^(p=B>>>0>>0?y+1|0:y),40),G=1+(y=c+(F=f)|0)|0,n=y,n=(y=C+e|0)>>>0>>0?G:n,C=Ig(e,0,C<<1&-2,1&(c<<1|C>>>31)),c=f+n|0,n=UI((y=C+y|0)^t,M^(O=C>>>0>y>>>0?c+1|0:c),48),G=1+(C=p+(QA=f)|0)|0,t=C,c=(C=B+n|0)>>>0>>0?G:t,p=C+(B=Ig(n,0,B<<1&-2,1&(p<<1|B>>>31)))|0,C=f+c|0,M=UI(e^p,F^(Z=B>>>0>p>>>0?C+1|0:C),1),gA=H=f,e=(J=i[E+36>>2])+(C=i[E+4>>2])|0,t=(c=i[E+32>>2])+(B=i[E>>2])|0,F=Ig(B<<1&-2,1&(C<<1|B>>>31),c,0),B=f+(B>>>0>t>>>0?e+1|0:e)|0,t=(C=t+F|0)>>>0>>0?B+1|0:B,F=(q=UI(C^i[E+96>>2],t^i[E+100>>2],32))+(B=i[(e=j=E- -64|0)>>2])|0,G=($=f)+(e=i[e+4>>2])|0,R=Ig(q,0,B<<1&-2,1&(e<<1|B>>>31)),B=f+(B>>>0>F>>>0?G+1|0:G)|0,G=UI(c^(e=R+F|0),J^(R=e>>>0>>0?B+1|0:B),40),F=1+(B=t+(AA=f)|0)|0,c=B,c=(B=C+G|0)>>>0>>0?F:c,C=B+(t=Ig(G,0,C<<1&-2,1&(t<<1|C>>>31)))|0,B=f+c|0,c=1+(B=(W=C>>>0>>0?B+1|0:B)+H|0)|0,t=B,t=(B=C+M|0)>>>0>>0?c:t,c=B+(F=Ig(M,0,C<<1&-2,1&(W<<1|C>>>31)))|0,B=f+t|0,w=UI(c^k,(l=c>>>0>>0?B+1|0:B)^w,32),L=f,F=(K=i[E+52>>2])+(B=i[E+20>>2])|0,J=(H=i[E+48>>2])+(t=i[E+16>>2])|0,m=Ig(t<<1&-2,1&(B<<1|t>>>31),H,0),t=f+(t>>>0>J>>>0?F+1|0:F)|0,J=(B=J+m|0)>>>0>>0?t+1|0:t,P=(m=UI(B^i[E+112>>2],J^i[E+116>>2],32))+(F=i[E+80>>2])|0,x=(CA=f)+(t=i[E+84>>2])|0,U=Ig(m,0,F<<1&-2,1&(t<<1|F>>>31)),F=f+(F>>>0>P>>>0?x+1|0:x)|0,H=UI(H^(t=U+P|0),K^(P=t>>>0>>0?F+1|0:F),40),U=1+(F=J+(K=f)|0)|0,x=F,x=(F=B+H|0)>>>0>>0?U:x,B=Ig(H,0,B<<1&-2,1&(J<<1|B>>>31)),J=f+x|0,J=UI(U=(F=B+F|0)^m,CA^(m=B>>>0>F>>>0?J+1|0:J),48),U=1+(B=P+(CA=f)|0)|0,x=B,x=(B=t+J|0)>>>0>>0?U:x,t=Ig(J,0,t<<1&-2,1&(P<<1|t>>>31)),P=f+x|0,U=1+(t=(P=(B=t+B|0)>>>0>>0?P+1|0:P)+L|0)|0,x=t,x=(t=B+w|0)>>>0>>0?U:x,T=M^(t=(U=Ig(w,0,B<<1&-2,1&(P<<1|B>>>31)))+t|0),M=f+x|0,M=UI(T,gA^(x=t>>>0>>0?M+1|0:M),40),rA=1+(U=l+(gA=f)|0)|0,T=U,T=(U=c+M|0)>>>0>>0?rA:T,c=(l=Ig(M,0,c<<1&-2,1&(l<<1|c>>>31)))+U|0,i[E>>2]=c,U=f+T|0,l=c>>>0>>0?U+1|0:U,i[E+4>>2]=l,c=UI(c^w,l^L,48),i[E+120>>2]=c,w=f,i[E+124>>2]=w,T=1+(w=w+x|0)|0,U=w,l=(w=c+t|0)>>>0>>0?T:U,c=(t=Ig(c,0,t<<1&-2,1&(x<<1|t>>>31)))+w|0,i[E+80>>2]=c,w=f+l|0,t=c>>>0>>0?w+1|0:w,i[E+84>>2]=t,eA=E,yA=UI(c^M,t^gA,1),i[eA+40>>2]=yA,i[E+44>>2]=f,c=UI(B^H,K^P,1),w=1+(B=O+(H=f)|0)|0,t=B,t=(B=c+y|0)>>>0>>0?w:t,B=B+(M=Ig(c,0,y<<1&-2,1&(O<<1|y>>>31)))|0,y=f+t|0,t=UI(C^q,W^$,48),y=UI(t^B,(M=B>>>0>>0?y+1|0:y)^(O=f),32),q=w=f,K=1+(C=v+Y|0)|0,Y=C,W=(C=Q+k|0)>>>0>>0?K:Y,Q=Ig(k,0,Q<<1&-2,1&(v<<1|Q>>>31)),k=f+W|0,Y=1+(Q=(k=(C=Q+C|0)>>>0>>0?k+1|0:k)+w|0)|0,w=Q,w=(Q=C+y|0)>>>0>>0?Y:w,Y=c^(Q=(v=Ig(y,0,C<<1&-2,1&(k<<1|C>>>31)))+Q|0),c=f+w|0,c=UI(Y,H^(w=Q>>>0>>0?c+1|0:c),40),K=1+(v=M+(H=f)|0)|0,Y=v,W=(v=B+c|0)>>>0>>0?K:Y,Y=y^(B=(M=Ig(c,0,B<<1&-2,1&(M<<1|B>>>31)))+v|0),y=f+W|0,y=UI(Y,q^(M=B>>>0>>0?y+1|0:y),48),i[E+96>>2]=y,v=f,i[E+100>>2]=v,i[E+8>>2]=B,i[E+12>>2]=M,K=1+(B=w+v|0)|0,Y=B,M=(B=Q+y|0)>>>0>>0?K:Y,Q=Ig(y,0,Q<<1&-2,1&(w<<1|Q>>>31)),y=f+M|0,eA=E,yA=UI((B=Q+B|0)^c,H^(Q=B>>>0>>0?y+1|0:y),1),i[eA+48>>2]=yA,i[E+52>>2]=f,i[E+88>>2]=B,i[E+92>>2]=Q,y=UI(C^b,k^BA,1),Q=1+(C=m+(b=f)|0)|0,B=C,Q=(C=y+F|0)>>>0>>0?Q:B,B=C+(c=Ig(y,0,F<<1&-2,1&(m<<1|F>>>31)))|0,C=f+Q|0,c=UI(B^n,QA^(F=B>>>0>>0?C+1|0:C),32),k=Q=f,w=1+(C=R+O|0)|0,Q=C,n=(C=e+t|0)>>>0>>0?w:Q,e=Ig(t,0,e<<1&-2,1&(R<<1|e>>>31)),Q=f+n|0,w=1+(Q=k+(e=(C=e+C|0)>>>0>>0?Q+1|0:Q)|0)|0,t=Q,t=(Q=C+c|0)>>>0>>0?w:t,w=y^(Q=Q+(n=Ig(c,0,C<<1&-2,1&(e<<1|C>>>31)))|0),y=f+t|0,y=UI(w,b^(t=Q>>>0>>0?y+1|0:y),40),Y=1+(n=F+(b=f)|0)|0,w=n,M=(n=B+y|0)>>>0>>0?Y:w,B=(F=Ig(y,0,B<<1&-2,1&(F<<1|B>>>31)))+n|0,i[E+16>>2]=B,n=f+M|0,F=B>>>0>>0?n+1|0:n,i[E+20>>2]=F,B=UI(B^c,F^k,48),i[E+104>>2]=B,c=f,i[E+108>>2]=c,w=1+(c=c+t|0)|0,k=c,F=(c=B+Q|0)>>>0>>0?w:k,Q=(B=Ig(B,0,Q<<1&-2,1&(t<<1|Q>>>31)))+c|0,c=f+F|0,F=B=B>>>0>Q>>>0?c+1|0:c,i[j>>2]=Q,i[j+4>>2]=B,B=(e=UI(C^G,e^AA,1))+d|0,c=(k=f)+X|0,C=(t=Ig(d<<1&-2,1&(X<<1|d>>>31),e,0))+B|0,B=f+(B>>>0>>0?c+1|0:c)|0,c=UI(C^J,CA^(t=C>>>0>>0?B+1|0:B),32),n=1+(B=Z+(d=f)|0)|0,w=B,n=(B=c+p|0)>>>0

>>0?n:w,w=e^(B=(p=Ig(c,0,p<<1&-2,1&(Z<<1|p>>>31)))+B|0),e=f+n|0,p=UI(w,k^(e=B>>>0

>>0?e+1|0:e),40),G=1+(n=t+(k=f)|0)|0,w=n,M=(n=C+p|0)>>>0>>0?G:w,w=c^(t=(C=Ig(p,0,C<<1&-2,1&(t<<1|C>>>31)))+n|0),c=f+M|0,C=UI(w,d^(c=C>>>0>t>>>0?c+1|0:c),48),G=1+(n=e+(d=f)|0)|0,w=n,M=(n=C+B|0)>>>0>>0?G:w,B=(e=Ig(C,0,B<<1&-2,1&(e<<1|B>>>31)))+n|0,i[E+72>>2]=B,n=f+M|0,e=B>>>0>>0?n+1|0:n,i[E+76>>2]=e,i[E+112>>2]=C,i[E+116>>2]=d,i[E+24>>2]=t,i[E+28>>2]=c,eA=E,yA=UI(Q^y,F^b,1),i[eA+56>>2]=yA,i[E+60>>2]=f,eA=E,yA=UI(B^p,e^k,1),i[eA+32>>2]=yA,i[E+36>>2]=f,8!=(0|(r=r+1|0)););for(;B=(Q=i[392+(E=(g+3072|0)+(S<<4)|0)>>2])+(C=i[E+136>>2])|0,y=(t=i[E+396>>2])+(r=i[E+140>>2])|0,p=Ig(C<<1&-2,1&(r<<1|C>>>31),Q,0),C=f+(C>>>0>B>>>0?y+1|0:y)|0,y=(r=p+B|0)>>>0

>>0?C+1|0:C,e=(p=UI(r^i[E+904>>2],y^i[E+908>>2],32))+(C=i[E+648>>2])|0,c=(b=f)+(B=i[E+652>>2])|0,F=Ig(p,0,C<<1&-2,1&(B<<1|C>>>31)),C=f+(C>>>0>e>>>0?c+1|0:c)|0,d=UI(Q^(B=F+e|0),t^(J=B>>>0>>0?C+1|0:C),40),t=1+(C=y+(P=f)|0)|0,Q=C,Q=(C=r+d|0)>>>0>>0?t:Q,F=(r=Ig(d,0,r<<1&-2,1&(y<<1|r>>>31)))+C|0,C=f+Q|0,b=UI(F^p,b^(v=r>>>0>F>>>0?C+1|0:C),48),x=G=f,Q=(k=i[E+268>>2])+(r=i[E+12>>2])|0,p=(y=i[E+264>>2])+(C=i[E+8>>2])|0,e=Ig(C<<1&-2,1&(r<<1|C>>>31),y,0),C=f+(C>>>0>p>>>0?Q+1|0:Q)|0,e=(r=p+e|0)>>>0>>0?C+1|0:C,p=(c=UI(r^i[E+776>>2],e^i[E+780>>2],32))+(Q=i[E+520>>2])|0,t=(n=f)+(C=i[E+524>>2])|0,M=Ig(c,0,Q<<1&-2,1&(C<<1|Q>>>31)),Q=f+(Q>>>0>p>>>0?t+1|0:t)|0,p=UI(w=y^(C=M+p|0),k^(y=C>>>0>>0?Q+1|0:Q),40),w=1+(Q=e+(t=f)|0)|0,k=Q,k=(Q=r+p|0)>>>0>>0?w:k,r=Ig(p,0,r<<1&-2,1&(e<<1|r>>>31)),e=f+k|0,k=UI((Q=r+Q|0)^c,n^(X=Q>>>0>>0?e+1|0:e),48),n=1+(r=y+(BA=f)|0)|0,w=r,e=(r=C+k|0)>>>0>>0?n:w,y=r+(C=Ig(k,0,C<<1&-2,1&(y<<1|C>>>31)))|0,r=f+e|0,n=UI(p^y,t^(O=C>>>0>y>>>0?r+1|0:r),1),Y=w=f,p=(H=i[E+260>>2])+(r=i[E+4>>2])|0,c=(e=i[E+256>>2])+(C=i[E>>2])|0,t=Ig(C<<1&-2,1&(r<<1|C>>>31),e,0),C=f+(C>>>0>c>>>0?p+1|0:p)|0,c=(r=c+t|0)>>>0>>0?C+1|0:C,t=(Z=UI(r^i[E+768>>2],c^i[E+772>>2],32))+(C=i[E+512>>2])|0,M=(QA=f)+(p=i[E+516>>2])|0,q=Ig(Z,0,C<<1&-2,1&(p<<1|C>>>31)),C=f+(C>>>0>t>>>0?M+1|0:M)|0,M=UI(e^(p=q+t|0),H^(q=p>>>0>>0?C+1|0:C),40),e=1+(C=c+(gA=f)|0)|0,t=C,e=(C=r+M|0)>>>0>>0?e:t,r=C+(c=Ig(M,0,r<<1&-2,1&(c<<1|r>>>31)))|0,C=f+e|0,w=1+(C=(j=r>>>0>>0?C+1|0:C)+w|0)|0,t=C,c=(C=r+n|0)>>>0>>0?w:t,e=C+(t=Ig(n,0,r<<1&-2,1&(j<<1|r>>>31)))|0,C=f+c|0,G=UI(e^b,(R=e>>>0>>0?C+1|0:C)^G,32),W=f,t=($=i[E+388>>2])+(C=i[E+132>>2])|0,H=(w=i[E+384>>2])+(c=i[E+128>>2])|0,l=Ig(c<<1&-2,1&(C<<1|c>>>31),w,0),c=f+(c>>>0>H>>>0?t+1|0:t)|0,H=(C=H+l|0)>>>0>>0?c+1|0:c,L=(l=UI(C^i[E+896>>2],H^i[E+900>>2],32))+(t=i[E+640>>2])|0,m=(AA=f)+(c=i[E+644>>2])|0,K=Ig(l,0,t<<1&-2,1&(c<<1|t>>>31)),t=f+(t>>>0>L>>>0?m+1|0:m)|0,w=UI(w^(c=K+L|0),$^(L=c>>>0>>0?t+1|0:t),40),U=1+(t=H+($=f)|0)|0,K=t,m=(t=C+w|0)>>>0>>0?U:K,C=Ig(w,0,C<<1&-2,1&(H<<1|C>>>31)),H=f+m|0,H=UI(K=(t=C+t|0)^l,AA^(l=C>>>0>t>>>0?H+1|0:H),48),U=1+(C=L+(AA=f)|0)|0,K=C,m=(C=c+H|0)>>>0>>0?U:K,c=Ig(H,0,c<<1&-2,1&(L<<1|c>>>31)),L=f+m|0,U=1+(c=(L=(C=c+C|0)>>>0>>0?L+1|0:L)+W|0)|0,K=c,m=(c=C+G|0)>>>0>>0?U:K,U=n^(c=(K=Ig(G,0,C<<1&-2,1&(L<<1|C>>>31)))+c|0),n=f+m|0,n=UI(U,Y^(m=c>>>0>>0?n+1|0:n),40),T=1+(K=R+(Y=f)|0)|0,U=K,CA=(K=e+n|0)>>>0>>0?T:U,e=(R=Ig(n,0,e<<1&-2,1&(R<<1|e>>>31)))+K|0,i[E>>2]=e,K=f+CA|0,R=e>>>0>>0?K+1|0:K,i[E+4>>2]=R,e=UI(e^G,R^W,48),i[E+904>>2]=e,G=f,i[E+908>>2]=G,U=1+(G=G+m|0)|0,K=G,R=(G=c+e|0)>>>0>>0?U:K,e=(c=Ig(e,0,c<<1&-2,1&(m<<1|c>>>31)))+G|0,i[E+640>>2]=e,G=f+R|0,c=c>>>0>e>>>0?G+1|0:G,i[E+644>>2]=c,eA=E,yA=UI(e^n,c^Y,1),i[eA+264>>2]=yA,i[E+268>>2]=f,e=UI(C^w,L^$,1),G=1+(C=X+(w=f)|0)|0,n=C,c=(C=Q+e|0)>>>0>>0?G:n,C=C+(n=Ig(e,0,Q<<1&-2,1&(X<<1|Q>>>31)))|0,Q=f+c|0,c=UI(r^Z,j^QA,48),Q=UI(c^C,(n=C>>>0>>0?Q+1|0:Q)^(X=f),32),Z=G=f,K=1+(r=J+x|0)|0,Y=r,j=(r=B+b|0)>>>0>>0?K:Y,B=Ig(b,0,B<<1&-2,1&(J<<1|B>>>31)),b=f+j|0,Y=1+(B=(b=B>>>0>(r=B+r|0)>>>0?b+1|0:b)+G|0)|0,G=B,G=(B=Q+r|0)>>>0>>0?Y:G,Y=e^(B=(J=Ig(Q,0,r<<1&-2,1&(b<<1|r>>>31)))+B|0),e=f+G|0,e=UI(Y,w^(G=B>>>0>>0?e+1|0:e),40),K=1+(J=n+(w=f)|0)|0,Y=J,j=(J=C+e|0)>>>0>>0?K:Y,Y=Q^(C=(n=Ig(e,0,C<<1&-2,1&(n<<1|C>>>31)))+J|0),Q=f+j|0,Q=UI(Y,Z^(n=C>>>0>>0?Q+1|0:Q),48),i[E+768>>2]=Q,J=f,i[E+772>>2]=J,i[E+8>>2]=C,i[E+12>>2]=n,Y=1+(C=G+J|0)|0,n=C,n=(C=B+Q|0)>>>0>>0?Y:n,B=Ig(Q,0,B<<1&-2,1&(G<<1|B>>>31)),Q=f+n|0,eA=E,yA=UI((C=B+C|0)^e,w^(B=C>>>0>>0?Q+1|0:Q),1),i[eA+384>>2]=yA,i[E+388>>2]=f,i[E+648>>2]=C,i[E+652>>2]=B,Q=UI(r^d,b^P,1),B=1+(r=l+(d=f)|0)|0,C=r,B=(r=Q+t|0)>>>0>>0?B:C,C=r+(e=Ig(Q,0,t<<1&-2,1&(l<<1|t>>>31)))|0,r=f+B|0,e=UI(C^k,BA^(t=C>>>0>>0?r+1|0:r),32),b=B=f,k=1+(r=q+X|0)|0,B=r,k=(r=c+p|0)>>>0

>>0?k:B,p=Ig(c,0,p<<1&-2,1&(q<<1|p>>>31)),B=f+k|0,w=1+(B=b+(p=(r=p+r|0)>>>0

>>0?B+1|0:B)|0)|0,k=B,c=(B=r+e|0)>>>0>>0?w:k,w=Q^(B=B+(k=Ig(e,0,r<<1&-2,1&(p<<1|r>>>31)))|0),Q=f+c|0,Q=UI(w,d^(c=B>>>0>>0?Q+1|0:Q),40),n=1+(k=t+(d=f)|0)|0,w=k,n=(k=C+Q|0)>>>0>>0?n:w,C=(t=Ig(Q,0,C<<1&-2,1&(t<<1|C>>>31)))+k|0,i[E+128>>2]=C,k=f+n|0,t=C>>>0>>0?k+1|0:k,i[E+132>>2]=t,C=UI(C^e,t^b,48),i[E+776>>2]=C,e=f,i[E+780>>2]=e,k=1+(e=c+e|0)|0,t=e,t=(e=C+B|0)>>>0>>0?k:t,B=(C=Ig(C,0,B<<1&-2,1&(c<<1|B>>>31)))+e|0,e=f+t|0,t=C=C>>>0>B>>>0?e+1|0:e,i[E+512>>2]=B,i[E+516>>2]=C,C=(p=UI(r^M,p^gA,1))+F|0,e=(b=f)+v|0,r=(c=Ig(F<<1&-2,1&(v<<1|F>>>31),p,0))+C|0,C=f+(C>>>0

>>0?e+1|0:e)|0,e=UI(r^H,AA^(c=r>>>0>>0?C+1|0:C),32),w=1+(C=O+(F=f)|0)|0,k=C,k=(C=e+y|0)>>>0>>0?w:k,w=p^(C=(y=Ig(e,0,y<<1&-2,1&(O<<1|y>>>31)))+C|0),p=f+k|0,y=UI(w,b^(p=C>>>0>>0?p+1|0:p),40),n=1+(k=c+(b=f)|0)|0,w=k,n=(k=r+y|0)>>>0>>0?n:w,k=e^(c=(r=Ig(y,0,r<<1&-2,1&(c<<1|r>>>31)))+k|0),e=f+n|0,r=UI(k,F^(e=r>>>0>c>>>0?e+1|0:e),48),n=1+(k=p+(F=f)|0)|0,w=k,n=(k=C+r|0)>>>0>>0?n:w,C=(p=Ig(r,0,C<<1&-2,1&(p<<1|C>>>31)))+k|0,i[E+520>>2]=C,k=f+n|0,p=C>>>0

>>0?k+1|0:k,i[E+524>>2]=p,i[E+896>>2]=r,i[E+900>>2]=F,i[E+136>>2]=c,i[E+140>>2]=e,eA=E,yA=UI(B^Q,t^d,1),i[eA+392>>2]=yA,i[E+396>>2]=f,eA=E,yA=UI(C^y,p^b,1),i[eA+256>>2]=yA,i[E+260>>2]=f,8!=(0|(S=S+1|0)););for(E=Ng(_A,g+2048|0,1024),r=0;Q=i[(C=(S=r<<3)+E|0)>>2],p=i[(y=(B=g+3072|0)+S|0)>>2],y=i[C+4>>2]^i[y+4>>2],i[C>>2]=Q^p,i[C+4>>2]=y,y=i[(C=(Q=8|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,y=i[(C=(Q=16|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,Q=i[(S=(C=24|S)+E|0)>>2],B=i[(C=C+B|0)>>2],C=i[S+4>>2]^i[C+4>>2],i[S>>2]=B^Q,i[S+4>>2]=C,128!=(0|(r=r+4|0)););}if(r=EA+1|0,z=z+1|0,!((S=i[A+20>>2])>>>0>(u=u+1|0)>>>0))break}}s=g+4096|0}function S(A){var I,g,B,Q,i,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;h=(U=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)>>>5&2097151,s=Ig(I=(o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)>>>3|0,0,-683901,-1),y=(e=o[A+44|0])<<16&2031616|o[A+42|0]|o[A+43|0]<<8,e=f,n=e=y>>>0>(F=s+y|0)>>>0?e+1|0:e,M=e=e-((F>>>0<4293918720)-1|0)|0,s=e>>21,e=(y=h)+(h=(2097151&e)<<11|(p=F- -1048576|0)>>>21)|0,y=s,m=y=e>>>0>>0?y+1|0:y,z=e,G=Ig(e,y,-683901,-1),k=f,w=Ig(g=(o[A+49|0]|o[A+50|0]<<8|o[A+51|0]<<16|o[A+52|0]<<24)>>>7&2097151,0,-997805,-1),s=(e=o[A+27|0])>>>24|0,h=e<<8|(K=o[A+23|0]|o[A+24|0]<<8|o[A+25|0]<<16|o[A+26|0]<<24)>>>24,y=(e=o[A+28|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=h|e<<16)>>>2),e=f,e=y>>>0>(s=y+w|0)>>>0?e+1|0:e,y=Ig(P=(S=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24)>>>4&2097151,0,654183,0),e=f+e|0,w=s=y+s|0,s=y>>>0>s>>>0?e+1|0:e,D=(y=o[A+48|0])<<8|U>>>24,y=e=y>>>24|0,e=Ig(B=2097151&((3&(U=(e=(h=o[A+49|0])>>>16|0)|y))<<30|(y=(h<<=16)|D)>>>2),0,136657,0),s=f+s|0,s=e>>>0>(y=e+w|0)>>>0?s+1|0:s,h=(e=Ig(Q=(o[A+57|0]|o[A+58|0]<<8|o[A+59|0]<<16|o[A+60|0]<<24)>>>6&2097151,0,666643,0))+y|0,y=f+s|0,w=h,s=e>>>0>h>>>0?y+1|0:y,y=(e=o[A+56|0])>>>24|0,D=e<<8|S>>>24,y=Ig(i=2097151&((1&(S=(e=(h=o[A+57|0])>>>16|0)|y))<<31|(y=(h<<=16)|D)>>>1),0,470296,0),e=f+s|0,y=(e=(s=h=y+w|0)>>>0>>0?e+1|0:e)+k|0,y=s>>>0>(h=s+G|0)>>>0?y+1|0:y,b=s- -1048576|0,l=s=e-((s>>>0<4293918720)-1|0)|0,k=h-(e=-2097152&b)|0,G=y-((e>>>0>h>>>0)+s|0)|0,y=Ig(g,0,654183,0),e=f,e=y>>>0>(s=y+(K>>>5&2097151)|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(P,0,470296,0))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(B,j,-997805,-1),y=f+y|0,y=e>>>0>(s=e+h|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(i,X,666643,0))|0,e=f+y|0,D=h,h=s>>>0>h>>>0?e+1|0:e,w=(s=Ig(g,0,470296,0))+(e=(e=o[A+23|0])<<16&2031616|o[A+21|0]|o[A+22|0]<<8)|0,s=f,s=e>>>0>w>>>0?s+1|0:s,w=(y=Ig(P,0,666643,0))+w|0,e=f+s|0,s=Ig(B,j,654183,0),y=f+(y>>>0>w>>>0?e+1|0:e)|0,S=y=s>>>0>(K=s+w|0)>>>0?y+1|0:y,L=y=y-((K>>>0<4293918720)-1|0)|0,e=(e=y>>>21|0)+h|0,s=e=(y=(2097151&y)<<11|(w=K- -1048576|0)>>>21)>>>0>(D=y+D|0)>>>0?e+1|0:e,N=y=e-((D>>>0<4293918720)-1|0)|0,e=k,k=(2097151&y)<<11|(h=D- -1048576|0)>>>21,y=(y>>21)+G|0,U=k=(y=k>>>0>(H=e+k|0)>>>0?y+1|0:y)-((H>>>0<4293918720)-1|0)|0,q=H-(e=-2097152&(G=H- -1048576|0))|0,O=y-((e>>>0>H>>>0)+k|0)|0,e=Ig(z,m,136657,0),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,d=y-(e=-2097152&h)|0,Y=s-((e>>>0>y>>>0)+N|0)|0,H=F-(e=-2097152&p)|0,M=n-((e>>>0>F>>>0)+M|0)|0,n=Ig(I,0,136657,0),y=(e=o[A+40|0])>>>24|0,h=e<<8|(p=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)>>>24,s=(e=o[A+41|0])>>>16|0,y=(s|=y)>>>3|0,s=(7&s)<<29|(e=h|e<<16)>>>3,e=y+f|0,e=s>>>0>(h=s+n|0)>>>0?e+1|0:e,y=Ig(Q,0,-683901,-1),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,D=s,y=Ig(I,0,-997805,-1),s=f,s=y>>>0>(h=y+(p>>>6&2097151)|0)>>>0?s+1|0:s,p=(y=h)+(h=Ig(Q,0,136657,0))|0,y=f+s|0,s=Ig(i,X,-683901,-1),y=f+(h>>>0>p>>>0?y+1|0:y)|0,k=y=s>>>0>(u=s+p|0)>>>0?y+1|0:y,W=s=y-((u>>>0<4293918720)-1|0)|0,e=e+(y=s>>21)|0,p=e=(s=(2097151&s)<<11|(F=u- -1048576|0)>>>21)>>>0>(N=s+D|0)>>>0?e+1|0:e,x=e=e-((N>>>0<4293918720)-1|0)|0,y=(y=e>>21)+M|0,R=y=(e=(s=(2097151&e)<<11|(D=N- -1048576|0)>>>21)+H|0)>>>0>>0?y+1|0:y,v=e,y=Ig(e,y,-683901,-1),e=f+Y|0,J=s=y+d|0,h=y>>>0>s>>>0?e+1|0:e,H=K-(e=-2097152&w)|0,M=S-((4095&L)+(e>>>0>K>>>0)|0)|0,K=Ig(g,0,666643,0),e=(y=o[A+19|0])>>>24|0,w=y<<8|(S=o[A+15|0]|o[A+16|0]<<8|o[A+17|0]<<16|o[A+18|0]<<24)>>>24,s=e,y=(7&(s|=y=(e=o[A+20|0])>>>16|0))<<29|(y=(e<<=16)|w)>>>3,s=f+(s>>>3|0)|0,s=y>>>0>(w=y+K|0)>>>0?s+1|0:s,e=Ig(B,j,470296,0),y=f+s|0,e=e>>>0>(w=e+w|0)>>>0?y+1|0:y,s=Ig(B,j,666643,0),y=f,K=y=s>>>0>(d=s+(S>>>6&2097151)|0)>>>0?y+1|0:y,V=s=y-((d>>>0<4293918720)-1|0)|0,e=e+(y=s>>>21|0)|0,S=e=(s=(2097151&s)<<11|(n=d- -1048576|0)>>>21)>>>0>(Y=s+w|0)>>>0?e+1|0:e,Z=e=e-((Y>>>0<4293918720)-1|0)|0,y=(y=e>>>21|0)+M|0,y=(e=(2097151&e)<<11|(w=Y- -1048576|0)>>>21)>>>0>(s=e+H|0)>>>0?y+1|0:y,M=(e=s)+(s=Ig(z,m,-997805,-1))|0,e=f+y|0,e=s>>>0>M>>>0?e+1|0:e,L=y=N-(s=-2097152&D)|0,E=D=p-((s>>>0>N>>>0)+x|0)|0,s=Ig(v,R,136657,0),e=f+e|0,e=s>>>0>(p=s+M|0)>>>0?e+1|0:e,s=Ig(y,D,-683901,-1),y=f+e|0,p=y=s>>>0>(M=s+p|0)>>>0?y+1|0:y,x=e=y-((M>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=M- -1048576|0)>>>21,e=(e>>21)+h|0,J=y=(e=y>>>0>(N=y+J|0)>>>0?e+1|0:e)-((N>>>0<4293918720)-1|0)|0,H=(2097151&y)<<11|(h=N- -1048576|0)>>>21,y=(y>>21)+O|0,_=q=H+q|0,H=H>>>0>q>>>0?y+1|0:y,c=N-(y=-2097152&h)|0,t=e-((y>>>0>N>>>0)+J|0)|0,q=M-(e=-2097152&D)|0,O=p-((e>>>0>M>>>0)+x|0)|0,s=(e=Ig(z,m,654183,0))+(Y-(y=-2097152&w)|0)|0,y=f+(S-((2147483647&Z)+(y>>>0>Y>>>0)|0)|0)|0,y=e>>>0>s>>>0?y+1|0:y,e=Ig(v,R,-997805,-1),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(L,E,136657,0))|0,e=f+y|0,J=h,p=s>>>0>h>>>0?e+1|0:e,Y=u-(e=-2097152&F)|0,N=k-((e>>>0>u>>>0)+W|0)|0,S=Ig(P,0,-683901,-1),e=(y=o[A+35|0])>>>24|0,h=y<<8|(w=o[A+31|0]|o[A+32|0]<<8|o[A+33|0]<<16|o[A+34|0]<<24)>>>24,s=e,y=(e=o[A+36|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+S|0)>>>0?s+1|0:s,h=(e=Ig(I,0,654183,0))+y|0,y=f+s|0,y=e>>>0>h>>>0?y+1|0:y,s=Ig(Q,0,-997805,-1),e=f+y|0,e=s>>>0>(h=s+h|0)>>>0?e+1|0:e,y=Ig(i,X,136657,0),e=f+e|0,D=s=y+h|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(g,0,-683901,-1),y=f,y=e>>>0>(s=e+(w>>>4&2097151)|0)>>>0?y+1|0:y,w=(e=Ig(P,0,136657,0))+s|0,s=f+y|0,s=e>>>0>w>>>0?s+1|0:s,e=Ig(I,0,470296,0),y=f+s|0,y=e>>>0>(w=e+w|0)>>>0?y+1|0:y,w=(s=Ig(Q,0,654183,0))+w|0,e=f+y|0,y=Ig(i,X,-997805,-1),e=f+(s>>>0>w>>>0?e+1|0:e)|0,S=e=y>>>0>(k=y+w|0)>>>0?e+1|0:e,r=y=e-((k>>>0<4293918720)-1|0)|0,s=(e=y>>21)+h|0,M=y=(s=(y=(2097151&y)<<11|(w=k- -1048576|0)>>>21)>>>0>(F=y+D|0)>>>0?s+1|0:s)-((F>>>0<4293918720)-1|0)|0,e=(e=y>>21)+N|0,x=e=(y=(h=(2097151&y)<<11|(D=F- -1048576|0)>>>21)+Y|0)>>>0>>0?e+1|0:e,h=J,J=y,e=Ig(y,e,-683901,-1),y=f+p|0,N=h=h+e|0,h=e>>>0>h>>>0?y+1|0:y,p=(e=Ig(z,m,470296,0))+(d-(y=-2097152&n)|0)|0,y=f+(K-((2047&V)+(y>>>0>d>>>0)|0)|0)|0,y=e>>>0>p>>>0?y+1|0:y,n=(e=p)+(p=Ig(v,R,654183,0))|0,e=f+y|0,e=p>>>0>n>>>0?e+1|0:e,p=Ig(L,E,-997805,-1),y=f+e|0,y=p>>>0>(n=p+n|0)>>>0?y+1|0:y,u=D=F-(e=-2097152&D)|0,a=p=s-((e>>>0>F>>>0)+M|0)|0,s=Ig(J,x,136657,0),e=f+y|0,e=s>>>0>(n=s+n|0)>>>0?e+1|0:e,s=Ig(D,p,-683901,-1),y=f+e|0,p=y=s>>>0>(K=s+n|0)>>>0?y+1|0:y,Y=e=y-((K>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=K- -1048576|0)>>>21,e=(e>>21)+h|0,N=y=(e=y>>>0>(n=y+N|0)>>>0?e+1|0:e)-((n>>>0<4293918720)-1|0)|0,F=(2097151&y)<<11|(h=n- -1048576|0)>>>21,y=(y>>21)+O|0,W=M=F+q|0,M=F>>>0>M>>>0?y+1|0:y,V=n-(y=-2097152&h)|0,Z=e-((y>>>0>n>>>0)+N|0)|0,q=K-(e=-2097152&D)|0,O=p-((e>>>0>K>>>0)+Y|0)|0,p=Ig(z,m,666643,0),e=(y=o[A+14|0])>>>24|0,h=y<<8|(N=o[A+10|0]|o[A+11|0]<<8|o[A+12|0]<<16|o[A+13|0]<<24)>>>24,s=e,y=(e=o[A+15|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+p|0)>>>0?s+1|0:s,h=(e=y)+(y=Ig(v,R,470296,0))|0,e=f+s|0,e=y>>>0>h>>>0?e+1|0:e,y=Ig(L,E,654183,0),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(J,x,-997805,-1))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(u,a,136657,0),y=f+y|0,K=s=e+h|0,h=e>>>0>s>>>0?y+1|0:y,w=k-(e=-2097152&w)|0,p=S-((e>>>0>k>>>0)+r|0)|0,s=Ig(g,0,136657,0),e=f,e=(y=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)>>>7&2097151)>>>0>(s=y+s|0)>>>0?e+1|0:e,D=(y=s)+(s=Ig(P,0,-997805,-1))|0,y=f+e|0,y=s>>>0>D>>>0?y+1|0:y,e=Ig(B,j,-683901,-1),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=Ig(I,0,666643,0))+s|0,s=f+y|0,s=e>>>0>D>>>0?s+1|0:s,y=Ig(Q,0,470296,0),e=f+s|0,e=y>>>0>(D=y+D|0)>>>0?e+1|0:e,y=Ig(i,X,654183,0),e=f+e|0,y=(l>>21)+(y>>>0>(s=y+D|0)>>>0?e+1|0:e)|0,F=y=(D=(2097151&l)<<11|b>>>21)>>>0>(b=D+s|0)>>>0?y+1|0:y,l=e=y-((b>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(n=b- -1048576|0)>>>21,e=(e>>21)+p|0,d=e=(y=D+w|0)>>>0>>0?e+1|0:e,Y=y,y=Ig(y,e,-683901,-1),e=f+h|0,D=s=y+K|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(v,R,666643,0),y=f,y=e>>>0>(s=e+(N>>>4&2097151)|0)>>>0?y+1|0:y,e=Ig(L,E,470296,0),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,p=(e=Ig(J,x,654183,0))+s|0,s=f+y|0,s=e>>>0>p>>>0?s+1|0:s,y=Ig(u,a,-997805,-1),e=f+s|0,e=y>>>0>(p=y+p|0)>>>0?e+1|0:e,y=Ig(Y,d,136657,0),e=f+e|0,S=e=y>>>0>(k=y+p|0)>>>0?e+1|0:e,R=y=e-((k>>>0<4293918720)-1|0)|0,e=D,D=(2097151&y)<<11|(w=k- -1048576|0)>>>21,y=(y>>21)+h|0,v=h=(y=(s=e+D|0)>>>0>>0?y+1|0:y)-((s>>>0<4293918720)-1|0)|0,e=(e=h>>21)+O|0,z=D=(h=(2097151&h)<<11|(p=s- -1048576|0)>>>21)+q|0,K=h>>>0>D>>>0?e+1|0:e,D=s,s=y,h=(b-(y=-2097152&n)|0)+(n=(2097151&U)<<11|G>>>21)|0,y=(F-((y>>>0>b>>>0)+l|0)|0)+(U>>21)|0,N=y=h>>>0>>0?y+1|0:y,P=y=y-((h>>>0<4293918720)-1|0)|0,G=e=y>>21,e=Ig(m=(2097151&y)<<11|(l=h- -1048576|0)>>>21,e,-683901,-1),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,j=y-(e=-2097152&p)|0,X=s-((e>>>0>y>>>0)+v|0)|0,e=Ig(m,G,136657,0),y=S+f|0,v=(s=e+k|0)-(e=-2097152&w)|0,b=(y=s>>>0>>0?y+1|0:y)-((e>>>0>s>>>0)+R|0)|0,y=Ig(L,E,666643,0),s=f,s=(e=(o[A+7|0]|o[A+8|0]<<8|o[A+9|0]<<16|o[A+10|0]<<24)>>>7&2097151)>>>0>(y=e+y|0)>>>0?s+1|0:s,D=(e=Ig(J,x,470296,0))+y|0,y=f+s|0,y=e>>>0>D>>>0?y+1|0:y,e=Ig(u,a,654183,0),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=s)+(s=Ig(Y,d,-997805,-1))|0,e=f+y|0,n=D,D=s>>>0>D>>>0?e+1|0:e,S=Ig(J,x,666643,0),e=(y=o[A+6|0])>>>24|0,p=y<<8|(R=o[A+2|0]|o[A+3|0]<<8|o[A+4|0]<<16|o[A+5|0]<<24)>>>24,s=e,y=(e=o[A+7|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=e<<16|p)>>>2),e=f,e=y>>>0>(s=y+S|0)>>>0?e+1|0:e,p=(y=Ig(u,a,470296,0))+s|0,s=f+e|0,s=y>>>0>p>>>0?s+1|0:s,y=Ig(Y,d,654183,0),e=f+s|0,S=e=y>>>0>(F=y+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,y=(s=e>>21)+D|0,k=e=(y=(e=(2097151&e)<<11|(w=F- -1048576|0)>>>21)>>>0>(p=e+n|0)>>>0?y+1|0:y)-((p>>>0<4293918720)-1|0)|0,n=(2097151&e)<<11|(D=p- -1048576|0)>>>21,e=(e>>21)+b|0,v=J=n+v|0,n=n>>>0>J>>>0?e+1|0:e,e=Ig(m,G,-997805,-1),y=f+y|0,y=e>>>0>(s=e+p|0)>>>0?y+1|0:y,L=s-(e=-2097152&D)|0,x=y-((e>>>0>s>>>0)+k|0)|0,y=Ig(m,G,654183,0),e=S+f|0,J=(s=y+F|0)-(y=-2097152&w)|0,b=(e=s>>>0>>0?e+1|0:e)-((y>>>0>s>>>0)+U|0)|0,e=Ig(u,a,666643,0),y=f,y=e>>>0>(s=e+(R>>>5&2097151)|0)>>>0?y+1|0:y,e=Ig(Y,d,470296,0),y=f+y|0,p=s=e+s|0,s=e>>>0>s>>>0?y+1|0:y,D=Ig(Y,d,666643,0),y=(e=o[A+2|0])<<16&2031616|o[0|A]|o[A+1|0]<<8,e=f,S=e=y>>>0>(k=D+y|0)>>>0?e+1|0:e,d=e=e-((k>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(w=k- -1048576|0)>>>21,e=(e>>21)+s|0,s=e=D>>>0>(F=D+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(p=F- -1048576|0)>>>21,e=(e>>21)+b|0,D=D>>>0>(Y=D+J|0)>>>0?e+1|0:e,e=Ig(m,G,470296,0),s=s+f|0,s=(y=e+F|0)>>>0>>0?s+1|0:s,F=y-(e=-2097152&p)|0,p=s-((e>>>0>y>>>0)+U|0)|0,y=Ig(m,G,666643,0),e=f+(S-(((s=-2097152&w)>>>0>k>>>0)+d|0)|0)|0,y=(s=(e=y>>>0>(b=y+(k-s|0)|0)>>>0?e+1|0:e)>>21)+p|0,e=(e=(y=(e=(2097151&e)<<11|b>>>21)>>>0>(U=e+F|0)>>>0?y+1|0:y)>>21)+D|0,y=(y=(e=(y=(2097151&y)<<11|U>>>21)>>>0>(G=y+Y|0)>>>0?e+1|0:e)>>21)+x|0,s=(e=(y=(e=(2097151&e)<<11|G>>>21)>>>0>(D=e+L|0)>>>0?y+1|0:y)>>21)+n|0,e=(y=(s=(y=(2097151&y)<<11|D>>>21)>>>0>(k=y+v|0)>>>0?s+1|0:s)>>21)+X|0,y=(s=(e=(s=(2097151&s)<<11|k>>>21)>>>0>(F=s+j|0)>>>0?e+1|0:e)>>21)+K|0,K=p=(e=(2097151&e)<<11|F>>>21)+z|0,e=(e=(y=e>>>0>p>>>0?y+1|0:y)>>21)+Z|0,y=(y=(e=(y=(2097151&y)<<11|p>>>21)>>>0>(n=y+V|0)>>>0?e+1|0:e)>>21)+M|0,s=(e=(y=(e=(2097151&e)<<11|n>>>21)>>>0>(S=e+W|0)>>>0?y+1|0:y)>>21)+t|0,e=(y=(s=(y=(2097151&y)<<11|S>>>21)>>>0>(w=y+c|0)>>>0?s+1|0:s)>>21)+H|0,l=(M=h-(y=-2097152&l)|0)+((2097151&(e=(s=(2097151&s)<<11|w>>>21)>>>0>(p=s+_|0)>>>0?e+1|0:e))<<11|p>>>21)|0,e=(N-((y>>>0>h>>>0)+P|0)|0)+(e>>21)|0,N=y=(e=M>>>0>l>>>0?e+1|0:e)>>21,b=(e=Ig(H=(2097151&e)<<11|l>>>21,y,666643,0))+(y=2097151&b)|0,e=f,h=e=y>>>0>b>>>0?e+1|0:e,C[0|A]=b,C[A+1|0]=(255&e)<<24|b>>>8,e=2097151&U,y=Ig(H,N,470296,0)+e|0,s=f,e=(h>>21)+(e>>>0>y>>>0?s+1|0:s)|0,e=(M=(2097151&h)<<11|b>>>21)>>>0>(U=M+y|0)>>>0?e+1|0:e,C[A+4|0]=(2047&e)<<21|U>>>11,y=e,s=U,C[A+3|0]=(7&e)<<29|s>>>3,C[A+2|0]=31&((65535&h)<<16|b>>>16)|s<<5,h=2097151&G,G=Ig(H,N,654183,0)+h|0,e=f,U=(2097151&y)<<11|s>>>21,y=(y>>21)+(h=h>>>0>G>>>0?e+1|0:e)|0,e=y=(G=U+G|0)>>>0>>0?y+1|0:y,C[A+6|0]=(63&e)<<26|G>>>6,h=G,G=0,C[A+5|0]=G<<13|(1572864&s)>>>19|h<<2,s=2097151&D,D=Ig(H,N,-997805,-1)+s|0,y=f,y=s>>>0>D>>>0?y+1|0:y,G=(2097151&(s=e))<<11|h>>>21,s=(e>>=21)+y|0,s=(D=G+D|0)>>>0>>0?s+1|0:s,C[A+9|0]=(511&s)<<23|D>>>9,C[A+8|0]=(1&s)<<31|D>>>1,y=0,C[A+7|0]=y<<18|(2080768&h)>>>14|D<<7,y=2097151&k,h=Ig(H,N,136657,0)+y|0,e=f,e=y>>>0>h>>>0?e+1|0:e,k=(2097151&(y=s))<<11|D>>>21,y=e+(s=y>>21)|0,y=(h=k+h|0)>>>0>>0?y+1|0:y,C[A+12|0]=(4095&y)<<20|h>>>12,s=h,C[A+11|0]=(15&y)<<28|s>>>4,h=0,C[A+10|0]=h<<15|(1966080&D)>>>17|s<<4,h=2097151&F,D=Ig(H,N,-683901,-1)+h|0,e=f,e=h>>>0>D>>>0?e+1|0:e,h=y,y=e+(y>>=21)|0,y=(h=(J=D)+(D=(2097151&h)<<11|s>>>21)|0)>>>0>>0?y+1|0:y,C[A+14|0]=(127&y)<<25|h>>>7,D=0,C[A+13|0]=D<<12|(1048576&s)>>>20|h<<1,e=y>>21,s=(y=(2097151&y)<<11|h>>>21)>>>0>(D=y+(2097151&K)|0)>>>0?e+1|0:e,C[A+17|0]=(1023&s)<<22|D>>>10,C[A+16|0]=(3&s)<<30|D>>>2,y=0,C[A+15|0]=y<<17|(2064384&h)>>>15|D<<6,e=s>>21,e=(y=(2097151&s)<<11|D>>>21)>>>0>(s=y+(2097151&n)|0)>>>0?e+1|0:e,C[A+20|0]=(8191&e)<<19|s>>>13,C[A+19|0]=(31&e)<<27|s>>>5,h=(y=2097151&S)+(S=(2097151&e)<<11|s>>>21)|0,y=e>>21,y=h>>>0>>0?y+1|0:y,S=h,C[A+21|0]=h,n=0,C[A+18|0]=n<<14|(1835008&D)>>>18|s<<3,C[A+22|0]=(255&y)<<24|h>>>8,s=y>>21,s=(h=(D=(2097151&y)<<11|h>>>21)+(2097151&w)|0)>>>0>>0?s+1|0:s,C[A+25|0]=(2047&s)<<21|h>>>11,C[A+24|0]=(7&s)<<29|h>>>3,C[A+23|0]=31&((65535&y)<<16|S>>>16)|h<<5,e=s>>21,e=(y=(2097151&s)<<11|h>>>21)>>>0>(s=y+(2097151&p)|0)>>>0?e+1|0:e,C[A+27|0]=(63&e)<<26|s>>>6,D=0,C[A+26|0]=D<<13|(1572864&h)>>>19|s<<2,y=e,e>>=21,y=(h=(p=(2097151&y)<<11|s>>>21)+(D=2097151&l)|0)>>>0>>0?e+1|0:e,C[A+31|0]=(131071&y)<<15|h>>>17,e=h,C[A+30|0]=(511&y)<<23|e>>>9,h=0,C[A+28|0]=h<<18|(2080768&s)>>>14|e<<7,C[A+29|0]=p+l>>>1}function N(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=E=s-2048|0,Ng(E+1024|0,I,1024),I=0;Q=i[(_=(o=E+1024|0)+(B=I<<3)|0)>>2],a=i[(c=A+B|0)>>2],c=i[_+4>>2]^i[c+4>>2],i[_>>2]=Q^a,i[_+4>>2]=c,c=i[(_=(Q=8|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,c=i[(_=(Q=16|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,Q=i[(B=(_=24|B)+o|0)>>2],c=i[(_=A+_|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^c,i[B+4>>2]=_,128!=(0|(I=I+4|0)););for(C=Ng(E,o,1024),A=0,I=0;E=i[(B=(o=I<<3)+C|0)>>2],Q=i[(_=g+o|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^E,i[B+4>>2]=_,_=i[(B=(E=8|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,_=i[(B=(E=16|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,E=i[(o=(B=24|o)+C|0)>>2],_=i[(B=g+B|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,128!=(0|(I=I+4|0)););for(;c=(Q=i[56+(o=(C+1024|0)+(A<<7)|0)>>2])+(B=i[o+24>>2])|0,I=(t=i[o+60>>2])+(E=i[o+28>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0>>0?I+1|0:I,e=(c=UI(i[o+120>>2]^B,_^i[o+124>>2],32))+(E=i[o+88>>2])|0,I=(y=f)+(a=i[o+92>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0>>0?I+1|0:I),40),I=_+(z=f)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),j=I=f,p=H,e=I,a=(c=i[o+40>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+44>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+104>>2]^B,Q^i[o+108>>2],32))+(_=i[o+72>>2])|0,I=(w=f)+(r=i[o+76>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0>>0?I+1|0:I),48),I=c+(R=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0>>0?I+1|0:I),1),L=I=f,k=M,t=I,w=(r=i[o+32>>2])+(Q=i[o>>2])|0,I=(J=i[o+36>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0>>0?I+1|0:I,D=(d=UI(i[o+96>>2]^Q,a^i[o+100>>2],32))+(c=i[(I=S=o- -64|0)>>2])|0,I=(q=f)+(w=i[I+4>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0>>0?I+1|0:I),40),I=a+(X=f)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),P=I=f,N=I,k=(p=i[o+48>>2])+(r=i[o+16>>2])|0,I=(l=i[o+52>>2])+(e=i[o+20>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,G=(k=UI(i[o+112>>2]^r,t^i[o+116>>2],32))+(e=i[o+80>>2])|0,I=(u=f)+(K=i[o+84>>2])|0,U=e>>>0>G>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(G=(e=K+G|0)^p,l^(p=e>>>0>>0?I+1|0:I),40),I=t+(l=f)|0,U=(G=r+K|0)>>>0>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(G=(r=t+G|0)^k,u^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(u=f)|0,t=(G=e+U|0)>>>0>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+G|0)>>>0

>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0>>0?I+1|0:I,G=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=G+t|0)^M,L^(M=t>>>0>>0?I+1|0:I),40),I=D+(L=f)|0,G=(O=a+N|0)>>>0>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+O|0,I=f+G|0,i[o>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^P,48),i[o+120>>2]=a,I=f,i[o+124>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+80>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+84>>2]=I,W=o,V=UI(a^N,I^L,1),i[W+40>>2]=V,i[o+44>>2]=f,I=h+j|0,a=(t=E+H|0)>>>0>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^l,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^q,48),y=UI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(N=E^e,p^(e=E>>>0>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+96>>2]=B,y=f,i[o+100>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0>>0?I+1|0:I)^D,1),i[W+48>>2]=V,i[o+52>>2]=f,i[o+88>>2]=B,i[o+92>>2]=I,e=UI(t^x,a^z,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,R^(a=B>>>0>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+16>>2]=B,I=B>>>0>>0?I+1|0:I,i[o+20>>2]=I,B=UI(B^t,I^y,48),i[o+104>>2]=B,I=f,i[o+108>>2]=I,a=S,I=I+r|0,t=(h=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+t|0,r=B=Q+h|0,t=I=B>>>0>>0?I+1|0:I,i[a>>2]=B,i[a+4>>2]=I,c=UI(E^J,c^X,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,u^(Q=B>>>0>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+72>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+76>>2]=I,i[o+112>>2]=B,i[o+116>>2]=F,i[o+24>>2]=Q,i[o+28>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+56>>2]=V,i[o+60>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+32>>2]=V,i[o+36>>2]=f,8!=(0|(A=A+1|0)););for(A=0;c=(Q=i[392+(o=(C+1024|0)+(A<<4)|0)>>2])+(B=i[o+136>>2])|0,I=(t=i[o+396>>2])+(E=i[o+140>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0>>0?I+1|0:I,e=(c=UI(i[o+904>>2]^B,_^i[o+908>>2],32))+(E=i[o+648>>2])|0,I=(y=f)+(a=i[o+652>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0>>0?I+1|0:I),40),I=_+(G=f)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),z=I=f,p=H,e=I,a=(c=i[o+264>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+268>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+776>>2]^B,Q^i[o+780>>2],32))+(_=i[o+520>>2])|0,I=(w=f)+(r=i[o+524>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0>>0?I+1|0:I),48),I=c+(j=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0>>0?I+1|0:I),1),R=I=f,k=M,t=I,w=(r=i[o+256>>2])+(Q=i[o>>2])|0,I=(J=i[o+260>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0>>0?I+1|0:I,D=(d=UI(i[o+768>>2]^Q,a^i[o+772>>2],32))+(c=i[o+512>>2])|0,I=(L=f)+(w=i[o+516>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0>>0?I+1|0:I),40),I=a+(q=f)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),X=I=f,N=I,k=(p=i[o+384>>2])+(r=i[o+128>>2])|0,I=(P=i[o+388>>2])+(e=i[o+132>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,S=(k=UI(i[o+896>>2]^r,t^i[o+900>>2],32))+(e=i[o+640>>2])|0,I=(l=f)+(K=i[o+644>>2])|0,U=e>>>0>S>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(S=(e=K+S|0)^p,P^(p=e>>>0>>0?I+1|0:I),40),I=t+(P=f)|0,U=(S=r+K|0)>>>0>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(S=(r=t+S|0)^k,l^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(l=f)|0,t=(S=e+U|0)>>>0>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+S|0)>>>0

>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0>>0?I+1|0:I,S=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=S+t|0)^M,R^(M=t>>>0>>0?I+1|0:I),40),I=D+(R=f)|0,S=(u=a+N|0)>>>0>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+u|0,I=f+S|0,i[o>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^X,48),i[o+904>>2]=a,I=f,i[o+908>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+640>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+644>>2]=I,W=o,V=UI(a^N,I^R,1),i[W+264>>2]=V,i[o+268>>2]=f,I=h+z|0,a=(t=E+H|0)>>>0>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^P,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^L,48),y=UI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(S=E^e,p^(e=E>>>0>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+768>>2]=B,y=f,i[o+772>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0>>0?I+1|0:I)^D,1),i[W+384>>2]=V,i[o+388>>2]=f,i[o+648>>2]=B,i[o+652>>2]=I,e=UI(t^x,a^G,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,j^(a=B>>>0>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+128>>2]=B,I=B>>>0>>0?I+1|0:I,i[o+132>>2]=I,B=UI(B^t,I^y,48),i[o+776>>2]=B,I=f,i[o+780>>2]=I,I=I+r|0,a=(t=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+a|0,r=B=Q+t|0,t=I=B>>>0>>0?I+1|0:I,i[o+512>>2]=B,i[o+516>>2]=I,c=UI(E^J,c^q,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,l^(Q=B>>>0>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+520>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+524>>2]=I,i[o+896>>2]=B,i[o+900>>2]=F,i[o+136>>2]=Q,i[o+140>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+392>>2]=V,i[o+396>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+256>>2]=V,i[o+260>>2]=f,8!=(0|(A=A+1|0)););for(I=Ng(g,C,1024),A=0;B=i[(o=(g=A<<3)+I|0)>>2],Q=i[(_=(E=a=C+1024|0)+g|0)>>2],_=i[o+4>>2]^i[_+4>>2],i[o>>2]=B^Q,i[o+4>>2]=_,_=i[(o=(B=8|g)+I|0)>>2],E=i[(B=B+E|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,E=i[(o=(B=16|g)+I|0)>>2],_=i[(B=B+a|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,B=i[(g=(o=24|g)+I|0)>>2],E=i[(o=o+a|0)>>2],o=i[g+4>>2]^i[o+4>>2],i[g>>2]=B^E,i[g+4>>2]=o,128!=(0|(A=A+4|0)););s=C+2048|0}function G(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;for(s=C=s-800|0,k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,w=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,K=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,U=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,Q=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,E=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,a=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,_=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,c=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,t=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,r=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,n=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g- -64|0,e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I>>2]=33620224^e,i[g+56>>2]=1496785429,i[g+60>>2]=1652156816,i[(A=g+48|0)>>2]=33620224,i[A+4>>2]=218629379,i[g+40>>2]=1110511904,i[g+44>>2]=-584534669,i[(B=g+32|0)>>2]=1427652059,i[B+4>>2]=-248528275,y=n^e,i[g>>2]=y,i[g+92>>2]=-584534669^r,i[g+88>>2]=1110511904^t,i[g+84>>2]=-248528275^c,i[(n=g+80|0)>>2]=1427652059^_,i[g+76>>2]=1652156816^a,i[g+72>>2]=1496785429^E,i[g+68>>2]=218629379^Q,U^=r,i[g+28>>2]=U,K^=t,i[g+24>>2]=K,h=w^c,i[g+20>>2]=h,M^=_,i[(w=g+16|0)>>2]=M,G^=a,i[g+12>>2]=G,D=S^E,i[g+8>>2]=D,f=k^Q,i[g+4>>2]=f,S=0;k=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=k,k=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=k,k=i[I+12>>2],i[C+760>>2]=i[I+8>>2],i[C+764>>2]=k,k=i[I+4>>2],i[C+752>>2]=i[I>>2],i[C+756>>2]=k,k=i[n+12>>2],i[C+744>>2]=i[n+8>>2],i[C+748>>2]=k,k=i[n+4>>2],i[C+736>>2]=i[n>>2],i[C+740>>2]=k,AI(k=C+768|0,C+752|0,C+736|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+728>>2]=i[A+8>>2],i[C+732>>2]=p,p=i[A+4>>2],i[C+720>>2]=i[A>>2],i[C+724>>2]=p,p=i[I+12>>2],i[C+712>>2]=i[I+8>>2],i[C+716>>2]=p,p=i[I+4>>2],i[C+704>>2]=i[I>>2],i[C+708>>2]=p,AI(k,C+720|0,C+704|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+696>>2]=i[B+8>>2],i[C+700>>2]=p,p=i[B+4>>2],i[C+688>>2]=i[B>>2],i[C+692>>2]=p,p=i[A+12>>2],i[C+680>>2]=i[A+8>>2],i[C+684>>2]=p,p=i[A+4>>2],i[C+672>>2]=i[A>>2],i[C+676>>2]=p,AI(k,C+688|0,C+672|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+664>>2]=i[w+8>>2],i[C+668>>2]=p,p=i[w+4>>2],i[C+656>>2]=i[w>>2],i[C+660>>2]=p,p=i[B+12>>2],i[C+648>>2]=i[B+8>>2],i[C+652>>2]=p,p=i[B+4>>2],i[C+640>>2]=i[B>>2],i[C+644>>2]=p,AI(k,C+656|0,C+640|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+632>>2]=i[g+8>>2],i[C+636>>2]=p,p=i[g+4>>2],i[C+624>>2]=i[g>>2],i[C+628>>2]=p,p=i[w+12>>2],i[C+616>>2]=i[w+8>>2],i[C+620>>2]=p,p=i[w+4>>2],i[C+608>>2]=i[w>>2],i[C+612>>2]=p,AI(k,C+624|0,C+608|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+600>>2]=i[C+792>>2],i[C+604>>2]=p,p=i[C+788>>2],i[C+592>>2]=i[C+784>>2],i[C+596>>2]=p,p=i[g+12>>2],i[C+584>>2]=i[g+8>>2],i[C+588>>2]=p,p=i[g+4>>2],i[C+576>>2]=i[g>>2],i[C+580>>2]=p,AI(k,C+592|0,C+576|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^a,i[g+8>>2]=N^E,i[g+4>>2]=F^Q,i[g>>2]=p^e,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+568>>2]=i[I+8>>2],i[C+572>>2]=p,p=i[I+4>>2],i[C+560>>2]=i[I>>2],i[C+564>>2]=p,p=i[n+12>>2],i[C+552>>2]=i[n+8>>2],i[C+556>>2]=p,p=i[n+4>>2],i[C+544>>2]=i[n>>2],i[C+548>>2]=p,AI(k,C+560|0,C+544|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+536>>2]=i[A+8>>2],i[C+540>>2]=p,p=i[A+4>>2],i[C+528>>2]=i[A>>2],i[C+532>>2]=p,p=i[I+12>>2],i[C+520>>2]=i[I+8>>2],i[C+524>>2]=p,p=i[I+4>>2],i[C+512>>2]=i[I>>2],i[C+516>>2]=p,AI(k,C+528|0,C+512|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+504>>2]=i[B+8>>2],i[C+508>>2]=p,p=i[B+4>>2],i[C+496>>2]=i[B>>2],i[C+500>>2]=p,p=i[A+12>>2],i[C+488>>2]=i[A+8>>2],i[C+492>>2]=p,p=i[A+4>>2],i[C+480>>2]=i[A>>2],i[C+484>>2]=p,AI(k,C+496|0,C+480|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+472>>2]=i[w+8>>2],i[C+476>>2]=p,p=i[w+4>>2],i[C+464>>2]=i[w>>2],i[C+468>>2]=p,p=i[B+12>>2],i[C+456>>2]=i[B+8>>2],i[C+460>>2]=p,p=i[B+4>>2],i[C+448>>2]=i[B>>2],i[C+452>>2]=p,AI(k,C+464|0,C+448|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+440>>2]=i[g+8>>2],i[C+444>>2]=p,p=i[g+4>>2],i[C+432>>2]=i[g>>2],i[C+436>>2]=p,p=i[w+12>>2],i[C+424>>2]=i[w+8>>2],i[C+428>>2]=p,p=i[w+4>>2],i[C+416>>2]=i[w>>2],i[C+420>>2]=p,AI(k,C+432|0,C+416|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+408>>2]=i[C+792>>2],i[C+412>>2]=p,p=i[C+788>>2],i[C+400>>2]=i[C+784>>2],i[C+404>>2]=p,p=i[g+12>>2],i[C+392>>2]=i[g+8>>2],i[C+396>>2]=p,p=i[g+4>>2],i[C+384>>2]=i[g>>2],i[C+388>>2]=p,AI(k,C+400|0,C+384|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^r,i[g+8>>2]=N^t,i[g+4>>2]=F^c,i[g>>2]=p^_,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+376>>2]=i[I+8>>2],i[C+380>>2]=p,p=i[I+4>>2],i[C+368>>2]=i[I>>2],i[C+372>>2]=p,p=i[n+12>>2],i[C+360>>2]=i[n+8>>2],i[C+364>>2]=p,p=i[n+4>>2],i[C+352>>2]=i[n>>2],i[C+356>>2]=p,AI(k,C+368|0,C+352|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+344>>2]=i[A+8>>2],i[C+348>>2]=p,p=i[A+4>>2],i[C+336>>2]=i[A>>2],i[C+340>>2]=p,p=i[I+12>>2],i[C+328>>2]=i[I+8>>2],i[C+332>>2]=p,p=i[I+4>>2],i[C+320>>2]=i[I>>2],i[C+324>>2]=p,AI(k,C+336|0,C+320|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+312>>2]=i[B+8>>2],i[C+316>>2]=p,p=i[B+4>>2],i[C+304>>2]=i[B>>2],i[C+308>>2]=p,p=i[A+12>>2],i[C+296>>2]=i[A+8>>2],i[C+300>>2]=p,p=i[A+4>>2],i[C+288>>2]=i[A>>2],i[C+292>>2]=p,AI(k,C+304|0,C+288|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+280>>2]=i[w+8>>2],i[C+284>>2]=p,p=i[w+4>>2],i[C+272>>2]=i[w>>2],i[C+276>>2]=p,p=i[B+12>>2],i[C+264>>2]=i[B+8>>2],i[C+268>>2]=p,p=i[B+4>>2],i[C+256>>2]=i[B>>2],i[C+260>>2]=p,AI(k,C+272|0,C+256|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+248>>2]=i[g+8>>2],i[C+252>>2]=p,p=i[g+4>>2],i[C+240>>2]=i[g>>2],i[C+244>>2]=p,p=i[w+12>>2],i[C+232>>2]=i[w+8>>2],i[C+236>>2]=p,p=i[w+4>>2],i[C+224>>2]=i[w>>2],i[C+228>>2]=p,AI(k,C+240|0,C+224|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+216>>2]=i[C+792>>2],i[C+220>>2]=p,p=i[C+788>>2],i[C+208>>2]=i[C+784>>2],i[C+212>>2]=p,p=i[g+12>>2],i[C+200>>2]=i[g+8>>2],i[C+204>>2]=p,p=i[g+4>>2],i[C+192>>2]=i[g>>2],i[C+196>>2]=p,AI(k,C+208|0,C+192|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=G^i[C+780>>2],i[g+8>>2]=N^D,i[g+4>>2]=F^f,i[g>>2]=p^y,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+184>>2]=i[I+8>>2],i[C+188>>2]=p,p=i[I+4>>2],i[C+176>>2]=i[I>>2],i[C+180>>2]=p,p=i[n+12>>2],i[C+168>>2]=i[n+8>>2],i[C+172>>2]=p,p=i[n+4>>2],i[C+160>>2]=i[n>>2],i[C+164>>2]=p,AI(k,C+176|0,C+160|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+152>>2]=i[A+8>>2],i[C+156>>2]=p,p=i[A+4>>2],i[C+144>>2]=i[A>>2],i[C+148>>2]=p,p=i[I+12>>2],i[C+136>>2]=i[I+8>>2],i[C+140>>2]=p,p=i[I+4>>2],i[C+128>>2]=i[I>>2],i[C+132>>2]=p,AI(k,C+144|0,C+128|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+120>>2]=i[B+8>>2],i[C+124>>2]=p,p=i[B+4>>2],i[C+112>>2]=i[B>>2],i[C+116>>2]=p,p=i[A+12>>2],i[C+104>>2]=i[A+8>>2],i[C+108>>2]=p,p=i[A+4>>2],i[C+96>>2]=i[A>>2],i[C+100>>2]=p,AI(k,C+112|0,C+96|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+88>>2]=i[w+8>>2],i[C+92>>2]=p,p=i[w+4>>2],i[C+80>>2]=i[w>>2],i[C+84>>2]=p,p=i[B+12>>2],i[C+72>>2]=i[B+8>>2],i[C+76>>2]=p,p=i[B+4>>2],i[C+64>>2]=i[B>>2],i[C+68>>2]=p,AI(k,C+80|0,C- -64|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[w+12>>2],i[C+40>>2]=i[w+8>>2],i[C+44>>2]=p,p=i[w+4>>2],i[C+32>>2]=i[w>>2],i[C+36>>2]=p,AI(k,C+48|0,C+32|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+24>>2]=i[C+792>>2],i[C+28>>2]=p,p=i[C+788>>2],i[C+16>>2]=i[C+784>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(k,C+16|0,C),k=i[C+768>>2],p=i[C+772>>2],F=i[C+776>>2],i[g+12>>2]=U^i[C+780>>2],i[g+8>>2]=F^K,i[g+4>>2]=p^h,i[g>>2]=k^M,4!=(0|(S=S+1|0)););s=C+800|0}function M(A,I){var g,B,E,a,_,c,t,r,e,y,h,D,p,w,n,k,F,S,N,G,M,K,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=g=s-48|0,Y=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,C[A+24|0]=H,C[A+25|0]=H>>>8,C[A+26|0]=H>>>16,C[A+27|0]=H>>>24,C[A+28|0]=Y,C[A+29|0]=Y>>>8,C[A+30|0]=Y>>>16,C[A+31|0]=Y>>>24,Y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,H=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,C[0|A]=H,C[A+1|0]=H>>>8,C[A+2|0]=H>>>16,C[A+3|0]=H>>>24,C[A+4|0]=Y,C[A+5|0]=Y>>>8,C[A+6|0]=Y>>>16,C[A+7|0]=Y>>>24,Y=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,C[A+16|0]=H,C[A+17|0]=H>>>8,C[A+18|0]=H>>>16,C[A+19|0]=H>>>24,C[A+20|0]=Y,C[A+21|0]=Y>>>8,C[A+22|0]=Y>>>16,C[A+23|0]=Y>>>24,H=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,I=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,C[A+12|0]=H,C[A+13|0]=H>>>8,C[A+14|0]=H>>>16,C[A+15|0]=H>>>24,I=o[A+31|0],C[A+31|0]=127&I,fA(g,A),y=128&I,s=I=s-960|0,v(H=I+304|0,g),i[I+304>>2]=i[I+304>>2]+1,LA(H,H),Y=Ig(H=i[I+340>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,x=Y-(-33554432&P)|0,U=Ig(H=i[I+336>>2],H>>31,486662,0),Y=f,J=Ig(H=i[I+332>>2],H>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,H=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,B=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+292>>2]=0-B,W=d-(-67108864&Y)|0,i[I+288>>2]=0-W,x=J-(-33554432&m)|0,Y=Ig(H=i[I+328>>2],H>>31,486662,0),H=f,m=Ig(U=i[I+324>>2],U>>31,486662,0),U=f,u=Y,H=H+(Y=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)|0,H=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0>>0?H+1|0:H,E=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+284>>2]=0-E,a=U-(-67108864&Y)|0,i[I+280>>2]=0-a,x=m-(-33554432&d)|0,U=Ig(H=i[I+320>>2],H>>31,486662,0),H=f,m=Ig(Y=i[I+316>>2],Y>>31,486662,0),Y=f,u=U,H=(U=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+H|0,U=H=(Y=u+(J=(33554431&Y)<<7|d>>>25)|0)>>>0>>0?H+1|0:H,_=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|J>>>26)+x|0,i[I+276>>2]=0-_,c=Y-(-67108864&J)|0,i[I+272>>2]=0-c,u=m-(-33554432&d)|0,H=Ig(H=i[I+312>>2],H>>31,486662,0),x=f,J=Ig(Y=i[I+308>>2],Y>>31,486662,0),U=f,Y=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+x|0,Y=Y>>>0>(d=Y+H|0)>>>0?U+1|0:U,t=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+u|0,i[I+268>>2]=0-t,r=d-(-67108864&H)|0,i[I+264>>2]=0-r,d=J-(-33554432&m)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,J=Y,Y=Ig(U=i[I+304>>2],U>>31,486662,0),H=f+H|0,Y=(U=J+Y|0)>>>0>>0?H+1|0:H,e=((67108863&(Y=(H=U+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+d|0,i[I+260>>2]=0-e,L=U-(-67108864&H)|0,i[I+256>>2]=0-L,R(Y=I+208|0,H=I+256|0),b(I+160|0,H,Y),h=i[I+196>>2],D=i[I+160>>2],q=i[I+208>>2],p=i[I+164>>2],w=i[I+168>>2],z=i[I+212>>2],j=i[I+216>>2],n=i[I+172>>2],k=i[I+176>>2],X=i[I+220>>2],O=i[I+224>>2],F=i[I+180>>2],S=i[I+184>>2],u=i[I+228>>2],x=i[I+232>>2],N=i[I+188>>2],G=i[I+192>>2],Y=Ig(H=i[I+244>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,M=Y-(-33554432&P)|0,H=Ig(H=i[I+240>>2],H>>31,486662,0),K=f,J=Ig(Y=i[I+236>>2],Y>>31,486662,0),U=f,Y=H,H=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+K|0,H=H>>>0>(d=Y+H|0)>>>0?U+1|0:U,U=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+M|0,i[I+244>>2]=U,i[I+388>>2]=U+(h-B|0),H=d-(-67108864&Y)|0,i[I+240>>2]=H,i[I+384>>2]=H+(G-W|0),W=J-(-33554432&m)|0,H=Ig(x,x>>31,486662,0),J=f,m=Ig(u,u>>31,486662,0),Y=f,u=H,H=(H=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+J|0,U=H=(U=(33554431&Y)<<7|d>>>25)>>>0>(Y=u+U|0)>>>0?H+1|0:H,J=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|(H=J)>>>26)+W|0,i[I+236>>2]=J,i[I+380>>2]=J+(N-E|0),H=Y-(-67108864&H)|0,i[I+232>>2]=H,i[I+376>>2]=H+(S-a|0),x=m-(-33554432&d)|0,U=Ig(O,O>>31,486662,0),Y=f,J=Ig(X,X>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,Y=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,U=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+x|0,i[I+228>>2]=U,i[I+372>>2]=U+(F-_|0),H=d-(-67108864&H)|0,i[I+224>>2]=H,i[I+368>>2]=H+(k-c|0),x=J-(-33554432&m)|0,H=Ig(j,j>>31,486662,0),Y=f,m=Ig(z,z>>31,486662,0),U=f,u=H,Y=(H=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)+Y|0,H=Y=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0>>0?Y+1|0:Y,J=((67108863&(H=(J=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|(Y=J)>>>26)+x|0,i[I+220>>2]=J,i[I+364>>2]=J+(n-t|0),H=U-(-67108864&Y)|0,i[I+216>>2]=H,i[I+360>>2]=H+(w-r|0),d=m-(-33554432&d)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,U=Y,Y=Ig(q,q>>31,486662,0),H=f+H|0,H=(U=U+Y|0)>>>0>>0?H+1|0:H,l=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+d|0,i[I+212>>2]=l,i[I+356>>2]=l+(p-e|0),H=U-(-67108864&Y)|0,i[I+208>>2]=H,i[I+352>>2]=H+(D-L|0),b(H=I+624|0,Y=I+352|0,Y),b(I,Y,H),R(Y=I+784|0,I),R(Y,Y),b(H=I+912|0,I,Y),R(Y=I+576|0,H),R(Y,Y),R(Y,Y),R(Y,Y),b(U=I+528|0,H,Y),R(U,U),R(U,U),b(U,U,I),H=i[I+564>>2],i[I+512>>2]=i[I+560>>2],i[I+516>>2]=H,H=i[I+556>>2],i[I+504>>2]=i[I+552>>2],i[I+508>>2]=H,H=i[I+548>>2],i[I+496>>2]=i[I+544>>2],i[I+500>>2]=H,H=i[I+540>>2],i[I+488>>2]=i[I+536>>2],i[I+492>>2]=H,H=i[I+532>>2],i[I+480>>2]=i[I+528>>2],i[I+484>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H=I+480|0),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y=I+432|0),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H;R(H=I+528|0,H),120!=(0|(V=V+1|0)););b(H,H,I+432|0),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),b(H,H,I+480|0),R(H,H),R(H,H),R(H,H),b(H,H,I),R(H,H),QI(I+400|0,H),q=i[I+256>>2],z=i[I+260>>2],j=i[I+264>>2],X=i[I+268>>2],O=i[I+272>>2],d=i[I+276>>2],l=i[I+280>>2],U=i[I+284>>2],Y=i[I+288>>2],u=(L=0-(1&C[I+401|0])|0)&(0-(H=i[I+292>>2])^H)^H,i[I+660>>2]=u,x=Y^L&(Y^0-Y),i[I+656>>2]=x,P=U^L&(U^0-U),i[I+652>>2]=P,J=l^L&(l^0-l),i[I+648>>2]=J,m=d^L&(d^0-d),i[I+644>>2]=m,d=O^L&(O^0-O),i[I+640>>2]=d,l=X^L&(X^0-X),i[I+636>>2]=l,U=j^L&(j^0-j),i[I+632>>2]=U,Y=z^L&(z^0-z),i[I+628>>2]=Y,H=(q^L&(q^0-q))-(486662&L)|0,i[I+624>>2]=H+1,i[I+820>>2]=u,i[I+816>>2]=x,i[I+812>>2]=P,i[I+808>>2]=J,i[I+804>>2]=m,i[I+800>>2]=d,i[I+796>>2]=l,i[I+792>>2]=U,i[I+788>>2]=Y,i[I+784>>2]=H-1,LA(I,I+624|0),b(H=I+912|0,I+784|0,I),QI(A,H),C[A+31|0]=o[A+31|0]|y,MA(I,A)&&(DB(),Q()),H=i[I+36>>2],i[I+816>>2]=i[I+32>>2],i[I+820>>2]=H,H=i[I+28>>2],i[I+808>>2]=i[I+24>>2],i[I+812>>2]=H,H=i[I+20>>2],i[I+800>>2]=i[I+16>>2],i[I+804>>2]=H,H=i[I+12>>2],i[I+792>>2]=i[I+8>>2],i[I+796>>2]=H,H=i[I+52>>2],i[I+832>>2]=i[I+48>>2],i[I+836>>2]=H,H=i[I+60>>2],i[I+840>>2]=i[I+56>>2],i[I+844>>2]=H,H=i[4+(Y=I- -64|0)>>2],i[I+848>>2]=i[Y>>2],i[I+852>>2]=H,H=i[I+76>>2],i[I+856>>2]=i[I+72>>2],i[I+860>>2]=H,H=i[I+4>>2],i[I+784>>2]=i[I>>2],i[I+788>>2]=H,H=i[I+44>>2],i[I+824>>2]=i[I+40>>2],i[I+828>>2]=H,H=i[I+116>>2],i[I+896>>2]=i[I+112>>2],i[I+900>>2]=H,H=i[I+108>>2],i[I+888>>2]=i[I+104>>2],i[I+892>>2]=H,H=i[I+100>>2],i[I+880>>2]=i[I+96>>2],i[I+884>>2]=H,H=i[I+92>>2],i[I+872>>2]=i[I+88>>2],i[I+876>>2]=H,H=i[I+84>>2],i[I+864>>2]=i[I+80>>2],i[I+868>>2]=H,KA(J=I+624|0,m=I+784|0),b(m,J,d=I+744|0),b(Y=I+824|0,U=I+664|0,l=I+704|0),b(H=I+864|0,l,d),KA(J,m),b(m,J,d),b(Y,U,l),b(H,l,d),KA(J,m),b(I,J,d),b(Y=I+40|0,U,l),b(H=I+80|0,l,d),b(I+120|0,J,U),LA(J,H),b(m,I,J),b(H=I+912|0,Y,J),QI(A,H),QI(I+576|0,m),C[A+31|0]=o[A+31|0]^o[I+576|0]<<7,s=I+960|0,s=g+48|0}function K(A){var I,g=0,C=0,B=0,Q=0,a=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0;s=I=s-16|0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if((A|=0)>>>0<=244){if(3&(g=(Q=i[9405])>>>(A=(t=A>>>0<11?16:A+11&504)>>>3|0)|0)){A=37660+(g=(C=A+(1&~g)|0)<<3)|0,g=i[g+37668>>2],(0|A)!=(0|(B=i[g+8>>2]))?(i[B+12>>2]=A,i[A+8>>2]=B):(h=37620,D=Lg(-2,C)&Q,i[h>>2]=D),A=g+8|0,C<<=3,i[g+4>>2]=3|C,i[4+(g=g+C|0)>>2]=1|i[g+4>>2];break A}if((r=i[9407])>>>0>=t>>>0)break a;if(g){g=37660+(C=(A=FC((0-(C=2<>2],(0|g)!=(0|(B=i[C+8>>2]))?(i[B+12>>2]=g,i[g+8>>2]=B):(Q=Lg(-2,A)&Q,i[9405]=Q),i[C+4>>2]=3|t,a=(A<<=3)-t|0,i[4+(c=C+t|0)>>2]=1|a,i[A+C>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),A=C+8|0,i[9410]=c,i[9407]=a;break A}if(!(y=i[9406]))break a;for(C=i[37924+(FC(y)<<2)>>2],a=(-8&i[C+4>>2])-t|0,g=C;(A=i[g+16>>2])||(A=i[g+20>>2]);)a=(g=(B=(-8&i[A+4>>2])-t|0)>>>0>>0)?B:a,C=g?A:C,g=A;if(e=i[C+24>>2],(0|C)!=(0|(A=i[C+12>>2]))){g=i[C+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break I}if(g=i[C+20>>2])B=C+20|0;else{if(!(g=i[C+16>>2]))break E;B=C+16|0}for(;c=B,B=(A=g)+20|0,(g=i[A+20>>2])||(B=A+16|0,g=i[A+16>>2]););i[c>>2]=0;break I}if(t=-1,!(A>>>0>4294967231)&&(t=-8&(g=A+11|0),c=i[9406])){r=31,a=0-t|0,A>>>0<=16777204&&(r=62+((t>>>38-(A=_(g>>>8|0))&1)-(A<<1)|0)|0);_:{c:{if(g=i[37924+(r<<2)>>2])for(A=0,C=t<<(31!=(0|r)?25-(r>>>1|0):0);;){if(!((Q=(-8&i[g+4>>2])-t|0)>>>0>=a>>>0||(B=g,a=Q))){a=0,A=g;break c}if(Q=i[g+20>>2],g=i[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<>2]}if(!A)break _}for(;a=(g=(C=(-8&i[A+4>>2])-t|0)>>>0>>0)?C:a,B=g?A:B,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!B|i[9407]-t>>>0<=a>>>0)){if(r=i[B+24>>2],(0|B)!=(0|(A=i[B+12>>2]))){g=i[B+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break g}if(g=i[B+20>>2])C=B+20|0;else{if(!(g=i[B+16>>2]))break o;C=B+16|0}for(;Q=C,C=(A=g)+20|0,(g=i[A+20>>2])||(C=A+16|0,g=i[A+16>>2]););i[Q>>2]=0;break g}}}if((B=i[9407])>>>0>=t>>>0){A=i[9410],(g=B-t|0)>>>0>=16?(i[4+(C=A+t|0)>>2]=1|g,i[A+B>>2]=g,i[A+4>>2]=3|t):(i[A+4>>2]=3|B,i[4+(g=A+B|0)>>2]=1|i[g+4>>2],C=0,g=0),i[9407]=g,i[9410]=C,A=A+8|0;break A}if((C=i[9408])>>>0>t>>>0){g=C-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}if(A=0,a=t+47|0,i[9523]?g=i[9525]:(i[9526]=-1,i[9527]=-1,i[9524]=4096,i[9525]=4096,i[9523]=I+12&-16^1431655768,i[9528]=0,i[9516]=0,g=4096),(g=(Q=a+g|0)&(c=0-g|0))>>>0<=t>>>0)break A;if((r=i[9515])&&(B=(e=i[9513])+g|0)>>>0<=e>>>0|B>>>0>r>>>0)break A;a:{if(!(4&o[38064])){_:{c:{t:{r:{if(B=i[9411])for(A=38068;;){if((r=i[A>>2])>>>0<=B>>>0&B>>>0>2]>>>0)break r;if(!(A=i[A+8>>2]))break}if(-1==(0|(C=cg(0))))break _;if(Q=g,(B=(A=i[9524])-1|0)&C&&(Q=(g-C|0)+(C+B&0-A)|0),Q>>>0<=t>>>0)break _;if((B=i[9515])&&(A=(c=i[9513])+Q|0)>>>0<=c>>>0|A>>>0>B>>>0)break _;if((0|C)!=(0|(A=cg(Q))))break t;break a}if((0|(C=cg(Q=c&Q-C)))==(i[A>>2]+i[A+4>>2]|0))break c;A=C}if(-1==(0|A))break _;if(t+48>>>0<=Q>>>0){C=A;break a}if(-1==(0|cg(C=(C=i[9525])+(a-Q|0)&0-C)))break _;Q=C+Q|0,C=A;break a}if(-1!=(0|C))break a}i[9516]=4|i[9516]}if(-1==(0|(C=cg(g)))|-1==(0|(A=cg(0)))|A>>>0<=C>>>0)break B;if((Q=A-C|0)>>>0<=t+40>>>0)break B}A=i[9513]+Q|0,i[9513]=A,A>>>0>E[9514]&&(i[9514]=A);a:{if(a=i[9411]){for(A=38068;;){if(((g=i[A>>2])+(B=i[A+4>>2])|0)==(0|C))break a;if(!(A=i[A+8>>2]))break}break i}for((A=i[9409])>>>0<=C>>>0&&A||(i[9409]=C),A=0,i[9518]=Q,i[9517]=C,i[9413]=-1,i[9414]=i[9523],i[9520]=0;B=37660+(g=A<<3)|0,i[g+37668>>2]=B,i[g+37672>>2]=B,32!=(0|(A=A+1|0)););B=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=B,g=g+C|0,i[9411]=g,i[g+4>>2]=1|B,i[4+(A+C|0)>>2]=40,i[9412]=i[9527];break Q}if(8&i[A+12>>2]|C>>>0<=a>>>0|g>>>0>a>>>0)break i;i[A+4>>2]=B+Q,g=(A=-8-a&7)+a|0,i[9411]=g,A=(C=i[9408]+Q|0)-A|0,i[9408]=A,i[g+4>>2]=1|A,i[4+(C+a|0)>>2]=40,i[9412]=i[9527];break Q}A=0;break I}A=0;break g}E[9409]>C>>>0&&(i[9409]=C),B=C+Q|0,A=38068;i:{for(;;){if((0|(g=i[A>>2]))!=(0|B)){if(A=i[A+8>>2])continue;break i}break}if(!(8&o[A+12|0]))break C}for(A=38068;!((g=i[A>>2])>>>0<=a>>>0&&(B=g+i[A+4>>2]|0)>>>0>a>>>0);)A=i[A+8>>2];for(c=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=c,g=g+C|0,i[9411]=g,i[g+4>>2]=1|c,i[4+(A+C|0)>>2]=40,i[9412]=i[9527],i[(g=(A=(B+(39-B&7)|0)-47|0)>>>0>>0?a:A)+4>>2]=27,A=i[9520],i[g+16>>2]=i[9519],i[g+20>>2]=A,A=i[9518],i[g+8>>2]=i[9517],i[g+12>>2]=A,i[9519]=g+8,i[9518]=Q,i[9517]=C,i[9520]=0,A=g+24|0;i[A+4>>2]=7,C=A+8|0,A=A+4|0,C>>>0>>0;);if((0|g)!=(0|a)){i[g+4>>2]=-2&i[g+4>>2],C=g-a|0,i[a+4>>2]=1|C,i[g>>2]=C;i:if(C>>>0<=255)A=37660+(-8&C)|0,(g=i[9405])&(C=1<<(C>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,B=8,C=12;else{A=31,C>>>0<=16777215&&(A=62+((C>>>38-(A=_(C>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=A,i[a+16>>2]=0,i[a+20>>2]=0,g=37924+(A<<2)|0;o:{if((B=i[9406])&(Q=1<>>1|0):0),B=i[g>>2];;){if((0|C)==(-8&i[(g=B)+4>>2]))break o;if(B=A>>>29|0,A<<=1,!(B=i[16+(Q=(4&B)+g|0)>>2]))break}i[Q+16>>2]=a}else i[9406]=B|Q,i[g>>2]=a;i[a+24>>2]=g,A=g=a,B=12,C=8;break i}A=i[g+8>>2],i[A+12>>2]=a,i[g+8>>2]=a,i[a+8>>2]=A,A=0,B=12,C=24}i[B+a>>2]=g,i[C+a>>2]=A}}if(!((A=i[9408])>>>0<=t>>>0)){g=A-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}}i[9404]=48,A=0;break A}i[A>>2]=C,i[A+4>>2]=i[A+4>>2]+Q,i[4+(r=(-8-C&7)+C|0)>>2]=3|t,c=(Q=g+(-8-g&7)|0)-(a=t+r|0)|0;C:if(i[9411]!=(0|Q))if(i[9410]!=(0|Q)){if(1==(3&(A=i[Q+4>>2]))){e=-8&A,C=i[Q+12>>2];B:if(A>>>0<=255){if((0|(g=i[Q+8>>2]))==(0|C)){h=37620,D=i[9405]&Lg(-2,A>>>3|0),i[h>>2]=D;break B}i[g+12>>2]=C,i[C+8>>2]=g}else{t=i[Q+24>>2];Q:if((0|C)==(0|Q)){i:{if(A=i[Q+20>>2])g=Q+20|0;else{if(!(A=i[Q+16>>2]))break i;g=Q+16|0}for(;B=g,C=A,g=A+20|0,(A=i[A+20>>2])||(g=C+16|0,A=i[C+16>>2]););i[B>>2]=0;break Q}C=0}else A=i[Q+8>>2],i[A+12>>2]=C,i[C+8>>2]=A;if(t){A=i[Q+28>>2];Q:{if(i[(g=37924+(A<<2)|0)>>2]==(0|Q)){if(i[g>>2]=C,C)break Q;h=37624,D=i[9406]&Lg(-2,A),i[h>>2]=D;break B}if(i[t+(i[t+16>>2]==(0|Q)?16:20)>>2]=C,!C)break B}i[C+24>>2]=t,(A=i[Q+16>>2])&&(i[C+16>>2]=A,i[A+24>>2]=C),(A=i[Q+20>>2])&&(i[C+20>>2]=A,i[A+24>>2]=C)}}c=c+e|0,A=i[4+(Q=Q+e|0)>>2]}if(i[Q+4>>2]=-2&A,i[a+4>>2]=1|c,i[a+c>>2]=c,c>>>0<=255)A=37660+(-8&c)|0,(g=i[9405])&(C=1<<(c>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,i[a+12>>2]=A,i[a+8>>2]=g;else{C=31,c>>>0<=16777215&&(C=62+((c>>>38-(A=_(c>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=C,i[a+16>>2]=0,i[a+20>>2]=0,A=37924+(C<<2)|0;B:{if((g=i[9406])&(B=1<>>1|0):0),g=i[A>>2];;){if((-8&i[(A=g)+4>>2])==(0|c))break B;if(g=C>>>29|0,C<<=1,!(g=i[16+(B=(4&g)+A|0)>>2]))break}i[B+16>>2]=a}else i[9406]=g|B,i[A>>2]=a;i[a+24>>2]=A,i[a+12>>2]=a,i[a+8>>2]=a;break C}g=i[A+8>>2],i[g+12>>2]=a,i[A+8>>2]=a,i[a+24>>2]=0,i[a+12>>2]=A,i[a+8>>2]=g}}else i[9410]=a,A=i[9407]+c|0,i[9407]=A,i[a+4>>2]=1|A,i[A+a>>2]=A;else i[9411]=a,A=i[9408]+c|0,i[9408]=A,i[a+4>>2]=1|A;A=r+8|0;break A}g:if(r){g=i[B+28>>2];C:{if(i[(C=37924+(g<<2)|0)>>2]==(0|B)){if(i[C>>2]=A,A)break C;c=Lg(-2,g)&c,i[9406]=c;break g}if(i[r+(i[r+16>>2]==(0|B)?16:20)>>2]=A,!A)break g}i[A+24>>2]=r,(g=i[B+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[B+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}g:if(a>>>0<=15)A=a+t|0,i[B+4>>2]=3|A,i[4+(A=A+B|0)>>2]=1|i[A+4>>2];else if(i[B+4>>2]=3|t,i[4+(Q=B+t|0)>>2]=1|a,i[a+Q>>2]=a,a>>>0<=255)A=37660+(-8&a)|0,(g=i[9405])&(C=1<<(a>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=Q,i[g+12>>2]=Q,i[Q+12>>2]=A,i[Q+8>>2]=g;else{A=31,a>>>0<=16777215&&(A=62+((a>>>38-(A=_(a>>>8|0))&1)-(A<<1)|0)|0),i[Q+28>>2]=A,i[Q+16>>2]=0,i[Q+20>>2]=0,g=37924+(A<<2)|0;C:{if((C=1<>>1|0):0),g=i[g>>2];;){if(C=g,(-8&i[g+4>>2])==(0|a))break C;if(c=A>>>29|0,A<<=1,!(g=i[16+(c=g+(4&c)|0)>>2]))break}i[c+16>>2]=Q,i[Q+24>>2]=C}else i[9406]=C|c,i[g>>2]=Q,i[Q+24>>2]=g;i[Q+12>>2]=Q,i[Q+8>>2]=Q;break g}A=i[C+8>>2],i[A+12>>2]=Q,i[C+8>>2]=Q,i[Q+24>>2]=0,i[Q+12>>2]=C,i[Q+8>>2]=A}A=B+8|0;break A}I:if(e){g=i[C+28>>2];g:{if(i[(B=37924+(g<<2)|0)>>2]==(0|C)){if(i[B>>2]=A,A)break g;h=37624,D=Lg(-2,g)&y,i[h>>2]=D;break I}if(i[e+(i[e+16>>2]==(0|C)?16:20)>>2]=A,!A)break I}i[A+24>>2]=e,(g=i[C+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[C+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}a>>>0<=15?(A=a+t|0,i[C+4>>2]=3|A,i[4+(A=A+C|0)>>2]=1|i[A+4>>2]):(i[C+4>>2]=3|t,i[4+(c=C+t|0)>>2]=1|a,i[a+c>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),i[9410]=c,i[9407]=a),A=C+8|0}return s=I+16|0,0|A}function U(A,I,g,B,Q,E){var _,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,X=0,O=0,W=0,V=0,Z=0,T=0;if(s=_=s-592|0,r=-1,ZI(t=A+32|0)&&!KI(A)&&NI(Q)&&!KI(Q)&&!qA(y=_+128|0,Q)){for(SI(r=_+384|0),E&&SA(r,35600,34,0),SA(r,A,32,0),SA(r,Q,32,0),SA(r,I,g,B),j(I=r,r=_+320|0),S(r),B=_+8|0,g=t,Q=0,I=0,s=c=s-2272|0;E=c+2016|0,t=o[r+(Q>>>3|0)|0],C[E+Q|0]=t>>>(6&Q)&1,C[(e=E)+(E=1|Q)|0]=t>>>(7&E)&1,256!=(0|(Q=Q+2|0)););for(;;){I=(E=I)+1|0;A:if(!(E>>>0>254)&&o[0|(D=(Q=c+2016|0)+E|0)]){I:if(Q=C[0|(h=I+Q|0)])if((0|(Q=(r=Q<<1)+(t=C[0|D])|0))<=15)C[0|D]=Q,C[0|h]=0;else{if((0|(Q=t-r|0))<-15)break A;for(C[0|D]=Q,Q=I;;){if(!o[0|(t=(c+2016|0)+Q|0)]){C[0|t]=1;break I}if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,!t)break}}if(!(E>>>0>253)){I:if(t=C[0|(e=(Q=E+2|0)+(c+2016|0)|0)])if((0|(t=(h=t<<2)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(253!=(0|E)){I:if(t=C[0|(e=(Q=E+3|0)+(c+2016|0)|0)])if((0|(t=(h=t<<3)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>251)){I:if(t=C[0|(e=(Q=E+4|0)+(c+2016|0)|0)])if((0|(t=(h=t<<4)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(251!=(0|E)){I:if(t=C[0|(e=(Q=E+5|0)+(c+2016|0)|0)])if((0|(t=(h=t<<5)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>249)&&(E=C[0|(h=(Q=E+6|0)+(c+2016|0)|0)]))if((0|(E=(r=E<<6)+(t=C[0|D])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|D]=E;;){if(o[0|(E=(c+2016|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break A}break}C[0|E]=1}else C[0|D]=E,C[0|h]=0}}}}}if(256==(0|I))break}for(Q=0;I=c+1760|0,E=o[g+(Q>>>3|0)|0],C[I+Q|0]=E>>>(6&Q)&1,C[(t=I)+(I=1|Q)|0]=E>>>(7&I)&1,256!=(0|(Q=Q+2|0)););for(I=0;;){g=I,I=I+1|0;A:if(!(g>>>0>254)&&o[0|(e=(Q=c+1760|0)+g|0)]){I:if(Q=C[0|(r=I+Q|0)])if((0|(Q=(t=Q<<1)+(E=C[0|e])|0))<=15)C[0|e]=Q,C[0|r]=0;else{if((0|(Q=E-t|0))<-15)break A;for(C[0|e]=Q,Q=I;;){if(!o[0|(E=(c+1760|0)+Q|0)]){C[0|E]=1;break I}if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,!E)break}}if(!(g>>>0>253)){I:if(E=C[0|(h=(Q=g+2|0)+(c+1760|0)|0)])if((0|(E=(r=E<<2)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(253!=(0|g)){I:if(E=C[0|(h=(Q=g+3|0)+(c+1760|0)|0)])if((0|(E=(r=E<<3)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>251)){I:if(E=C[0|(h=(Q=g+4|0)+(c+1760|0)|0)])if((0|(E=(r=E<<4)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(251!=(0|g)){I:if(E=C[0|(h=(Q=g+5|0)+(c+1760|0)|0)])if((0|(E=(r=E<<5)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>249)&&(g=C[0|(r=(Q=g+6|0)+(c+1760|0)|0)]))if((0|(g=(t=g<<6)+(E=C[0|e])|0))>=16){if((0|(g=E-t|0))<-15)break A;for(C[0|e]=g;;){if(o[0|(g=(c+1760|0)+Q|0)]){if(C[0|g]=0,g=Q>>>0<255,Q=Q+1|0,g)continue;break A}break}C[0|g]=1}else C[0|e]=g,C[0|r]=0}}}}}if(256==(0|I))break}for($A(Q=c+480|0,y),I=i[y+36>>2],i[c+192>>2]=i[y+32>>2],i[c+196>>2]=I,I=i[y+28>>2],i[c+184>>2]=i[y+24>>2],i[c+188>>2]=I,I=i[y+20>>2],i[c+176>>2]=i[y+16>>2],i[c+180>>2]=I,I=i[y+12>>2],i[c+168>>2]=i[y+8>>2],i[c+172>>2]=I,I=i[y+4>>2],i[c+160>>2]=i[y>>2],i[c+164>>2]=I,I=i[y+52>>2],i[c+208>>2]=i[y+48>>2],i[c+212>>2]=I,I=i[y+60>>2],i[c+216>>2]=i[y+56>>2],i[c+220>>2]=I,I=i[4+(g=y- -64|0)>>2],i[c+224>>2]=i[g>>2],i[c+228>>2]=I,I=i[y+76>>2],i[c+232>>2]=i[y+72>>2],i[c+236>>2]=I,I=i[y+44>>2],i[c+200>>2]=i[y+40>>2],i[c+204>>2]=I,I=i[y+92>>2],i[c+248>>2]=i[y+88>>2],i[c+252>>2]=I,I=i[y+100>>2],i[c+256>>2]=i[y+96>>2],i[c+260>>2]=I,I=i[y+108>>2],i[c+264>>2]=i[y+104>>2],i[c+268>>2]=I,I=i[y+116>>2],i[c+272>>2]=i[y+112>>2],i[c+276>>2]=I,I=i[y+84>>2],i[c+240>>2]=i[y+80>>2],i[c+244>>2]=I,KA(E=c+320|0,g=c+160|0),b(c,E,f=c+440|0),b(c+40|0,p=c+360|0,w=c+400|0),b(c+80|0,w,f),b(c+120|0,E,p),sA(E,c,Q),b(g,E,f),b(k=c+200|0,p,w),b(F=c+240|0,w,f),b(n=c+280|0,E,p),$A(I=c+640|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+800|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+960|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1120|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1280|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1440|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(c+1600|0,g),i[B+32>>2]=0,i[B+36>>2]=0,i[B+24>>2]=0,i[B+28>>2]=0,i[B+16>>2]=0,i[B+20>>2]=0,i[B+8>>2]=0,i[B+12>>2]=0,i[B>>2]=0,i[B+4>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+40>>2]=1,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=0,i[B+68>>2]=0,i[B+72>>2]=0,i[B+84>>2]=0,i[B+88>>2]=0,i[B+76>>2]=0,i[B+80>>2]=1,i[B+92>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,X=B+80|0,O=B+40|0,I=255;;){A:{I:{if(!o[(g=c+2016|0)+I|0]&&!o[(Q=c+1760|0)+I|0]){if(!(o[(E=g)+(g=I-1|0)|0]|o[g+Q|0]))break I;I=g}if((0|I)<0)break A;for(;KA(Q=c+320|0,B),g=I,(0|(E=C[I+(c+2016|0)|0]))>0?(b(I=c+160|0,Q,f),b(k,p,w),b(F,w,f),b(n,Q,p),sA(Q,I,(c+480|0)+a((254&E)>>>1|0,160)|0)):(0|E)>=0||(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),hA(Q,I,(c+480|0)+a((0-E&254)>>>1|0,160)|0)),(0|(u=C[g+(c+1760|0)|0]))>0?(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),DA(Q,I,a((254&u)>>>1|0,120)+1728|0)):(0|u)>=0||(b(c+160|0,x=c+320|0,f),b(k,p,w),b(F,w,f),b(n,x,p),N=i[c+160>>2],G=i[c+200>>2],M=i[c+164>>2],K=i[c+204>>2],U=i[c+168>>2],H=i[c+208>>2],Y=i[c+172>>2],J=i[c+212>>2],d=i[c+176>>2],m=i[c+216>>2],l=i[c+180>>2],D=i[c+220>>2],e=i[c+184>>2],h=i[c+224>>2],r=i[c+188>>2],y=i[c+228>>2],t=i[c+192>>2],E=i[c+232>>2],Q=i[c+236>>2],I=i[c+196>>2],i[c+396>>2]=Q-I,i[c+392>>2]=E-t,i[c+388>>2]=y-r,i[c+384>>2]=h-e,i[c+380>>2]=D-l,i[c+376>>2]=m-d,i[c+372>>2]=J-Y,i[c+368>>2]=H-U,i[c+364>>2]=K-M,i[c+360>>2]=G-N,i[c+356>>2]=I+Q,i[c+352>>2]=E+t,i[c+348>>2]=r+y,i[c+344>>2]=e+h,i[c+340>>2]=D+l,i[c+336>>2]=d+m,i[c+332>>2]=Y+J,i[c+328>>2]=U+H,i[c+324>>2]=M+K,i[c+320>>2]=N+G,b(w,x,40+(I=a((0-u&254)>>>1|0,120)+1728|0)|0),b(p,p,I),b(f,I+80|0,n),W=i[c+276>>2],V=i[c+272>>2],u=i[c+268>>2],x=i[c+264>>2],e=i[c+260>>2],h=i[c+256>>2],r=i[c+252>>2],y=i[c+248>>2],t=i[c+244>>2],E=i[c+240>>2],v=i[c+360>>2],R=i[c+400>>2],L=i[c+364>>2],P=i[c+404>>2],q=i[c+368>>2],z=i[c+408>>2],N=i[c+372>>2],G=i[c+412>>2],M=i[c+376>>2],K=i[c+416>>2],U=i[c+380>>2],H=i[c+420>>2],Y=i[c+384>>2],J=i[c+424>>2],d=i[c+388>>2],m=i[c+428>>2],l=i[c+392>>2],D=i[c+432>>2],Q=i[c+396>>2],I=i[c+436>>2],i[c+396>>2]=Q+I,i[c+392>>2]=D+l,i[c+388>>2]=d+m,i[c+384>>2]=Y+J,i[c+380>>2]=U+H,i[c+376>>2]=M+K,i[c+372>>2]=N+G,i[c+368>>2]=q+z,i[c+364>>2]=L+P,i[c+360>>2]=v+R,i[c+356>>2]=I-Q,i[c+352>>2]=D-l,i[c+348>>2]=m-d,i[c+344>>2]=J-Y,i[c+340>>2]=H-U,i[c+336>>2]=K-M,i[c+332>>2]=G-N,i[c+328>>2]=z-q,i[c+324>>2]=P-L,i[c+320>>2]=R-v,N=E<<1,G=i[c+440>>2],i[c+400>>2]=N-G,M=t<<1,K=i[c+444>>2],i[c+404>>2]=M-K,U=y<<1,H=i[c+448>>2],i[c+408>>2]=U-H,Y=r<<1,J=i[c+452>>2],i[c+412>>2]=Y-J,d=h<<1,m=i[c+456>>2],i[c+416>>2]=d-m,l=e<<1,D=i[c+460>>2],i[c+420>>2]=l-D,e=x<<1,h=i[c+464>>2],i[c+424>>2]=e-h,r=u<<1,y=i[c+468>>2],i[c+428>>2]=r-y,t=V<<1,E=i[c+472>>2],i[c+432>>2]=t-E,Q=W<<1,I=i[c+476>>2],i[c+436>>2]=Q-I,i[c+440>>2]=N+G,i[c+444>>2]=M+K,i[c+448>>2]=U+H,i[c+452>>2]=Y+J,i[c+456>>2]=d+m,i[c+460>>2]=D+l,i[c+464>>2]=e+h,i[c+468>>2]=r+y,i[c+472>>2]=E+t,i[c+476>>2]=I+Q),b(B,c+320|0,f),b(O,p,w),b(X,w,f),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}s=c+2272|0,tg(I=_+288|0,B),Z=-1,T=NC(I,A),r=((0|A)==(0|I)?Z:T)|MI(A,I,32)}return s=_+592|0,r}function b(A,I,g){var C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0;QA=Ig(C=i[g+4>>2],e=C>>31,wA=(w=i[I+20>>2])<<1,m=wA>>31),oA=f,iA=(hA=Ig(fA=i[g>>2],Q=fA>>31,B=i[I+24>>2],o=B>>31))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,rA=Ig(E=i[g+8>>2],h=E>>31,hA=i[I+16>>2],_=hA>>31),oA=f+QA|0,oA=(iA=rA+iA|0)>>>0>>0?oA+1|0:oA,QA=(rA=Ig(y=i[g+12>>2],n=y>>31,K=(k=i[I+12>>2])<<1,l=K>>31))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(DA=Ig(D=i[g+16>>2],U=D>>31,rA=i[I+8>>2],c=rA>>31))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(F=i[g+20>>2],u=F>>31,b=(S=i[I+4>>2])<<1,x=b>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,Z=cA=i[g+24>>2],oA=(eA=Ig(cA,W=cA>>31,DA=i[I>>2],t=DA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0>>0?iA+1|0:iA,v=i[g+28>>2],QA=(eA=Ig(sA=a(v,19),N=sA>>31,H=(G=i[I+36>>2])<<1,R=H>>31))+oA|0,oA=f+iA|0,oA=QA>>>0>>0?oA+1|0:oA,SA=i[g+32>>2],iA=(tA=Ig(EA=a(SA,19),p=EA>>31,eA=i[I+32>>2],r=eA>>31))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,T=i[g+36>>2],g=Ig(tA=a(T,19),s=tA>>31,Y=(M=i[I+28>>2])<<1,L=Y>>31),QA=f+QA|0,aA=I=g+iA|0,g=I>>>0>>0?QA+1|0:QA,I=Ig(hA,_,C,e),QA=f,iA=Ig(fA,Q,w,P=w>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(E,h,k,q=k>>31),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(rA,c,y,n),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(D,U,S,z=S>>31),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(DA,t,F,u),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(cA=a(cA,19),J=cA>>31,G,j=G>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(eA,r,sA,N),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(EA,p,M,X=M>>31),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(tA,s,B,o),QA=f+QA|0,GA=I=iA+I|0,nA=I>>>0>>0?QA+1|0:QA,I=Ig(C,e,K,l),QA=f,iA=Ig(fA,Q,hA,_),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(rA,c,E,h),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(y,n,b,x),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(DA,t,D,U),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(d=a(F,19),O=d>>31,H,R),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(eA,r,cA,J),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(sA,N,Y,L),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(EA,p,B,o),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(tA,s,wA,m),QA=f+iA|0,$=I=oA+I|0,AA=QA=I>>>0>>0?QA+1|0:QA,IA=I=I+33554432|0,gA=QA=I>>>0<33554432?QA+1|0:QA,oA=(67108863&QA)<<6|I>>>26,QA=(QA>>26)+nA|0,GA=I=oA+GA|0,QA=I>>>0>>0?QA+1|0:QA,CA=I=I+16777216|0,QA=g+(iA=(oA=I>>>0<16777216?QA+1|0:QA)>>25)|0,QA=(I=(oA=(33554431&oA)<<7|I>>>25)+aA|0)>>>0>>0?QA+1|0:QA,kA=g=(iA=I)+33554432|0,I=QA=g>>>0<33554432?QA+1|0:QA,i[A+24>>2]=iA-(-67108864&g),g=Ig(C,e,b,x),QA=f,iA=Ig(fA,Q,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=(QA=g)+(g=Ig(DA,t,E,h))|0,QA=f+oA|0,QA=g>>>0>iA>>>0?QA+1|0:QA,oA=Ig(g=a(y,19),FA=g>>31,H,R),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(eA,r,nA=a(D,19),V=nA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0>>0?iA+1|0:iA,aA=Ig(Y,L,d,O),QA=f+iA|0,QA=(oA=aA+oA|0)>>>0>>0?QA+1|0:QA,iA=(aA=Ig(B,o,cA,J))+oA|0,oA=f+QA|0,oA=iA>>>0>>0?oA+1|0:oA,aA=Ig(sA,N,wA,m),QA=f+oA|0,QA=(iA=aA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,hA,_),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(tA,s,K,l))+iA|0,iA=f+QA|0,yA=oA,MA=oA>>>0>>0?iA+1|0:iA,QA=Ig(DA,t,C,e),iA=f,oA=(aA=Ig(fA,Q,S,z))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,aA=iA=a(E,19),iA=(_A=Ig(iA,NA=iA>>31,G,j))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(eA,r,g,FA),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(nA,V,M,X),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(_A=Ig(B,o,d,O))+iA|0,iA=f+QA|0,iA=oA>>>0<_A>>>0?iA+1|0:iA,_A=Ig(cA,J,w,P),QA=f+iA|0,QA=(oA=_A+oA|0)>>>0<_A>>>0?QA+1|0:QA,iA=(_A=Ig(hA,_,sA,N))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(EA,p,k,q),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(tA,s,rA,c),QA=f+QA|0,KA=iA=oA+iA|0,_A=iA>>>0>>0?QA+1|0:QA,QA=Ig(QA=a(C,19),QA>>31,H,R),iA=f,oA=Ig(fA,Q,DA,t),iA=f+iA|0,iA=(QA=oA+QA|0)>>>0>>0?iA+1|0:iA,oA=(aA=Ig(eA,r,aA,NA))+QA|0,QA=f+iA|0,g=(iA=Ig(g,FA,Y,L))+oA|0,oA=f+(oA>>>0>>0?QA+1|0:QA)|0,oA=g>>>0>>0?oA+1|0:oA,iA=Ig(B,o,nA,V),QA=f+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(wA,m,d,O),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,_,cA,J),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,oA=Ig(sA,N,K,l),QA=f+iA|0,QA=(g=oA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(EA,p,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(tA,s,b,x),QA=f+oA|0,aA=g=iA+g|0,FA=QA=g>>>0>>0?QA+1|0:QA,NA=g=g+33554432|0,BA=QA=g>>>0<33554432?QA+1|0:QA,iA=(oA=QA>>26)+_A|0,_A=g=(QA=(67108863&QA)<<6|g>>>26)+KA|0,QA=g>>>0>>0?iA+1|0:iA,KA=g=g+16777216|0,iA=(33554431&(QA=g>>>0<16777216?QA+1|0:QA))<<7|g>>>25,QA=(QA>>25)+MA|0,QA=(g=iA+yA|0)>>>0>>0?QA+1|0:QA,MA=iA=(oA=g)+33554432|0,g=QA=iA>>>0<33554432?QA+1|0:QA,i[A+8>>2]=oA-(-67108864&iA),QA=Ig(B,o,C,e),oA=f,iA=(yA=Ig(fA,Q,M,X))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(E,h,w,P),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,_,y,n),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,yA=Ig(D,U,k,q),oA=f+QA|0,oA=(iA=yA+iA|0)>>>0>>0?oA+1|0:oA,QA=(yA=Ig(rA,c,F,u))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(yA=Ig(S,z,Z,W))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(DA,t,v,yA=v>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,G,j),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,pA=Ig(tA,s,eA,r),oA=f+QA|0,QA=I>>26,I=(kA=(67108863&I)<<6|kA>>>26)+(iA=pA+iA|0)|0,iA=QA+(iA>>>0>>0?oA+1|0:oA)|0,QA=(oA=I)>>>0>>0?iA+1|0:iA,kA=iA=oA+16777216|0,I=QA=iA>>>0<16777216?QA+1|0:QA,i[A+28>>2]=oA-(-33554432&iA),QA=Ig(rA,c,C,e),iA=f,pA=Ig(fA,Q,k,q),oA=f+iA|0,oA=(QA=pA+QA|0)>>>0>>0?oA+1|0:oA,pA=Ig(E,h,S,z),iA=f+oA|0,iA=(QA=pA+QA|0)>>>0>>0?iA+1|0:iA,oA=(pA=Ig(DA,t,y,n))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(nA,V,G,j),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(eA,r,d,O),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(cA=Ig(cA,J,M,X))+iA|0,oA=f+QA|0,QA=(sA=Ig(B,o,sA,N))+iA|0,iA=f+(iA>>>0>>0?oA+1|0:oA)|0,oA=(EA=Ig(EA,p,w,P))+QA|0,QA=f+(QA>>>0>>0?iA+1|0:iA)|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(tA,s,hA,_),QA=f+QA|0,EA=iA=iA+oA|0,QA=(QA=iA>>>0>>0?QA+1|0:QA)+(iA=g>>26)|0,EA=g=EA+(oA=(67108863&g)<<6|MA>>>26)|0,QA=g>>>0>>0?QA+1|0:QA,sA=iA=g+16777216|0,g=oA=iA>>>0<16777216?QA+1|0:QA,i[A+12>>2]=EA-(-33554432&iA),QA=Ig(C,e,Y,L),oA=f,iA=(EA=Ig(fA,Q,eA,r))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(B,o,E,h),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,EA=Ig(y,n,wA,m),oA=f+QA|0,oA=(iA=EA+iA|0)>>>0>>0?oA+1|0:oA,QA=(EA=Ig(hA,_,D,U))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(EA=Ig(K,l,F,u))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(rA,c,Z,W),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(v,yA,b,x),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(wA=Ig(DA,t,EA=SA,cA=EA>>31))+iA|0,oA=f+QA|0,QA=(tA=Ig(tA,s,H,R))+iA|0,iA=f+(iA>>>0>>0?oA+1|0:oA)|0,iA=QA>>>0>>0?iA+1|0:iA,SA=QA,QA=(QA=I>>25)+iA|0,QA=(I=SA+(oA=(33554431&I)<<7|kA>>>25)|0)>>>0>>0?QA+1|0:QA,tA=iA=(oA=I)+33554432|0,I=QA=iA>>>0<33554432?QA+1|0:QA,i[A+32>>2]=oA-(-67108864&iA),iA=g>>25,g=(sA=(33554431&g)<<7|sA>>>25)+($-(QA=-67108864&IA)|0)|0,QA=iA+(AA-((QA>>>0>$>>>0)+gA|0)|0)|0,QA=g>>>0>>0?QA+1|0:QA,QA=((67108863&(QA=(g=(iA=g)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|g>>>26)+(oA=GA-(-33554432&CA)|0)|0,i[A+20>>2]=QA,i[A+16>>2]=iA-(-67108864&g),g=Ig(eA,r,C,e),QA=f,iA=Ig(fA,Q,G,j),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(E,h,M,X),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(B,o,y,n),oA=f+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(D,U,w,P),QA=f+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(hA,_,F,u),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(k,q,Z,W),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(rA,c,v,yA),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(EA,cA,S,z),oA=f+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(DA,t,T,T>>31),QA=f+oA|0,QA=(QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA)+(iA=I>>26)|0,QA=(I=(oA=g)+(g=(67108863&I)<<6|tA>>>26)|0)>>>0>>0?QA+1|0:QA,QA=(I=(g=I)+16777216|0)>>>0<16777216?QA+1|0:QA,i[A+36>>2]=g-(-33554432&I),oA=_A-(-33554432&KA)|0,iA=aA-(g=-67108864&NA)|0,fA=FA-((g>>>0>aA>>>0)+BA|0)|0,I=(g=Ig((33554431&(g=QA))<<7|I>>>25,QA>>=25,19,0))+iA|0,iA=f+fA|0,QA=I>>>0>>0?iA+1|0:iA,QA=((67108863&(QA=(I=(g=I)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|I>>>26)+oA|0,i[A+4>>2]=QA,i[A>>2]=g-(-67108864&I)}function H(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w=0,n=0,k=0;s=g=s-544|0,C=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,B=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,Q=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,E=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,a=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,_=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,c=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,t=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,w=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,r=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,e=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,y=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,D=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,f=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,p=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=A,A=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=A,A=i[I+108>>2],i[g+504>>2]=i[I+104>>2],i[g+508>>2]=A,A=i[I+100>>2],i[g+496>>2]=i[I+96>>2],i[g+500>>2]=A,A=i[I+124>>2],i[g+488>>2]=i[I+120>>2],i[g+492>>2]=A,A=i[I+116>>2],i[g+480>>2]=i[I+112>>2],i[g+484>>2]=A,AI(k=g+512|0,g+496|0,g+480|0),A=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=A,A=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+472>>2]=i[I+88>>2],i[g+476>>2]=A,A=i[I+84>>2],i[g+464>>2]=i[I+80>>2],i[g+468>>2]=A,A=i[I+108>>2],i[g+456>>2]=i[I+104>>2],i[g+460>>2]=A,A=i[I+100>>2],i[g+448>>2]=i[I+96>>2],i[g+452>>2]=A,AI(k,g+464|0,g+448|0),A=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=A,A=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+440>>2]=i[I+72>>2],i[g+444>>2]=A,n=i[4+(A=I- -64|0)>>2],i[g+432>>2]=i[A>>2],i[g+436>>2]=n,n=i[I+92>>2],i[g+424>>2]=i[I+88>>2],i[g+428>>2]=n,n=i[I+84>>2],i[g+416>>2]=i[I+80>>2],i[g+420>>2]=n,AI(k,g+432|0,g+416|0),n=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=n,n=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=n,n=i[I+60>>2],i[g+408>>2]=i[I+56>>2],i[g+412>>2]=n,n=i[I+52>>2],i[g+400>>2]=i[I+48>>2],i[g+404>>2]=n,n=i[I+76>>2],i[g+392>>2]=i[I+72>>2],i[g+396>>2]=n,n=i[A+4>>2],i[g+384>>2]=i[A>>2],i[g+388>>2]=n,AI(k,g+400|0,g+384|0),n=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=n,n=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=n,n=i[I+44>>2],i[g+376>>2]=i[I+40>>2],i[g+380>>2]=n,n=i[I+36>>2],i[g+368>>2]=i[I+32>>2],i[g+372>>2]=n,n=i[I+60>>2],i[g+360>>2]=i[I+56>>2],i[g+364>>2]=n,n=i[I+52>>2],i[g+352>>2]=i[I+48>>2],i[g+356>>2]=n,AI(k,g+368|0,g+352|0),n=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=n,n=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=n,n=i[I+28>>2],i[g+344>>2]=i[I+24>>2],i[g+348>>2]=n,n=i[I+20>>2],i[g+336>>2]=i[I+16>>2],i[g+340>>2]=n,n=i[I+44>>2],i[g+328>>2]=i[I+40>>2],i[g+332>>2]=n,n=i[I+36>>2],i[g+320>>2]=i[I+32>>2],i[g+324>>2]=n,AI(k,g+336|0,g+320|0),n=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=n,n=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=n,n=i[I+12>>2],i[g+312>>2]=i[I+8>>2],i[g+316>>2]=n,n=i[I+4>>2],i[g+304>>2]=i[I>>2],i[g+308>>2]=n,n=i[I+28>>2],i[g+296>>2]=i[I+24>>2],i[g+300>>2]=n,n=i[I+20>>2],i[g+288>>2]=i[I+16>>2],i[g+292>>2]=n,AI(k,g+304|0,g+288|0),n=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=n,n=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=n,n=i[g+540>>2],i[g+280>>2]=i[g+536>>2],i[g+284>>2]=n,n=i[g+532>>2],i[g+272>>2]=i[g+528>>2],i[g+276>>2]=n,n=i[I+12>>2],i[g+264>>2]=i[I+8>>2],i[g+268>>2]=n,n=i[I+4>>2],i[g+256>>2]=i[I>>2],i[g+260>>2]=n,AI(k,g+272|0,g+256|0),n=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=n,n=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=n,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^f,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^D,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^h,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^p,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^y,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^e,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^r,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^w,w=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=w,w=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=w,w=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=w,w=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=w,w=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=w,w=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=w,AI(k,g+240|0,g+224|0),w=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=w,w=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=w,w=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=w,w=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=w,w=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=w,w=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=w,AI(k,g+208|0,g+192|0),w=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=w,w=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=w,w=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=w,w=i[A+4>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=w,w=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=w,w=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=w,AI(k,g+176|0,g+160|0),w=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=w,w=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=w,w=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=w,w=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=w,w=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=w,w=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=w,AI(k,g+144|0,g+128|0),w=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=w,w=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=w,w=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=w,w=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=w,w=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=w,w=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=w,AI(k,g+112|0,g+96|0),w=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=w,w=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=w,w=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=w,w=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=w,w=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=w,w=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=w,AI(k,g+80|0,g- -64|0),w=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=w,w=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=w,w=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=w,w=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=w,w=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=w,w=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=w,AI(k,g+48|0,g+32|0),w=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=w,w=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=w,w=i[g+540>>2],i[g+24>>2]=i[g+536>>2],i[g+28>>2]=w,w=i[g+532>>2],i[g+16>>2]=i[g+528>>2],i[g+20>>2]=w,w=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=w,w=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=w,AI(k,g+16|0,g),k=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=k,k=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=k,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^t,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^c,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^_,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^a,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+544|0}function Y(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;for(s=E=s-288|0,D=(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^B>>>29,f=(o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24)^B<<3,p=(o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24)^g>>>29,B=(o[0|(c=Q+32|0)]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)^g<<3,y=Q+16|0,r=Q+48|0,_=Q- -64|0,e=Q+80|0,a=Q+96|0,t=Q+112|0;g=i[t+12>>2],i[E+280>>2]=i[t+8>>2],i[E+284>>2]=g,g=i[t+4>>2],i[E+272>>2]=i[t>>2],i[E+276>>2]=g,g=i[a+12>>2],i[E+248>>2]=i[a+8>>2],i[E+252>>2]=g,g=i[a+4>>2],i[E+240>>2]=i[a>>2],i[E+244>>2]=g,g=i[t+12>>2],i[E+232>>2]=i[t+8>>2],i[E+236>>2]=g,g=i[t+4>>2],i[E+224>>2]=i[t>>2],i[E+228>>2]=g,AI(h=E+256|0,E+240|0,E+224|0),g=i[E+268>>2],i[t+8>>2]=i[E+264>>2],i[t+12>>2]=g,g=i[E+260>>2],i[t>>2]=i[E+256>>2],i[t+4>>2]=g,g=i[e+12>>2],i[E+216>>2]=i[e+8>>2],i[E+220>>2]=g,g=i[e+4>>2],i[E+208>>2]=i[e>>2],i[E+212>>2]=g,g=i[a+12>>2],i[E+200>>2]=i[a+8>>2],i[E+204>>2]=g,g=i[a+4>>2],i[E+192>>2]=i[a>>2],i[E+196>>2]=g,AI(h,E+208|0,E+192|0),g=i[E+268>>2],i[a+8>>2]=i[E+264>>2],i[a+12>>2]=g,g=i[E+260>>2],i[a>>2]=i[E+256>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+184>>2]=i[_+8>>2],i[E+188>>2]=g,g=i[_+4>>2],i[E+176>>2]=i[_>>2],i[E+180>>2]=g,g=i[e+12>>2],i[E+168>>2]=i[e+8>>2],i[E+172>>2]=g,g=i[e+4>>2],i[E+160>>2]=i[e>>2],i[E+164>>2]=g,AI(h,E+176|0,E+160|0),g=i[E+268>>2],i[e+8>>2]=i[E+264>>2],i[e+12>>2]=g,g=i[E+260>>2],i[e>>2]=i[E+256>>2],i[e+4>>2]=g,g=i[r+12>>2],i[E+152>>2]=i[r+8>>2],i[E+156>>2]=g,g=i[r+4>>2],i[E+144>>2]=i[r>>2],i[E+148>>2]=g,g=i[_+12>>2],i[E+136>>2]=i[_+8>>2],i[E+140>>2]=g,g=i[_+4>>2],i[E+128>>2]=i[_>>2],i[E+132>>2]=g,AI(h,E+144|0,E+128|0),g=i[E+268>>2],i[_+8>>2]=i[E+264>>2],i[_+12>>2]=g,g=i[E+260>>2],i[_>>2]=i[E+256>>2],i[_+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[r+12>>2],i[E+104>>2]=i[r+8>>2],i[E+108>>2]=g,g=i[r+4>>2],i[E+96>>2]=i[r>>2],i[E+100>>2]=g,AI(h,E+112|0,E+96|0),g=i[E+268>>2],i[r+8>>2]=i[E+264>>2],i[r+12>>2]=g,g=i[E+260>>2],i[r>>2]=i[E+256>>2],i[r+4>>2]=g,g=i[y+12>>2],i[E+88>>2]=i[y+8>>2],i[E+92>>2]=g,g=i[y+4>>2],i[E+80>>2]=i[y>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(h,E+80|0,E- -64|0),g=i[E+268>>2],i[c+8>>2]=i[E+264>>2],i[c+12>>2]=g,g=i[E+260>>2],i[c>>2]=i[E+256>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[y+12>>2],i[E+40>>2]=i[y+8>>2],i[E+44>>2]=g,g=i[y+4>>2],i[E+32>>2]=i[y>>2],i[E+36>>2]=g,AI(h,E+48|0,E+32|0),g=i[E+268>>2],i[y+8>>2]=i[E+264>>2],i[y+12>>2]=g,g=i[E+260>>2],i[y>>2]=i[E+256>>2],i[y+4>>2]=g,g=i[E+284>>2],i[E+24>>2]=i[E+280>>2],i[E+28>>2]=g,g=i[E+276>>2],i[E+16>>2]=i[E+272>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(h,E+16|0,E),g=i[E+268>>2],i[Q+8>>2]=i[E+264>>2],i[Q+12>>2]=g,g=i[E+260>>2],i[Q>>2]=i[E+256>>2],i[Q+4>>2]=g,n=D^(o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),i[Q+12>>2]=n,k=f^(o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),i[Q+8>>2]=k,F=p^(o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),i[Q+4>>2]=F,S=B^(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[Q>>2]=S,N=B^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),i[_>>2]=N,G=p^(o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24),i[Q+68>>2]=G,M=f^(o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24),i[Q+72>>2]=M,K=D^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),i[Q+76>>2]=K,7!=(0|(w=w+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}_=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,c=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,y=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,r=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,e=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,t=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,h=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,D=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,f=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,p=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,w=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,I=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,Q=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24)^K,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=p^w^B^I^g^M^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=a^t^h^D^f^G^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=_^c^y^r^e^N^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}t=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,h=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,D=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,f=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,p=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,w=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,g=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,I=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,a=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24),C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,I=B^I^g^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=f^p^w^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=t^h^D^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,r=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,a=o[Q+112|0]|o[Q+113|0]<<8|o[Q+114|0]<<16|o[Q+115|0]<<24,t=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,h=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,D=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,f=o[Q+116|0]|o[Q+117|0]<<8|o[Q+118|0]<<16|o[Q+119|0]<<24,p=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,w=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,B=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,g=o[Q+120|0]|o[Q+121|0]<<8|o[Q+122|0]<<16|o[Q+123|0]<<24,I=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,Q=(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24)^(o[Q+124|0]|o[Q+125|0]<<8|o[Q+126|0]<<16|o[Q+127|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=w^B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^f^p,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=r^e^a^t,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+288|0}function J(A,I,g,C){var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;for(B=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g+4>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+8>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+12>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+16>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+20>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+24>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+28>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+32>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+36>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+40>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+44>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+48>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+52>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+56>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,I=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+60>>2]=I<<24|(65280&I)<<8|I>>>8&65280|I>>>24,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I,I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I;_=i[C+28>>2],B=(I=n<<2)+g|0,E=i[C+16>>2],c=i[B>>2]+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0,r=(_=((Q=i[I+35264>>2]+c|0)+(E&((c=i[C+24>>2])^(e=i[C+20>>2]))^c)|0)+_|0)+i[C+12>>2]|0,i[C+12>>2]=r,_=(s=_+(Lg(t=i[C>>2],30)^Lg(t,19)^Lg(t,10))|0)+(t&((Q=i[C+8>>2])|(a=i[C+4>>2]))|Q&a)|0,i[C+28>>2]=_,Q=(s=Q)+(c=(i[(D=(Q=4|I)+g|0)>>2]+((c+(e^r&(E^e))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)|0)+i[Q+35264>>2]|0)|0,i[C+8>>2]=Q,c=(c+(_&(a|t)|a&t)|0)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0,i[C+24>>2]=c,e=(s=a)+(a=(((e+i[(w=(a=8|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(E^Q&(E^r))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)|0,i[C+4>>2]=e,a=a+((c&(_|t)|_&t)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+20>>2]=a,E=(s=t)+(t=(((E+i[(k=(t=12|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(r^e&(Q^r))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)|0,i[C>>2]=E,t=t+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+16>>2]=t,r=(y=((((s=r)+i[(F=(r=16|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+12>>2]=r,y=_+y|0,i[C+28>>2]=y,_=(Q=(((Q+i[(S=(_=20|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+8>>2]=_,Q=Q+c|0,i[C+24>>2]=Q,c=(e=(((e+i[(N=(c=24|I)+g|0)>>2]|0)+i[c+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+4>>2]=c,e=a+e|0,i[C+20>>2]=e,a=(E=(((E+i[(G=(a=28|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C>>2]=a,E=E+t|0,i[C+16>>2]=E,t=(y=(((y+i[(M=(t=32|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+28>>2]=t,y=r+y|0,i[C+12>>2]=y,r=(Q=(((Q+i[(K=(r=36|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+24>>2]=r,Q=Q+_|0,i[C+8>>2]=Q,_=(e=(((e+i[(U=(_=40|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+20>>2]=_,e=c+e|0,i[C+4>>2]=e,s=(c=44|I)+g|0,c=(E=((E+(i[c+35264>>2]+i[s>>2]|0)|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+16>>2]=c,a=a+E|0,i[C>>2]=a,p=(E=48|I)+g|0,E=(y=((y+(i[E+35264>>2]+i[p>>2]|0)|0)+(Q^a&(Q^e))|0)+(Lg(a,26)^Lg(a,21)^Lg(a,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+12>>2]=E,t=t+y|0,i[C+28>>2]=t,f=(y=52|I)+g|0,Q=(y=(((i[y+35264>>2]+i[f>>2]|0)+Q|0)+(e^t&(a^e))|0)+(Lg(t,26)^Lg(t,21)^Lg(t,7))|0)+((E&(_|c)|_&c)+(Lg(E,30)^Lg(E,19)^Lg(E,10))|0)|0,i[C+8>>2]=Q,r=r+y|0,i[C+24>>2]=r,y=(h=56|I)+g|0,e=(h=(((i[h+35264>>2]+i[y>>2]|0)+e|0)+(a^r&(a^t))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)+((Q&(c|E)|c&E)+(Lg(Q,30)^Lg(Q,19)^Lg(Q,10))|0)|0,i[C+4>>2]=e,_=_+h|0,i[C+20>>2]=_,h=(I|=60)+g|0,_=(I=((a+(i[I+35264>>2]+i[h>>2]|0)|0)+(t^_&(t^r))|0)+(Lg(_,26)^Lg(_,21)^Lg(_,7))|0)+((e&(Q|E)|Q&E)+(Lg(e,30)^Lg(e,19)^Lg(e,10))|0)|0,i[C>>2]=_,i[C+16>>2]=I+c,48!=(0|n);)a=i[K>>2],n=n+16|0,I=i[y>>2],_=(Q=i[B>>2]+(a+(Lg(I,15)^Lg(I,13)^I>>>10)|0)|0)+(Lg(c=i[D>>2],25)^Lg(c,14)^c>>>3)|0,i[(n<<2)+g>>2]=_,r=(E=(Q=(t=i[U>>2])+c|0)+(Lg(c=i[h>>2],15)^Lg(c,13)^c>>>10)|0)+(Lg(Q=i[w>>2],25)^Lg(Q,14)^Q>>>3)|0,i[B+68>>2]=r,e=(s=((E=Q)+(Q=i[s>>2])|0)+(Lg(_,15)^Lg(_,13)^_>>>10)|0)+(Lg(E=i[k>>2],25)^Lg(E,14)^E>>>3)|0,i[B+72>>2]=e,y=(h=((s=E)+(E=i[p>>2])|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0)+(Lg(s=i[F>>2],25)^Lg(s,14)^s>>>3)|0,i[B+76>>2]=y,p=(h=((h=s)+(s=i[f>>2])|0)+(Lg(e,15)^Lg(e,13)^e>>>10)|0)+(Lg(f=i[S>>2],25)^Lg(f,14)^f>>>3)|0,i[B+80>>2]=p,f=(D=(I+f|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0)+(Lg(h=i[N>>2],25)^Lg(h,14)^h>>>3)|0,i[B+84>>2]=f,h=((c+h|0)+(Lg(w=i[G>>2],25)^Lg(w,14)^w>>>3)|0)+(Lg(p,15)^Lg(p,13)^p>>>10)|0,i[B+88>>2]=h,r=((D=i[M>>2])+(r+(Lg(a,25)^Lg(a,14)^a>>>3)|0)|0)+(Lg(h,15)^Lg(h,13)^h>>>10)|0,i[B+96>>2]=r,D=((_+w|0)+(Lg(D,25)^Lg(D,14)^D>>>3)|0)+(Lg(f,15)^Lg(f,13)^f>>>10)|0,i[B+92>>2]=D,y=(y+(t+(Lg(Q,25)^Lg(Q,14)^Q>>>3)|0)|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0,i[B+104>>2]=y,a=(e+(a+(Lg(t,25)^Lg(t,14)^t>>>3)|0)|0)+(Lg(D,15)^Lg(D,13)^D>>>10)|0,i[B+100>>2]=a,t=(f+(E+(Lg(s,25)^Lg(s,14)^s>>>3)|0)|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0,i[B+112>>2]=t,a=(p+(Q+(Lg(E,25)^Lg(E,14)^E>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+108>>2]=a,b=B,H=(D+(I+(Lg(c,25)^Lg(c,14)^c>>>3)|0)|0)+(Lg(t,15)^Lg(t,13)^t>>>10)|0,i[b+120>>2]=H,I=(h+(s+(Lg(I,25)^Lg(I,14)^I>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+116>>2]=I,b=B,H=(r+(c+(Lg(_,25)^Lg(_,14)^_>>>3)|0)|0)+(Lg(I,15)^Lg(I,13)^I>>>10)|0,i[b+124>>2]=H;i[A>>2]=_+i[A>>2],i[A+4>>2]=i[A+4>>2]+i[C+4>>2],i[A+8>>2]=i[A+8>>2]+i[C+8>>2],i[A+12>>2]=i[A+12>>2]+i[C+12>>2],i[A+16>>2]=i[A+16>>2]+i[C+16>>2],i[A+20>>2]=i[A+20>>2]+i[C+20>>2],i[A+24>>2]=i[A+24>>2]+i[C+24>>2],i[A+28>>2]=i[A+28>>2]+i[C+28>>2]}function d(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0;s=B=s-288|0,t=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,e=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,f=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,J=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,n=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,b=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,d=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,k=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,F=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,U=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,H=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,m=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,S=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,N=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,E=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,Y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,l=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,G=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,M=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,a=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,K=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,Q=(_=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(c=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,l=Y^a&M^l^G,C[A+24|0]=l,C[A+25|0]=l>>>8,C[A+26|0]=l>>>16,C[A+27|0]=l>>>24,m=H^E&N^m^S,C[A+20|0]=m,C[A+21|0]=m>>>8,C[A+22|0]=m>>>16,C[A+23|0]=m>>>24,d=b^U&F^d^k,C[A+16|0]=d,C[A+17|0]=d>>>8,C[A+18|0]=d>>>16,C[A+19|0]=d>>>24,J=n&_^J^w^c,C[A+12|0]=J,C[A+13|0]=J>>>8,C[A+14|0]=J>>>16,C[A+15|0]=J>>>24,Y=Y&p^D^f^a,C[A+8|0]=Y,C[A+9|0]=Y>>>8,C[A+10|0]=Y>>>16,C[A+11|0]=Y>>>24,H=H&h^e^y^E,C[A+4|0]=H,C[A+5|0]=H>>>8,C[A+6|0]=H>>>16,C[A+7|0]=H>>>24,b=U^b&r^t^K,C[0|A]=b,C[A+1|0]=b>>>8,C[A+2|0]=b>>>16,C[A+3|0]=b>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,U=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=U,U=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=U,U=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=U,AI(I,B+176|0,B+160|0),U=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=U,U=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=U,U=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=U,U=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=U,U=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=U,U=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=U,AI(I,B+144|0,B+128|0),U=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=U,U=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=U,U=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=U,U=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=U,U=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=U,U=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=U,AI(I,B+112|0,B+96|0),U=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=U,U=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=U,U=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=U,U=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=U,U=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=U,U=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=U,AI(I,B+80|0,B- -64|0),U=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=U,U=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=U,U=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=U,U=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=U,U=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=U,U=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=U,AI(I,B+48|0,B+32|0),U=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=U,U=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=U,U=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=U,U=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=U,U=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=U,U=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=U,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=J^(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24),i[g+8>>2]=Y^(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24),i[g+4>>2]=H^(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24),i[g>>2]=b^(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24),i[A>>2]=d^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[g+68>>2]=m^(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24),i[g+72>>2]=l^(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24),i[g+76>>2]=Q^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function m(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0;s=B=s-288|0,k=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,F=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,M=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,K=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,U=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,l=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,_=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,b=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,H=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,c=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,t=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,r=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,Y=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,J=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,e=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,h=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,d=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,m=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,D=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(p=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(w=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^(n=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24),C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=D&m^d^h^y,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=e&J^Y^r^t,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=l^c&H^b^_,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=U&p^K^a^n,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=y&M^G^E^D,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=t&N^S^Q^e,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=l&F^k^f^c,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,l=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=l,l=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=l,l=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=l,AI(I,B+176|0,B+160|0),l=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=l,l=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=l,l=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=l,l=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=l,l=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=l,l=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=l,AI(I,B+144|0,B+128|0),l=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=l,l=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=l,l=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=l,l=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=l,l=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=l,l=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=l,AI(I,B+112|0,B+96|0),l=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=l,l=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=l,l=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=l,l=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=l,l=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=l,l=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=l,AI(I,B+80|0,B- -64|0),l=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=l,l=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=l,l=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=l,l=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=l,l=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=l,l=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=l,AI(I,B+48|0,B+32|0),l=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=l,l=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=l,l=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=l,l=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=l,l=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=l,l=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=l,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^a,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^E,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^Q,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^_,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^r,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^h,i[g+76>>2]=w^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function l(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=E=s-224|0,f=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^B>>>29,p=(o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24)^B<<3,e=(o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24)^g>>>29,h=(o[0|(a=Q+48|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24)^g<<3,_=Q+16|0,c=Q+32|0,t=Q- -64|0,r=Q+80|0;g=i[r+12>>2],i[E+216>>2]=i[r+8>>2],i[E+220>>2]=g,g=i[r+4>>2],i[E+208>>2]=i[r>>2],i[E+212>>2]=g,g=i[t+12>>2],i[E+184>>2]=i[t+8>>2],i[E+188>>2]=g,g=i[t+4>>2],i[E+176>>2]=i[t>>2],i[E+180>>2]=g,g=i[r+12>>2],i[E+168>>2]=i[r+8>>2],i[E+172>>2]=g,g=i[r+4>>2],i[E+160>>2]=i[r>>2],i[E+164>>2]=g,AI(B=E+192|0,E+176|0,E+160|0),g=i[E+204>>2],i[r+8>>2]=i[E+200>>2],i[r+12>>2]=g,g=i[E+196>>2],i[r>>2]=i[E+192>>2],i[r+4>>2]=g,g=i[a+12>>2],i[E+152>>2]=i[a+8>>2],i[E+156>>2]=g,g=i[a+4>>2],i[E+144>>2]=i[a>>2],i[E+148>>2]=g,g=i[t+12>>2],i[E+136>>2]=i[t+8>>2],i[E+140>>2]=g,g=i[t+4>>2],i[E+128>>2]=i[t>>2],i[E+132>>2]=g,AI(B,E+144|0,E+128|0),g=i[E+204>>2],i[t+8>>2]=i[E+200>>2],i[t+12>>2]=g,g=i[E+196>>2],i[t>>2]=i[E+192>>2],i[t+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[a+12>>2],i[E+104>>2]=i[a+8>>2],i[E+108>>2]=g,g=i[a+4>>2],i[E+96>>2]=i[a>>2],i[E+100>>2]=g,AI(B,E+112|0,E+96|0),g=i[E+204>>2],i[a+8>>2]=i[E+200>>2],i[a+12>>2]=g,g=i[E+196>>2],i[a>>2]=i[E+192>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+88>>2]=i[_+8>>2],i[E+92>>2]=g,g=i[_+4>>2],i[E+80>>2]=i[_>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(B,E+80|0,E- -64|0),g=i[E+204>>2],i[c+8>>2]=i[E+200>>2],i[c+12>>2]=g,g=i[E+196>>2],i[c>>2]=i[E+192>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[_+12>>2],i[E+40>>2]=i[_+8>>2],i[E+44>>2]=g,g=i[_+4>>2],i[E+32>>2]=i[_>>2],i[E+36>>2]=g,AI(B,E+48|0,E+32|0),g=i[E+204>>2],i[_+8>>2]=i[E+200>>2],i[_+12>>2]=g,g=i[E+196>>2],i[_>>2]=i[E+192>>2],i[_+4>>2]=g,g=i[E+220>>2],i[E+24>>2]=i[E+216>>2],i[E+28>>2]=g,g=i[E+212>>2],i[E+16>>2]=i[E+208>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(B,E+16|0,E),D=i[E+192>>2],B=i[E+196>>2],g=i[E+200>>2],w=f^i[E+204>>2],i[Q+12>>2]=w,n=g^p,i[Q+8>>2]=n,k=B^e,i[Q+4>>2]=k,F=h^D,i[Q>>2]=F,7!=(0|(y=y+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}S=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,a=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,_=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,c=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,t=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,r=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,f=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,p=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,e=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,h=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,D=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,y=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=w^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=n^D^I^g^B^y,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^r^f^p^e^h,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^S^a^_^c^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}h=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,D=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,y=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,g=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,e=w^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24),C[A+12|0]=e,C[A+13|0]=e>>>8,C[A+14|0]=e>>>16,C[A+15|0]=e>>>24,I=n^I^g,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^B^y,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^h^D,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,f=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,p=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,h=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,D=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,y=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,B=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^y,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f^e^p,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+224|0}function u(A,I,g){var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=B=s-4032|0,$A(B+160|0,g),_=i[g+36>>2],i[(a=B+3840|0)>>2]=i[g+32>>2],i[a+4>>2]=_,c=i[g+28>>2],i[(_=B+3832|0)>>2]=i[g+24>>2],i[_+4>>2]=c,r=i[g+20>>2],i[(c=B+3824|0)>>2]=i[g+16>>2],i[c+4>>2]=r,e=i[g+12>>2],i[(r=B+3816|0)>>2]=i[g+8>>2],i[r+4>>2]=e,e=i[g+4>>2],i[B+3808>>2]=i[g>>2],i[B+3812>>2]=e,D=i[g+52>>2],i[(e=B+3856|0)>>2]=i[g+48>>2],i[e+4>>2]=D,w=i[g+60>>2],i[(D=B+3864|0)>>2]=i[g+56>>2],i[D+4>>2]=w,y=i[4+(f=g- -64|0)>>2],i[(w=B+3872|0)>>2]=i[f>>2],i[w+4>>2]=y,y=i[g+76>>2],i[(f=B+3880|0)>>2]=i[g+72>>2],i[f+4>>2]=y,y=i[g+44>>2],i[B+3848>>2]=i[g+40>>2],i[B+3852>>2]=y,n=i[g+92>>2],i[(y=B+3896|0)>>2]=i[g+88>>2],i[y+4>>2]=n,k=i[g+100>>2],i[(n=B+3904|0)>>2]=i[g+96>>2],i[n+4>>2]=k,F=i[g+108>>2],i[(k=B+3912|0)>>2]=i[g+104>>2],i[k+4>>2]=F,S=i[g+116>>2],i[(F=B+3920|0)>>2]=i[g+112>>2],i[F+4>>2]=S,S=i[g+84>>2],i[B+3888>>2]=i[g+80>>2],i[B+3892>>2]=S,KA(Q=B+3528|0,S=B+3808|0),b(E=B+2408|0,Q,t=B+3648|0),b(B+2448|0,h=B+3568|0,p=B+3608|0),b(B+2488|0,p,t),b(B+2528|0,Q,h),$A(t=B+320|0,E),sA(Q=B+3368|0,g,t),b(E=B+2248|0,Q,t=B+3488|0),b(B+2288|0,h=B+3408|0,p=B+3448|0),b(B+2328|0,p,t),b(B+2368|0,Q,h),$A(B+480|0,E),E=i[4+(Q=B+2440|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2432|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2424|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2416|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2456|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2464|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2472|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2480|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2412>>2],i[B+3808>>2]=i[B+2408>>2],i[B+3812>>2]=Q,Q=i[B+2452>>2],i[B+3848>>2]=i[B+2448>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2520|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2512|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2504|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2496|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2492>>2],i[B+3888>>2]=i[B+2488>>2],i[B+3892>>2]=Q,KA(Q=B+3208|0,S),b(E=B+2088|0,Q,t=B+3328|0),b(B+2128|0,h=B+3248|0,p=B+3288|0),b(B+2168|0,p,t),b(B+2208|0,Q,h),$A(t=B+640|0,E),sA(Q=B+3048|0,g,t),b(E=B+1928|0,Q,t=B+3168|0),b(B+1968|0,h=B+3088|0,p=B+3128|0),b(B+2008|0,p,t),b(B+2048|0,Q,h),$A(B+800|0,E),E=i[4+(Q=B+2280|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2272|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2264|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2256|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2296|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2304|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2312|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2320|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2252>>2],i[B+3808>>2]=i[B+2248>>2],i[B+3812>>2]=Q,Q=i[B+2292>>2],i[B+3848>>2]=i[B+2288>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2360|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2352|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2344|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2336|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2332>>2],i[B+3888>>2]=i[B+2328>>2],i[B+3892>>2]=Q,KA(Q=B+2888|0,S),b(E=B+1768|0,Q,t=B+3008|0),b(B+1808|0,h=B+2928|0,p=B+2968|0),b(B+1848|0,p,t),b(B+1888|0,Q,h),$A(t=B+960|0,E),sA(Q=B+2728|0,g,t),b(g=B+1608|0,Q,E=B+2848|0),b(B+1648|0,t=B+2768|0,h=B+2808|0),b(B+1688|0,h,E),b(B+1728|0,Q,t),$A(B+1120|0,g),Q=i[4+(g=B+2120|0)>>2],i[a>>2]=i[g>>2],i[a+4>>2]=Q,a=i[4+(g=B+2112|0)>>2],i[_>>2]=i[g>>2],i[_+4>>2]=a,a=i[4+(g=B+2104|0)>>2],i[c>>2]=i[g>>2],i[c+4>>2]=a,a=i[4+(g=B+2096|0)>>2],i[r>>2]=i[g>>2],i[r+4>>2]=a,a=i[4+(g=B+2136|0)>>2],i[e>>2]=i[g>>2],i[e+4>>2]=a,a=i[4+(g=B+2144|0)>>2],i[D>>2]=i[g>>2],i[D+4>>2]=a,a=i[4+(g=B+2152|0)>>2],i[w>>2]=i[g>>2],i[w+4>>2]=a,a=i[4+(g=B+2160|0)>>2],i[f>>2]=i[g>>2],i[f+4>>2]=a,g=i[B+2092>>2],i[B+3808>>2]=i[B+2088>>2],i[B+3812>>2]=g,g=i[B+2132>>2],i[B+3848>>2]=i[B+2128>>2],i[B+3852>>2]=g,a=i[4+(g=B+2200|0)>>2],i[F>>2]=i[g>>2],i[F+4>>2]=a,a=i[4+(g=B+2192|0)>>2],i[k>>2]=i[g>>2],i[k+4>>2]=a,a=i[4+(g=B+2184|0)>>2],i[n>>2]=i[g>>2],i[n+4>>2]=a,a=i[4+(g=B+2176|0)>>2],i[y>>2]=i[g>>2],i[y+4>>2]=a,g=i[B+2172>>2],i[B+3888>>2]=i[B+2168>>2],i[B+3892>>2]=g,KA(g=B+2568|0,S),b(a=B+1448|0,g,_=B+2688|0),b(B+1488|0,c=B+2608|0,r=B+2648|0),b(B+1528|0,r,_),b(B+1568|0,g,c),$A(B+1280|0,a),a=0,g=0;c=(_=B+3968|0)+(g<<1)|0,r=o[I+g|0],C[c+1|0]=r>>>4,C[0|c]=15&r,_=_+((c=1|g)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(g=g+2|0)););for(I=0;g=8+(_=(g=I)+o[0|(I=(B+3968|0)+a|0)]|0)|0,C[0|I]=_-(240&g),g=8+(_=o[I+1|0]+(g<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&g),g=8+(_=o[I+2|0]+(g<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&g),I=g<<24>>24>>4,63!=(0|(a=a+3|0)););for(C[B+4031|0]=o[B+4031|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),w=A+120|0,f=A+80|0,y=A+40|0,r=B+3768|0,g=B+3888|0,_=B+3848|0,e=B+3728|0,a=B+3928|0,D=63;HA(B,n=B+160|0,C[(B+3968|0)+D|0]),sA(I=B+3808|0,A,B),b(c=B+3688|0,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),D=D-1|0;);HA(B,n,C[B+3968|0]),sA(I,A,B),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),s=B+4032|0}function x(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0;s=B=s-320|0,i[B+280>>2]=0,i[B+284>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+256>>2]=0,i[B+260>>2]=0,Ng(U=B+256|0,I,g),m=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,K=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,c=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,t=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,r=o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24,e=o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24,I=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,y=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,h=o[C+116|0]|o[C+117|0]<<8|o[C+118|0]<<16|o[C+119|0]<<24,b=o[C+100|0]|o[C+101|0]<<8|o[C+102|0]<<16|o[C+103|0]<<24,H=o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24,D=o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24,f=o[C+124|0]|o[C+125|0]<<8|o[C+126|0]<<16|o[C+127|0]<<24,Y=o[C+108|0]|o[C+109|0]<<8|o[C+110|0]<<16|o[C+111|0]<<24,J=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,p=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,w=o[C+112|0]|o[C+113|0]<<8|o[C+114|0]<<16|o[C+115|0]<<24,d=o[C+96|0]|o[C+97|0]<<8|o[C+98|0]<<16|o[C+99|0]<<24,n=i[B+272>>2],k=i[B+256>>2],F=i[B+260>>2],S=i[B+264>>2],N=i[B+268>>2],G=i[B+276>>2],M=i[B+284>>2],Q=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,E=o[C+104|0]|o[C+105|0]<<8|o[C+106|0]<<16|o[C+107|0]<<24,i[B+280>>2]=Q^E&(o[C+120|0]|o[C+121|0]<<8|o[C+122|0]<<16|o[C+123|0]<<24)^i[B+280>>2]^(o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24),i[B+272>>2]=J^d&w^p^n,i[B+284>>2]=H^Y&f^D^M,i[B+276>>2]=I^b&h^y^G,i[B+268>>2]=Y^H&e^r^N,i[B+264>>2]=t&Q^c^S^E,i[B+260>>2]=b^I&_^a^F,i[B+256>>2]=d^K&J^m^k,bg(g+U|0,0,32-g|0),Ng(A,U,g),g=i[B+280>>2],U=i[B+272>>2],b=i[B+284>>2],H=i[B+276>>2],Y=i[B+256>>2],J=i[B+260>>2],d=i[B+264>>2],m=i[B+268>>2],A=i[C+124>>2],i[B+312>>2]=i[C+120>>2],i[B+316>>2]=A,A=i[C+116>>2],i[B+304>>2]=i[C+112>>2],i[B+308>>2]=A,A=i[C+108>>2],i[B+248>>2]=i[C+104>>2],i[B+252>>2]=A,A=i[C+100>>2],i[B+240>>2]=i[C+96>>2],i[B+244>>2]=A,A=i[C+124>>2],i[B+232>>2]=i[C+120>>2],i[B+236>>2]=A,A=i[C+116>>2],i[B+224>>2]=i[C+112>>2],i[B+228>>2]=A,AI(I=B+288|0,B+240|0,B+224|0),A=i[B+300>>2],i[C+120>>2]=i[B+296>>2],i[C+124>>2]=A,A=i[B+292>>2],i[C+112>>2]=i[B+288>>2],i[C+116>>2]=A,A=i[C+92>>2],i[B+216>>2]=i[C+88>>2],i[B+220>>2]=A,A=i[C+84>>2],i[B+208>>2]=i[C+80>>2],i[B+212>>2]=A,A=i[C+108>>2],i[B+200>>2]=i[C+104>>2],i[B+204>>2]=A,A=i[C+100>>2],i[B+192>>2]=i[C+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+300>>2],i[C+104>>2]=i[B+296>>2],i[C+108>>2]=A,A=i[B+292>>2],i[C+96>>2]=i[B+288>>2],i[C+100>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,K=i[4+(A=C- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=K,K=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=K,K=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=K,AI(I,B+176|0,B+160|0),K=i[B+300>>2],i[C+88>>2]=i[B+296>>2],i[C+92>>2]=K,K=i[B+292>>2],i[C+80>>2]=i[B+288>>2],i[C+84>>2]=K,K=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=K,K=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=K,K=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=K,K=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=K,AI(I,B+144|0,B+128|0),K=i[B+300>>2],i[C+72>>2]=i[B+296>>2],i[C+76>>2]=K,K=i[B+292>>2],i[A>>2]=i[B+288>>2],i[A+4>>2]=K,K=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=K,K=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=K,K=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=K,K=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=K,AI(I,B+112|0,B+96|0),K=i[B+300>>2],i[C+56>>2]=i[B+296>>2],i[C+60>>2]=K,K=i[B+292>>2],i[C+48>>2]=i[B+288>>2],i[C+52>>2]=K,K=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=K,K=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=K,K=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=K,K=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=K,AI(I,B+80|0,B- -64|0),K=i[B+300>>2],i[C+40>>2]=i[B+296>>2],i[C+44>>2]=K,K=i[B+292>>2],i[C+32>>2]=i[B+288>>2],i[C+36>>2]=K,K=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=K,K=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=K,K=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=K,K=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=K,AI(I,B+48|0,B+32|0),K=i[B+300>>2],i[C+24>>2]=i[B+296>>2],i[C+28>>2]=K,K=i[B+292>>2],i[C+16>>2]=i[B+288>>2],i[C+20>>2]=K,K=i[B+316>>2],i[B+24>>2]=i[B+312>>2],i[B+28>>2]=K,K=i[B+308>>2],i[B+16>>2]=i[B+304>>2],i[B+20>>2]=K,K=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=K,K=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=K,AI(I,B+16|0,B),I=i[B+300>>2],i[C+8>>2]=i[B+296>>2],i[C+12>>2]=I,I=i[B+292>>2],i[C>>2]=i[B+288>>2],i[C+4>>2]=I,i[C+12>>2]=m^(o[C+12|0]|o[C+13|0]<<8|o[C+14|0]<<16|o[C+15|0]<<24),i[C+8>>2]=d^(o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24),i[C+4>>2]=J^(o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24),i[C>>2]=Y^(o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24),i[A>>2]=U^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[C+68>>2]=H^(o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24),i[C+72>>2]=g^(o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24),i[C+76>>2]=b^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24),s=B+320|0}function v(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0;R=Ig(C=(D=i[I+12>>2])<<1,E=C>>31,$=(q=i[I+4>>2])<<1,B=$>>31),P=f,F=V=i[I+8>>2],L=(Z=Ig(V,p=V>>31,V,p))+R|0,R=f+P|0,R=L>>>0>>0?R+1|0:R,P=Ig(j=i[I+16>>2],_=j>>31,Z=(z=i[I>>2])<<1,Q=Z>>31),R=f+R|0,R=(L=P+L|0)>>>0

>>0?R+1|0:R,e=i[I+28>>2],P=Ig(BA=a(e,38),w=BA>>31,e,S=e>>31),R=f+R|0,R=(L=P+L|0)>>>0

>>0?R+1|0:R,P=L,y=i[I+32>>2],X=Ig(O=a(y,19),c=O>>31,L=(g=i[I+24>>2])<<1,L>>31),L=f+R|0,L=(P=P+X|0)>>>0>>0?L+1|0:L,H=i[I+36>>2],R=Ig(X=a(H,38),o=X>>31,AA=(t=i[I+20>>2])<<1,s=AA>>31),I=f+L|0,J=R=(R>>>0>(P=R+P|0)>>>0?I+1:I)<<1|P>>>31,d=L=33554432+(N=P<<1)|0,m=R=L>>>0<33554432?R+1|0:R,I=R>>26,T=(67108863&R)<<6|L>>>26,R=Ig($,B,j,_),P=f,L=(IA=Ig(V<<=1,h=V>>31,D,G=D>>31))+R|0,R=f+P|0,R=L>>>0>>0?R+1|0:R,P=(IA=Ig(t,n=t>>31,Z,Q))+L|0,L=f+R|0,L=P>>>0>>0?L+1|0:L,iA=Ig(O,c,IA=e<<1,M=IA>>31),R=f+L|0,R=(P=iA+P|0)>>>0>>0?R+1|0:R,L=Ig(X,o,g,r=g>>31),R=f+R|0,I=I+(L=(L>>>0>(P=L+P|0)>>>0?R+1:R)<<1|P>>>31)|0,iA=P=(R=P<<1)+T|0,R=I=R>>>0>P>>>0?I+1|0:I,l=P=P+16777216|0,T=(33554431&(R=P>>>0<16777216?R+1|0:R))<<7|P>>>25,P=R>>25,I=Ig(C,E,D,G),R=f,L=Ig(j,_,V,h),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig($,B,AA,s),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(gA=Ig(Z,Q,g,r))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,gA=Ig(O,c,y,k=y>>31),R=f+I|0,R=(L=gA+L|0)>>>0>>0?R+1|0:R,I=(gA=Ig(X,o,IA,M))+L|0,L=f+R|0,I=((R=I)>>>0>>0?L+1:L)<<1|R>>>31,L=T,T=R<<1,R=I+P|0,R=(L=L+T|0)>>>0>>0?R+1|0:R,gA=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+24>>2]=L-(-67108864&I),L=Ig(I=a(t,38),I>>31,t,n),T=f,I=(R=Ig(I=z,R=I>>31,I,R))+L|0,L=f+T|0,L=I>>>0>>0?L+1|0:L,CA=Ig(z=a(g,19),K=z>>31,T=j<<1,U=T>>31),R=f+L|0,R=(I=CA+I|0)>>>0>>0?R+1|0:R,L=Ig(C,E,BA,w),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(CA=Ig(O,c,V,h))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,CA=Ig($,B,X,o),R=f+I|0,CA=R=((L=CA+L|0)>>>0>>0?R+1:R)<<1|L>>>31,u=I=33554432+(b=L<<1)|0,x=L=I>>>0<33554432?R+1|0:R,QA=(67108863&L)<<6|I>>>26,oA=L>>26,I=Ig(z,K,AA,s),R=f,L=Ig(Z,Q,q,Y=q>>31),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(W=Ig(j,_,BA,w))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,W=Ig(O,c,C,E),R=f+I|0,R=(L=W+L|0)>>>0>>0?R+1|0:R,W=(I=Ig(X,o,F,p))+L|0,L=f+R|0,R=(I=(I>>>0>W>>>0?L+1:L)<<1|W>>>31)+oA|0,R=(L=(W<<=1)+QA|0)>>>0>>0?R+1|0:R,oA=L,W=L=L+16777216|0,v=(33554431&(R=L>>>0<16777216?R+1|0:R))<<7|L>>>25,QA=R>>25,I=Ig(Z,Q,F,p),R=f,L=Ig($,B,q,Y),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,q=Ig(z,K,g,r),L=f+R|0,L=(I=q+I|0)>>>0>>0?L+1|0:L,q=Ig(AA,s,BA,w),R=f+L|0,R=(I=q+I|0)>>>0>>0?R+1|0:R,L=Ig(O,c,T,U),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(q=Ig(X,o,C,E))+I|0,I=f+R|0,R=(R=(L>>>0>>0?I+1:I)<<1|L>>>31)+QA|0,z=I=(L<<=1)+v|0,R=I>>>0>>0?R+1|0:R,QA=I=I+33554432|0,q=L=I>>>0<33554432?R+1|0:R,i[A+8>>2]=z-(-67108864&I),I=Ig(V,h,t,n),L=f,R=(z=Ig(j,_,C,E))+I|0,I=f+L|0,I=R>>>0>>0?I+1|0:I,L=(z=Ig($,B,g,r))+R|0,R=f+I|0,R=L>>>0>>0?R+1|0:R,I=(z=Ig(Z,Q,e,S))+L|0,L=f+R|0,L=I>>>0>>0?L+1|0:L,z=Ig(X,o,y,k),R=f+L|0,R=(R=((I=z+I|0)>>>0>>0?R+1:R)<<1|I>>>31)+(L=P>>26)|0,I=(L=P=(z=I<<1)+(I=(67108863&P)<<6|gA>>>26)|0)>>>0>>0?R+1|0:R,z=R=L+16777216|0,P=I=R>>>0<16777216?I+1|0:I,i[A+28>>2]=L-(-33554432&R),I=Ig(Z,Q,D,G),R=f,L=Ig($,B,F,p),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig(g,r,BA,w),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(O=Ig(O,c,AA,s))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,R=(O=Ig(X,o,j,_))+L|0,L=f+I|0,I=R,R=(R>>>0>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=q>>26)+R|0,R=(L=L+(q=(67108863&q)<<6|QA>>>26)|0)>>>0>>0?R+1|0:R,O=I=L+16777216|0,q=R=I>>>0<16777216?R+1|0:R,i[A+12>>2]=L-(-33554432&I),I=Ig(g,r,V,h),R=f,L=Ig(j,_,j,_),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig(C,E,AA,s),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig($,B,IA,M),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(j=Ig(Z,Q,y,k))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,R=(j=Ig(R=X,o,X=H,AA=X>>31))+L|0,L=f+I|0,I=R,R=(R>>>0>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=P>>25)+R|0,R=(L=L+(P=(33554431&P)<<7|z>>>25)|0)>>>0

>>0?R+1|0:R,j=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+32>>2]=L-(-67108864&I),R=q>>25,L=(q=(33554431&q)<<7|O>>>25)+(N-(I=-67108864&d)|0)|0,I=R+(J-((I>>>0>N>>>0)+m|0)|0)|0,I=L>>>0>>0?I+1|0:I,q=L,R=I,I=((67108863&(R=(L=L+33554432|0)>>>0<33554432?R+1|0:R))<<6|L>>>26)+(BA=iA-(-33554432&l)|0)|0,i[A+20>>2]=I,i[A+16>>2]=q-(-67108864&L),I=Ig(C,E,g,r),L=f,R=(q=Ig(t,n,T,U))+I|0,I=f+L|0,I=R>>>0>>0?I+1|0:I,L=(q=Ig(V,h,e,S))+R|0,R=f+I|0,R=L>>>0>>0?R+1|0:R,I=(q=Ig($,B,y,k))+L|0,L=f+R|0,L=I>>>0>>0?L+1|0:L,q=Ig(Z,Q,X,AA),R=f+L|0,R=((I=q+I|0)>>>0>>0?R+1:R)<<1|I>>>31,q=I<<1,R=R+(L=P>>26)|0,I=(I=(67108863&P)<<6|j>>>26)>>>0>(P=q+I|0)>>>0?R+1|0:R,I=(R=P+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=P-(-33554432&R),q=oA-(-33554432&W)|0,P=b-(L=-67108864&u)|0,$=CA-((L>>>0>b>>>0)+x|0)|0,I=Ig((33554431&I)<<7|R>>>25,I>>25,19,0),L=f+$|0,P=R=I+P|0,I=I>>>0>R>>>0?L+1|0:L,I=((67108863&(I=(R=R+33554432|0)>>>0<33554432?I+1|0:I))<<6|R>>>26)+q|0,i[A+4>>2]=I,i[A>>2]=P-(-67108864&R)}function R(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0;l=Ig(C=(p=i[I+12>>2])<<1,E=C>>31,p,S=p>>31),x=f,u=(z=Ig(R=i[I+16>>2],_=R>>31,c=(v=i[I+8>>2])<<1,y=c>>31))+l|0,l=f+x|0,l=u>>>0>>0?l+1|0:l,x=(j=Ig(W=(t=i[I+20>>2])<<1,s=W>>31,z=(L=i[I+4>>2])<<1,B=z>>31))+u|0,u=f+l|0,u=x>>>0>>0?u+1|0:u,P=Ig(g=i[I+24>>2],r=g>>31,j=(T=i[I>>2])<<1,Q=j>>31),l=f+u|0,l=(x=P+x|0)>>>0

>>0?l+1|0:l,u=x,h=i[I+32>>2],x=Ig(X=a(h,19),e=X>>31,h,n=h>>31),l=f+l|0,l=(u=u+x|0)>>>0>>0?l+1|0:l,U=i[I+36>>2],x=Ig(P=a(U,38),o=P>>31,k=(D=i[I+28>>2])<<1,N=k>>31),I=f+l|0,Z=u=x+u|0,x=u>>>0>>0?I+1|0:I,I=Ig(z,B,R,_),l=f,u=Ig(c,y,p,S),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,q=Ig(t,F=t>>31,j,Q),u=f+l|0,u=(I=q+I|0)>>>0>>0?u+1|0:u,q=Ig(X,e,k,N),l=f+u|0,l=(I=q+I|0)>>>0>>0?l+1|0:l,u=Ig(P,o,g,r),l=f+l|0,CA=I=u+I|0,O=I>>>0>>0?l+1|0:l,l=Ig(z,B,C,E),u=f,G=I=v,v=Ig(I,V=I>>31,I,V),I=f+u|0,I=(l=v+l|0)>>>0>>0?I+1|0:I,u=(v=Ig(j,Q,R,_))+l|0,l=f+I|0,l=u>>>0>>0?l+1|0:l,I=(v=Ig(q=a(D,38),w=q>>31,D,M=D>>31))+u|0,u=f+l|0,u=I>>>0>>0?u+1|0:u,I=(l=I)+(v=Ig(X,e,I=g<<1,I>>31))|0,l=f+u|0,l=I>>>0>>0?l+1|0:l,u=I,I=Ig(P,o,W,s),l=f+l|0,b=u=u+I|0,H=l=I>>>0>u>>>0?l+1|0:l,I=l,Y=u=u+33554432|0,J=I=u>>>0<33554432?I+1|0:I,l=(l=I>>26)+O|0,CA=I=(u=(67108863&I)<<6|u>>>26)+CA|0,l=I>>>0>>0?l+1|0:l,d=I=I+16777216|0,l=(l=(u=I>>>0<16777216?l+1|0:l)>>25)+x|0,I=(I=(33554431&u)<<7|I>>>25)>>>0>(u=I+Z|0)>>>0?l+1|0:l,Z=l=u+33554432|0,v=I=l>>>0<33554432?I+1|0:I,i[A+24>>2]=u-(-67108864&l),I=Ig(j,Q,G,V),l=f,x=Ig(z,B,L,$=L>>31),u=f+l|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,O=Ig(x=a(g,19),gA=x>>31,g,r),l=f+u|0,l=(I=O+I|0)>>>0>>0?l+1|0:l,u=(O=Ig(W,s,q,w))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,AA=Ig(X,e,O=R<<1,K=O>>31),l=f+I|0,l=(u=AA+u|0)>>>0>>0?l+1|0:l,I=u,u=Ig(P,o,C,E),l=f+l|0,IA=I=I+u|0,AA=I>>>0>>0?l+1|0:l,I=Ig(W,s,x,gA),l=f,L=Ig(j,Q,L,$),u=f+l|0,u=(I=L+I|0)>>>0>>0?u+1|0:u,L=Ig(R,_,q,w),l=f+u|0,l=(I=L+I|0)>>>0>>0?l+1|0:l,u=(L=Ig(X,e,C,E))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,L=Ig(P,o,G,V),l=f+I|0,BA=u=L+u|0,$=u>>>0>>0?l+1|0:l,u=Ig(I=a(t,38),I>>31,t,F),L=f,I=T,T=u,u=Ig(I,l=I>>31,I,l),l=f+L|0,l=(I=T+u|0)>>>0>>0?l+1|0:l,x=Ig(x,gA,O,K),u=f+l|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,x=Ig(C,E,q,w),l=f+u|0,l=(I=x+I|0)>>>0>>0?l+1|0:l,u=(x=Ig(X,e,c,y))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,x=Ig(z,B,P,o),l=f+I|0,L=u=x+u|0,T=l=u>>>0>>0?l+1|0:l,gA=u=u+33554432|0,m=l=u>>>0<33554432?l+1|0:l,I=l>>26,l=(67108863&l)<<6|u>>>26,u=I+$|0,$=x=l+BA|0,l=l>>>0>x>>>0?u+1|0:u,BA=u=x+16777216|0,x=(33554431&(l=u>>>0<16777216?l+1|0:l))<<7|u>>>25,l=(l>>25)+AA|0,l=(u=x+IA|0)>>>0>>0?l+1|0:l,AA=I=u+33554432|0,x=l=I>>>0<33554432?l+1|0:l,i[A+8>>2]=u-(-67108864&I),I=Ig(c,y,t,F),l=f,u=Ig(R,_,C,E),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(z,B,g,r),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(j,Q,D,M),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,IA=(u=Ig(P,o,h,n))+I|0,I=f+l|0,u=(l=v>>26)+(u=u>>>0>IA>>>0?I+1|0:I)|0,Z=I=(v=(67108863&v)<<6|Z>>>26)+IA|0,l=I>>>0>>0?u+1|0:u,IA=I=I+16777216|0,v=l=I>>>0<16777216?l+1|0:l,i[A+28>>2]=Z-(-33554432&I),I=Ig(j,Q,p,S),u=f,l=(V=Ig(z,B,G,V))+I|0,I=f+u|0,I=l>>>0>>0?I+1|0:I,l=(q=Ig(g,r,q,w))+l|0,u=f+I|0,I=(X=Ig(X,e,W,s))+l|0,l=f+(l>>>0>>0?u+1|0:u)|0,l=I>>>0>>0?l+1|0:l,u=Ig(P,o,R,_),l=f+l|0,l=(l=(I=u+I|0)>>>0>>0?l+1|0:l)+(u=x>>26)|0,I=(u=x=(Z=I)+(I=(67108863&x)<<6|AA>>>26)|0)>>>0>>0?l+1|0:l,X=l=u+16777216|0,x=I=l>>>0<16777216?I+1|0:I,i[A+12>>2]=u-(-33554432&l),I=Ig(g,r,c,y),l=f,u=Ig(R,_,R,_),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(C,E,W,s),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=(R=Ig(z,B,k,N))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,l=(R=Ig(j,Q,h,n))+u|0,u=f+I|0,u=l>>>0>>0?u+1|0:u,I=(R=Ig(I=P,o,P=U,W=P>>31))+l|0,l=f+u|0,l=I>>>0>>0?l+1|0:l,u=I,l=(I=v>>25)+l|0,l=(u=u+(v=(33554431&v)<<7|IA>>>25)|0)>>>0>>0?l+1|0:l,R=I=u+33554432|0,v=l=I>>>0<33554432?l+1|0:l,i[A+32>>2]=u-(-67108864&I),l=x>>25,u=(x=(33554431&x)<<7|X>>>25)+(b-(I=-67108864&Y)|0)|0,I=l+(H-((I>>>0>b>>>0)+J|0)|0)|0,I=u>>>0>>0?I+1|0:I,x=u,I=((67108863&(l=(u=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|u>>>26)+(q=CA-(-33554432&d)|0)|0,i[A+20>>2]=I,i[A+16>>2]=x-(-67108864&u),I=Ig(C,E,g,r),u=f,l=(x=Ig(t,F,O,K))+I|0,I=f+u|0,I=l>>>0>>0?I+1|0:I,u=(x=Ig(c,y,D,M))+l|0,l=f+I|0,l=u>>>0>>0?l+1|0:l,I=(x=Ig(z,B,h,n))+u|0,u=f+l|0,u=I>>>0>>0?u+1|0:u,x=(l=I)+(I=Ig(j,Q,P,W))|0,l=f+u|0,l=(I=I>>>0>x>>>0?l+1|0:l)+(l=v>>26)|0,I=(u=(v=(67108863&v)<<6|R>>>26)+x|0)>>>0>>0?l+1|0:l,I=(l=u+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=u-(-33554432&l),v=$-(-33554432&BA)|0,x=L-(u=-67108864&gA)|0,z=T-((u>>>0>L>>>0)+m|0)|0,I=Ig((33554431&I)<<7|l>>>25,I>>25,19,0),l=f+z|0,I=I>>>0>(u=I+x|0)>>>0?l+1|0:l,I=((67108863&(I=(l=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|l>>>26)+v|0,i[A+4>>2]=I,i[A>>2]=u-(-67108864&l)}function L(A,I){var g,C,B,Q,E,a,_,c,t,r,e=0,y=0,h=0;s=g=s-416|0,C=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,B=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,Q=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,a=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,_=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,c=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=A,A=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=A,A=i[I+76>>2],i[g+376>>2]=i[I+72>>2],i[g+380>>2]=A,e=i[4+(A=y=I- -64|0)>>2],i[g+368>>2]=i[A>>2],i[g+372>>2]=e,A=i[I+92>>2],i[g+360>>2]=i[I+88>>2],i[g+364>>2]=A,A=i[I+84>>2],i[g+352>>2]=i[I+80>>2],i[g+356>>2]=A,AI(A=g+384|0,g+368|0,g+352|0),e=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=e,e=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=e,e=i[I+60>>2],i[g+344>>2]=i[I+56>>2],i[g+348>>2]=e,e=i[I+52>>2],i[g+336>>2]=i[I+48>>2],i[g+340>>2]=e,e=i[I+76>>2],i[g+328>>2]=i[I+72>>2],i[g+332>>2]=e,e=i[y+4>>2],i[g+320>>2]=i[y>>2],i[g+324>>2]=e,AI(A,g+336|0,g+320|0),e=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=e,e=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=e,e=i[I+44>>2],i[g+312>>2]=i[I+40>>2],i[g+316>>2]=e,e=i[I+36>>2],i[g+304>>2]=i[I+32>>2],i[g+308>>2]=e,e=i[I+60>>2],i[g+296>>2]=i[I+56>>2],i[g+300>>2]=e,e=i[I+52>>2],i[g+288>>2]=i[I+48>>2],i[g+292>>2]=e,AI(A,g+304|0,g+288|0),e=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=e,e=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=e,e=i[I+28>>2],i[g+280>>2]=i[I+24>>2],i[g+284>>2]=e,e=i[I+20>>2],i[g+272>>2]=i[I+16>>2],i[g+276>>2]=e,e=i[I+44>>2],i[g+264>>2]=i[I+40>>2],i[g+268>>2]=e,e=i[I+36>>2],i[g+256>>2]=i[I+32>>2],i[g+260>>2]=e,AI(A,g+272|0,g+256|0),e=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=e,e=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=e,e=i[I+12>>2],i[g+248>>2]=i[I+8>>2],i[g+252>>2]=e,e=i[I+4>>2],i[g+240>>2]=i[I>>2],i[g+244>>2]=e,e=i[I+28>>2],i[g+232>>2]=i[I+24>>2],i[g+236>>2]=e,e=i[I+20>>2],i[g+224>>2]=i[I+16>>2],i[g+228>>2]=e,AI(A,g+240|0,g+224|0),e=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=e,e=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=e,e=i[g+412>>2],i[g+216>>2]=i[g+408>>2],i[g+220>>2]=e,e=i[g+404>>2],i[g+208>>2]=i[g+400>>2],i[g+212>>2]=e,e=i[I+12>>2],i[g+200>>2]=i[I+8>>2],i[g+204>>2]=e,e=i[I+4>>2],i[g+192>>2]=i[I>>2],i[g+196>>2]=e,AI(A,g+208|0,g+192|0),e=i[g+384>>2],t=i[g+388>>2],r=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^_,i[I+8>>2]=a^r,i[I+4>>2]=h^t,i[I>>2]=e^c,h=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=h,h=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=h,h=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=h,h=i[y+4>>2],i[g+176>>2]=i[y>>2],i[g+180>>2]=h,h=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=h,h=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=h,AI(A,g+176|0,g+160|0),h=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=h,h=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=h,h=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=h,h=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=h,h=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=h,h=i[y+4>>2],i[g+128>>2]=i[y>>2],i[g+132>>2]=h,AI(A,g+144|0,g+128|0),h=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=h,h=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=h,y=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=y,y=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=y,y=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=y,y=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=y,AI(A,g+112|0,g+96|0),y=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=y,y=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=y,y=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=y,y=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=y,y=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=y,y=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=y,AI(A,g+80|0,g- -64|0),y=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=y,y=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=y,y=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=y,y=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=y,y=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=y,y=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=y,AI(A,g+48|0,g+32|0),y=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=y,y=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=y,y=i[g+412>>2],i[g+24>>2]=i[g+408>>2],i[g+28>>2]=y,y=i[g+404>>2],i[g+16>>2]=i[g+400>>2],i[g+20>>2]=y,y=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=y,y=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=y,AI(A,g+16|0,g),A=i[g+384>>2],y=i[g+388>>2],h=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^E,i[I+8>>2]=h^Q,i[I+4>>2]=y^B,i[I>>2]=A^C,s=g+416|0}function P(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0;for(s=C=s-288|0,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,D=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,c=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,t=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,r=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g+112|0,A=33620224^(e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[I>>2]=A,i[(a=g+96|0)>>2]=1427652059^e,i[(_=g+80|0)>>2]=A,w=e^f,i[(A=g- -64|0)>>2]=w,i[g+56>>2]=1110511904,i[g+60>>2]=-584534669,i[(B=g+48|0)>>2]=1427652059,i[B+4>>2]=-248528275,i[g+40>>2]=1496785429,i[g+44>>2]=1652156816,i[(Q=g+32|0)>>2]=33620224,i[Q+4>>2]=218629379,i[g+24>>2]=1110511904,i[g+28>>2]=-584534669,i[(E=g+16|0)>>2]=1427652059,i[E+4>>2]=-248528275,i[g>>2]=w,w=1652156816^r,i[g+124>>2]=w,n=1496785429^t,i[g+120>>2]=n,p=218629379^c,i[g+116>>2]=p,i[g+108>>2]=-584534669^r,i[g+104>>2]=1110511904^t,i[g+100>>2]=-248528275^c,i[g+92>>2]=w,i[g+88>>2]=n,i[g+84>>2]=p,w=r^D,i[g+76>>2]=w,n=t^h,i[g+72>>2]=n,p=c^y,i[g+68>>2]=p,i[g+12>>2]=w,i[g+8>>2]=n,i[g+4>>2]=p,n=0;w=i[I+12>>2],i[C+280>>2]=i[I+8>>2],i[C+284>>2]=w,w=i[I+4>>2],i[C+272>>2]=i[I>>2],i[C+276>>2]=w,w=i[a+12>>2],i[C+248>>2]=i[a+8>>2],i[C+252>>2]=w,w=i[a+4>>2],i[C+240>>2]=i[a>>2],i[C+244>>2]=w,w=i[I+12>>2],i[C+232>>2]=i[I+8>>2],i[C+236>>2]=w,w=i[I+4>>2],i[C+224>>2]=i[I>>2],i[C+228>>2]=w,AI(w=C+256|0,C+240|0,C+224|0),p=i[C+268>>2],i[I+8>>2]=i[C+264>>2],i[I+12>>2]=p,p=i[C+260>>2],i[I>>2]=i[C+256>>2],i[I+4>>2]=p,p=i[_+12>>2],i[C+216>>2]=i[_+8>>2],i[C+220>>2]=p,p=i[_+4>>2],i[C+208>>2]=i[_>>2],i[C+212>>2]=p,p=i[a+12>>2],i[C+200>>2]=i[a+8>>2],i[C+204>>2]=p,p=i[a+4>>2],i[C+192>>2]=i[a>>2],i[C+196>>2]=p,AI(w,C+208|0,C+192|0),p=i[C+268>>2],i[a+8>>2]=i[C+264>>2],i[a+12>>2]=p,p=i[C+260>>2],i[a>>2]=i[C+256>>2],i[a+4>>2]=p,p=i[A+12>>2],i[C+184>>2]=i[A+8>>2],i[C+188>>2]=p,p=i[A+4>>2],i[C+176>>2]=i[A>>2],i[C+180>>2]=p,p=i[_+12>>2],i[C+168>>2]=i[_+8>>2],i[C+172>>2]=p,p=i[_+4>>2],i[C+160>>2]=i[_>>2],i[C+164>>2]=p,AI(w,C+176|0,C+160|0),p=i[C+268>>2],i[_+8>>2]=i[C+264>>2],i[_+12>>2]=p,p=i[C+260>>2],i[_>>2]=i[C+256>>2],i[_+4>>2]=p,p=i[B+12>>2],i[C+152>>2]=i[B+8>>2],i[C+156>>2]=p,p=i[B+4>>2],i[C+144>>2]=i[B>>2],i[C+148>>2]=p,p=i[A+12>>2],i[C+136>>2]=i[A+8>>2],i[C+140>>2]=p,p=i[A+4>>2],i[C+128>>2]=i[A>>2],i[C+132>>2]=p,AI(w,C+144|0,C+128|0),p=i[C+268>>2],i[A+8>>2]=i[C+264>>2],i[A+12>>2]=p,p=i[C+260>>2],i[A>>2]=i[C+256>>2],i[A+4>>2]=p,p=i[Q+12>>2],i[C+120>>2]=i[Q+8>>2],i[C+124>>2]=p,p=i[Q+4>>2],i[C+112>>2]=i[Q>>2],i[C+116>>2]=p,p=i[B+12>>2],i[C+104>>2]=i[B+8>>2],i[C+108>>2]=p,p=i[B+4>>2],i[C+96>>2]=i[B>>2],i[C+100>>2]=p,AI(w,C+112|0,C+96|0),p=i[C+268>>2],i[B+8>>2]=i[C+264>>2],i[B+12>>2]=p,p=i[C+260>>2],i[B>>2]=i[C+256>>2],i[B+4>>2]=p,p=i[E+12>>2],i[C+88>>2]=i[E+8>>2],i[C+92>>2]=p,p=i[E+4>>2],i[C+80>>2]=i[E>>2],i[C+84>>2]=p,p=i[Q+12>>2],i[C+72>>2]=i[Q+8>>2],i[C+76>>2]=p,p=i[Q+4>>2],i[C+64>>2]=i[Q>>2],i[C+68>>2]=p,AI(w,C+80|0,C- -64|0),p=i[C+268>>2],i[Q+8>>2]=i[C+264>>2],i[Q+12>>2]=p,p=i[C+260>>2],i[Q>>2]=i[C+256>>2],i[Q+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[E+12>>2],i[C+40>>2]=i[E+8>>2],i[C+44>>2]=p,p=i[E+4>>2],i[C+32>>2]=i[E>>2],i[C+36>>2]=p,AI(w,C+48|0,C+32|0),p=i[C+268>>2],i[E+8>>2]=i[C+264>>2],i[E+12>>2]=p,p=i[C+260>>2],i[E>>2]=i[C+256>>2],i[E+4>>2]=p,p=i[C+284>>2],i[C+24>>2]=i[C+280>>2],i[C+28>>2]=p,p=i[C+276>>2],i[C+16>>2]=i[C+272>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(w,C+16|0,C),w=i[C+268>>2],i[g+8>>2]=i[C+264>>2],i[g+12>>2]=w,w=i[C+260>>2],i[g>>2]=i[C+256>>2],i[g+4>>2]=w,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^D,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^h,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^y,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^e,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^c,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^t,i[g+76>>2]=(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^r,10!=(0|(n=n+1|0)););s=C+288|0}function q(A,I){var g,B=0,Q=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0;if(s=g=s-48|0,!((B=nI(A))||(B=-26,I-3>>>0<4294967294))){_=i[A+44>>2],B=i[A+48>>2],i[g+4>>2]=0,Q=i[A+40>>2],i[g+32>>2]=B,i[g+16>>2]=-1,i[g+12>>2]=Q,B=((e=(Q=B<<3)>>>0<_>>>0?_:Q)>>>0)/((_=B<<2)>>>0)|0,i[g+24>>2]=B,i[g+28>>2]=B<<2,i[g+20>>2]=a(B,_),B=i[A+52>>2],i[g+40>>2]=I,i[g+36>>2]=B,h=I=s,s=B=I-1152&-64,I=-25;A:{if(!(!(_=g+4|0)|!A)&&(Q=K(i[_+20>>2]<<3),i[_+4>>2]=Q,I=-22,Q)){I:{if((I=i[_+16>>2])&&1024==(((Q=I<<10)>>>0)/(I>>>0)|0)&&(I=K(12),i[_>>2]=I,I)){if(i[I>>2]=0,i[I+4>>2]=0,I=tI(B+128|0,Q),i[9404]=I,I)i[B+128>>2]=0;else if(I=i[B+128>>2])break I;BA(i[_>>2]),i[_>>2]=0}WI(_,i[A+56>>2]),s=h,I=-22;break A}if(i[i[_>>2]>>2]=I,i[i[_>>2]+4>>2]=I,i[i[_>>2]+8>>2]=Q,D=i[_+36>>2],eA(I=B+128|0,0,0,64),i[B+124>>2]=i[A+48>>2],WA(I,Q=B+124|0,4,0),i[B+124>>2]=i[A+4>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+44>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+40>>2],WA(I,Q,4,0),i[B+124>>2]=19,WA(I,Q,4,0),i[B+124>>2]=D,WA(I,Q,4,0),i[B+124>>2]=i[A+12>>2],WA(I,Q,4,0),(Q=i[A+8>>2])&&(WA(I,Q,i[A+12>>2],0),1&C[A+56|0]&&(XC(i[A+8>>2],i[A+12>>2]),i[A+12>>2]=0)),i[B+124>>2]=i[A+20>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+16>>2])&&WA(I,Q,i[A+20>>2],0),i[B+124>>2]=i[A+28>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+24>>2])&&(WA(I,Q,i[A+28>>2],0),2&o[A+56|0]&&(XC(i[A+24>>2],i[A+28>>2]),i[A+28>>2]=0)),i[B+124>>2]=i[A+36>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+32>>2])&&WA(I,Q,i[A+36>>2],0),Hg(B+128|0,B+48|0,64),XC(B+112|0,8),i[_+28>>2])for(Q=0;;){for(i[B+112>>2]=0,i[B+116>>2]=Q,aA(B+128|0,1024,B+48|0,72),D=i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,y=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=y,128!=(0|(I=I+4|0)););for(i[B+112>>2]=1,aA(e,1024,B+48|0,72),D=1024+(i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,e=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=e,128!=(0|(I=I+4|0)););if(!((Q=Q+1|0)>>>0>2]))break}XC(B+128|0,1024),XC(B+48|0,72),I=0}s=h}if(B=I,!I){if(i[g+12>>2])for(;;){if(s=I=s-80|0,!(!(_=g+4|0)|!i[_+28>>2])){for(C[I+72|0]=0,i[I+64>>2]=p,B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+56>>2]=i[I+72>>2],i[I+60>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+48>>2]=i[I+64>>2],i[I+52>>2]=Q,F(_,I+48|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=1,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+40>>2]=i[I+72>>2],i[I+44>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+32>>2]=i[I+64>>2],i[I+36>>2]=Q,F(_,I+32|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=2,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+24>>2]=i[I+72>>2],i[I+28>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+16>>2]=i[I+64>>2],i[I+20>>2]=Q,F(_,I+16|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=3,Q)for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+8>>2]=i[I+72>>2],i[I+12>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I>>2]=i[I+64>>2],i[I+4>>2]=Q,F(_,I),(B=B+1|0)>>>0>2];);}}}if(s=I+80|0,!((p=p+1|0)>>>0>2]))break}if(s=I=s-2048|0,!(!A|!(B=g+4|0))){if(p=i[B+24>>2],Ng(I+1024|0,c=(i[i[B>>2]+4>>2]+(p<<10)|0)-1024|0,1024),(y=i[B+28>>2])>>>0>=2)for(D=1;;){for(_=c+(a(D,p)<<10)|0,r=0;t=i[(h=(Q=r<<3)+(e=I+1024|0)|0)>>2],w=i[(f=Q+_|0)>>2],f=i[h+4>>2]^i[f+4>>2],i[h>>2]=t^w,i[h+4>>2]=f,f=i[(h=(t=8|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,f=i[(h=(t=16|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,h=i[(Q=(h=e)+(e=24|Q)|0)>>2],t=i[(e=_+e|0)>>2],e=i[Q+4>>2]^i[e+4>>2],i[Q>>2]=t^h,i[Q+4>>2]=e,128!=(0|(r=r+4|0)););if((0|y)==(0|(D=D+1|0)))break}_=Ng(I,I+1024|0,1024),aA(i[A>>2],i[A+4>>2],_,1024),XC(_+1024|0,1024),XC(_,1024),WI(B,i[A+56>>2])}s=I+2048|0,B=0}}return s=g+48|0,B}function z(A,I,g,B,Q){var E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0;for(E=s+-64|0,a=i[A+60>>2],_=i[A+56>>2],P=i[A+52>>2],L=i[A+48>>2],c=i[A+44>>2],t=i[A+40>>2],r=i[A+36>>2],e=i[A+32>>2],y=i[A+28>>2],h=i[A+24>>2],D=i[A+20>>2],f=i[A+16>>2],p=i[A+12>>2],w=i[A+8>>2],n=i[A+4>>2],k=i[A>>2];;){if(!Q&B>>>0>63|Q)F=g;else{if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=0,i[E+4>>2]=0,N=0,B|Q)for(;C[N+E|0]=o[I+N|0],!Q&(N=N+1|0)>>>0>>0|Q;);I=F=E,O=g}for(q=20,S=k,Y=n,J=w,l=p,N=f,g=D,M=h,K=y,U=e,x=r,d=t,G=a,v=_,u=P,m=L,b=c;H=N,S=Lg((N=S+N|0)^m,16),H=m=Lg(H^(U=S+U|0),12),m=Lg((R=N+m|0)^S,8),N=Lg(H^(U=m+U|0),7),G=Lg((S=K+l|0)^G,16),K=Lg((b=G+b|0)^K,12),l=Lg((J=M+J|0)^v,16),M=Lg((d=l+d|0)^M,12),v=(z=S+K|0)+N|0,j=Lg((J=M+J|0)^l,8),S=Lg(v^j,16),l=Lg((Y=g+Y|0)^u,16),g=Lg((x=l+x|0)^g,12),H=N,u=Lg((Y=g+Y|0)^l,8),H=Lg(H^(N=(X=u+x|0)+S|0),12),v=Lg(S^(l=H+v|0),8),N=Lg((x=v+N|0)^H,7),H=U,U=J,S=Lg(G^z,8),J=Lg((G=S+b|0)^K,7),u=Lg((U=U+J|0)^u,16),b=Lg((K=H+u|0)^J,12),u=Lg(u^(J=b+U|0),8),K=Lg((U=K+u|0)^b,7),b=G,G=Y,Y=Lg((d=d+j|0)^M,7),M=b+(m=Lg((G=G+Y|0)^m,16))|0,b=G,G=Lg(M^Y,12),m=Lg(m^(Y=b+G|0),8),M=Lg((b=M+m|0)^G,7),H=d,G=S,S=Lg(g^X,7),G=Lg(G^(d=S+R|0),16),R=Lg((g=H+G|0)^S,12),G=Lg(G^(S=R+d|0),8),g=Lg((d=g+G|0)^R,7),q=q-2|0;);if(q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,R=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,z=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,j=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,X=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,W=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,V=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,Z=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,T=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,$=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,AA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,IA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,gA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,CA=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,S=S+k^(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),C[0|F]=S,C[F+1|0]=S>>>8,C[F+2|0]=S>>>16,C[F+3|0]=S>>>24,S=G+a^CA,C[F+60|0]=S,C[F+61|0]=S>>>8,C[F+62|0]=S>>>16,C[F+63|0]=S>>>24,S=v+_^gA,C[F+56|0]=S,C[F+57|0]=S>>>8,C[F+58|0]=S>>>16,C[F+59|0]=S>>>24,S=u+P^IA,C[F+52|0]=S,C[F+53|0]=S>>>8,C[F+54|0]=S>>>16,C[F+55|0]=S>>>24,S=m+L^AA,C[F+48|0]=S,C[F+49|0]=S>>>8,C[F+50|0]=S>>>16,C[F+51|0]=S>>>24,S=b+c^$,C[F+44|0]=S,C[F+45|0]=S>>>8,C[F+46|0]=S>>>16,C[F+47|0]=S>>>24,S=d+t^T,C[F+40|0]=S,C[F+41|0]=S>>>8,C[F+42|0]=S>>>16,C[F+43|0]=S>>>24,S=x+r^Z,C[F+36|0]=S,C[F+37|0]=S>>>8,C[F+38|0]=S>>>16,C[F+39|0]=S>>>24,S=U+e^V,C[F+32|0]=S,C[F+33|0]=S>>>8,C[F+34|0]=S>>>16,C[F+35|0]=S>>>24,K=K+y^W,C[F+28|0]=K,C[F+29|0]=K>>>8,C[F+30|0]=K>>>16,C[F+31|0]=K>>>24,M=H^M+h,C[F+24|0]=M,C[F+25|0]=M>>>8,C[F+26|0]=M>>>16,C[F+27|0]=M>>>24,g=X^g+D,C[F+20|0]=g,C[F+21|0]=g>>>8,C[F+22|0]=g>>>16,C[F+23|0]=g>>>24,g=j^N+f,C[F+16|0]=g,C[F+17|0]=g>>>8,C[F+18|0]=g>>>16,C[F+19|0]=g>>>24,g=z^l+p,C[F+12|0]=g,C[F+13|0]=g>>>8,C[F+14|0]=g>>>16,C[F+15|0]=g>>>24,g=R^J+w,C[F+8|0]=g,C[F+9|0]=g>>>8,C[F+10|0]=g>>>16,C[F+11|0]=g>>>24,g=q^Y+n,C[F+4|0]=g,C[F+5|0]=g>>>8,C[F+6|0]=g>>>16,C[F+7|0]=g>>>24,P=!(L=L+1|0)+P|0,!Q&B>>>0<=64){if(!(!(B|Q)|!Q&B>>>0>63|!!(0|Q)))for(N=0;C[N+O|0]=o[F+N|0],B>>>0>(N=N+1|0)>>>0;);i[A+52>>2]=P,i[A+48>>2]=L;break}I=I- -64|0,g=F- -64|0,Q=Q-1|0,Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q}}function j(A,I){I|=0;var g,B=0,Q=0,o=0,E=0,a=0,_=0,c=0;return s=g=s-704|0,B=80+((Q=i[72+(A|=0)>>2]>>>3&127)+A|0)|0,Q>>>0>=112?(Ng(B,35056,128-Q|0),k(A,Q=A+80|0,g,g+640|0),bg(Q,0,112)):Ng(B,35056,112-Q|0),_=(o=i[A+64>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+68>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+192|0]=B,C[A+193|0]=B>>>8,C[A+194|0]=B>>>16,C[A+195|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+196|0]=Q,C[A+197|0]=Q>>>8,C[A+198|0]=Q>>>16,C[A+199|0]=Q>>>24,_=(o=i[A+72>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+76>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+200|0]=B,C[A+201|0]=B>>>8,C[A+202|0]=B>>>16,C[A+203|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+204|0]=Q,C[A+205|0]=Q>>>8,C[A+206|0]=Q>>>16,C[A+207|0]=Q>>>24,k(A,A+80|0,g,g+640|0),_=(o=i[A>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+4>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[0|I]=B,C[I+1|0]=B>>>8,C[I+2|0]=B>>>16,C[I+3|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,_=(o=i[A+8>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+12>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+8|0]=B,C[I+9|0]=B>>>8,C[I+10|0]=B>>>16,C[I+11|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,_=(o=i[A+16>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+20>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+16|0]=B,C[I+17|0]=B>>>8,C[I+18|0]=B>>>16,C[I+19|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,_=(o=i[A+24>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+28>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+24|0]=B,C[I+25|0]=B>>>8,C[I+26|0]=B>>>16,C[I+27|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,_=(o=i[A+32>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+32|0]=B,C[I+33|0]=B>>>8,C[I+34|0]=B>>>16,C[I+35|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+36|0]=Q,C[I+37|0]=Q>>>8,C[I+38|0]=Q>>>16,C[I+39|0]=Q>>>24,_=(o=i[A+40>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+44>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,_=(o=i[A+48>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+52>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+48|0]=B,C[I+49|0]=B>>>8,C[I+50|0]=B>>>16,C[I+51|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+52|0]=Q,C[I+53|0]=Q>>>8,C[I+54|0]=Q>>>16,C[I+55|0]=Q>>>24,_=(o=i[A+56>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,B=I,c=E<<24,E=(a=-16777216&o)>>>24|0,I=c|a<<8|-16777216&((255&(I=i[A+60>>2]))<<24|o>>>8)|16711680&((16777215&I)<<8|o>>>24)|I>>>8&65280|I>>>24,C[B+56|0]=I,C[B+57|0]=I>>>8,C[B+58|0]=I>>>16,C[B+59|0]=I>>>24,I=Q|E|_,I|=Q=0,C[B+60|0]=I,C[B+61|0]=I>>>8,C[B+62|0]=I>>>16,C[B+63|0]=I>>>24,XC(g,704),XC(A,208),s=g+704|0,0}function X(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G=0;s=B=s-224|0,c=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,t=o[0|(G=g- -64|0)]|o[G+1|0]<<8|o[G+2|0]<<16|o[G+3|0]<<24,r=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,e=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,y=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,D=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,f=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,p=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,w=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,k=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,F=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,S=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,N=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(_=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=S&N^k^F^n^E,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=p&w^D^f^h^Q,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=e&y^c^t^r^a,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[G+4>>2],i[B+176>>2]=i[G>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),I=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=I,I=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=I,I=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=I,I=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=I,I=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=I,I=i[G+4>>2],i[B+128>>2]=i[G>>2],i[B+132>>2]=I,AI(A,B+144|0,B+128|0),I=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=I,I=i[B+196>>2],i[G>>2]=i[B+192>>2],i[G+4>>2]=I,I=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=I,I=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=I,I=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=I,I=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=I,I=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=I,I=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=I,I=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=I,I=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=I,I=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=I,I=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=I,I=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=I,I=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=I,I=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=I,I=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=I,I=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=I,I=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=I,I=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=I,I=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=I,I=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+192>>2],I=i[B+196>>2],G=i[B+200>>2],i[g+12>>2]=_^i[B+204>>2],i[g+8>>2]=G^E,i[g+4>>2]=I^Q,i[g>>2]=A^a,s=B+224|0}function O(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n=0,k=0,F=0,S=0,N=0;s=B=s-224|0,F=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,k=o[0|(n=g- -64|0)]|o[n+1|0]<<8|o[n+2|0]<<16|o[n+3|0]<<24,Q=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,E=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,a=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,_=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,c=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,t=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,r=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,e=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,N=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,y=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,h=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,D=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,f=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,N=f&p^N^h^D^y,C[A+8|0]=N,C[A+9|0]=N>>>8,C[A+10|0]=N>>>16,C[A+11|0]=N>>>24,S=r&e^S^c^t^_,C[A+4|0]=S,C[A+5|0]=S>>>8,C[A+6|0]=S>>>16,C[A+7|0]=S>>>24,F=E&a^F^k^Q^w,C[0|A]=F,C[A+1|0]=F>>>8,C[A+2|0]=F>>>16,C[A+3|0]=F>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[n+4>>2],i[B+176>>2]=i[n>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),k=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=k,k=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=k,k=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=k,k=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=k,k=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=k,k=i[n+4>>2],i[B+128>>2]=i[n>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=k,k=i[B+196>>2],i[n>>2]=i[B+192>>2],i[n+4>>2]=k,n=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=n,n=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=n,n=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=n,n=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=n,AI(A,B+112|0,B+96|0),n=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=n,n=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=n,n=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=n,n=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=n,n=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=n,n=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=n,AI(A,B+80|0,B- -64|0),n=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=n,n=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=n,n=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=n,n=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=n,n=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=n,n=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=n,AI(A,B+48|0,B+32|0),n=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=n,n=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=n,n=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=n,n=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=n,n=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=n,n=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=n,AI(A,B+16|0,B),A=i[B+192>>2],n=i[B+196>>2],k=i[B+200>>2],i[g+12>>2]=I^i[B+204>>2],i[g+8>>2]=k^N,i[g+4>>2]=n^S,i[g>>2]=A^F,s=B+224|0}function W(A,I){var g,B,Q,E,a,_,c,t,r,e,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;s=g=s-800|0,y=i[I+44>>2],D=i[I+84>>2],f=i[I+48>>2],p=i[I+88>>2],w=i[I+52>>2],h=i[I+92>>2],S=i[I+56>>2],n=i[I+96>>2],K=i[I+60>>2],N=i[I+100>>2],H=i[(U=I- -64|0)>>2],Y=i[I+104>>2],J=i[I+68>>2],d=i[I+108>>2],m=i[I+72>>2],l=i[I+112>>2],u=i[I+40>>2],x=i[I+80>>2],k=i[I+76>>2],F=i[I+116>>2],i[g+324>>2]=k+F,i[g+320>>2]=m+l,i[g+316>>2]=J+d,i[g+312>>2]=H+Y,i[g+308>>2]=N+K,i[g+304>>2]=n+S,i[g+300>>2]=h+w,i[g+296>>2]=f+p,i[g+292>>2]=y+D,i[g+288>>2]=u+x,i[g+36>>2]=F-k,i[g+32>>2]=l-m,i[g+28>>2]=d-J,i[g+24>>2]=Y-H,i[g+20>>2]=N-K,i[g+16>>2]=n-S,i[g+12>>2]=h-w,i[g+8>>2]=p-f,i[g+4>>2]=D-y,i[g>>2]=x-u,b(y=g+288|0,y,g),b(f=g+240|0,I,w=I+40|0),R(D=g+192|0,f),b(D,y,D),i[g+452>>2]=0,i[g+456>>2]=0,i[g+460>>2]=0,i[g+464>>2]=0,i[g+468>>2]=0,i[g+436>>2]=0,i[g+440>>2]=0,i[g+444>>2]=0,i[g+448>>2]=0,i[g+432>>2]=1,GA(p=g+576|0,g+432|0,D),b(D=g+720|0,p,y),b(K=g+672|0,p,f),b(n=g+48|0,D,K),b(n,n,y=I+120|0),b(g+528|0,I,1632),b(g+480|0,w,1632),b(g+624|0,D,2944),b(D=g+336|0,y,n),QI(S=g+384|0,D),h=o[g+384|0],D=i[I+36>>2],y=i[I+32>>2],i[g+176>>2]=y,i[g+180>>2]=D,f=i[I+28>>2],D=i[I+24>>2],i[g+168>>2]=D,i[g+172>>2]=f,p=i[I+20>>2],f=i[I+16>>2],i[g+160>>2]=f,i[g+164>>2]=p,w=i[I+12>>2],p=i[I+8>>2],i[g+152>>2]=p,i[g+156>>2]=w,N=i[I+4>>2],w=i[I>>2],i[g+144>>2]=w,i[g+148>>2]=N,N=i[I+44>>2],H=i[I+48>>2],Y=i[I+52>>2],J=i[I+56>>2],d=i[I+60>>2],m=i[U>>2],l=i[I+68>>2],u=i[I+72>>2],x=i[I+76>>2],U=i[I+40>>2],P=i[g+484>>2],k=i[g+148>>2],q=i[g+492>>2],F=i[g+156>>2],z=i[g+500>>2],G=i[g+164>>2],j=i[g+508>>2],M=i[g+172>>2],X=i[g+516>>2],v=i[g+180>>2],O=i[g+480>>2],W=i[g+488>>2],V=i[g+496>>2],Z=i[g+504>>2],h=0-(1&h)|0,i[g+176>>2]=y^h&(y^i[g+512>>2]),i[g+168>>2]=D^h&(D^Z),i[g+160>>2]=f^h&(f^V),i[g+152>>2]=p^h&(p^W),i[g+144>>2]=w^h&(w^O),i[g+180>>2]=v^h&(v^X),i[g+172>>2]=M^h&(M^j),i[g+164>>2]=G^h&(G^z),i[g+156>>2]=F^h&(F^q),i[g+148>>2]=k^h&(k^P),v=i[g+528>>2],P=i[g+532>>2],q=i[g+536>>2],z=i[g+540>>2],j=i[g+544>>2],X=i[g+548>>2],O=i[g+552>>2],W=i[g+556>>2],V=i[g+560>>2],Z=i[g+564>>2],y=i[g+672>>2],B=i[g+624>>2],D=i[g+676>>2],Q=i[g+628>>2],f=i[g+680>>2],E=i[g+632>>2],p=i[g+684>>2],a=i[g+636>>2],w=i[g+688>>2],_=i[g+640>>2],k=i[g+692>>2],c=i[g+644>>2],F=i[g+696>>2],t=i[g+648>>2],G=i[g+700>>2],r=i[g+652>>2],M=i[g+704>>2],e=i[g+656>>2],L=i[g+708>>2],i[g+708>>2]=L^h&(i[g+660>>2]^L),i[g+704>>2]=M^h&(M^e),i[g+700>>2]=G^h&(G^r),i[g+696>>2]=F^h&(F^t),i[g+692>>2]=k^h&(k^c),i[g+688>>2]=w^h&(w^_),i[g+684>>2]=p^h&(p^a),i[g+680>>2]=f^h&(f^E),i[g+676>>2]=D^h&(D^Q),i[g+672>>2]=y^h&(y^B),b(y=g+96|0,g+144|0,n),QI(S,y),D=i[I+84>>2],f=i[I+88>>2],p=i[I+92>>2],w=i[I+96>>2],n=i[I+100>>2],k=i[I+104>>2],F=i[I+108>>2],G=i[I+112>>2],M=i[I+80>>2],L=i[I+116>>2],I=0-(1&C[g+384|0])|0,y=x^h&(x^Z),i[g+420>>2]=L-(I&(0-y^y)^y),y=u^h&(u^V),i[g+416>>2]=G-(I&(0-y^y)^y),y=l^h&(l^W),i[g+412>>2]=F-(I&(0-y^y)^y),y=m^h&(m^O),i[g+408>>2]=k-(I&(0-y^y)^y),y=d^h&(d^X),i[g+404>>2]=n-(I&(0-y^y)^y),y=J^h&(J^j),i[g+400>>2]=w-(I&(0-y^y)^y),y=Y^h&(Y^z),i[g+396>>2]=p-(I&(0-y^y)^y),y=H^h&(H^q),i[g+392>>2]=f-(I&(0-y^y)^y),y=N^h&(N^P),i[g+388>>2]=D-(I&(0-y^y)^y),y=I,I=U^h&(U^v),i[g+384>>2]=M-(y&(0-I^I)^I),b(S,K,S),QI(g+768|0,S),I=0-(1&C[g+768|0])|0,y=i[g+384>>2],i[g+384>>2]=I&(0-y^y)^y,y=i[g+388>>2],i[g+388>>2]=I&(0-y^y)^y,y=i[g+392>>2],i[g+392>>2]=I&(0-y^y)^y,y=i[g+396>>2],i[g+396>>2]=I&(0-y^y)^y,y=i[g+400>>2],i[g+400>>2]=I&(0-y^y)^y,y=i[g+404>>2],i[g+404>>2]=I&(0-y^y)^y,y=i[g+408>>2],i[g+408>>2]=I&(0-y^y)^y,y=i[g+412>>2],i[g+412>>2]=I&(0-y^y)^y,y=i[g+416>>2],i[g+416>>2]=I&(0-y^y)^y,y=I,I=i[g+420>>2],i[g+420>>2]=y&(0-I^I)^I,QI(A,S),s=g+800|0}function V(A,I){var g,C,B,Q,E,a,_,c,t,r=0,e=0;s=g=s-288|0,C=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,B=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,Q=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,E=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,a=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,_=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,c=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,t=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+280>>2]=i[I+120>>2],i[g+284>>2]=A,A=i[I+116>>2],i[g+272>>2]=i[I+112>>2],i[g+276>>2]=A,A=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=A,A=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=A,A=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=A,A=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=A,AI(e=g+256|0,g+240|0,g+224|0),A=i[g+268>>2],i[I+120>>2]=i[g+264>>2],i[I+124>>2]=A,A=i[g+260>>2],i[I+112>>2]=i[g+256>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=A,A=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=A,A=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=A,A=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=A,AI(e,g+208|0,g+192|0),A=i[g+268>>2],i[I+104>>2]=i[g+264>>2],i[I+108>>2]=A,A=i[g+260>>2],i[I+96>>2]=i[g+256>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=A,r=i[4+(A=I- -64|0)>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=r,r=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=r,r=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=r,AI(e,g+176|0,g+160|0),r=i[g+268>>2],i[I+88>>2]=i[g+264>>2],i[I+92>>2]=r,r=i[g+260>>2],i[I+80>>2]=i[g+256>>2],i[I+84>>2]=r,r=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=r,r=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=r,r=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=r,r=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=r,AI(e,g+144|0,g+128|0),r=i[g+268>>2],i[I+72>>2]=i[g+264>>2],i[I+76>>2]=r,r=i[g+260>>2],i[A>>2]=i[g+256>>2],i[A+4>>2]=r,r=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=r,r=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=r,r=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=r,r=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=r,AI(e,g+112|0,g+96|0),r=i[g+268>>2],i[I+56>>2]=i[g+264>>2],i[I+60>>2]=r,r=i[g+260>>2],i[I+48>>2]=i[g+256>>2],i[I+52>>2]=r,r=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=r,r=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=r,r=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=r,r=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=r,AI(e,g+80|0,g- -64|0),r=i[g+268>>2],i[I+40>>2]=i[g+264>>2],i[I+44>>2]=r,r=i[g+260>>2],i[I+32>>2]=i[g+256>>2],i[I+36>>2]=r,r=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=r,r=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=r,r=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=r,r=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=r,AI(e,g+48|0,g+32|0),r=i[g+268>>2],i[I+24>>2]=i[g+264>>2],i[I+28>>2]=r,r=i[g+260>>2],i[I+16>>2]=i[g+256>>2],i[I+20>>2]=r,r=i[g+284>>2],i[g+24>>2]=i[g+280>>2],i[g+28>>2]=r,r=i[g+276>>2],i[g+16>>2]=i[g+272>>2],i[g+20>>2]=r,r=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=r,r=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=r,AI(e,g+16|0,g),e=i[g+268>>2],i[I+8>>2]=i[g+264>>2],i[I+12>>2]=e,e=i[g+260>>2],i[I>>2]=i[g+256>>2],i[I+4>>2]=e,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^c,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^_,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^a,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^t,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+288|0}function Z(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k=0,F=0,S=0,N=0;s=B=s-240|0,i[B+200>>2]=0,i[B+204>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,Ng(F=B+192|0,I,g),S=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,N=o[0|(I=C- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,Q=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,E=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24,c=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,t=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,r=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,e=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,y=o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24,h=o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24,D=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,f=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,p=i[B+192>>2],w=i[B+196>>2],n=i[B+200>>2],i[B+204>>2]=(o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24)&(o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24)^(o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24)^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24)^i[B+204>>2]^(o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24),i[B+200>>2]=D&f^h^n^y^e,i[B+196>>2]=t&r^c^w^_^a,i[B+192>>2]=Q&E^S^N^k^p,bg(g+F|0,0,16-g|0),Ng(A,F,g),g=i[B+192>>2],F=i[B+196>>2],S=i[B+200>>2],N=i[B+204>>2],A=i[C+92>>2],i[B+232>>2]=i[C+88>>2],i[B+236>>2]=A,A=i[C+84>>2],i[B+224>>2]=i[C+80>>2],i[B+228>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,A=i[I+4>>2],i[B+176>>2]=i[I>>2],i[B+180>>2]=A,A=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=A,A=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=A,AI(A=B+208|0,B+176|0,B+160|0),k=i[B+220>>2],i[C+88>>2]=i[B+216>>2],i[C+92>>2]=k,k=i[B+212>>2],i[C+80>>2]=i[B+208>>2],i[C+84>>2]=k,k=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=k,k=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=k,k=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=k,k=i[I+4>>2],i[B+128>>2]=i[I>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+220>>2],i[C+72>>2]=i[B+216>>2],i[C+76>>2]=k,k=i[B+212>>2],i[I>>2]=i[B+208>>2],i[I+4>>2]=k,I=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=I,I=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=I,I=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=I,I=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+220>>2],i[C+56>>2]=i[B+216>>2],i[C+60>>2]=I,I=i[B+212>>2],i[C+48>>2]=i[B+208>>2],i[C+52>>2]=I,I=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=I,I=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=I,I=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=I,I=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+220>>2],i[C+40>>2]=i[B+216>>2],i[C+44>>2]=I,I=i[B+212>>2],i[C+32>>2]=i[B+208>>2],i[C+36>>2]=I,I=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=I,I=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=I,I=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=I,I=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+220>>2],i[C+24>>2]=i[B+216>>2],i[C+28>>2]=I,I=i[B+212>>2],i[C+16>>2]=i[B+208>>2],i[C+20>>2]=I,I=i[B+236>>2],i[B+24>>2]=i[B+232>>2],i[B+28>>2]=I,I=i[B+228>>2],i[B+16>>2]=i[B+224>>2],i[B+20>>2]=I,I=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=I,I=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+208>>2],I=i[B+212>>2],k=i[B+216>>2],i[C+12>>2]=N^i[B+220>>2],i[C+8>>2]=k^S,i[C+4>>2]=I^F,i[C>>2]=A^g,s=B+240|0}function T(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(a=1886610805^(B=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),E=1936682341^(i=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),c=1852142177^B,_=1819895653^i,i=1852075885^(B=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),Q=1685025377^(r=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^B,r^=1952801890,(0|(h=(I+g|0)-(y=7&g)|0))!=(0|I))for(;t=c=c+(B=t^(w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,_=_+(r^=n=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)|0,_=B>>>0>c>>>0?_+1|0:_,E=Q+E|0,E=(s=a)>>>0>(a=i+a|0)>>>0?E+1|0:E,Q=c+(i=UI(i,Q,13)^a)|0,c=_+(e=f^E)|0,e=UI(i,e,17)^Q,D=UI(e,c=(s=Q>>>0>>0?c+1|0:c)^f,13),p=f,B=UI(B,r,16),i=_^f,_=B^t,a=UI(a,E,32),t=c,c=f+i|0,t=1+(a=t+(E=(B=_+a|0)>>>0>>0?c+1|0:c)|0)|0,c=a,c=(a=B+e|0)>>>0>>0?t:c,D=UI(t=a^D,r=c^p,17),p=f,i=UI(_,i,21),E^=f,k=B^i,Q=UI(Q,s,32),i=f+E|0,Q=r+(s=(B=k+Q|0)>>>0>>0?i+1|0:i)|0,i=(_=B+t|0)^D,Q=(e=_>>>0>>0?Q+1|0:Q)^p,E=UI(k,E,16),r=t=s^f,E=UI(B^=E,t,21),s=f,t=(B=(a=UI(a,c,32))+B|0)^E,c=f+r|0,r=(E=B>>>0>>0?c+1|0:c)^s,c=UI(_,e,32),_=f,a=B^w,E^=n,(0|h)!=(0|(I=I+8|0)););switch(g<<=24,B=0,y-1|0){case 6:g|=o[I+6|0]<<16;case 5:g|=o[I+5|0]<<8;case 4:g|=o[I+4|0];case 3:e=(B=o[I+3|0])>>>8|0,B<<=24,g|=e;case 2:B|=(e=o[I+2|0])<<16,g|=y=e>>>16|0;case 1:B|=(e=o[I+1|0])<<8,g|=y=e>>>24|0;case 0:B=o[0|I]|B}return r=UI(I=B^t,t=g^r,16),_=_+t|0,c=(I=I+c|0)>>>0>>0?_+1|0:_,r=UI(_=I^r,t=c^f,21),e=f,s=1+(E=Q+E|0)|0,y=E,y=a=a>>>0>(E=i+a|0)>>>0?s:y,h=UI(E,a,32),t=f+t|0,e=UI(_=r^(a=_+h|0),r=e^(t=a>>>0>>0?t+1|0:t),16),h=f,Q=UI(i,Q,13)^E,i=(i=c)+(c=f^y)|0,y=UI(I=I+Q|0,E=I>>>0>>0?i+1|0:i,32),r=f+r|0,y=UI(_=e^(i=_+y|0),e=(r=i>>>0>>0?r+1|0:r)^h,21),h=f,I=a+(Q=c=UI(Q,c,17)^I)|0,a=(E^=f)+t|0,t=Q=I>>>0>>0?a+1|0:a,s=y,a=_+(y=UI(I,Q,32))|0,_=f+e|0,y=UI(Q=s^a,e=(_=a>>>0>>0?_+1|0:_)^h,16),h=f,s=i,E=UI(c,E,13)^I,c=(t^=f)+r|0,r=i=(I=s+(i=E)|0)>>>0>>0?c+1|0:c,i=UI(I,i,32),c=e+f|0,e=(s=Q)>>>0>(Q=Q+(255^i)|0)>>>0?c+1|0:c,y=UI(c=Q^y,i=h^e,21),h=f,E=UI(E,t,17)^I,g=(t=r^f)+(g^_)|0,_=g=(I=E+(B^=a)|0)>>>0>>0?g+1|0:g,g=UI(I,g,32),B=i+f|0,c=UI(a=(g=g+c|0)^y,B=(i=g>>>0>>0?B+1|0:B)^h,16),r=f,E=UI(E,t,13)^I,t=e+(_^=f)|0,t=Q=(I=Q+E|0)>>>0>>0?t+1|0:t,Q=UI(I,Q,32),y=r,s=1+(B=B+f|0)|0,r=B,r=(B=Q+a|0)>>>0>>0?s:r,c=UI(a=B^c,Q=y^r,21),e=f,E=UI(E,_,17),s=1+(i=i+(_=t^f)|0)|0,t=i,E=I=(y=g)>>>0>(g=g+(i=I^E)|0)>>>0?s:t,I=UI(g,I,32),Q=Q+f|0,t=(I=I+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,i=UI(i,_,13),_=r+(E^=f)|0,_=g=(r=B)>>>0>(B=B+(i^=g)|0)>>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,r=(g=g+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=g^c,Q=r^e,21),e=f,i=UI(i,E,17),y=1+(_=t+(E=_^f)|0)|0,t=_,I=UI(B=I+(_=B^i)|0,i=B>>>0>>0?y:t,32),Q=Q+f|0,t=(I=I+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,E=UI(_,E,13),_=r+(i^=f)|0,_=g=(B=g+(E^=B)|0)>>>0>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,a=UI((g=g+a|0)^c,(Q=g>>>0>>0?Q+1|0:Q)^e,21),c=f,B=UI(E,i,17)^B,E=UI(B,i=_^f,13),i=i+t|0,I=f^(I>>>0>(B=I+B|0)>>>0?i+1:i),a=UI(B^=E,I,17)^a,i=f^c,_=1+(I=I+Q|0)|0,Q=I,I=UI(I=g+B|0,g=g>>>0>I>>>0?_:Q,32)^a^I,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,I=g^f^i,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0}function $(A,I){var g,C,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0;s=g=s-624|0,R(a=g+480|0,I),b(a,1632,a),c=i[g+516>>2],i[g+276>>2]=c,t=i[g+512>>2],i[g+272>>2]=t,r=i[g+508>>2],i[g+268>>2]=r,e=i[g+504>>2],i[g+264>>2]=e,y=i[g+500>>2],i[g+260>>2]=y,h=i[g+496>>2],i[g+256>>2]=h,D=i[g+492>>2],i[g+252>>2]=D,f=i[g+488>>2],i[g+248>>2]=f,p=i[g+484>>2],i[g+244>>2]=p,n=i[g+480>>2],i[g+240>>2]=n+1,b(_=g+240|0,_,33968),i[g+468>>2]=c-12055116,i[g+464>>2]=t-18696448,i[g+460>>2]=r-3247719,i[g+456>>2]=e-6275908,i[g+452>>2]=y-8787816,i[g+448>>2]=h+114729,i[g+444>>2]=D+6949391,i[g+440>>2]=f-15372611,i[g+436>>2]=p+13857413,i[g+432>>2]=n-10913610,b(w=g+192|0,a,1584),i[g+228>>2]=0-i[g+228>>2],i[g+224>>2]=0-i[g+224>>2],i[g+220>>2]=0-i[g+220>>2],i[g+216>>2]=0-i[g+216>>2],i[g+212>>2]=0-i[g+212>>2],i[g+208>>2]=0-i[g+208>>2],i[g+204>>2]=0-i[g+204>>2],i[g+200>>2]=0-i[g+200>>2],i[g+196>>2]=0-i[g+196>>2],i[g+192>>2]=~i[g+192>>2],b(w,w,g+432|0),a=GA(C=g+384|0,_,w),b(_=g+336|0,C,I),QI(B=g+576|0,_),E=o[g+576|0],Y=i[g+420>>2],_=i[g+372>>2],J=i[g+416>>2],k=i[g+368>>2],d=i[g+412>>2],F=i[g+364>>2],m=i[g+408>>2],S=i[g+360>>2],l=i[g+404>>2],N=i[g+356>>2],u=i[g+400>>2],G=i[g+352>>2],x=i[g+396>>2],M=i[g+348>>2],v=i[g+392>>2],K=i[g+344>>2],L=i[g+388>>2],U=i[g+340>>2],Q=i[g+384>>2],H=i[g+336>>2],I=a-1|0,i[g+612>>2]=I&c,i[g+608>>2]=I&t,i[g+604>>2]=I&r,i[g+600>>2]=I&e,i[g+596>>2]=I&y,i[g+592>>2]=I&h,i[g+588>>2]=I&D,i[g+584>>2]=I&f,i[g+580>>2]=I&p,i[g+576>>2]=n|0-a,H=I&(0-(H^(a=0-(1&E)|0)&(H^0-H))^Q)^Q,i[g+384>>2]=H,U=L^I&(L^0-(U^a&(U^0-U))),i[g+388>>2]=U,K=v^I&(v^0-(K^a&(K^0-K))),i[g+392>>2]=K,M=x^I&(x^0-(M^a&(M^0-M))),i[g+396>>2]=M,G=u^I&(u^0-(G^a&(G^0-G))),i[g+400>>2]=G,N=l^I&(l^0-(N^a&(N^0-N))),i[g+404>>2]=N,S=m^I&(m^0-(S^a&(S^0-S))),i[g+408>>2]=S,F=d^I&(d^0-(F^a&(F^0-F))),i[g+412>>2]=F,k=J^I&(J^0-(k^a&(k^0-k))),i[g+416>>2]=k,a=Y^I&(Y^0-(_^a&(_^0-_))),i[g+420>>2]=a,i[g+564>>2]=c,i[g+560>>2]=t,i[g+556>>2]=r,i[g+552>>2]=e,i[g+548>>2]=y,i[g+544>>2]=h,i[g+540>>2]=D,i[g+536>>2]=f,i[g+532>>2]=p,i[g+528>>2]=n-1,b(I=g+528|0,I,B),b(I,I,34016),c=i[g+192>>2],t=i[g+528>>2],r=i[g+196>>2],e=i[g+532>>2],y=i[g+200>>2],h=i[g+536>>2],D=i[g+204>>2],f=i[g+540>>2],p=i[g+208>>2],n=i[g+544>>2],_=i[g+212>>2],Y=i[g+548>>2],J=i[g+216>>2],d=i[g+552>>2],m=i[g+220>>2],l=i[g+556>>2],u=i[g+224>>2],x=i[g+560>>2],v=i[g+228>>2],L=i[g+564>>2],i[g+180>>2]=a<<1,i[g+176>>2]=k<<1,i[g+172>>2]=F<<1,i[g+168>>2]=S<<1,i[g+164>>2]=N<<1,i[g+160>>2]=G<<1,i[g+156>>2]=M<<1,i[g+152>>2]=K<<1,i[g+148>>2]=U<<1,i[g+144>>2]=H<<1,i[g+564>>2]=L-v,i[g+560>>2]=x-u,i[g+556>>2]=l-m,i[g+552>>2]=d-J,i[g+548>>2]=Y-_,i[g+544>>2]=n-p,i[g+540>>2]=f-D,i[g+536>>2]=h-y,i[g+532>>2]=e-r,i[g+528>>2]=t-c,b(a=g+144|0,a,w),b(w=g+96|0,I,34064),R(g+288|0,C),I=i[g+324>>2],i[g+84>>2]=0-I,c=i[g+320>>2],i[g+80>>2]=0-c,t=i[g+316>>2],i[g+76>>2]=0-t,r=i[g+312>>2],i[g+72>>2]=0-r,e=i[g+308>>2],i[g+68>>2]=0-e,y=i[g+304>>2],i[g+64>>2]=0-y,h=i[g+300>>2],i[g+60>>2]=0-h,D=i[g+296>>2],i[g+56>>2]=0-D,f=i[g+292>>2],i[g+52>>2]=0-f,p=i[g+288>>2],i[g+48>>2]=1-p,i[g+36>>2]=I,i[g+32>>2]=c,i[g+28>>2]=t,i[g+24>>2]=r,i[g+20>>2]=e,i[g+16>>2]=y,i[g+12>>2]=h,i[g+8>>2]=D,i[g+4>>2]=f,i[g>>2]=p+1,b(A,a,g),b(A+40|0,I=g+48|0,w),b(A+80|0,w,g),b(A+120|0,a,I),s=g+624|0}function AA(A,I,g){var B,E=0,a=0,_=0,c=0,t=0;s=B=s+-64|0;A:{if((g-65&255)>>>0>191){if(a=-1,!(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24|o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)){if((_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)>>>0>=129){if(c=E=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,E=(_=128+(a=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?E+1|0:E,C[A+64|0]=_,C[A+65|0]=_>>>8,C[A+66|0]=_>>>16,C[A+67|0]=_>>>24,C[A+68|0]=E,C[A+69|0]=E>>>8,C[A+70|0]=E>>>16,C[A+71|0]=E>>>24,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a=-1==(0|c)&a>>>0>4294967167)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,p(A,E=A+96|0),a=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=a,C[A+353|0]=a>>>8,C[A+354|0]=a>>>16,C[A+355|0]=a>>>24,a>>>0>=129)break A;Ng(E,A+224|0,a),_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24}a=t=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,a=(c=_+(E=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<_>>>0?a+1|0:a,C[A+64|0]=c,C[A+65|0]=c>>>8,C[A+66|0]=c>>>16,C[A+67|0]=c>>>24,C[A+68|0]=a,C[A+69|0]=a>>>8,C[A+70|0]=a>>>16,C[A+71|0]=a>>>24,a=(0|a)==(0|t)&E>>>0>c>>>0|a>>>0>>0,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,o[A+356|0]&&(C[A+88|0]=255,C[A+89|0]=255,C[A+90|0]=255,C[A+91|0]=255,C[A+92|0]=255,C[A+93|0]=255,C[A+94|0]=255,C[A+95|0]=255),C[A+80|0]=255,C[A+81|0]=255,C[A+82|0]=255,C[A+83|0]=255,C[A+84|0]=255,C[A+85|0]=255,C[A+86|0]=255,C[A+87|0]=255,bg((a=A+96|0)+_|0,0,256-_|0),p(A,a),E=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[B+4>>2]=E,E=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[B+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[B+12>>2]=E,E=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[B+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[B+20>>2]=E,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[B+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[B+28>>2]=E,E=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[B+32>>2]=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,i[B+36>>2]=E,E=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,i[B+40>>2]=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[B+44>>2]=E,E=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,i[B+48>>2]=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,i[B+52>>2]=E,E=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,i[B+56>>2]=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,i[B+60>>2]=E,Ng(I,B,g),XC(A,64),XC(a,256),a=0}return s=B- -64|0,a}rC(),Q()}r(1386,1234,306,1142),Q()}function IA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0,_=0;s=B=s-192|0,i[B+144>>2]=0,i[B+148>>2]=0,i[B+152>>2]=0,i[B+156>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=i[8799],i[B+168>>2]=i[8798],i[B+172>>2]=a,a=i[8801],i[B+176>>2]=i[8800],i[B+180>>2]=a,a=i[8803],i[B+184>>2]=i[8802],i[B+188>>2]=a,i[B+128>>2]=0,i[B+132>>2]=0,i[B+136>>2]=0,i[B+140>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,a=i[8797],i[B+160>>2]=i[8796],i[B+164>>2]=a,a=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+80>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+84>>2]=a,a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+88>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+92>>2]=a,a=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B+64>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+68>>2]=a,a=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+72>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+76>>2]=a,Eg(g=B+128|0,a=B- -64|0),S(g),_=i[B+156>>2],i[B+24>>2]=i[B+152>>2],i[B+28>>2]=_,_=i[B+148>>2],i[B+16>>2]=i[B+144>>2],i[B+20>>2]=_,_=i[B+140>>2],i[B+8>>2]=i[B+136>>2],i[B+12>>2]=_,_=i[B+132>>2],i[B>>2]=i[B+128>>2],i[B+4>>2]=_,i[B+120>>2]=0,i[B+124>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,_=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=_,_=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=_,_=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,Q=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,E=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+56>>2]=0,i[B+60>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+40>>2]=0,i[B+44>>2]=0,i[B+64>>2]=E,i[B+68>>2]=I,i[B+72>>2]=_,i[B+76>>2]=Q,i[B+32>>2]=0,i[B+36>>2]=0,og(a,B),I=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=I,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(g),I=i[B+156>>2],a=i[B+152>>2],C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[B+148>>2],a=i[B+144>>2],C[A+16|0]=a,C[A+17|0]=a>>>8,C[A+18|0]=a>>>16,C[A+19|0]=a>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[B+140>>2],a=i[B+136>>2],C[A+8|0]=a,C[A+9|0]=a>>>8,C[A+10|0]=a>>>16,C[A+11|0]=a>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[B+132>>2],a=i[B+128>>2],C[0|A]=a,C[A+1|0]=a>>>8,C[A+2|0]=a>>>16,C[A+3|0]=a>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=B+192|0}function gA(A){var I,g,B,Q,o,E,_,c,t,r,e=0,y=0,h=0,D=0,f=0;for(s=I=s-2048|0,$A(D=I+640|0,A),e=i[A+36>>2],i[I+352>>2]=i[A+32>>2],i[I+356>>2]=e,e=i[A+28>>2],i[I+344>>2]=i[A+24>>2],i[I+348>>2]=e,e=i[A+20>>2],i[I+336>>2]=i[A+16>>2],i[I+340>>2]=e,e=i[A+12>>2],i[I+328>>2]=i[A+8>>2],i[I+332>>2]=e,e=i[A+4>>2],i[I+320>>2]=i[A>>2],i[I+324>>2]=e,e=i[A+52>>2],i[I+368>>2]=i[A+48>>2],i[I+372>>2]=e,e=i[A+60>>2],i[I+376>>2]=i[A+56>>2],i[I+380>>2]=e,e=i[4+(h=A- -64|0)>>2],i[I+384>>2]=i[h>>2],i[I+388>>2]=e,e=i[A+76>>2],i[I+392>>2]=i[A+72>>2],i[I+396>>2]=e,e=i[A+44>>2],i[I+360>>2]=i[A+40>>2],i[I+364>>2]=e,e=i[A+92>>2],i[I+408>>2]=i[A+88>>2],i[I+412>>2]=e,e=i[A+100>>2],i[I+416>>2]=i[A+96>>2],i[I+420>>2]=e,e=i[A+108>>2],i[I+424>>2]=i[A+104>>2],i[I+428>>2]=e,e=i[A+116>>2],i[I+432>>2]=i[A+112>>2],i[I+436>>2]=e,e=i[A+84>>2],i[I+400>>2]=i[A+80>>2],i[I+404>>2]=e,KA(y=I+480|0,h=I+320|0),b(e=I+160|0,y,g=I+600|0),b(I+200|0,B=I+520|0,Q=I+560|0),b(I+240|0,Q,g),b(I+280|0,y,B),sA(y,e,D),b(h,y,g),b(_=I+360|0,B,Q),b(c=I+400|0,Q,g),b(t=I+440|0,y,B),$A(A=I+800|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+960|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1120|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1280|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1440|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1600|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(I+1760|0,h),i[I+32>>2]=0,i[I+36>>2]=0,i[I+24>>2]=0,i[I+28>>2]=0,i[I+16>>2]=0,i[I+20>>2]=0,i[I+8>>2]=0,i[I+12>>2]=0,i[I+52>>2]=0,i[I+56>>2]=0,i[I+60>>2]=0,i[I+64>>2]=0,i[I+68>>2]=0,i[I+72>>2]=0,i[I+76>>2]=0,i[I+80>>2]=1,i[I>>2]=0,i[I+4>>2]=0,i[I+44>>2]=0,i[I+48>>2]=0,i[I+40>>2]=1,bg(I+84|0,0,76),r=I+120|0,o=I+2008|0,E=I+1968|0,D=I+80|0,h=I+40|0,A=252;e=i[I+36>>2],i[(y=I+1960|0)>>2]=i[I+32>>2],i[y+4>>2]=e,e=i[I+28>>2],i[(y=I+1952|0)>>2]=i[I+24>>2],i[y+4>>2]=e,e=i[I+20>>2],i[(y=I+1944|0)>>2]=i[I+16>>2],i[y+4>>2]=e,e=i[I+12>>2],i[(y=I+1936|0)>>2]=i[I+8>>2],i[y+4>>2]=e,e=i[I+4>>2],i[I+1928>>2]=i[I>>2],i[I+1932>>2]=e,e=i[h+36>>2],i[E+32>>2]=i[h+32>>2],i[E+36>>2]=e,e=i[h+28>>2],i[E+24>>2]=i[h+24>>2],i[E+28>>2]=e,e=i[h+20>>2],i[E+16>>2]=i[h+16>>2],i[E+20>>2]=e,e=i[h+12>>2],i[E+8>>2]=i[h+8>>2],i[E+12>>2]=e,e=i[h+4>>2],i[E>>2]=i[h>>2],i[E+4>>2]=e,e=i[D+36>>2],i[o+32>>2]=i[D+32>>2],i[o+36>>2]=e,e=i[D+28>>2],i[o+24>>2]=i[D+24>>2],i[o+28>>2]=e,e=i[D+20>>2],i[o+16>>2]=i[D+16>>2],i[o+20>>2]=e,e=i[D+12>>2],i[o+8>>2]=i[D+8>>2],i[o+12>>2]=e,e=i[D+4>>2],i[o>>2]=i[D>>2],i[o+4>>2]=e,e=A,f=C[A+33712|0],KA(y=I+480|0,I+1928|0),(0|f)>0?(b(A=I+320|0,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),sA(y,A,(I+640|0)+a((254&f)>>>1|0,160)|0)):(0|f)>=0||(b(A=I+320|0,y=I+480|0,g),b(_,B,Q),b(c,Q,g),b(t,y,B),hA(y,A,(I+640|0)+a((0-f&254)>>>1|0,160)|0)),b(I,A=I+480|0,g),b(h,B,Q),b(D,Q,g),b(r,A,B),A=e-1|0,e;);return QI(A=I+640|0,I),A=GI(A,32),s=I+2048|0,A}function CA(A,I,g,B,Q){var i,E,a,_,c,t,r,e,y,s,h,D,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0;if(B?(d=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,l=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,m=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,u=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24):(d=1797285236,m=1634760805,l=2036477234,u=857760878),B=i=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=E=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,U=a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=d,S=_=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,G=l,b=c=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=t=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=r=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,I=e=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,K=u,f=y=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,p=s=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,k=h=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,g=D=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,F=m,(0|Q)>0)for(;H=Lg(g+K|0,7)^b,x=Lg(H+K|0,9)^N,Y=Lg(B+F|0,7)^f,v=Lg(Y+F|0,9)^M,R=Lg(Y+v|0,13)^B,J=Lg(w+S|0,7)^p,n=Lg(J+w|0,9)^n,p=Lg(n+J|0,13)^S,w=Lg(n+p|0,18)^w,f=Lg(I+G|0,7)^U,B=R^Lg(w+f|0,7),N=Lg(B+w|0,9)^x,U=Lg(B+N|0,13)^f,w=Lg(N+U|0,18)^w,k=Lg(f+G|0,9)^k,f=Lg(k+f|0,13)^I,I=Lg(f+k|0,18)^G,S=Lg(I+H|0,7)^p,M=Lg(S+I|0,9)^v,b=Lg(S+M|0,13)^H,G=Lg(M+b|0,18)^I,g=Lg(H+x|0,13)^g,p=Lg(g+x|0,18)^K,I=Lg(p+Y|0,7)^f,n=Lg(I+p|0,9)^n,f=Lg(I+n|0,13)^Y,K=Lg(n+f|0,18)^p,F=Lg(v+R|0,18)^F,g=Lg(F+J|0,7)^g,k=Lg(g+F|0,9)^k,p=Lg(g+k|0,13)^J,F=Lg(k+p|0,18)^F,(0|(L=L+2|0))<(0|Q););Q=w+d|0,C[A+60|0]=Q,C[A+61|0]=Q>>>8,C[A+62|0]=Q>>>16,C[A+63|0]=Q>>>24,Q=U+a|0,C[A+56|0]=Q,C[A+57|0]=Q>>>8,C[A+58|0]=Q>>>16,C[A+59|0]=Q>>>24,Q=N+E|0,C[A+52|0]=Q,C[A+53|0]=Q>>>8,C[A+54|0]=Q>>>16,C[A+55|0]=Q>>>24,B=B+i|0,C[A+48|0]=B,C[A+49|0]=B>>>8,C[A+50|0]=B>>>16,C[A+51|0]=B>>>24,B=S+_|0,C[A+44|0]=B,C[A+45|0]=B>>>8,C[A+46|0]=B>>>16,C[A+47|0]=B>>>24,B=G+l|0,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,B=b+c|0,C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,B=M+t|0,C[A+32|0]=B,C[A+33|0]=B>>>8,C[A+34|0]=B>>>16,C[A+35|0]=B>>>24,B=n+r|0,C[A+28|0]=B,C[A+29|0]=B>>>8,C[A+30|0]=B>>>16,C[A+31|0]=B>>>24,I=I+e|0,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=K+u|0,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f+y|0,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=p+s|0,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=k+h|0,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g+D|0,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F+m|0,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24}function BA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,a=0,c=0,t=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(2&I))break A;if((C=C-(I=i[C>>2])|0)>>>0>2],I>>>0<=255){if((0|(B=i[C+8>>2]))!=(0|g))break B;c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break I}if(a=i[C+24>>2],(0|g)!=(0|C)){I=i[C+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break g}if(B=i[C+20>>2])I=C+20|0;else{if(!(B=i[C+16>>2]))break C;I=C+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break g}if(3&~(I=i[Q+4>>2]))break I;return i[9407]=A,i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,void(i[Q>>2]=A)}i[B+12>>2]=g,i[g+8>>2]=B;break I}g=0}if(a){I=i[C+28>>2];g:{if(i[(B=37924+(I<<2)|0)>>2]==(0|C)){if(i[B>>2]=g,g)break g;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break I}if(i[a+(i[a+16>>2]==(0|C)?16:20)>>2]=g,!g)break I}i[g+24>>2]=a,(I=i[C+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[C+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(!(C>>>0>=Q>>>0)&&1&(I=i[Q+4>>2])){I:{g:{C:{B:{if(!(2&I)){if((0|Q)==i[9411]){if(i[9411]=C,A=i[9408]+A|0,i[9408]=A,i[C+4>>2]=1|A,i[9410]!=(0|C))break A;return i[9407]=0,void(i[9410]=0)}if((0|Q)==i[9410])return i[9410]=C,A=i[9407]+A|0,i[9407]=A,i[C+4>>2]=1|A,void(i[A+C>>2]=A);if(A=(-8&I)+A|0,g=i[Q+12>>2],I>>>0<=255){if((0|(B=i[Q+8>>2]))==(0|g)){c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break g}i[B+12>>2]=g,i[g+8>>2]=B;break g}if(a=i[Q+24>>2],(0|g)!=(0|Q)){I=i[Q+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break C}if(B=i[Q+20>>2])I=Q+20|0;else{if(!(B=i[Q+16>>2]))break B;I=Q+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break C}i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,i[A+C>>2]=A;break I}g=0}if(a){I=i[Q+28>>2];C:{if((0|Q)==i[(B=37924+(I<<2)|0)>>2]){if(i[B>>2]=g,g)break C;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break g}if(i[a+((0|Q)==i[a+16>>2]?16:20)>>2]=g,!g)break g}i[g+24>>2]=a,(I=i[Q+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[Q+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(i[C+4>>2]=1|A,i[A+C>>2]=A,i[9410]==(0|C))return void(i[9407]=A)}if(A>>>0<=255)return I=37660+(-8&A)|0,(B=i[9405])&(A=1<<(A>>>3))?A=i[I+8>>2]:(i[9405]=A|B,A=I),i[I+8>>2]=C,i[A+12>>2]=C,i[C+12>>2]=I,void(i[C+8>>2]=A);g=31,A>>>0<=16777215&&(g=62+((A>>>38-(I=_(A>>>8|0))&1)-(I<<1)|0)|0),i[C+28>>2]=g,i[C+16>>2]=0,i[C+20>>2]=0,o=37924+(g<<2)|0;I:{g:{if((I=i[9406])&(B=1<>>1|0):0),I=i[o>>2];;){if(B=I,(-8&i[I+4>>2])==(0|A))break g;if(I=g>>>29|0,g<<=1,!(I=i[(o=16+((4&I)+B|0)|0)>>2]))break}g=24,I=B}else i[9406]=I|B,g=24,I=o;B=C,Q=C,A=8;break I}I=i[B+8>>2],i[I+12>>2]=C,g=8,o=B+8|0,Q=0,A=24}i[o>>2]=C,i[g+C>>2]=I,i[C+12>>2]=B,i[A+C>>2]=Q,A=i[9413]-1|0,i[9413]=A||-1}}}function QA(A,I,g,C,B,E,a,_,c){var t=0,r=0,e=0,y=0,h=0,D=0,f=0,w=0;if(I-65>>>0<4294967232|a>>>0>64)A=-1;else{w=t=s,s=t=t-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((D=255&I)-65&255)>>>0<=191|!(!(I=255&a)||E)|I>>>0>=65)){if(I){if(!E)break I;_?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),a=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),_=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24)):(r=725511199,e=-1694144372,a=-1377402159,_=1359893119),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),f=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24),c=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24)):(y=327033209,h=1541459225,f=-79577749,c=528734635),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=f,i[t+52>>2]=c,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=a,i[t+36>>2]=_,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^(I<<8|D),i[t+4>>2]=I>>>24^1779033703,bg((a=t+384|0)+I|0,0,128-I|0),Ng(a,E,I),Ng(t+96|0,a,128),i[t+352>>2]=128,XC(a,128),I=128}else _?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),E=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24),I=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24)):(r=725511199,e=-1694144372,E=1359893119,I=-1377402159),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),_=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24),a=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)):(y=327033209,h=1541459225,_=528734635,a=-79577749),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=a,i[t+52>>2]=_,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=I,i[t+36>>2]=E,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^D,i[t+4>>2]=1779033703,I=0;g:if(C|B)for(c=t+224|0,_=t+96|0;;){if(a=I+_|0,!B&C>>>0<=(E=256-I|0)>>>0){Ng(a,g,C),i[t+352>>2]=C+i[t+352>>2];break g}if(Ng(a,g,E),i[t+352>>2]=E+i[t+352>>2],r=I=i[t+68>>2],I=(e=(a=i[t+64>>2])+128|0)>>>0<128?I+1|0:I,i[t+64>>2]=e,i[t+68>>2]=I,I=i[t+76>>2],I=(r=a=-1==(0|r)&a>>>0>4294967167)>>>0>(a=a+i[t+72>>2]|0)>>>0?I+1|0:I,i[t+72>>2]=a,i[t+76>>2]=I,p(t,_),Ng(_,c,128),I=i[t+352>>2]-128|0,i[t+352>>2]=I,g=g+E|0,!((B=B-(C>>>0>>0)|0)|(C=C-E|0)))break}AA(t,A,D),s=w;break A}rC(),Q()}A=0}return A}function iA(A,I,g,B,Q,E,_){var c,t,r=0,e=0,y=0;if(s=c=s+-64|0,t=K(32)){i[c+36>>2]=0,i[c+40>>2]=0,i[c+28>>2]=0,i[c+32>>2]=0,i[c+24>>2]=16,i[c+20>>2]=Q,i[c+16>>2]=B,i[c+12>>2]=g,i[c+8>>2]=32,i[c+4>>2]=t,i[c+60>>2]=0,i[c+56>>2]=1,i[c+52>>2]=1,i[c+48>>2]=I,i[c+44>>2]=A;A:if(A=q(c+4|0,_))XC(t,32);else{if(E){r=c+4|0,s=Q=s-32|0,A=-31;I:{g:{C:switch(_-1|0){case 1:A=o[1434]|o[1435]<<8|o[1436]<<16|o[1437]<<24,I=o[1430]|o[1431]<<8|o[1432]<<16|o[1433]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1439]|o[1440]<<8|o[1441]<<16|o[1442]<<24,I=o[1435]|o[1436]<<8|o[1437]<<16|o[1438]<<24,C[E+5|0]=I,C[E+6|0]=I>>>8,C[E+7|0]=I>>>16,C[E+8|0]=I>>>24,C[E+9|0]=A,C[E+10|0]=A>>>8,C[E+11|0]=A>>>16,C[E+12|0]=A>>>24,g=-12,I=12;break g;case 0:break C;default:break I}A=o[1422]|o[1423]<<8|o[1424]<<16|o[1425]<<24,I=o[1418]|o[1419]<<8|o[1420]<<16|o[1421]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1426]|o[1427]<<8|o[1428]<<16|o[1429]<<24,C[E+8|0]=A,C[E+9|0]=A>>>8,C[E+10|0]=A>>>16,C[E+11|0]=A>>>24,g=-11,I=11}if(!(A=nI(r)))if(C[Q+13|0]=0,C[Q+11|0]=49,C[Q+12|0]=57,(g=g+128|0)>>>0<=(A=RI(Q+11|0))>>>0)A=-31;else if(I=Ng(I+E|0,Q+11|0,A+1|0),(e=g-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+I|0)]=36,C[_+1|0]=109,C[_+2|0]=61,C[_+3|0]=0,A=i[r+44>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=116,C[_+2|0]=61,C[_+3|0]=0,A=i[r+40>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=112,C[_+2|0]=61,C[_+3|0]=0,A=i[r+48>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0?A=-31:(g=Ng(_+3|0,Q+11|0,A+1|0),(B=I-A|0)>>>0<2?A=-31:(C[0|(A=A+g|0)]=36,C[A+1|0]=0,XA(I=A+1|0,g=B-1|0,i[r+16>>2],i[r+20>>2],3)?(A=-31,(B=(B=g)-(g=RI(I))|0)>>>0<2||(C[0|(A=I+g|0)]=36,C[A+1|0]=0,A=XA(A+1|0,B-1|0,i[r>>2],i[r+4>>2],3)?0:-31)):A=-31))}}}}if(s=Q+32|0,A){XC(t,32),XC(E,128),A=-31;break A}}XC(t,32),A=0}BA(t)}else A=-22;return s=c- -64|0,A}function oA(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,c=0;g=A+I|0;A:{I:if(!(1&(C=i[A+4>>2]))){if(!(2&C))break A;I=(C=i[A>>2])+I|0;g:{C:{B:{if((0|(A=A-C|0))!=i[9410]){if(B=i[A+12>>2],C>>>0<=255){if((0|(Q=i[A+8>>2]))!=(0|B))break B;a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break I}if(o=i[A+24>>2],(0|A)!=(0|B)){C=i[A+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break g}if(Q=i[A+20>>2])C=A+20|0;else{if(!(Q=i[A+16>>2]))break C;C=A+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break g}if(3&~(C=i[g+4>>2]))break I;return i[9407]=I,i[g+4>>2]=-2&C,i[A+4>>2]=1|I,void(i[g>>2]=I)}i[Q+12>>2]=B,i[B+8>>2]=Q;break I}B=0}if(o){C=i[A+28>>2];g:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|A)){if(i[Q>>2]=B,B)break g;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break I}if(i[o+(i[o+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}i[B+24>>2]=o,(C=i[A+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[A+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}I:{g:{C:{B:{if(!(2&(C=i[g+4>>2]))){if(i[9411]==(0|g)){if(i[9411]=A,I=i[9408]+I|0,i[9408]=I,i[A+4>>2]=1|I,i[9410]!=(0|A))break A;return i[9407]=0,void(i[9410]=0)}if(i[9410]==(0|g))return i[9410]=A,I=i[9407]+I|0,i[9407]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);if(I=(-8&C)+I|0,B=i[g+12>>2],C>>>0<=255){if((0|(Q=i[g+8>>2]))==(0|B)){a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break g}i[Q+12>>2]=B,i[B+8>>2]=Q;break g}if(o=i[g+24>>2],(0|B)!=(0|g)){C=i[g+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break C}if(Q=i[g+20>>2])C=g+20|0;else{if(!(Q=i[g+16>>2]))break B;C=g+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break C}i[g+4>>2]=-2&C,i[A+4>>2]=1|I,i[A+I>>2]=I;break I}B=0}if(o){C=i[g+28>>2];C:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|g)){if(i[Q>>2]=B,B)break C;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break g}if(i[o+(i[o+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=o,(C=i[g+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[g+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[9410]==(0|A))return void(i[9407]=I)}if(I>>>0<=255)return C=37660+(-8&I)|0,(B=i[9405])&(I=1<<(I>>>3))?I=i[C+8>>2]:(i[9405]=I|B,I=C),i[C+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=C,void(i[A+8>>2]=I);B=31,I>>>0<=16777215&&(B=62+((I>>>38-(C=_(I>>>8|0))&1)-(C<<1)|0)|0),i[A+28>>2]=B,i[A+16>>2]=0,i[A+20>>2]=0,C=37924+(B<<2)|0;I:{if((Q=i[9406])&(E=1<>>1|0):0),C=i[C>>2];;){if(Q=C,(-8&i[C+4>>2])==(0|I))break I;if(C=B>>>29|0,B<<=1,!(C=i[16+(E=Q+(4&C)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=Q}else i[9406]=Q|E,i[C>>2]=A,i[A+24>>2]=C;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[Q+8>>2],i[I+12>>2]=A,i[Q+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=Q,i[A+8>>2]=I}}function EA(A,I){var g,B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0;return s=g=s-512|0,B=-1,E=o[I+31|0],Q=o[0|I],1&(((255&(127&~E|~(o[I+1|0]&o[I+2|0]&o[I+3|0]&o[I+4|0]&o[I+5|0]&o[I+6|0]&o[I+7|0]&o[I+8|0]&o[I+9|0]&o[I+10|0]&o[I+11|0]&o[I+12|0]&o[I+13|0]&o[I+14|0]&o[I+15|0]&o[I+16|0]&o[I+17|0]&o[I+18|0]&o[I+19|0]&o[I+20|0]&o[I+21|0]&o[I+22|0]&o[I+23|0]&o[I+24|0]&o[I+25|0]&o[I+26|0]&o[I+27|0]&o[I+28|0]&o[I+29|0]&o[I+30|0])))-1&236-Q)>>>8|Q|E>>>7)||(fA(E=g+336|0,I),R(g+288|0,E),I=i[g+324>>2],i[g+276>>2]=0-I,B=i[g+320>>2],i[g+272>>2]=0-B,Q=i[g+316>>2],i[g+268>>2]=0-Q,a=i[g+312>>2],i[g+264>>2]=0-a,_=i[g+308>>2],i[g+260>>2]=0-_,c=i[g+304>>2],i[g+256>>2]=0-c,t=i[g+300>>2],i[g+252>>2]=0-t,r=i[g+296>>2],i[g+248>>2]=0-r,e=i[g+292>>2],i[g+244>>2]=0-e,y=i[g+288>>2],i[g+240>>2]=1-y,R(h=g+144|0,p=g+240|0),i[g+228>>2]=I,i[g+224>>2]=B,i[g+220>>2]=Q,i[g+216>>2]=a,i[g+212>>2]=_,i[g+208>>2]=c,i[g+204>>2]=t,i[g+200>>2]=r,i[g+196>>2]=e,i[g+192>>2]=y+1,R(B=g+96|0,a=g+192|0),b(I=g+48|0,1584,h),Q=i[g+96>>2],_=i[g+48>>2],c=i[g+100>>2],t=i[g+52>>2],r=i[g+104>>2],e=i[g+56>>2],y=i[g+108>>2],h=i[g+60>>2],D=i[g+112>>2],f=i[g+64>>2],w=i[g+116>>2],n=i[g+68>>2],k=i[g+120>>2],F=i[g+72>>2],S=i[g+124>>2],N=i[g+76>>2],G=i[g+128>>2],M=i[g+80>>2],i[g+84>>2]=0-(i[g+84>>2]+i[g+132>>2]|0),i[g+80>>2]=0-(G+M|0),i[g+76>>2]=0-(S+N|0),i[g+72>>2]=0-(k+F|0),i[g+68>>2]=0-(w+n|0),i[g+64>>2]=0-(D+f|0),i[g+60>>2]=0-(y+h|0),i[g+56>>2]=0-(r+e|0),i[g+52>>2]=0-(c+t|0),i[g+48>>2]=0-(Q+_|0),b(g,I,B),i[g+404>>2]=0,i[g+408>>2]=0,i[g+412>>2]=0,i[g+416>>2]=0,i[g+420>>2]=0,i[g+388>>2]=0,i[g+392>>2]=0,i[g+384>>2]=1,i[g+396>>2]=0,i[g+400>>2]=0,f=GA(Q=g+432|0,g+384|0,g),b(A,Q,a),b(B=A+40|0,Q,A),b(B,B,I),b(A,A,E),E=i[A+36>>2]<<1,i[A+36>>2]=E,Q=i[A+32>>2]<<1,i[A+32>>2]=Q,a=i[A+28>>2]<<1,i[A+28>>2]=a,_=i[A+24>>2]<<1,i[A+24>>2]=_,c=i[A+20>>2]<<1,i[A+20>>2]=c,t=i[A+16>>2]<<1,i[A+16>>2]=t,r=i[A+12>>2]<<1,i[A+12>>2]=r,e=i[A+8>>2]<<1,i[A+8>>2]=e,y=i[A+4>>2]<<1,i[A+4>>2]=y,h=i[A>>2]<<1,i[A>>2]=h,QI(D=g+480|0,A),I=0-(1&C[g+480|0])|0,i[A+36>>2]=E^I&(E^0-E),i[A+32>>2]=Q^I&(Q^0-Q),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=h^I&(h^0-h),b(B,p,B),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,b(I=A+120|0,A,B),QI(D,I),A=o[g+480|0],QI(D,B),B=0-(GI(D,32)|1-f|1&A)|0),s=g+512|0,B}function aA(A,I,g,B){var Q,o=0,E=0;Q=o=s,s=o=o-576&-64,i[o+188>>2]=I;A:if(I>>>0<=64){if((0|eA(E=o+192|0,0,0,I))<0)break A;if((0|WA(E,o+188|0,4,0))<0)break A;if((0|WA(E,g,B,0))<0)break A;Hg(E,A,I)}else if(!((0|eA(E=o+192|0,0,0,64))<0||(0|WA(E,o+188|0,4,0))<0||(0|WA(E,g,B,0))<0||(0|Hg(E,o+112|0,64))<0)){if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(o+112|0,64,o+48|0,64,0,0,0))<0)break A;if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(g=o+112|0,I,o+48|0,64,0,0,0))<0||Ng(A,g,I)}XC(o+192|0,384),s=Q}function _A(A,I,g,B,Q,_,c,t,r,e,y){var h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;if(h=Ig(r,0,t,0),!(n=f)&h>>>0>=1073741824|n)return i[9404]=22,-1;if(1==(0|c)|c>>>0>1)return i[9404]=22,-1;if(h=c,!(!(_&(n=_-1|0)|c&(h=-1!=(0|n)?h+1|0:h))&(!c&_>>>0>=2|!!(0|c))))return i[9404]=28,-1;if(!r||!t)return i[9404]=28,-1;if(!(33554431/(r>>>0)>>>0>>0|t>>>0>16777215)&&!c&33554431/(t>>>0)>>>0>=_>>>0&&!((M=a(G=t<<7,r))>>>0>(h=(k=a(_,G))+M|0)>>>0||(D=h)>>>0>(h=((F=t<<8)+h|0)- -64|0)>>>0)){A:{if(h>>>0>E[A+8>>2]){if(w=-1,Rg(A))break A;if(s=n=s-16|0,D=tI(n+12|0,h),i[9404]=D,D=D?0:i[n+12>>2],i[A+4>>2]=D,i[A>>2]=D,i[A+8>>2]=D?h:0,s=n+16|0,!D)break A}for(DI(I,g,B,Q,U=i[A+4>>2],M),Y=((k=(D=(K=M+U|0)+k|0)+(t<<7)|0)+G|0)-64|0,Q=_-1|0,N=t<<5,b=D+F|0,J=(D+G|0)-64|0;;){for(F=a(G,H)+U|0,w=0;B=(A=w<<2)+F|0,i[A+D>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=4|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=8|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=(A|=12)+D|0,A=A+F|0,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,n=0,h=0,(0|N)!=(0|(w=w+4|0)););for(B=0,A=0;Ng(K+(a(B,N)<<2)|0,D,G),tA(D,k,b,t),Ng(K+(a(N,1|B)<<2)|0,k,G),tA(k,D,b,t),(0|c)==(0|(A=(B=B+2|0)>>>0<2?A+1|0:A))&B>>>0<_>>>0|A>>>0>>0;);for(;;){for(A=K+(a(N,Q&i[J>>2])<<2)|0,w=0;i[(p=(B=w<<2)+D|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+D|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););for(tA(D,k,b,t),A=K+(a(N,Q&i[Y>>2])<<2)|0,w=0;i[(p=(B=w<<2)+k|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+k|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););if(tA(k,D,b,t),w=0,!((0|c)==(0|(h=(n=n+2|0)>>>0<2?h+1|0:h))&_>>>0>n>>>0|c>>>0>h>>>0))break}for(;B=(A=w<<2)+F|0,h=i[A+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=4|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=8|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,A=(B=12|A)+F|0,B=i[B+D>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,(0|N)!=(0|(w=w+4|0)););if((0|(H=H+1|0))==(0|r))break}DI(I,g,U,M,e,y),w=0}return w}return i[9404]=48,-1}function cA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0;s=B=s-192|0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=a,a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=a,Q=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+40>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=a,i[B+68>>2]=I,i[B+72>>2]=Q,i[B+76>>2]=E,i[B+32>>2]=0,i[B+36>>2]=0,I=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+16>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+20>>2]=I,I=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+24>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+28>>2]=I,I=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+4>>2]=I,I=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+8>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+12>>2]=I,og(B- -64|0,B),g=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=g,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(I=B+128|0),a=i[B+156>>2],g=i[B+152>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,a=i[B+148>>2],g=i[B+144>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=a,C[A+21|0]=a>>>8,C[A+22|0]=a>>>16,C[A+23|0]=a>>>24,a=i[B+140>>2],g=i[B+136>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,a=i[B+132>>2],g=i[B+128>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=a,C[A+5|0]=a>>>8,C[A+6|0]=a>>>16,C[A+7|0]=a>>>24,XC(I,64),s=B+192|0}function tA(A,I,g,C){var B=0,Q=0,o=0,E=0,a=0;if(Q=i[4+(B=((C<<7)+A|0)-64|0)>>2],i[g>>2]=i[B>>2],i[g+4>>2]=Q,Q=i[B+60>>2],i[g+56>>2]=i[B+56>>2],i[g+60>>2]=Q,Q=i[B+52>>2],i[g+48>>2]=i[B+48>>2],i[g+52>>2]=Q,Q=i[B+44>>2],i[g+40>>2]=i[B+40>>2],i[g+44>>2]=Q,Q=i[B+36>>2],i[g+32>>2]=i[B+32>>2],i[g+36>>2]=Q,Q=i[B+28>>2],i[g+24>>2]=i[B+24>>2],i[g+28>>2]=Q,Q=i[B+20>>2],i[g+16>>2]=i[B+16>>2],i[g+20>>2]=Q,Q=i[B+12>>2],i[g+8>>2]=i[B+8>>2],i[g+12>>2]=Q,C)for(Q=C<<1,a=C<<6;C=(E<<6)+A|0,i[g>>2]=i[g>>2]^i[C>>2],i[g+4>>2]=i[g+4>>2]^i[C+4>>2],i[g+8>>2]=i[g+8>>2]^i[C+8>>2],i[g+12>>2]=i[g+12>>2]^i[C+12>>2],i[g+16>>2]=i[g+16>>2]^i[C+16>>2],i[g+20>>2]=i[g+20>>2]^i[C+20>>2],i[g+24>>2]=i[g+24>>2]^i[C+24>>2],i[g+28>>2]=i[g+28>>2]^i[C+28>>2],i[g+32>>2]=i[g+32>>2]^i[C+32>>2],i[g+36>>2]=i[g+36>>2]^i[C+36>>2],i[g+40>>2]=i[g+40>>2]^i[C+40>>2],i[g+44>>2]=i[g+44>>2]^i[C+44>>2],i[g+48>>2]=i[g+48>>2]^i[C+48>>2],i[g+52>>2]=i[g+52>>2]^i[C+52>>2],i[g+56>>2]=i[g+56>>2]^i[C+56>>2],i[g+60>>2]=i[g+60>>2]^i[C+60>>2],VA(g),o=i[g+60>>2],i[56+(B=(E<<5)+I|0)>>2]=i[g+56>>2],i[B+60>>2]=o,o=i[g+52>>2],i[B+48>>2]=i[g+48>>2],i[B+52>>2]=o,o=i[g+44>>2],i[B+40>>2]=i[g+40>>2],i[B+44>>2]=o,o=i[g+36>>2],i[B+32>>2]=i[g+32>>2],i[B+36>>2]=o,o=i[g+28>>2],i[B+24>>2]=i[g+24>>2],i[B+28>>2]=o,o=i[g+20>>2],i[B+16>>2]=i[g+16>>2],i[B+20>>2]=o,o=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=o,o=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=o,i[g>>2]=i[g>>2]^i[C- -64>>2],i[g+4>>2]=i[g+4>>2]^i[C+68>>2],i[g+8>>2]=i[g+8>>2]^i[C+72>>2],i[g+12>>2]=i[g+12>>2]^i[C+76>>2],i[g+16>>2]=i[g+16>>2]^i[C+80>>2],i[g+20>>2]=i[g+20>>2]^i[C+84>>2],i[g+24>>2]=i[g+24>>2]^i[C+88>>2],i[g+28>>2]=i[g+28>>2]^i[C+92>>2],i[g+32>>2]=i[g+32>>2]^i[C+96>>2],i[g+36>>2]=i[g+36>>2]^i[C+100>>2],i[g+40>>2]=i[g+40>>2]^i[C+104>>2],i[g+44>>2]=i[g+44>>2]^i[C+108>>2],i[g+48>>2]=i[g+48>>2]^i[C+112>>2],i[g+52>>2]=i[g+52>>2]^i[C+116>>2],i[g+56>>2]=i[g+56>>2]^i[C+120>>2],i[g+60>>2]=i[g+60>>2]^i[C+124>>2],VA(g),C=B+a|0,B=i[g+60>>2],i[C+56>>2]=i[g+56>>2],i[C+60>>2]=B,B=i[g+52>>2],i[C+48>>2]=i[g+48>>2],i[C+52>>2]=B,B=i[g+44>>2],i[C+40>>2]=i[g+40>>2],i[C+44>>2]=B,B=i[g+36>>2],i[C+32>>2]=i[g+32>>2],i[C+36>>2]=B,B=i[g+28>>2],i[C+24>>2]=i[g+24>>2],i[C+28>>2]=B,B=i[g+20>>2],i[C+16>>2]=i[g+16>>2],i[C+20>>2]=B,B=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=B,B=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=B,Q>>>0>(E=E+2|0)>>>0;);}function rA(A,I,g,C){var B=0,Q=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;if(h=i[A+36>>2],y=i[A+32>>2],s=i[A+28>>2],r=i[A+24>>2],e=i[A+20>>2],!C&g>>>0>=16|C)for(M=!o[A+80|0]<<24,p=i[A+4>>2],K=a(p,5),n=i[A+8>>2],N=a(n,5),F=i[A+12>>2],S=a(F,5),G=i[A+16>>2],k=a(G,5),w=i[A>>2];B=Ig(E=((o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108863)+r|0,0,F,0),c=f,e=(_=Ig(r=(67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))+e|0,0,G,0))+B|0,B=f+c|0,B=_>>>0>e>>>0?B+1|0:B,c=Ig(s=((o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67108863)+s|0,0,n,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(y=((o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6|0)+y|0,0,p,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(h=h+M+((o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)>>>8)|0,0,w,0),B=f+B|0,U=e=c+e|0,e=c>>>0>e>>>0?B+1|0:B,B=Ig(E,0,n,0),c=f,_=Ig(r,0,F,0),Q=f+c|0,Q=(B=_+B|0)>>>0<_>>>0?Q+1|0:Q,c=(_=Ig(s,0,p,0))+B|0,B=f+Q|0,B=_>>>0>c>>>0?B+1|0:B,_=Ig(y,0,w,0),B=f+B|0,B=_>>>0>(c=_+c|0)>>>0?B+1|0:B,_=Ig(h,0,k,0),B=f+B|0,b=c=_+c|0,c=_>>>0>c>>>0?B+1|0:B,B=Ig(E,0,p,0),t=f,_=(Q=Ig(r,0,n,0))+B|0,B=f+t|0,B=Q>>>0>_>>>0?B+1|0:B,t=Ig(s,0,w,0),Q=f+B|0,Q=(_=t+_|0)>>>0>>0?Q+1|0:Q,t=Ig(y,0,k,0),B=f+Q|0,B=(_=t+_|0)>>>0>>0?B+1|0:B,t=Ig(h,0,S,0),B=f+B|0,H=_=t+_|0,_=_>>>0>>0?B+1|0:B,B=Ig(E,0,w,0),Q=f,t=(D=Ig(r,0,p,0))+B|0,B=f+Q|0,B=t>>>0>>0?B+1|0:B,Q=Ig(s,0,k,0),B=f+B|0,B=Q>>>0>(t=Q+t|0)>>>0?B+1|0:B,D=Ig(y,0,S,0),Q=f+B|0,Q=(t=D+t|0)>>>0>>0?Q+1|0:Q,D=Ig(h,0,N,0),B=f+Q|0,B=(t=D+t|0)>>>0>>0?B+1|0:B,D=t,t=B,B=Ig(E,0,k,0),Q=f,E=(r=Ig(r,0,w,0))+B|0,B=f+Q|0,B=E>>>0>>0?B+1|0:B,r=Ig(s,0,S,0),B=f+B|0,B=(E=r+E|0)>>>0>>0?B+1|0:B,r=Ig(y,0,N,0),B=f+B|0,B=(E=r+E|0)>>>0>>0?B+1|0:B,r=Ig(h,0,K,0),Q=f+B|0,Q=(E=r+E|0)>>>0>>0?Q+1|0:Q,r=E,B=t,B=(E=(s=(67108863&Q)<<6|E>>>26)+D|0)>>>0>>0?B+1|0:B,s=E,y=(67108863&B)<<6|E>>>26,B=_,B=(E=y+H|0)>>>0>>0?B+1|0:B,y=E,Q=c,h=B=(E=(67108863&B)<<6|E>>>26)+b|0,c=(67108863&(Q=B>>>0>>0?Q+1|0:Q))<<6|B>>>26,B=e,r=(67108863&s)+((B=a((67108863&((E=c+U|0)>>>0>>0?B+1:B))<<6|E>>>26,5)+(67108863&r)|0)>>>26|0)|0,s=67108863&y,y=67108863&h,h=67108863&E,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);i[A+20>>2]=e,i[A+36>>2]=h,i[A+32>>2]=y,i[A+28>>2]=s,i[A+24>>2]=r}function eA(A,I,g,B){A|=0,I|=0;var i=0;return i=-1,(B|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(s=i=s-128|0,!I|((B&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(rC(),Q()):(bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,B=-222443256^(g<<8|B),C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,B=g>>>24^1779033703,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,g=Ng(bg(i,0,128),I,g),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)):(((I=255&B)-65&255)>>>0<=191&&(rC(),Q()),bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I^=-222443256,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106),i=0),0|i}function yA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(i=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,E=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,t=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24):(i=2036477234,E=857760878,Q=1634760805,t=1797285236),a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,e=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,_=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,y=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,c=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,w=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,s=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,B=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,h=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,D=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;r=g,g=Lg((f=I)^(I=g+Q|0),16),r=s=Lg(r^(Q=g+s|0),12),p=Lg((f=I+s|0)^g,8),I=Lg(r^(s=p+Q|0),7),a=Lg((g=B+t|0)^a,16),B=Lg((y=a+y|0)^B,12),r=h,i=Lg((t=i+h|0)^e,16),Q=Lg(r^(h=i+c|0),12),c=Lg((c=i)^(i=Q+t|0),8),g=Lg(c^(t=(n=g+B|0)+I|0),16),e=Lg((E=E+D|0)^_,16),D=Lg((_=e+w|0)^D,12),r=I,I=Lg((E=D+E|0)^e,8),r=Lg(r^(_=(k=I+_|0)+g|0),12),e=Lg(g^(t=r+t|0),8),g=Lg((w=e+_|0)^r,7),a=Lg(a^n,8),B=Lg((y=a+y|0)^B,7),_=Lg((i=B+i|0)^I,16),B=Lg((I=_+s|0)^B,12),_=Lg(_^(i=B+i|0),8),B=Lg((s=I+_|0)^B,7),I=Lg((c=c+h|0)^Q,7),h=Lg((E=I+E|0)^p,16),p=Lg(I^(Q=h+y|0),12),I=Lg(h^(E=p+E|0),8),h=Lg((y=Q+I|0)^p,7),r=c,c=a,Q=Lg(D^k,7),c=Lg(c^(a=Q+f|0),16),f=Lg(Q^(D=r+c|0),12),a=Lg(c^(Q=f+a|0),8),D=Lg((c=D+a|0)^f,7),10!=(0|(F=F+1|0)););return C[0|A]=Q,C[A+1|0]=Q>>>8,C[A+2|0]=Q>>>16,C[A+3|0]=Q>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+24|0]=e,C[A+25|0]=e>>>8,C[A+26|0]=e>>>16,C[A+27|0]=e>>>24,C[A+20|0]=_,C[A+21|0]=_>>>8,C[A+22|0]=_>>>16,C[A+23|0]=_>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=t,C[A+13|0]=t>>>8,C[A+14|0]=t>>>16,C[A+15|0]=t>>>24,C[A+8|0]=i,C[A+9|0]=i>>>8,C[A+10|0]=i>>>16,C[A+11|0]=i>>>24,C[A+4|0]=E,C[A+5|0]=E>>>8,C[A+6|0]=E>>>16,C[A+7|0]=E>>>24,0}function sA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function hA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g+40|0),b(e=A+40|0,e,g),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=i[A+156>>2],g=t<<1,i[A+156>>2]=I+g,y=i[A+152>>2],e=c<<1,i[A+152>>2]=y+e,h=i[A+148>>2],D=_<<1,i[A+148>>2]=h+D,f=i[A+144>>2],p=a<<1,i[A+144>>2]=f+p,w=i[A+140>>2],n=E<<1,i[A+140>>2]=w+n,k=i[A+136>>2],F=o<<1,i[A+136>>2]=k+F,S=i[A+132>>2],s=Q<<1,i[A+132>>2]=S+s,N=i[A+128>>2],G=Y<<1,i[A+128>>2]=N+G,M=i[A+124>>2],K=H<<1,i[A+124>>2]=M+K,U=i[A+120>>2],H=r<<1,i[A+120>>2]=U+H,i[A+112>>2]=e-y,i[A+108>>2]=D-h,i[A+104>>2]=p-f,i[A+100>>2]=n-w,i[A+96>>2]=F-k,i[A+92>>2]=s-S,i[A+88>>2]=G-N,i[A+84>>2]=K-M,i[A+80>>2]=H-U,i[A+116>>2]=g-I}function DA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+80|0,I+120|0),H=i[I+84>>2],Y=i[I+88>>2],Q=i[I+92>>2],o=i[I+96>>2],E=i[I+100>>2],a=i[I+104>>2],_=i[I+108>>2],c=i[I+112>>2],t=i[I+116>>2],g=i[A+44>>2],e=i[A+84>>2],h=i[A+48>>2],D=i[A+88>>2],f=i[A+52>>2],p=i[A+92>>2],w=i[A+56>>2],n=i[A+96>>2],k=i[A+60>>2],F=i[A+100>>2],S=i[y>>2],s=i[A+104>>2],N=i[A+68>>2],G=i[A+108>>2],M=i[A+72>>2],K=i[A+112>>2],r=i[I+80>>2],I=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=M+K,i[A+68>>2]=N+G,i[y>>2]=S+s,i[A+60>>2]=k+F,i[A+56>>2]=w+n,i[A+52>>2]=f+p,i[A+48>>2]=h+D,i[A+44>>2]=g+e,i[A+40>>2]=I+U,i[A+36>>2]=B-C,i[A+32>>2]=K-M,i[A+28>>2]=G-N,i[A+24>>2]=s-S,i[A+20>>2]=F-k,i[A+16>>2]=n-w,i[A+12>>2]=p-f,i[A+8>>2]=D-h,i[A+4>>2]=e-g,i[A>>2]=U-I,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function fA(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,s,h,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0;s=o[I+31|0],g=o[I+30|0],C=o[I+29|0],B=o[I+6|0],Q=o[I+5|0],E=o[I+4|0],a=o[I+9|0],_=o[I+8|0],c=o[I+7|0],t=o[I+12|0],K=o[I+11|0],U=o[I+10|0],r=o[I+15|0],b=o[I+14|0],e=o[I+13|0],S=o[I+28|0],M=o[I+27|0],N=o[I+26|0],F=o[I+25|0],n=o[I+24|0],w=o[I+23|0],h=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=(p=o[I+21|0])<<15,p=D=p>>>17|0,G=k,G|=(k=o[I+20|0])<<7,k=(D=k>>>25|0)|p,p=(D=o[I+22|0])>>>9|0,D=D<<23|G,p|=k,y=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=0,k=D,D=(33554431&(I=(G=y+16777216|0)>>>0<16777216?1:I))<<7|G>>>25,I=(I>>>25|0)+p|0,D=(p=k=k+D|0)>>>0>>0?I+1|0:I,I=(k=p+33554432|0)>>>0<33554432?D+1|0:D,i[A+24>>2]=p-(-67108864&k),D=(p=w>>>27|0)|n>>>19|F>>>11,p=w=(n=F<<21|(w=n<<13|w<<5))+(p=(67108863&(p=I))<<6|k>>>26)|0,I=D,D=(w=n+16777216|0)>>>0<16777216?I+1|0:I,i[A+28>>2]=p-(1040187392&w),p=(D=(I=D)>>>25|0)+(p=M>>>20|N>>>28|S>>>12)|0,I=p=(D=w=(I=(33554431&I)<<7|w>>>25)+(M<<12|N<<4|S<<20)|0)>>>0>>0?p+1|0:p,w=(S=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+32>>2]=D-(-67108864&S),p=t>>>13|(D=K>>>21|U>>>29),I=(p=(M=16777216+(K=K<<11|U<<3|t<<19)|0)>>>0<16777216?p+1|0:p)>>>25|0,p=(D=n=b<<10|e<<2|r<<18)+(n=(33554431&p)<<7|M>>>25)|0,D=I+(F=b>>>22|e>>>30|r>>>14)|0,I=D=p>>>0>>0?D+1|0:D,n=((67108863&(I=(n=p+33554432|0)>>>0<33554432?I+1|0:I))<<6|(D=n)>>>26)+(N=y-(-33554432&G)|0)|0,i[A+20>>2]=n,i[A+16>>2]=p-(-67108864&D),D=Q>>>18|E>>>26|B>>>10,p=(D=(N=16777216+(U=Q<<14|E<<6|B<<22)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(I=n=_<<13|c<<5|a<<21)+(n=(33554431&D)<<7|N>>>25)|0,I=p+(F=_>>>19|c>>>27|a>>>11)|0,I=D>>>0>>0?I+1|0:I,p=(F=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+8>>2]=D-(-67108864&F),S=(w=(67108863&w)<<6|S>>>26)+(b=s<<18&33292288|g<<10|C<<2)|0,I=D=g>>>22|C>>>30,D=(w=b+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=S-(33554432&w),p=K+((67108863&p)<<6|F>>>26)|0,i[A+12>>2]=p-(234881024&M),n=U-(2113929216&N)|0,p=Ig((33554431&(I=D))<<7|w>>>25,D=I>>>25|0,19,0),I=f,p=(D=p+h|0)>>>0

>>0?I+1|0:I,w=((67108863&(p=(I=D+33554432|0)>>>0<33554432?p+1|0:p))<<6|I>>>26)+n|0,i[A+4>>2]=w,i[A>>2]=D-(-67108864&I)}function pA(A,I,g,B,E,a,_,c){A|=0,I|=0,g|=0,B|=0,E|=0,a|=0,_|=0;var t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;if(1==(-7&(c|=0))){A:{I:{g:{C:{B:{Q:{i:{if(B){o:{E:{if(c>>>0<=3){for(;;){y=r;a:{_:{c:{t:{for(;;){if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16336^e))>>>8&63|~(1+(16340^e))>>>8&62,255!=(0|(t|=(t-1&1+(65470^e))>>>8&255)))break t;if(t=0,!E)break o;if(!kI(E,e))break;if((y=y+1|0)>>>0>=B>>>0)break c}r=y;break o}if(D=t+(D<<6)|0,s>>>0>1)break _;s=s+6|0;break a}r=(A=r+1|0)>>>0>>0?B:A;break o}if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,!((r=y+1|0)>>>0>>0))break}break o}for(;;){a:{if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16288^e))>>>8&63|~(1+(16338^e))>>>8&62,255==(0|(t|=(t-1&1+(65470^e))>>>8&255))){if(t=0,!E)break o;if(kI(E,e)){if((y=y+1|0)>>>0>=B>>>0)break a;continue}r=y;break o}if(D=t+(D<<6)|0,s>>>0<2)s=s+6|0;else{if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,(r=y+1|0)>>>0>=B>>>0)break o;y=r;continue}break}r=(A=r+1|0)>>>0>>0?B:A;break o}r=y,i[9404]=68,t=1}if(s>>>0>4)break i;A=r}else A=0;if(I=-1,t){r=A;break A}if(~(-1<>>0<2){c=A;break B}if(r=A>>>0>B>>>0?A:B,y=s>>>1|0,!E)break Q;for(c=A;;){if((0|c)==(0|r)){t=68;break C}if(61!=(0|(A=C[g+c|0]))){if(!kI(E,A)){t=28,r=c;break C}}else y=y-1|0;if(c=c+1|0,!y)break}break B}I=-1;break A}if(t=68,A>>>0>=B>>>0)break C;if(61!=o[A+g|0]){r=A,t=28;break C}if(c=A+y|0,1!=(0|y)){if((0|(s=A+1|0))==(0|r))break C;if(61!=o[g+s|0]){r=s,t=28;break C}if(2!=(0|y)){if((0|(A=A+2|0))==(0|r))break C;if(t=28,r=A,61!=o[A+g|0])break C}}}if(I=0,E)break g;break I}i[9404]=t;break A}if(!(B>>>0<=c>>>0)){for(;;){if(!kI(E,C[g+c|0]))break I;if((0|(c=c+1|0))==(0|B))break}c=B}}r=c,f=h}return _?i[_>>2]=g+r:(0|B)!=(0|r)&&(i[9404]=28,I=-1),a&&(i[a>>2]=f),0|I}rC(),Q()}function wA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(Q=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,_=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,c=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,B=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24):(Q=1797285236,_=2036477234,c=857760878,B=1634760805),i=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,f=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,p=20,s=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,h=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,e=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,y=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;t=Lg(g+c|0,7)^i,w=Lg(t+c|0,9)^D,r=Lg(B+s|0,7)^r,n=Lg(r+B|0,9)^a,k=Lg(n+r|0,13)^s,e=Lg(Q+h|0,7)^e,E=Lg(e+Q|0,9)^E,a=Lg(E+e|0,13)^h,Q=Lg(E+a|0,18)^Q,i=Lg(I+_|0,7)^f,s=k^Lg(Q+i|0,7),D=w^Lg(s+Q|0,9),f=Lg(s+D|0,13)^i,Q=Lg(D+f|0,18)^Q,y=Lg(i+_|0,9)^y,F=Lg(y+i|0,13)^I,I=Lg(F+y|0,18)^_,h=Lg(I+t|0,7)^a,a=Lg(h+I|0,9)^n,i=Lg(a+h|0,13)^t,_=Lg(i+a|0,18)^I,t=Lg(t+w|0,13)^g,g=Lg(t+w|0,18)^c,I=Lg(g+r|0,7)^F,E=Lg(I+g|0,9)^E,r=Lg(I+E|0,13)^r,c=Lg(E+r|0,18)^g,B=Lg(n+k|0,18)^B,g=Lg(B+e|0,7)^t,y=Lg(g+B|0,9)^y,e=Lg(g+y|0,13)^e,B=Lg(y+e|0,18)^B,t=p>>>0>2,p=p-2|0,t;);return C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+28|0]=i,C[A+29|0]=i>>>8,C[A+30|0]=i>>>16,C[A+31|0]=i>>>24,C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+20|0]=E,C[A+21|0]=E>>>8,C[A+22|0]=E>>>16,C[A+23|0]=E>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,C[A+8|0]=_,C[A+9|0]=_>>>8,C[A+10|0]=_>>>16,C[A+11|0]=_>>>24,C[A+4|0]=c,C[A+5|0]=c>>>8,C[A+6|0]=c>>>16,C[A+7|0]=c>>>24,0}function nA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0;for(s=g=s-480|0;c=(_=g+288|0)+(a<<1)|0,t=o[I+a|0],C[c+1|0]=t>>>4,C[0|c]=15&t,_=_+((c=1|a)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(a=a+2|0)););for(I=0;a=8+(_=(a=I)+o[0|(I=(g+288|0)+r|0)]|0)|0,C[0|I]=_-(240&a),a=8+(_=o[I+1|0]+(a<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&a),a=8+(_=o[I+2|0]+(a<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&a),I=a<<24>>24>>4,63!=(0|(r=r+3|0)););for(C[g+351|0]=o[g+351|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),Q=A+120|0,r=A+80|0,I=A+40|0,_=g+208|0,B=g+168|0,c=g+248|0,a=1;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),e=a>>>0<62,a=a+2|0,e;);for(a=i[A+36>>2],i[g+392>>2]=i[A+32>>2],i[g+396>>2]=a,a=i[A+28>>2],i[g+384>>2]=i[A+24>>2],i[g+388>>2]=a,a=i[A+20>>2],i[g+376>>2]=i[A+16>>2],i[g+380>>2]=a,a=i[A+12>>2],i[g+368>>2]=i[A+8>>2],i[g+372>>2]=a,a=i[A+4>>2],i[g+360>>2]=i[A>>2],i[g+364>>2]=a,a=i[I+12>>2],i[g+408>>2]=i[I+8>>2],i[g+412>>2]=a,a=i[I+20>>2],i[g+416>>2]=i[I+16>>2],i[g+420>>2]=a,a=i[I+28>>2],i[g+424>>2]=i[I+24>>2],i[g+428>>2]=a,a=i[I+36>>2],i[g+432>>2]=i[I+32>>2],i[g+436>>2]=a,a=i[I+4>>2],i[g+400>>2]=i[I>>2],i[g+404>>2]=a,a=i[r+12>>2],i[g+448>>2]=i[r+8>>2],i[g+452>>2]=a,a=i[r+20>>2],i[g+456>>2]=i[r+16>>2],i[g+460>>2]=a,a=i[r+28>>2],i[g+464>>2]=i[r+24>>2],i[g+468>>2]=a,a=i[r+36>>2],i[g+472>>2]=i[r+32>>2],i[g+476>>2]=a,a=i[r+4>>2],i[g+440>>2]=i[r>>2],i[g+444>>2]=a,KA(t,a=g+360|0),b(a,t,c),b(e=g+400|0,B,_),b(E=g+440|0,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),a=0;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),t=a>>>0<62,a=a+2|0,t;);s=g+480|0}function kA(A,I){A|=0;var g,C,B,Q,i,o=0,E=0,a=0,_=0,c=0,t=0;for(s=g=s-736|0,n(c=g+704|0,I|=0,I),n(E=g+224|0,I,c),n(_=g+672|0,I,E),n(a=g+640|0,_,_),n(C=g+416|0,c,a),n(c=g+320|0,I,C),n(o=g+608|0,a,a),n(a=g+288|0,c,c),n(t=g+576|0,C,a),n(i=g+448|0,o,a),n(B=g+544|0,t,t),n(t=g+384|0,o,B),n(Q=g+352|0,E,t),n(E=g+192|0,o,Q),n(o=g+160|0,_,E),n(g+96|0,_,o),n(E=g+512|0,B,Q),n(o=g+480|0,_,E),n(E=g+256|0,i,o),n(g+128|0,a,E),n(a=g- -64|0,t,o),n(o=g+32|0,_,a),n(g,C,o),n(A,c,g),_=0;n(A,A,A),126!=(0|(_=_+1|0)););return n(A,A,g+352|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+704|0),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+160|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+256|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g- -64|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+96|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+320|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+512|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+192|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+480|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+128|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+32|0),s=g+736|0,0-GI(I,32)|0}function FA(A,I,g){A|=0;var B,Q,i,E,a=0,_=0,c=0,t=0,r=0;return s=i=s-160|0,FI(I|=0,g|=0,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(i,I),tg(A,i),_=o[(Q=g)+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,c=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,t=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,r=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,g=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,E=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,B=I,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,C[B+24|0]=I,C[B+25|0]=I>>>8,C[B+26|0]=I>>>16,C[B+27|0]=I>>>24,C[B+28|0]=E,C[B+29|0]=E>>>8,C[B+30|0]=E>>>16,C[B+31|0]=E>>>24,C[B+16|0]=c,C[B+17|0]=c>>>8,C[B+18|0]=c>>>16,C[B+19|0]=c>>>24,C[B+20|0]=t,C[B+21|0]=t>>>8,C[B+22|0]=t>>>16,C[B+23|0]=t>>>24,C[B+8|0]=_,C[B+9|0]=_>>>8,C[B+10|0]=_>>>16,C[B+11|0]=_>>>24,C[B+12|0]=a,C[B+13|0]=a>>>8,C[B+14|0]=a>>>16,C[B+15|0]=a>>>24,C[0|B]=r,C[B+1|0]=r>>>8,C[B+2|0]=r>>>16,C[B+3|0]=r>>>24,C[B+4|0]=g,C[B+5|0]=g>>>8,C[B+6|0]=g>>>16,C[B+7|0]=g>>>24,c=o[(a=A)+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,t=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,r=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,g=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,I=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,A=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,_=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,a=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,C[B+56|0]=a,C[B+57|0]=a>>>8,C[B+58|0]=a>>>16,C[B+59|0]=a>>>24,C[B+60|0]=_,C[B+61|0]=_>>>8,C[B+62|0]=_>>>16,C[B+63|0]=_>>>24,C[B+48|0]=r,C[B+49|0]=r>>>8,C[B+50|0]=r>>>16,C[B+51|0]=r>>>24,C[B+52|0]=g,C[B+53|0]=g>>>8,C[B+54|0]=g>>>16,C[B+55|0]=g>>>24,C[B+40|0]=c,C[B+41|0]=c>>>8,C[B+42|0]=c>>>16,C[B+43|0]=c>>>24,C[B+44|0]=t,C[B+45|0]=t>>>8,C[B+46|0]=t>>>16,C[B+47|0]=t>>>24,C[B+32|0]=I,C[B+33|0]=I>>>8,C[B+34|0]=I>>>16,C[B+35|0]=I>>>24,C[B+36|0]=A,C[B+37|0]=A>>>8,C[B+38|0]=A>>>16,C[B+39|0]=A>>>24,s=i+160|0,0}function SA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-704|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+76>>2])|0,_=(r=i[A+72>>2])+(t=g<<3)|0,i[A+72>>2]=_,E=_>>>0>>0?E+1|0:E,i[A+76>>2]=E,c=i[A+68>>2],E=(E=_=(0|E)==(0|a)&_>>>0>>0|E>>>0>>0)>>>0>(_=_+i[A+64>>2]|0)>>>0?c+1|0:c,_=(t=B>>>29|0)+_|0,i[A+64>>2]=_,i[A+68>>2]=_>>>0>>0?E+1|0:E,_=A+80|0,(0|B)==(0|(c=f=0-((E=0)+((t=127&((7&a)<<29|r>>>3))>>>0>128)|0)|0))&g>>>0>=(r=128-t|0)>>>0|B>>>0>c>>>0){if(a=0,c=0,!E&(127^t)>>>0>=3|E)for(p=252&r;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(t+(E=1|a)|0)|0]=o[I+E|0],C[_+(t+(E=2|a)|0)|0]=o[I+E|0],C[_+(t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&r))for(;C[(E=a+t|0)+_|0]=o[I+a|0],E=c,c=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(k(A,_,Q,a=Q+640|0),I=I+r|0,!(B=B-((g>>>0>>0)+f|0)|0)&(g=g-r|0)>>>0>127|B)for(;k(A,I,Q,a),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,c=0,!B&g>>>0>=4|B)for(e=124&g,r=0,g=0,B=0;C[a+_|0]=o[I+a|0],C[(E=1|a)+_|0]=o[I+E|0],C[(E=2|a)+_|0]=o[I+E|0],C[(E=3|a)+_|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|r)!=(0|E););if(A|h)for(;C[a+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,704)}else{if(a=0,c=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(r=t+(E=1|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=2|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+t|0)+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+704|0,0}function NA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],y=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,e=i[A>>2],i[A>>2]=g&(e^i[I>>2])^e,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^y),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(y=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],e=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[y>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^e),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],y=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],e=i[A+116>>2],i[A+116>>2]=g&(e^i[I+116>>2])^e,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^y),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k),B=i[A+124>>2],s=i[I+124>>2],Q=i[A+128>>2],h=i[I+128>>2],o=i[A+132>>2],D=i[I+132>>2],E=i[A+136>>2],f=i[I+136>>2],a=i[A+140>>2],p=i[I+140>>2],_=i[A+144>>2],y=i[I+144>>2],c=i[A+148>>2],w=i[I+148>>2],t=i[A+152>>2],n=i[I+152>>2],r=i[A+120>>2],k=i[I+120>>2],e=i[I+156>>2],I=i[A+156>>2],i[A+156>>2]=g&(e^I)^I,i[A+152>>2]=t^g&(t^n),i[A+148>>2]=c^g&(c^w),i[A+144>>2]=_^g&(_^y),i[A+140>>2]=a^g&(a^p),i[A+136>>2]=E^g&(E^f),i[A+132>>2]=o^g&(o^D),i[A+128>>2]=Q^g&(Q^h),i[A+124>>2]=B^g&(B^s),i[A+120>>2]=r^g&(r^k)}function GA(A,I,g){var B,Q,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0;return s=B=s-320|0,R(o=B+240|0,g),b(o,o,g),R(A,o),b(A,A,g),b(A,A,I),PA(A,A),b(A,A,o),b(A,A,I),R(o=B+192|0,A),b(o,o,g),E=i[I+4>>2],h=i[I+8>>2],f=i[I+12>>2],p=i[I+16>>2],w=i[I+20>>2],n=i[I+24>>2],k=i[I+28>>2],F=i[I+32>>2],S=i[I>>2],g=i[B+192>>2],o=i[B+196>>2],a=i[B+200>>2],_=i[B+204>>2],c=i[B+208>>2],t=i[B+212>>2],r=i[B+216>>2],e=i[B+220>>2],y=i[B+224>>2],D=i[B+228>>2],N=i[I+36>>2],i[B+180>>2]=D-N,i[B+176>>2]=y-F,i[B+172>>2]=e-k,i[B+168>>2]=r-n,i[B+164>>2]=t-w,i[B+160>>2]=c-p,i[B+156>>2]=_-f,i[B+152>>2]=a-h,i[B+148>>2]=o-E,i[B+144>>2]=g-S,i[B+132>>2]=D+N,i[B+128>>2]=y+F,i[B+124>>2]=e+k,i[B+120>>2]=r+n,i[B+116>>2]=t+w,i[B+112>>2]=c+p,i[B+108>>2]=_+f,i[B+104>>2]=a+h,i[B+100>>2]=o+E,i[B+96>>2]=g+S,b(E=B+48|0,I,1632),i[B+84>>2]=D+i[B+84>>2],i[B+80>>2]=y+i[B+80>>2],i[B+76>>2]=e+i[B+76>>2],i[B+72>>2]=r+i[B+72>>2],i[B+68>>2]=t+i[B+68>>2],i[B+64>>2]=c+i[B+64>>2],i[B+60>>2]=_+i[B+60>>2],i[B+56>>2]=a+i[B+56>>2],i[B+52>>2]=o+i[B+52>>2],i[B+48>>2]=g+i[B+48>>2],QI(B,B+144|0),f=GI(B,32),QI(B,B+96|0),h=GI(B,32),QI(B,E),I=GI(B,32),b(B,A,1632),y=i[A+4>>2],e=i[A+8>>2],r=i[A+12>>2],t=i[A+16>>2],c=i[A+20>>2],_=i[A+24>>2],a=i[A+28>>2],o=i[A+32>>2],E=i[A>>2],p=i[B>>2],w=i[B+4>>2],n=i[B+8>>2],k=i[B+12>>2],F=i[B+16>>2],S=i[B+20>>2],D=i[B+24>>2],N=i[B+28>>2],Q=i[B+32>>2],g=(I=0-(I|h)|0)&((g=i[A+36>>2])^i[B+36>>2])^g,i[A+36>>2]=g,o^=I&(o^Q),i[A+32>>2]=o,a^=I&(a^N),i[A+28>>2]=a,_^=I&(_^D),i[A+24>>2]=_,c^=I&(c^S),i[A+20>>2]=c,t^=I&(t^F),i[A+16>>2]=t,r^=I&(r^k),i[A+12>>2]=r,e^=I&(e^n),i[A+8>>2]=e,y^=I&(y^w),i[A+4>>2]=y,E^=I&(E^p),i[A>>2]=E,QI(B+288|0,A),I=0-(1&C[B+288|0])|0,i[A+36>>2]=g^I&(g^0-g),i[A+32>>2]=o^I&(o^0-o),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=E^I&(E^0-E),s=B+320|0,h|f}function MA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;return s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(a=g+240|0,B),b(_=g+192|0,a,1584),i[g+192>>2]=i[g+192>>2]+1,c=i[g+240>>2]-1|0,i[g+240>>2]=c,t=i[g+244>>2],r=i[g+248>>2],e=i[g+252>>2],y=i[g+256>>2],h=i[g+260>>2],D=i[g+264>>2],f=i[g+268>>2],p=i[g+272>>2],w=i[g+276>>2],b(A,a,_),PA(A,A),b(A,a,A),R(a=g+144|0,A),b(a,a,_),a=i[g+180>>2],i[g+132>>2]=a-w,_=i[g+176>>2],i[g+128>>2]=_-p,n=i[g+172>>2],i[g+124>>2]=n-f,k=i[g+168>>2],i[g+120>>2]=k-D,F=i[g+164>>2],i[g+116>>2]=F-h,S=i[g+160>>2],i[g+112>>2]=S-y,N=i[g+156>>2],i[g+108>>2]=N-e,G=i[g+152>>2],i[g+104>>2]=G-r,M=i[g+148>>2],i[g+100>>2]=M-t,K=i[g+144>>2],i[g+96>>2]=K-c,i[g+84>>2]=a+w,i[g+80>>2]=_+p,i[g+76>>2]=f+n,i[g+72>>2]=D+k,i[g+68>>2]=h+F,i[g+64>>2]=y+S,i[g+60>>2]=e+N,i[g+56>>2]=r+G,i[g+52>>2]=t+M,i[g+48>>2]=c+K,QI(g,g+96|0),p=GI(g,32),QI(g,g+48|0),n=GI(g,32),b(g,A,1632),f=i[A+4>>2],D=i[A+8>>2],h=i[A+12>>2],y=i[A+16>>2],e=i[A+20>>2],r=i[A+24>>2],t=i[A+28>>2],c=i[A+32>>2],w=i[A>>2],k=i[g>>2],F=i[g+4>>2],S=i[g+8>>2],N=i[g+12>>2],G=i[g+16>>2],M=i[g+20>>2],K=i[g+24>>2],Q=i[g+28>>2],E=i[g+32>>2],_=(a=p-1|0)&((_=i[A+36>>2])^i[g+36>>2])^_,i[A+36>>2]=_,c^=a&(c^E),i[A+32>>2]=c,t^=a&(t^Q),i[A+28>>2]=t,r^=a&(r^K),i[A+24>>2]=r,e^=a&(e^M),i[A+20>>2]=e,y^=a&(y^G),i[A+16>>2]=y,h^=a&(h^N),i[A+12>>2]=h,D^=a&(D^S),i[A+8>>2]=D,f^=a&(f^F),i[A+4>>2]=f,a=w^a&(w^k),i[A>>2]=a,QI(g+288|0,A),I=0-(1&C[g+288|0]^o[I+31|0]>>>7^o[38144]>>>2)|0,i[A+36>>2]=_^I&(_^0-_),i[A+32>>2]=c^I&(c^0-c),i[A+28>>2]=t^I&(t^0-t),i[A+24>>2]=r^I&(r^0-r),i[A+20>>2]=e^I&(e^0-e),i[A+16>>2]=y^I&(y^0-y),i[A+12>>2]=h^I&(h^0-h),i[A+8>>2]=D^I&(D^0-D),i[A+4>>2]=f^I&(f^0-f),i[A>>2]=a^I&(a^0-a),b(A+120|0,A,B),s=g+320|0,(p|n)-1|0}function KA(A,I){var g,C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;s=g=s-48|0,R(A,I),R(A+80|0,I+40|0),v(A+120|0,I+80|0),h=i[I+44>>2],D=i[I+4>>2],n=i[I+48>>2],f=i[I+8>>2],k=i[I+52>>2],p=i[I+12>>2],F=i[I+56>>2],w=i[I+16>>2],K=i[I+60>>2],S=i[I+20>>2],U=i[I- -64>>2],N=i[I+24>>2],b=i[I+68>>2],G=i[I+28>>2],H=i[I+72>>2],Y=i[I+32>>2],J=i[I+40>>2],M=i[I>>2],i[A+76>>2]=i[I+76>>2]+i[I+36>>2],i[A+72>>2]=H+Y,i[A+68>>2]=b+G,i[(C=A- -64|0)>>2]=U+N,i[A+60>>2]=K+S,i[A+56>>2]=F+w,i[A+52>>2]=k+p,i[A+48>>2]=n+f,i[A+44>>2]=h+D,i[A+40>>2]=J+M,R(g,A+40|0),I=i[A+4>>2],h=i[A+84>>2],D=i[A+8>>2],n=i[A+88>>2],f=i[A+12>>2],k=i[A+92>>2],p=i[A+16>>2],F=i[A+96>>2],w=i[A+20>>2],K=i[A+100>>2],S=i[A+24>>2],U=i[A+104>>2],N=i[A+28>>2],b=i[A+108>>2],G=i[A+32>>2],H=i[A+112>>2],Y=i[A>>2],J=i[A+80>>2],Q=(M=i[A+116>>2])-(B=i[A+36>>2])|0,i[A+116>>2]=Q,o=H-G|0,i[A+112>>2]=o,E=b-N|0,i[A+108>>2]=E,a=U-S|0,i[A+104>>2]=a,_=K-w|0,i[A+100>>2]=_,c=F-p|0,i[A+96>>2]=c,t=k-f|0,i[A+92>>2]=t,r=n-D|0,i[A+88>>2]=r,e=h-I|0,i[A+84>>2]=e,y=J-Y|0,i[A+80>>2]=y,M=M+B|0,i[A+76>>2]=M,G=G+H|0,i[A+72>>2]=G,N=N+b|0,i[A+68>>2]=N,S=S+U|0,i[C>>2]=S,w=w+K|0,i[A+60>>2]=w,p=p+F|0,i[A+56>>2]=p,f=f+k|0,i[A+52>>2]=f,D=D+n|0,i[A+48>>2]=D,I=I+h|0,i[A+44>>2]=I,h=Y+J|0,i[A+40>>2]=h,n=i[g>>2],k=i[g+4>>2],F=i[g+8>>2],K=i[g+12>>2],U=i[g+16>>2],b=i[g+20>>2],H=i[g+24>>2],Y=i[g+28>>2],J=i[g+32>>2],i[A+36>>2]=i[g+36>>2]-M,i[A+32>>2]=J-G,i[A+28>>2]=Y-N,i[A+24>>2]=H-S,i[A+20>>2]=b-w,i[A+16>>2]=U-p,i[A+12>>2]=K-f,i[A+8>>2]=F-D,i[A+4>>2]=k-I,i[A>>2]=n-h,I=i[A+124>>2],h=i[A+128>>2],D=i[A+132>>2],n=i[A+136>>2],f=i[A+140>>2],k=i[A+144>>2],p=i[A+148>>2],F=i[A+152>>2],w=i[A+120>>2],i[A+156>>2]=i[A+156>>2]-Q,i[A+152>>2]=F-o,i[A+148>>2]=p-E,i[A+144>>2]=k-a,i[A+140>>2]=f-_,i[A+136>>2]=n-c,i[A+132>>2]=D-t,i[A+128>>2]=h-r,i[A+124>>2]=I-e,i[A+120>>2]=w-y,s=g+48|0}function UA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-288|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+36>>2])|0,_=(t=i[A+32>>2])+(r=g<<3)|0,i[A+32>>2]=_,i[A+36>>2]=_>>>0>>0?E+1|0:E,c=A+40|0,(0|B)==(0|(_=f=0-((E=0)+((r=63&((7&a)<<29|t>>>3))>>>0>64)|0)|0))&g>>>0>=(t=64-r|0)>>>0|B>>>0>_>>>0){if(a=0,_=0,!E&(63^r)>>>0>=3|E)for(p=124&t;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(r+(E=1|a)|0)|0]=o[I+E|0],C[c+(r+(E=2|a)|0)|0]=o[I+E|0],C[c+(r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&t))for(;C[(E=a+r|0)+c|0]=o[I+a|0],E=_,_=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(J(A,c,Q,a=Q+256|0),I=I+t|0,!(B=B-((g>>>0>>0)+f|0)|0)&(g=g-t|0)>>>0>63|B)for(;J(A,I,Q,a),I=I- -64|0,E=B-1|0,!(B=(g=g+-64|0)>>>0<4294967232?E+1|0:E)&g>>>0>63|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,_=0,!B&g>>>0>=4|B)for(e=60&g,t=0,g=0,B=0;C[a+c|0]=o[I+a|0],C[(E=1|a)+c|0]=o[I+E|0],C[(E=2|a)+c|0]=o[I+E|0],C[(E=3|a)+c|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|t)!=(0|E););if(A|h)for(;C[a+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,288)}else{if(a=0,_=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(t=r+(E=1|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=2|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+r|0)+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+288|0,0}function bA(A,I,g,C,B,Q){var o=0;i[Q>>2]=8;A:{I:{o=A,o=(A=!I&A>>>0<=32768)?32768:o;g:{C:{if(!(A=A?0:I)&g>>>5>>>0<=o>>>0|A){if(g>>>0>=4096)break C;I=1;break g}if(i[B>>2]=1,A=1,(I=(o>>>0)/(i[Q>>2]<<2>>>0)|0)>>>0<4)break A;if(A=2,I>>>0<8)break A;if(I>>>0<16)return void(i[C>>2]=3);if(I>>>0<32)return void(i[C>>2]=4);if(I>>>0<64)return void(i[C>>2]=5);if(I>>>0<128)return void(i[C>>2]=6);if(I>>>0<256)return void(i[C>>2]=7);if(I>>>0<512)return void(i[C>>2]=8);if(I>>>0<1024)return void(i[C>>2]=9);if(I>>>0<2048)return void(i[C>>2]=10);if(I>>>0<4096)return void(i[C>>2]=11);if(I>>>0<8192)return void(i[C>>2]=12);if(I>>>0<16384)return void(i[C>>2]=13);if(I>>>0<32768)return void(i[C>>2]=14);if(I>>>0<65536)return void(i[C>>2]=15);if(I>>>0<131072)return void(i[C>>2]=16);if(I>>>0<262144)return void(i[C>>2]=17);if(I>>>0<524288)return void(i[C>>2]=18);if(I>>>0<1048576)return void(i[C>>2]=19);if(I>>>0<2097152)return void(i[C>>2]=20);if(I>>>0<4194304)return void(i[C>>2]=21);if(I>>>0<8388608)return void(i[C>>2]=22);if(I>>>0<16777216)return void(i[C>>2]=23);if(I>>>0>=33554432)break I;return void(i[C>>2]=24)}I=2,g>>>0<8192||(I=3,g>>>0<16384||(I=4,g>>>0<32768||(I=5,g>>>0<65536||(I=6,g>>>0<131072||(I=7,g>>>0<262144||(I=8,g>>>0<524288||(I=9,g>>>0<1048576||(I=10,g>>>0<2097152||(I=11,g>>>0<4194304||(I=12,g>>>0<8388608||(I=13,g>>>0<16777216||(I=14,g>>>0<33554432||(I=15,g>>>0<67108864||(I=16,g>>>0<134217728||(I=17,g>>>0<268435456||(I=18,g>>>0<536870912||(I=19,g>>>0<1073741824||(I=(0|g)>=0?20:21))))))))))))))))))}return g=I,i[C>>2]=g,A=(I=A)>>>2|0,I=(3&I)<<30|o>>>2,C=31&g,(63&g)>>>0>=32?(g=0,A=A>>>C|0):(g=A>>>C|0,A=((1<>>C),void(i[B>>2]=((!g&A>>>0>=1073741823|g?1073741823:A)>>>0)/E[Q>>2])}A=I>>>0<67108864?25:26}i[C>>2]=A}function HA(A,I,g){var C,B,Q,o,E,a,_,c,t=0;s=C=s-160|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),NA(A,I,(255&(1^(t=g-((g>>31&g)<<1)|0)))-1>>>31|0),NA(A,I+160|0,(255&(2^t))-1>>>31|0),NA(A,I+320|0,(255&(3^t))-1>>>31|0),NA(A,I+480|0,(255&(4^t))-1>>>31|0),NA(A,I+640|0,(255&(5^t))-1>>>31|0),NA(A,I+800|0,(255&(6^t))-1>>>31|0),NA(A,I+960|0,(255&(7^t))-1>>>31|0),NA(A,I+1120|0,(255&(8^t))-1>>>31|0),I=i[A+76>>2],i[C+32>>2]=i[A+72>>2],i[C+36>>2]=I,t=i[4+(I=A- -64|0)>>2],i[C+24>>2]=i[I>>2],i[C+28>>2]=t,I=i[A+60>>2],i[C+16>>2]=i[A+56>>2],i[C+20>>2]=I,I=i[A+52>>2],i[C+8>>2]=i[A+48>>2],i[C+12>>2]=I,I=i[A+44>>2],i[C>>2]=i[A+40>>2],i[C+4>>2]=I,I=i[A+36>>2],i[C+72>>2]=i[A+32>>2],i[C+76>>2]=I,t=i[A+28>>2],i[(I=C- -64|0)>>2]=i[A+24>>2],i[I+4>>2]=t,I=i[A+20>>2],i[C+56>>2]=i[A+16>>2],i[C+60>>2]=I,I=i[A+12>>2],i[C+48>>2]=i[A+8>>2],i[C+52>>2]=I,I=i[A+4>>2],i[C+40>>2]=i[A>>2],i[C+44>>2]=I,I=i[A+92>>2],i[C+88>>2]=i[A+88>>2],i[C+92>>2]=I,I=i[A+100>>2],i[C+96>>2]=i[A+96>>2],i[C+100>>2]=I,I=i[A+108>>2],i[C+104>>2]=i[A+104>>2],i[C+108>>2]=I,I=i[A+116>>2],i[C+112>>2]=i[A+112>>2],i[C+116>>2]=I,I=i[A+84>>2],i[C+80>>2]=i[A+80>>2],i[C+84>>2]=I,I=i[A+124>>2],t=i[A+128>>2],B=i[A+132>>2],Q=i[A+136>>2],o=i[A+140>>2],E=i[A+144>>2],a=i[A+148>>2],_=i[A+152>>2],c=i[A+120>>2],i[C+156>>2]=0-i[A+156>>2],i[C+152>>2]=0-_,i[C+148>>2]=0-a,i[C+144>>2]=0-E,i[C+140>>2]=0-o,i[C+136>>2]=0-Q,i[C+132>>2]=0-B,i[C+128>>2]=0-t,i[C+124>>2]=0-I,i[C+120>>2]=0-c,NA(A,C,(128&g)>>>7|0),s=C+160|0}function YA(A,I){A|=0,I|=0;var g,B,Q,E,a,_=0,c=0,t=0;return s=c=s-192|0,ag(c,32),FI(I,c,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(t=c+32|0,I),tg(A,t),g=c,t=i[c+28>>2],c=i[c+24>>2],C[I+24|0]=c,C[I+25|0]=c>>>8,C[I+26|0]=c>>>16,C[I+27|0]=c>>>24,C[I+28|0]=t,C[I+29|0]=t>>>8,C[I+30|0]=t>>>16,C[I+31|0]=t>>>24,t=i[g+20>>2],c=i[g+16>>2],C[I+16|0]=c,C[I+17|0]=c>>>8,C[I+18|0]=c>>>16,C[I+19|0]=c>>>24,C[I+20|0]=t,C[I+21|0]=t>>>8,C[I+22|0]=t>>>16,C[I+23|0]=t>>>24,t=i[g+12>>2],c=i[g+8>>2],C[I+8|0]=c,C[I+9|0]=c>>>8,C[I+10|0]=c>>>16,C[I+11|0]=c>>>24,C[I+12|0]=t,C[I+13|0]=t>>>8,C[I+14|0]=t>>>16,C[I+15|0]=t>>>24,t=i[g+4>>2],c=i[g>>2],C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,C[I+4|0]=t,C[I+5|0]=t>>>8,C[I+6|0]=t>>>16,C[I+7|0]=t>>>24,B=o[(_=A)+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,Q=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,E=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,c=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,A=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[I+56|0]=_,C[I+57|0]=_>>>8,C[I+58|0]=_>>>16,C[I+59|0]=_>>>24,C[I+60|0]=a,C[I+61|0]=a>>>8,C[I+62|0]=a>>>16,C[I+63|0]=a>>>24,C[I+48|0]=E,C[I+49|0]=E>>>8,C[I+50|0]=E>>>16,C[I+51|0]=E>>>24,C[I+52|0]=t,C[I+53|0]=t>>>8,C[I+54|0]=t>>>16,C[I+55|0]=t>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,C[I+32|0]=c,C[I+33|0]=c>>>8,C[I+34|0]=c>>>16,C[I+35|0]=c>>>24,C[I+36|0]=A,C[I+37|0]=A>>>8,C[I+38|0]=A>>>16,C[I+39|0]=A>>>24,XC(g,32),s=g+192|0,0}function JA(A,I){I|=0;var g,B,Q=0,o=0,E=0,a=0;return s=g=s-288|0,o=40+((Q=i[32+(A|=0)>>2]>>>3&63)+A|0)|0,Q>>>0>=56?(Ng(o,35520,64-Q|0),J(A,A+40|0,g,g+256|0),i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[(Q=A- -64|0)>>2]=0,i[Q+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0):Ng(o,35520,56-Q|0),E=(Q=16711680&(o=i[A+32>>2]))>>>8|0,a=Q<<24,B=(Q=-16777216&o)>>>24|0,Q=(a|=Q<<8)|-16777216&((255&(Q=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&Q)<<8|o>>>24)|Q>>>8&65280|Q>>>24,C[A+96|0]=Q,C[A+97|0]=Q>>>8,C[A+98|0]=Q>>>16,C[A+99|0]=Q>>>24,Q=E|B|o<<24|(65280&o)<<8,Q|=E=0,C[A+100|0]=Q,C[A+101|0]=Q>>>8,C[A+102|0]=Q>>>16,C[A+103|0]=Q>>>24,J(A,A+40|0,g,g+256|0),Q=(Q=i[A>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,Q=(Q=i[A+4>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,Q=(Q=i[A+8>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,Q=(Q=i[A+12>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,Q=(Q=i[A+16>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,Q=(Q=i[A+20>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,Q=(Q=i[A+24>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,Q=(Q=i[A+28>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,XC(g,288),XC(A,104),s=g+288|0,0}function dA(A,I){A|=0;var g,B=0;s=g=s+-64|0,B=o[60+(I|=0)|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+56>>2]=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+60>>2]=B,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+48>>2]=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+52>>2]=B,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+40>>2]=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+44>>2]=B,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+32>>2]=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+36>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,S(g),I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=g- -64|0}function mA(A,I,g){A|=0,I|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0;if(s=B=s-96|0,(g|=0)>>>0>=65&&($I(A),UA(A,I,g,0),JA(A,B),g=32,I=B),$I(A),i[B+88>>2]=909522486,i[B+92>>2]=909522486,i[B+80>>2]=909522486,i[B+84>>2]=909522486,i[B+72>>2]=909522486,i[B+76>>2]=909522486,i[(a=r=B- -64|0)>>2]=909522486,i[a+4>>2]=909522486,i[B+56>>2]=909522486,i[B+60>>2]=909522486,i[B+48>>2]=909522486,i[B+52>>2]=909522486,i[B+40>>2]=909522486,i[B+44>>2]=909522486,i[B+32>>2]=909522486,i[B+36>>2]=909522486,g){if(g>>>0>=4)for(_=124&g;C[0|(E=(a=B+32|0)+Q|0)]=o[0|E]^o[I+Q|0],C[0|(e=(E=1|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(e=(E=2|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(E=(E=a)+(a=3|Q)|0)]=o[0|E]^o[I+a|0],Q=Q+4|0,(0|_)!=(0|(c=c+4|0)););if(c=3&g)for(;C[0|(a=(B+32|0)+Q|0)]=o[0|a]^o[I+Q|0],Q=Q+1|0,(0|c)!=(0|(t=t+1|0)););}if(UA(A,B+32|0,64,0),$I(a=A+104|0),i[B+88>>2]=1549556828,i[B+92>>2]=1549556828,i[B+80>>2]=1549556828,i[B+84>>2]=1549556828,i[B+72>>2]=1549556828,i[B+76>>2]=1549556828,i[r>>2]=1549556828,i[r+4>>2]=1549556828,i[B+56>>2]=1549556828,i[B+60>>2]=1549556828,i[B+48>>2]=1549556828,i[B+52>>2]=1549556828,i[B+40>>2]=1549556828,i[B+44>>2]=1549556828,i[B+32>>2]=1549556828,i[B+36>>2]=1549556828,g){if(t=0,Q=0,g>>>0>=4)for(r=124&g,c=0;C[0|(_=(A=B+32|0)+Q|0)]=o[0|_]^o[I+Q|0],C[0|(E=(_=1|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(E=(_=2|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(_=(E=A)+(A=3|Q)|0)]=o[0|_]^o[A+I|0],Q=Q+4|0,(0|r)!=(0|(c=c+4|0)););if(A=3&g)for(;C[0|(g=(B+32|0)+Q|0)]=o[0|g]^o[I+Q|0],Q=Q+1|0,(0|A)!=(0|(t=t+1|0)););}return UA(a,A=B+32|0,64,0),XC(A,64),XC(B,32),s=B+96|0,0}function lA(A,I,g,C,B,o,E){var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(I-65>>>0<4294967232|E>>>0>64)A=-1;else{e=a=s,s=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((_=255&I)-65&255)>>>0<=191|!(!(I=255&E)||o)|I>>>0>=65)){if(I){if(!o)break I;bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^(I<<8|_),i[a+4>>2]=I>>>24^1779033703,bg((E=a+384|0)+I|0,0,128-I|0),Ng(E,o,I),Ng(a+96|0,E,128),i[a+352>>2]=128,XC(E,128),I=128}else bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^_,i[a+4>>2]=1779033703,I=0;g:if(C|B)for(y=a+224|0,c=a+96|0;;){if(E=I+c|0,!B&C>>>0<=(o=256-I|0)>>>0){Ng(E,g,C),i[a+352>>2]=C+i[a+352>>2];break g}if(Ng(E,g,o),i[a+352>>2]=o+i[a+352>>2],t=I=i[a+68>>2],I=(r=(E=i[a+64>>2])+128|0)>>>0<128?I+1|0:I,i[a+64>>2]=r,i[a+68>>2]=I,I=i[a+76>>2],I=(t=E=-1==(0|t)&E>>>0>4294967167)>>>0>(E=E+i[a+72>>2]|0)>>>0?I+1|0:I,i[a+72>>2]=E,i[a+76>>2]=I,p(a,c),Ng(c,y,128),I=i[a+352>>2]-128|0,i[a+352>>2]=I,g=g+o|0,!((B=B-(C>>>0>>0)|0)|(C=C-o|0)))break}AA(a,A,_),s=e;break A}rC(),Q()}A=0}return A}function uA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,C[g+64|0]=1,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function xA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function vA(A,I,g,B){var Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{if((E=i[A+56>>2])|(Q=i[A+60>>2])){if(e=_=16-E|0,t=(_=(0|(a=0-((E>>>0>16)+Q|0)|0))==(0|B)&g>>>0>_>>>0|B>>>0>a>>>0)?e:g,e=_=_?a:B,_|t){if(_=A- -64|0,a=0,E=0,!e&t>>>0>=4|e)for(r=-4&t;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(y=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=E,E=(a=a+4|0)>>>0<4?Q+1|0:Q,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|c)!=(0|r)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&t))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=i[A+56>>2],Q=i[A+60>>2]}if(Q=Q+e|0,Q=(E=E+t|0)>>>0>>0?Q+1|0:Q,i[A+56>>2]=E,i[A+60>>2]=Q,!Q&E>>>0<16)break A;rA(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(E=g)-t|0,B=B-((E>>>0>>0)+e|0)|0,I=I+t|0}if(!B&g>>>0>=16|B&&(rA(A,I,E=-16&g,B),g&=15,B=0,I=I+E|0),g|B){if(_=A- -64|0,s=0,D=0,a=0,E=0,!B&g>>>0>=4|B)for(t=12&g,e=0,c=0;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(r=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],E=(a=a+4|0)>>>0<4?E+1|0:E,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|t)!=(0|c)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&g))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=B+i[A+60>>2]|0,E=(I=g+i[A+56>>2]|0)>>>0>>0?E+1|0:E,i[A+56>>2]=I,i[A+60>>2]=E}}}function RA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],e=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,y=i[A>>2],i[A>>2]=g&(y^i[I>>2])^y,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^e),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(e=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],y=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[e>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^y),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],e=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],y=i[I+116>>2],I=i[A+116>>2],i[A+116>>2]=g&(y^I)^I,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^e),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k)}function LA(A,I){var g,C,B=0;for(s=g=s-192|0,R(C=g+144|0,I),R(B=g+96|0,C),R(B,B),b(B,I,B),b(C,C,B),R(I=g+48|0,C),b(B,B,I),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(I,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),I=1;R(g,g),100!=(0|(I=I+1|0)););b(I=g+48|0,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B=g+96|0,I,B),R(B,B),R(B,B),R(B,B),R(B,B),R(B,B),b(A,B,g+144|0),s=g+192|0}function PA(A,I){var g,C=0,B=0;for(s=g=s-144|0,R(B=g+96|0,I),R(C=g+48|0,B),R(C,C),b(C,I,C),b(B,B,C),R(B,B),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(C,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),C=1;R(g,g),100!=(0|(C=C+1|0)););b(C=g+48|0,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B=g+96|0,C,B),R(B,B),R(B,B),b(A,B,I),s=g+144|0}function qA(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S=0,N=0,G=0,M=0;s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(G=g+240|0,B),b(N=g+192|0,G,1584),M=-1,Q=i[g+240>>2]-1|0,i[g+240>>2]=Q,i[g+192>>2]=i[g+192>>2]+1,E=i[g+244>>2],a=i[g+248>>2],_=i[g+252>>2],c=i[g+256>>2],t=i[g+260>>2],r=i[g+264>>2],e=i[g+268>>2],y=i[g+272>>2],h=i[g+276>>2],R(S=g+144|0,N),b(S,S,N),R(A,S),b(A,A,N),b(A,A,G),PA(A,A),b(A,A,S),b(A,A,G),R(S=g+96|0,A),b(S,S,N),N=i[g+132>>2],i[g+84>>2]=N-h,S=i[g+128>>2],i[g+80>>2]=S-y,G=i[g+124>>2],i[g+76>>2]=G-e,D=i[g+120>>2],i[g+72>>2]=D-r,f=i[g+116>>2],i[g+68>>2]=f-t,p=i[g+112>>2],i[g+64>>2]=p-c,w=i[g+108>>2],i[g+60>>2]=w-_,n=i[g+104>>2],i[g+56>>2]=n-a,k=i[g+100>>2],i[g+52>>2]=k-E,F=i[g+96>>2],i[g+48>>2]=F-Q,QI(g,g+48|0);A:{if(!GI(g,32)){if(i[g+36>>2]=N+h,i[g+32>>2]=S+y,i[g+28>>2]=G+e,i[g+24>>2]=r+D,i[g+20>>2]=t+f,i[g+16>>2]=c+p,i[g+12>>2]=_+w,i[g+8>>2]=a+n,i[g+4>>2]=E+k,i[g>>2]=Q+F,QI(N=g+288|0,g),!GI(N,32))break A;b(A,A,1632)}QI(g+288|0,A),(1&C[g+288|0])==(o[I+31|0]>>>7|0)&&(i[A>>2]=0-i[A>>2],i[A+36>>2]=0-i[A+36>>2],i[A+32>>2]=0-i[A+32>>2],i[A+28>>2]=0-i[A+28>>2],i[A+24>>2]=0-i[A+24>>2],i[A+20>>2]=0-i[A+20>>2],i[A+16>>2]=0-i[A+16>>2],i[A+12>>2]=0-i[A+12>>2],i[A+8>>2]=0-i[A+8>>2],i[A+4>>2]=0-i[A+4>>2]),b(A+120|0,A,B),M=0}return s=g+320|0,M}function zA(A,I,g){var C,B,Q,o,E,_,c,t,r=0;s=C=s-128|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,bg(A+44|0,0,76),RA(A,I=a(I,960)+2992|0,(255&(1^(r=g-((g>>31&g)<<1)|0)))-1>>>31|0),RA(A,I+120|0,(255&(2^r))-1>>>31|0),RA(A,I+240|0,(255&(3^r))-1>>>31|0),RA(A,I+360|0,(255&(4^r))-1>>>31|0),RA(A,I+480|0,(255&(5^r))-1>>>31|0),RA(A,I+600|0,(255&(6^r))-1>>>31|0),RA(A,I+720|0,(255&(7^r))-1>>>31|0),RA(A,I+840|0,(255&(8^r))-1>>>31|0),I=i[A+76>>2],i[C+40>>2]=i[A+72>>2],i[C+44>>2]=I,r=i[4+(I=A- -64|0)>>2],i[C+32>>2]=i[I>>2],i[C+36>>2]=r,I=i[A+60>>2],i[C+24>>2]=i[A+56>>2],i[C+28>>2]=I,I=i[A+52>>2],i[C+16>>2]=i[A+48>>2],i[C+20>>2]=I,I=i[A+44>>2],i[C+8>>2]=i[A+40>>2],i[C+12>>2]=I,I=i[A+12>>2],i[C+56>>2]=i[A+8>>2],i[C+60>>2]=I,r=i[A+20>>2],i[(I=C- -64|0)>>2]=i[A+16>>2],i[I+4>>2]=r,I=i[A+28>>2],i[C+72>>2]=i[A+24>>2],i[C+76>>2]=I,I=i[A+36>>2],i[C+80>>2]=i[A+32>>2],i[C+84>>2]=I,I=i[A+4>>2],i[C+48>>2]=i[A>>2],i[C+52>>2]=I,I=i[A+84>>2],r=i[A+88>>2],B=i[A+92>>2],Q=i[A+96>>2],o=i[A+100>>2],E=i[A+104>>2],_=i[A+108>>2],c=i[A+112>>2],t=i[A+80>>2],i[C+124>>2]=0-i[A+116>>2],i[C+120>>2]=0-c,i[C+116>>2]=0-_,i[C+112>>2]=0-E,i[C+108>>2]=0-o,i[C+104>>2]=0-Q,i[C+100>>2]=0-B,i[C+96>>2]=0-r,i[C+92>>2]=0-I,i[C+88>>2]=0-t,RA(A,C+8|0,(128&g)>>>7|0),s=C+128|0}function jA(A){var I,g,C,B,Q,o,E,a,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;return s=I=s-320|0,R(c=I+240|0,A),R(t=I+192|0,A+40|0),R(_=I+144|0,A+80|0),A=i[I+240>>2],r=i[I+192>>2],e=i[I+244>>2],y=i[I+196>>2],h=i[I+248>>2],D=i[I+200>>2],f=i[I+252>>2],p=i[I+204>>2],w=i[I+256>>2],n=i[I+208>>2],k=i[I+260>>2],F=i[I+212>>2],S=i[I+264>>2],N=i[I+216>>2],G=i[I+268>>2],M=i[I+220>>2],K=i[I+272>>2],U=i[I+224>>2],i[I+84>>2]=i[I+228>>2]-i[I+276>>2],i[I+80>>2]=U-K,i[I+76>>2]=M-G,i[I+72>>2]=N-S,i[I+68>>2]=F-k,i[I+64>>2]=n-w,i[I+60>>2]=p-f,i[I+56>>2]=D-h,i[I+52>>2]=y-e,i[I+48>>2]=r-A,b(A=I+48|0,A,_),b(I,c,t),b(I,I,1584),R(I+96|0,_),_=i[I+48>>2],c=i[I+96>>2],t=i[I>>2],r=i[I+52>>2],e=i[I+100>>2],y=i[I+4>>2],h=i[I+56>>2],D=i[I+104>>2],f=i[I+8>>2],p=i[I+60>>2],w=i[I+108>>2],n=i[I+12>>2],k=i[I+64>>2],F=i[I+112>>2],S=i[I+16>>2],N=i[I+68>>2],G=i[I+116>>2],M=i[I+20>>2],K=i[I+72>>2],U=i[I+120>>2],g=i[I+24>>2],C=i[I+76>>2],B=i[I+124>>2],Q=i[I+28>>2],o=i[I+80>>2],E=i[I+128>>2],a=i[I+32>>2],i[I+84>>2]=i[I+84>>2]-(i[I+132>>2]+i[I+36>>2]|0),i[I+80>>2]=o-(E+a|0),i[I+76>>2]=C-(B+Q|0),i[I+72>>2]=K-(U+g|0),i[I+68>>2]=N-(G+M|0),i[I+64>>2]=k-(F+S|0),i[I+60>>2]=p-(w+n|0),i[I+56>>2]=h-(D+f|0),i[I+52>>2]=r-(e+y|0),i[I+48>>2]=_-(c+t|0),QI(_=I+288|0,A),A=GI(_,32),s=I+320|0,A}function XA(A,I,g,B,i){A|=0,I|=0,g|=0,B|=0;var E=0,_=0,c=0,t=0,e=0,y=0,s=0;A:{I:{g:{C:{B:{Q:{i:{if(1==(-7&(i|=0))&&(c=(E=(B>>>0)/3|0)<<2,(E=a(E,-3)+B|0)&&(c=2&i?2+((E>>>1|0)+c|0)|0:c+4|0),!(I>>>0<=c>>>0))){if(!(i>>>0>=4)){if(!B){i=0;break C}E=0,i=0;break i}if(!B){i=0;break C}for(E=0,i=0;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&45|_+252&_+65474>>>8&~s|~(_+32705)>>>8&95|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=45,_=32705,B=95;break Q}rC(),Q()}for(;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&43|_+252&_+65474>>>8&~s|~(_+16321)>>>8&47|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=43,_=16321,B=47}_=~((g=e<<6-E&63)+_)>>>8&B|(E=g+65510>>>8|0)&g+65,B=g+65484>>>8|0,C[A+i|0]=~(1+(16321^g))>>>8&t|_|g+252&g+65474>>>8&~B|B&g+71&~E,i=i+1|0}if(i>>>0>c>>>0)break g}if(i>>>0>>0)break I;c=i;break A}r(1104,1218,231,1503),Q()}bg(A+i|0,61,c-i|0)}return bg(A+c|0,0,(I>>>0>(g=c+1|0)>>>0?I:g)-c|0),0|A}function OA(A,I,g){var C,B,Q,E=0,_=0,c=0,t=0,r=0;s=C=s-16|0,B=i[A+20>>2],i[A+20>>2]=0,Q=i[A+4>>2],i[A+4>>2]=0,c=-26;A:{I:{g:{C:switch(g-1|0){case 1:if(gg(I,1182,9))break I;I=I+9|0;break g;case 0:break C;default:break A}if(gg(I,1173,8))break I;I=I+8|0}if(36!=o[0|I]|118!=o[I+1|0]||(E=61==o[I+2|0]),E&&!(((t=o[0|(g=I+3|0)])-58&255)>>>0<246)){for(r=E?g:I,I=0,E=t;;){if(_=g,I>>>0>429496729)break I;if((g=(255&E)-48|0)>>>0>~(I=a(I,10))>>>0)break I;if(I=I+g|0,!(((E=o[0|(g=_+1|0)])-58&255)>>>0>245))break}if(!(48==(0|t)&(0|_)!=(0|r)|(0|g)==(0|r))){if(19!=(0|I))break A;if(!(36!=(255&E)|109!=o[_+2|0]|61!=o[_+3|0])&&(g=lI(_+4|0,I=C+12|0))&&(i[A+44>>2]=i[C+12>>2],!(44!=o[0|g]|116!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(i[A+40>>2]=i[C+12>>2],!(44!=o[0|g]|112!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(E=i[C+12>>2],i[A+48>>2]=E,i[A+52>>2]=E,36==o[0|g]&&(i[C+12>>2]=B,!pA(_=i[A+16>>2],B,E=g=g+1|0,t=RI(g),0,I,g=C+8|0,3)&&(i[A+20>>2]=i[C+12>>2],E=i[C+8>>2],36==o[0|E]&&(i[C+12>>2]=Q,E=E+1|0,!pA(i[A>>2],Q,E,RI(E),0,I,g,3)))))))){if(i[A+4>>2]=i[C+12>>2],I=i[C+8>>2],c=nI(A))break A;c=o[0|I]?-32:0;break A}}}}c=-32}return s=C+16|0,c}function WA(A,I,g,B){var Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(g|B)A:for(t=A+224|0,_=A+96|0,i=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24;;){if(Q=i+_|0,!B&g>>>0<=(E=256-i|0)>>>0){Ng(Q,I,g),I=g+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24;break A}if(Ng(Q,I,E),Q=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)+E|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,c=i=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,i=(a=128+(Q=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?i+1|0:i,C[A+64|0]=a,C[A+65|0]=a>>>8,C[A+66|0]=a>>>16,C[A+67|0]=a>>>24,C[A+68|0]=i,C[A+69|0]=i>>>8,C[A+70|0]=i>>>16,C[A+71|0]=i>>>24,i=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,i=(c=Q=-1==(0|c)&Q>>>0>4294967167)>>>0>(Q=Q+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?i+1|0:i,C[A+72|0]=Q,C[A+73|0]=Q>>>8,C[A+74|0]=Q>>>16,C[A+75|0]=Q>>>24,C[A+76|0]=i,C[A+77|0]=i>>>8,C[A+78|0]=i>>>16,C[A+79|0]=i>>>24,p(A,_),Ng(_,t,128),Q=i=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,I=I+E|0,!((B=B-(g>>>0>>0)|0)|(g=g-E|0)))break}return 0}function VA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0;for(g=i[A+60>>2],h=i[A+56>>2],s=i[A+52>>2],e=i[A+48>>2],I=i[A+44>>2],C=i[A+40>>2],D=i[A+36>>2],r=i[A+32>>2],B=i[A+28>>2],Q=i[A+24>>2],o=i[A+20>>2],E=i[A+16>>2],a=i[A+12>>2],_=i[A+8>>2],c=i[A+4>>2],t=i[A>>2];y=Lg(o+c|0,7)^D,f=Lg(y+o|0,9)^s,E=Lg(t+e|0,7)^E,p=Lg(E+t|0,9)^r,w=Lg(p+E|0,13)^e,a=Lg(I+g|0,7)^a,B=Lg(a+g|0,9)^B,r=Lg(B+a|0,13)^I,g=Lg(B+r|0,18)^g,I=Lg(C+Q|0,7)^h,e=w^Lg(g+I|0,7),s=f^Lg(e+g|0,9),h=Lg(e+s|0,13)^I,g=Lg(s+h|0,18)^g,_=Lg(I+C|0,9)^_,Q=Lg(_+I|0,13)^Q,C=Lg(Q+_|0,18)^C,I=Lg(C+y|0,7)^r,r=Lg(I+C|0,9)^p,D=Lg(I+r|0,13)^y,C=Lg(r+D|0,18)^C,c=Lg(y+f|0,13)^c,o=Lg(c+f|0,18)^o,Q=Lg(o+E|0,7)^Q,B=Lg(Q+o|0,9)^B,E=Lg(B+Q|0,13)^E,o=Lg(E+B|0,18)^o,t=Lg(p+w|0,18)^t,c=Lg(t+a|0,7)^c,_=Lg(c+t|0,9)^_,a=Lg(_+c|0,13)^a,t=Lg(a+_|0,18)^t,y=n>>>0<6,n=n+2|0,y;);i[A>>2]=i[A>>2]+t,i[A+4>>2]=i[A+4>>2]+c,i[A+8>>2]=i[A+8>>2]+_,i[A+12>>2]=i[A+12>>2]+a,i[A+16>>2]=i[A+16>>2]+E,i[A+20>>2]=i[A+20>>2]+o,i[A+24>>2]=i[A+24>>2]+Q,i[A+28>>2]=i[A+28>>2]+B,i[A+32>>2]=i[A+32>>2]+r,i[A+36>>2]=i[A+36>>2]+D,i[A+40>>2]=i[A+40>>2]+C,i[A+44>>2]=i[A+44>>2]+I,i[A+48>>2]=i[A+48>>2]+e,i[A+52>>2]=i[A+52>>2]+s,i[A+56>>2]=i[A+56>>2]+h,i[A+60>>2]=i[A+60>>2]+g}function ZA(A,I,g,B){var Q,i=0;return s=Q=s-320|0,i=-1,NI(g)&&(KI(g)||MA(Q,g)||gA(Q)&&(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],g=o[I+31|0],B&&(C[0|A]=248&o[0|A],g|=64),C[A+31|0]=127&g,u(g=Q+160|0,A,Q),tg(A,g),(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(i=GI(I,32)?-1:0))),s=Q+320|0,i}function TA(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0;if(s=E=s-48|0,Q&&ag(Q,102),!(36!=o[0|B]|55!=o[B+1|0]|36!=o[B+2|0])&&(r=uI(o[B+3|0]))&&(a=PI(E+12|0,B+4|0))&&(t=PI(E+8|0,a))){for(_=RI(t)+1|0;a=0,_&&36!=o[0|(a=t+(_=_-1|0)|0)];);if(c=a-t|0,a||(c=RI(t)),!((c=45+(_=(a=c)+(t-B|0)|0)|0)>>>0>102|a>>>0>c>>>0||(c=A,y=I,h=g,A=31&(r=r-1024|0),(63&r)>>>0>=32?(I=1<>>32-A,_A(c,y,h,t,a,g,I,i[E+12>>2],i[E+8>>2],E+16|0,32)))){for(a=Ng(Q,B,_),C[0|(A=a+_|0)]=36,e=(c=a+102|0)-(Q=A+1|0)|0,g=0;;){A:if((I=g)>>>0>31)B=Q;else if(A=Q,g=(_=I+1|0)+(y=(g=31-I|0)>>>0>=2?2:g)|0,B=0,t=0,Q=o[(r=E+16|0)+I|0],y&&(Q=o[_+r|0]<<8|Q,(0|(I=I+2|0))!=(0|g)&&(t=1,Q=o[I+r|0]<<16|Q)),e&&(C[0|A]=o[1024+(63&Q)|0],1!=(0|e))){if(C[A+1|0]=o[1024+(Q>>>6&63)|0],y=A+e|0,I=A+2|0,(0|g)!=(0|_)){if(2==(0|e))break A;if(C[A+2|0]=o[1024+(Q>>>12&63)|0],I=A+3|0,t){if(3==(0|e))break A;C[A+3|0]=o[1024+(Q>>>18|0)|0],I=A+4|0}}if(e=y-(Q=I)|0,Q)continue}break}XC(E+16|0,32),e=0,!B|B>>>0>=c>>>0||(C[0|B]=0,e=a)}}return s=E+48|0,e}function $A(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0;C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],s=i[(B=I- -64|0)>>2],h=i[I+28>>2],D=i[I+68>>2],f=i[I+32>>2],p=i[I+72>>2],w=i[I+36>>2],g=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=w+g,i[A+32>>2]=f+p,i[A+28>>2]=h+D,i[A+24>>2]=y+s,i[A+20>>2]=r+e,i[A+16>>2]=c+t,i[A+12>>2]=a+_,i[A+8>>2]=o+E,i[A+4>>2]=C+Q,C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],B=i[B>>2],s=i[I+28>>2],h=i[I+68>>2],D=i[I+32>>2],f=i[I+72>>2],p=i[I>>2],w=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=f-D,i[A+68>>2]=h-s,i[A- -64>>2]=B-y,i[A+60>>2]=e-r,i[A+56>>2]=t-c,i[A+52>>2]=_-a,i[A+48>>2]=E-o,i[A+44>>2]=Q-C,i[A+40>>2]=w-p,C=i[I+84>>2],i[A+80>>2]=i[I+80>>2],i[A+84>>2]=C,C=i[I+92>>2],i[A+88>>2]=i[I+88>>2],i[A+92>>2]=C,C=i[I+100>>2],i[A+96>>2]=i[I+96>>2],i[A+100>>2]=C,C=i[I+108>>2],i[A+104>>2]=i[I+104>>2],i[A+108>>2]=C,C=i[I+116>>2],i[A+112>>2]=i[I+112>>2],i[A+116>>2]=C,b(A+120|0,I+120|0,1680)}function AI(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0;h=i[I+12>>2],D=i[I+8>>2],f=i[I+4>>2],C=s+-64&-64,I=i[I>>2],i[C>>2]=i[35744+((255&I)<<2)>>2],i[C+4>>2]=i[35744+(f>>>6&1020)>>2],i[C+8>>2]=i[35744+(D>>>14&1020)>>2],i[C+12>>2]=i[35744+(h>>>22&1020)>>2],i[C+16>>2]=i[35744+((255&f)<<2)>>2],i[C+20>>2]=i[35744+(D>>>6&1020)>>2],i[C+24>>2]=i[35744+(h>>>14&1020)>>2],i[C+28>>2]=i[35744+(I>>>22&1020)>>2],i[C+32>>2]=i[35744+((255&D)<<2)>>2],i[C+36>>2]=i[35744+(h>>>6&1020)>>2],i[C+40>>2]=i[35744+(I>>>14&1020)>>2],i[C+44>>2]=i[35744+(f>>>22&1020)>>2],i[C+48>>2]=i[35744+((255&h)<<2)>>2],i[C+52>>2]=i[35744+(I>>>6&1020)>>2],i[C+56>>2]=i[35744+(f>>>14&1020)>>2],i[C+60>>2]=i[35744+(D>>>22&1020)>>2],I=i[C+12>>2],h=i[C>>2],D=i[C+4>>2],f=i[C+8>>2],B=i[C+28>>2],Q=i[C+16>>2],o=i[C+20>>2],E=i[C+24>>2],a=i[C+44>>2],_=i[C+32>>2],c=i[C+36>>2],t=i[C+40>>2],r=i[g>>2],e=i[g+4>>2],y=i[g+8>>2],p=A,w=i[g+12>>2]^i[C+48>>2]^Lg(i[C+52>>2],8)^Lg(i[C+56>>2],16)^Lg(i[C+60>>2],24),i[p+12>>2]=w,p=A,w=Lg(c,8)^_^Lg(t,16)^Lg(a,24)^y,i[p+8>>2]=w,p=A,w=Lg(o,8)^Q^Lg(E,16)^Lg(B,24)^e,i[p+4>>2]=w,p=A,w=Lg(D,8)^h^Lg(f,16)^Lg(I,24)^r,i[p>>2]=w}function II(A,I,g){var B,Q=0;return s=B=s-160|0,C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],Q=o[I+31|0],g&&(C[0|A]=248&o[0|A],Q|=64),C[A+31|0]=127&Q,nA(B,A),tg(A,B),g=-1,(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(g=GI(I,32)?-1:0),s=B+160|0,g}function gI(A,I){var g,B,Q,o,E,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;(_=i[A+56>>2])|(c=i[A+60>>2])&&(C[(r=A- -64|0)+_|0]=1,!((f=_+1|0)?c:c+1|0)&f>>>0<=15&&bg(65+(A+_|0)|0,0,15-_|0),C[A+80|0]=1,rA(A,r,16,0)),f=i[A+52>>2],h=i[A+48>>2],r=i[A+44>>2],_=i[A+24>>2],e=i[A+28>>2]+(_>>>26|0)|0,t=i[A+32>>2]+(e>>>26|0)|0,g=i[A+36>>2]+(t>>>26|0)|0,c=(s=(_=(_=(67108863&_)+((y=i[A+20>>2]+a(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(E=(67108863&g)+((o=(B=67108863&t)+((Q=(D=67108863&e)+((y=_+((c=5+(s=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|y&(t=67108863&(y=(t>>>31|0)-1|0)))<<26|c&t|e&s)+i[A+40>>2]|0,C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,s=c>>>0>>0,c=0,c=(_=(D=e&D|t&Q)<<20|_>>>6)>>>0>(_=_+r|0)>>>0?1:c,c=(r=_)>>>0>(_=_+s|0)>>>0?c+1|0:c,C[I+4|0]=_,C[I+5|0]=_>>>8,C[I+6|0]=_>>>16,C[I+7|0]=_>>>24,_=0,r=(r=(t=e&B|t&o)<<14|D>>>12)>>>0>(h=r+h|0)>>>0?1:_,_=h,h=c,_=_+c|0,c=r,c=_>>>0>>0?c+1|0:c,C[I+8|0]=_,C[I+9|0]=_>>>8,C[I+10|0]=_>>>16,C[I+11|0]=_>>>24,c=(_=(_=(y&E|e&g)<<8|t>>>18)+f|0)+c|0,C[I+12|0]=c,C[I+13|0]=c>>>8,C[I+14|0]=c>>>16,C[I+15|0]=c>>>24,XC(A,88)}function CI(A,I,g){A|=0,I|=0,g|=0;var B,Q=0;return s=B=s-16|0,C[B+15|0]=0,Q=-1,0|pB[i[8930]](A,I,g)||(C[B+15|0]=o[0|A]|o[B+15|0],C[B+15|0]=o[A+1|0]|o[B+15|0],C[B+15|0]=o[A+2|0]|o[B+15|0],C[B+15|0]=o[A+3|0]|o[B+15|0],C[B+15|0]=o[A+4|0]|o[B+15|0],C[B+15|0]=o[A+5|0]|o[B+15|0],C[B+15|0]=o[A+6|0]|o[B+15|0],C[B+15|0]=o[A+7|0]|o[B+15|0],C[B+15|0]=o[A+8|0]|o[B+15|0],C[B+15|0]=o[A+9|0]|o[B+15|0],C[B+15|0]=o[A+10|0]|o[B+15|0],C[B+15|0]=o[A+11|0]|o[B+15|0],C[B+15|0]=o[A+12|0]|o[B+15|0],C[B+15|0]=o[A+13|0]|o[B+15|0],C[B+15|0]=o[A+14|0]|o[B+15|0],C[B+15|0]=o[A+15|0]|o[B+15|0],C[B+15|0]=o[A+16|0]|o[B+15|0],C[B+15|0]=o[A+17|0]|o[B+15|0],C[B+15|0]=o[A+18|0]|o[B+15|0],C[B+15|0]=o[A+19|0]|o[B+15|0],C[B+15|0]=o[A+20|0]|o[B+15|0],C[B+15|0]=o[A+21|0]|o[B+15|0],C[B+15|0]=o[A+22|0]|o[B+15|0],C[B+15|0]=o[A+23|0]|o[B+15|0],C[B+15|0]=o[A+24|0]|o[B+15|0],C[B+15|0]=o[A+25|0]|o[B+15|0],C[B+15|0]=o[A+26|0]|o[B+15|0],C[B+15|0]=o[A+27|0]|o[B+15|0],C[B+15|0]=o[A+28|0]|o[B+15|0],C[B+15|0]=o[A+29|0]|o[B+15|0],C[B+15|0]=o[A+30|0]|o[B+15|0],C[B+15|0]=o[A+31|0]|o[B+15|0],Q=(o[B+15|0]<<23)-8388608>>31),s=B+16|0,0|Q}function BI(A,I,g,C,B){var Q=0,o=0,E=0,a=0,_=0,c=0,t=0;A:{if(1==(0|C)|C>>>0>1)i[9404]=22;else{s=C=s-128|0,i[C- -64>>2]=0,i[C+56>>2]=0,i[C+60>>2]=0,i[C+48>>2]=0,i[C+52>>2]=0,i[C+40>>2]=0,i[C+44>>2]=0,i[C+32>>2]=0,i[C+36>>2]=0,i[C+24>>2]=0,i[C+28>>2]=0,i[C+16>>2]=0,i[C+20>>2]=0,Q=RI(A),i[C+28>>2]=Q,i[C+44>>2]=Q,i[C+12>>2]=Q,o=K(Q),i[C+40>>2]=o,E=K(Q),i[C+24>>2]=E,a=K(Q),i[C+8>>2]=a;I:if(!a|!o|!E||!(Q=K(Q)))BA(o),BA(E),BA(a),A=-22;else{if(A=OA(C+8|0,A,B)){BA(i[C+40>>2]),BA(i[C+24>>2]),BA(i[C+8>>2]),BA(Q);break I}a=i[C+28>>2],_=i[C+24>>2],A=i[C+60>>2],c=i[C+52>>2],t=i[C+48>>2],ag(Q,o=i[C+12>>2]),(E=K(o))?(i[C+100>>2]=0,i[C+104>>2]=0,i[C+92>>2]=0,i[C+96>>2]=0,i[C+88>>2]=a,i[C+84>>2]=_,i[C+80>>2]=g,i[C+76>>2]=I,i[C+72>>2]=o,i[C+68>>2]=E,i[C+124>>2]=0,i[C+120>>2]=A,i[C+116>>2]=A,i[C+112>>2]=c,i[C+108>>2]=t,(A=q(C+68|0,B))||Ng(Q,E,o),XC(E,o),BA(E)):A=-22,BA(i[C+40>>2]),BA(i[C+24>>2]),A||(A=MI(Q,i[C+8>>2],i[C+12>>2])?-35:0),BA(Q),BA(i[C+8>>2])}if(s=C+128|0,I=A,!A)break A;-35==(0|A)&&(i[9404]=28)}I=-1}return I}function QI(A,I){var g,B,Q,o,E,_,c,t=0,r=0;B=i[I+32>>2],Q=i[I+28>>2],o=i[I+24>>2],E=i[I+20>>2],_=i[I+16>>2],c=i[I+12>>2],t=i[I+4>>2],r=i[I>>2],g=i[I+36>>2],I=i[I+8>>2],r=a((B+(Q+(o+(E+(_+(c+((t+(r+(a(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+r|0,C[0|A]=r,C[A+2|0]=r>>>16,C[A+1|0]=r>>>8,t=t+(r>>26)|0,C[A+5|0]=t>>>14,C[A+4|0]=t>>>6,C[A+3|0]=r>>>24&3|t<<2,I=I+(t>>25)|0,C[A+8|0]=I>>>13,C[A+7|0]=I>>>5,C[A+6|0]=I<<3|(29360128&t)>>>22,r=(I>>26)+c|0,C[A+11|0]=r>>>11,C[A+10|0]=r>>>3,C[A+9|0]=r<<5|(65011712&I)>>>21,t=(r>>25)+_|0,C[A+15|0]=t>>>18,C[A+14|0]=t>>>10,C[A+13|0]=t>>>2,I=(t>>26)+E|0,C[A+16|0]=I,C[A+12|0]=t<<6|(33030144&r)>>>19,C[A+18|0]=I>>>16,C[A+17|0]=I>>>8,t=(I>>25)+o|0,C[A+21|0]=t>>>15,C[A+20|0]=t>>>7,C[A+19|0]=I>>>24&1|t<<1,I=(t>>26)+Q|0,C[A+24|0]=I>>>13,C[A+23|0]=I>>>5,C[A+22|0]=I<<3|(58720256&t)>>>23,t=(I>>25)+B|0,C[A+27|0]=t>>>12,C[A+26|0]=t>>>4,C[A+25|0]=t<<4|(31457280&I)>>>21,I=g+(t>>26)|0,C[A+30|0]=I>>>10,C[A+29|0]=I>>>2,C[A+31|0]=(33292288&I)>>>18,C[A+28|0]=I<<6|(66060288&t)>>>20}function iI(A,I,g){A|=0,I|=0;var B,Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(s=B=s-192|0,(g|=0)>>>0>=129&&(SI(A),SA(A,I,g,0),j(A,B),g=64,I=B),SI(A),bg(B- -64|0,54,128),g){if(g>>>0>=4)for(t=252&g;C[0|(Q=(E=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=E)+(E=3|i)|0)]=o[0|Q]^o[I+E|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(_=3&g)for(;C[0|(E=(B- -64|0)+i|0)]=o[0|E]^o[I+i|0],i=i+1|0,(0|_)!=(0|(c=c+1|0)););}if(SA(A,i=B- -64|0,128,0),SI(E=A+208|0),bg(i,92,128),g){if(c=0,i=0,g>>>0>=4)for(t=252&g,_=0;C[0|(Q=(A=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=A)+(A=3|i)|0)]=o[0|Q]^o[A+I|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(A=3&g)for(;C[0|(g=(B- -64|0)+i|0)]=o[0|g]^o[I+i|0],i=i+1|0,(0|A)!=(0|(c=c+1|0)););}return SA(E,A=B- -64|0,128,0),XC(A,128),XC(B,64),s=B+192|0,0}function oI(A,I){var g;return A|=0,I|=0,i[12+(g=s-16|0)>>2]=A,i[g+8>>2]=I,i[g+4>>2]=0,i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]]^o[i[g+8>>2]],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+1|0]^o[i[g+8>>2]+1|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+2|0]^o[i[g+8>>2]+2|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+3|0]^o[i[g+8>>2]+3|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+4|0]^o[i[g+8>>2]+4|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+5|0]^o[i[g+8>>2]+5|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+6|0]^o[i[g+8>>2]+6|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+7|0]^o[i[g+8>>2]+7|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+8|0]^o[i[g+8>>2]+8|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+9|0]^o[i[g+8>>2]+9|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+10|0]^o[i[g+8>>2]+10|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+11|0]^o[i[g+8>>2]+11|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+12|0]^o[i[g+8>>2]+12|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+13|0]^o[i[g+8>>2]+13|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+14|0]^o[i[g+8>>2]+14|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+15|0]^o[i[g+8>>2]+15|0],(i[g+4>>2]-1>>>8&1)-1|0}function EI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,yA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,ug(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&mg(A+t|0,g+t|0,C-t|0,B-((C>>>0>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function aI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,wA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,aC(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&oC(A+t|0,g+t|0,C-t|0,B-((C>>>0>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function _I(A,I,g,B,Q){var o;return A|=0,I|=0,g|=0,B|=0,s=o=s-480|0,iI(o,Q|=0,32),dC(o,I,g,B),wg(o,o+416|0),I=i[o+444>>2],g=i[o+440>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+436>>2],g=i[o+432>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+428>>2],g=i[o+424>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+420>>2],g=i[o+416>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=o+480|0,0}function cI(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s+-64|0,FI(B,g|=0,32,0),g=i[B+28>>2],Q=i[B+24>>2],C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,C[I+28|0]=g,C[I+29|0]=g>>>8,C[I+30|0]=g>>>16,C[I+31|0]=g>>>24,g=i[B+20>>2],Q=i[B+16>>2],C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,C[I+20|0]=g,C[I+21|0]=g>>>8,C[I+22|0]=g>>>16,C[I+23|0]=g>>>24,g=i[B+12>>2],Q=i[B+8>>2],C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,C[I+12|0]=g,C[I+13|0]=g>>>8,C[I+14|0]=g>>>16,C[I+15|0]=g>>>24,g=i[B+4>>2],Q=i[B>>2],C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,C[I+4|0]=g,C[I+5|0]=g>>>8,C[I+6|0]=g>>>16,C[I+7|0]=g>>>24,XC(B,64),A=pC(A,I),s=B- -64|0,0|A}function tI(A,I){var g=0,C=0,B=0,Q=0,o=0,E=0;return I>>>0>4294967168?48:(I>>>0>=4294967168?(i[9404]=48,g=0):(g=0,(I=K(76+(Q=I>>>0<11?16:I+11&-8)|0))&&(g=I-8|0,63&I?(B=(-8&(E=i[(o=I-4|0)>>2]))-(C=(I=((I=(I+63&-64)-8|0)-g>>>0<=15?64:0)+I|0)-g|0)|0,3&E?(i[I+4>>2]=B|1&i[I+4>>2]|2,i[4+(B=I+B|0)>>2]=1|i[B+4>>2],i[o>>2]=C|1&i[o>>2]|2,i[4+(B=g+C|0)>>2]=1|i[B+4>>2],oA(g,C)):(g=i[g>>2],i[I+4>>2]=B,i[I>>2]=g+C)):I=g,3&(g=i[I+4>>2])&&((C=-8&g)>>>0<=Q+16>>>0||(i[I+4>>2]=Q|1&g|2,g=I+Q|0,Q=C-Q|0,i[g+4>>2]=3|Q,i[4+(C=I+C|0)>>2]=1|i[C+4>>2],oA(g,Q))),g=I+8|0)),g?(i[A>>2]=g,0):48)}function rI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!((!a&E>>>0>=3|!!(0|a))&_>>>0>8191)|(0|C)==(0|t)))return 1==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,1))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function eI(A,I,g,C,B,Q,i){var o,E,a=0,_=0,c=0;s=o=s-96|0,wA(o,Q,i,0),DC(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,a=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,a=Q?0:B;if(Q=a,c=Ng(o- -64|0,I,g),aC(i=o+32|0,i,_=g+32|0,Q=_>>>0<32?Q+1|0:Q,E,o),A=Ng(A,c,g),XC(i,64),Q=0,!B&C>>>0<33)break I;oC(A+g|0,I+g|0,C-g|0,B-(a+(g>>>0>C>>>0)|0)|0,E,1,0,o);break I}aC(A=o+32|0,A,32,0,E,o),XC(A,64)}XC(o,32)}return s=o+96|0,Q}function yI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!(!!(E|a)&_>>>0>8191)|(0|C)==(0|t)))return 2==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,2))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function sI(A,I,g,C,B,Q,i){var o,E,a=0,_=0;s=o=s-96|0,yA(o,Q,i,0),Xg(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,i=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,i=Q?0:B;if(a=g,_=Ng(o- -64|0,I,g),ug(g=o+32|0,g,Q=a+32|0,Q>>>0<32?i+1|0:i,E,o),g=Ng(A,_,a),Q=0,!B&C>>>0<33)break I;mg(g+a|0,I+a|0,C-a|0,B-(i+(C>>>0>>0)|0)|0,E,1,0,o);break I}ug(A=o+32|0,A,32,0,E,o)}XC(o,32)}return s=o+96|0,Q}function hI(A,I,g,C,B,Q,E,a,_,c){var t,r;return s=t=s-400|0,i[t+4>>2]=0,yA(r=t+16|0,_,c,0),c=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[t+8>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[t+12>>2]=c,jg(c=t+80|0,64,0,t+4|0,r),wC(_=t+144|0,c),XC(c,64),SC(_,Q,E,a),SC(_,35680,0-E&15,0),SC(_,I,g,C),SC(_,35680,0-g&15,0),i[t+72>>2]=E,i[t+76>>2]=a,SC(_,Q=t+72|0,8,0),i[t+72>>2]=g,i[t+76>>2]=C,SC(_,Q,8,0),nC(_,Q=t+48|0),XC(_,256),_=oI(Q,B),XC(Q,16),A&&(_?(bg(A,0,g),_=-1):(Og(A,I,g,C,t+4|0,t+16|0),_=0)),XC(t+16|0,32),s=t+400|0,_}function DI(A,I,g,B,Q,o){var E,a;if(s=E=s-496|0,mA(a=E+288|0,A,I),mC(a,g,B,0),o)for(A=0,I=0;g=(I=I+1|0)<<24|(65280&I)<<8|I>>>8&65280|I>>>24,C[E+76|0]=g,C[E+77|0]=g>>>8,C[E+78|0]=g>>>16,C[E+79|0]=g>>>24,Ng(g=E+80|0,E+288|0,208),mC(g,E+76|0,4,0),Sg(g,E+32|0),g=i[E+60>>2],i[E+24>>2]=i[E+56>>2],i[E+28>>2]=g,g=i[E+52>>2],i[E+16>>2]=i[E+48>>2],i[E+20>>2]=g,g=i[E+44>>2],i[E+8>>2]=i[E+40>>2],i[E+12>>2]=g,g=i[E+36>>2],i[E>>2]=i[E+32>>2],i[E+4>>2]=g,Ng(g=A+Q|0,E,(A=o-A|0)>>>0>=32?32:A),o>>>0>(A=I<<5)>>>0;);XC(E+288|0,208),s=E+496|0}function fI(A,I,g,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<32)&!B||(Ug(o,32,0,Q,i),fC(I+16|0,I+32|0,g-32|0,B-E|0,o)||(Gg(A,I,g,B,Q,i),C[A+24|0]=0,C[A+25|0]=0,C[A+26|0]=0,C[A+27|0]=0,C[A+28|0]=0,C[A+29|0]=0,C[A+30|0]=0,C[A+31|0]=0,C[A+16|0]=0,C[A+17|0]=0,C[A+18|0]=0,C[A+19|0]=0,C[A+20|0]=0,C[A+21|0]=0,C[A+22|0]=0,C[A+23|0]=0,C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,a=0)),s=o+32|0,a}function pI(A,I,g,C,B,Q,E,a,_,c,t){var r,e,y;return s=r=s-384|0,i[r+4>>2]=0,yA(e=r+16|0,c,t,0),t=o[c+20|0]|o[c+21|0]<<8|o[c+22|0]<<16|o[c+23|0]<<24,i[r+8>>2]=o[c+16|0]|o[c+17|0]<<8|o[c+18|0]<<16|o[c+19|0]<<24,i[r+12>>2]=t,jg(t=r- -64|0,64,0,y=r+4|0,e),wC(c=r+128|0,t),XC(t,64),SC(c,E,a,_),SC(c,35680,0-a&15,0),Og(A,C,B,Q,y,e),SC(c,A,B,Q),SC(c,35680,0-B&15,0),i[r+56>>2]=a,i[r+60>>2]=_,SC(c,A=r+56|0,8,0),i[r+56>>2]=B,i[r+60>>2]=Q,SC(c,A,8,0),nC(c,I),XC(c,256),g&&(i[g>>2]=16,i[g+4>>2]=0),XC(r+16|0,32),s=r+384|0,0}function wI(A,I,g,C,B){var Q,E,a=0;return s=Q=s+-64|0,!g&(E=RI(A))>>>0<128?(i[Q+60>>2]=0,i[Q+52>>2]=0,i[Q+56>>2]=0,i[Q+44>>2]=0,i[Q+48>>2]=0,g=0,E&&(g=E,(1|E)>>>0<65536||(g=E)),!(a=K(g))|!(3&o[a-4|0])||bg(a,0,g),a?(i[Q+36>>2]=0,i[Q+40>>2]=0,i[Q+12>>2]=a,i[Q+20>>2]=a,i[Q+24>>2]=E,i[Q+4>>2]=a,i[Q+16>>2]=E,i[Q+28>>2]=0,i[Q+32>>2]=0,i[Q+8>>2]=E,OA(Q+4|0,A,B)?(i[9404]=28,A=-1):A=i[Q+44>>2]!=(0|I)|i[Q+48>>2]!=(C>>>10|0),BA(a)):A=-1):(i[9404]=28,A=-1),s=Q- -64|0,A}function nI(A){var I,g=0,C=0;if(!A)return-25;if(!i[A>>2])return-1;if(E[A+4>>2]<16)return-2;if(!(i[A+8>>2]|!i[A+12>>2]))return-18;if(g=i[A+20>>2],!i[A+16>>2])return g?-19:-6;if(g>>>0<8)return-6;if(!(i[A+24>>2]|!i[A+28>>2]))return-20;if(!(i[A+32>>2]|!i[A+36>>2]))return-21;if(!(g=i[A+48>>2]))return-16;if(g>>>0>16777215)return-17;if(C=-14,!((I=i[A+44>>2])>>>0<8)){if(I>>>0>2097152)return-15;if(!(g<<3>>>0>I>>>0)){if(!i[A+40>>2])return-12;if(!(A=i[A+52>>2]))return-28;C=A>>>0>16777215?-29:0}}return C}function kI(A,I){var g,C=0,B=0;g=I;A:{I:{g:{if(I&=255){if(3&A)for(;;){if(!(C=o[0|A])|(0|I)==(0|C))break A;if(!(3&(A=A+1|0)))break}if(-2139062144!=(-2139062144&((C=i[A>>2])|16843008-C)))break g;for(B=a(I,16843009);;){if(-2139062144!=(-2139062144&(16843008-(I=C^B)|I)))break g;if(C=i[A+4>>2],A=I=A+4|0,-2139062144!=(-2139062144&(16843008-C|C)))break}break I}A=RI(A)+A|0;break A}I=A}for(;;){if(!(C=o[0|(A=I)]))break A;if(I=A+1|0,(0|C)==(255&g))break}}return o[0|A]==(255&g)?A:0}function FI(A,I,g,C){var B,Q=0;return s=B=s-208|0,i[B+72>>2]=0,i[B+76>>2]=0,Q=i[8591],i[B+8>>2]=i[8590],i[B+12>>2]=Q,Q=i[8593],i[B+16>>2]=i[8592],i[B+20>>2]=Q,Q=i[8595],i[B+24>>2]=i[8594],i[B+28>>2]=Q,Q=i[8597],i[B+32>>2]=i[8596],i[B+36>>2]=Q,Q=i[8599],i[B+40>>2]=i[8598],i[B+44>>2]=Q,Q=i[8601],i[B+48>>2]=i[8600],i[B+52>>2]=Q,Q=i[8603],i[B+56>>2]=i[8602],i[B+60>>2]=Q,i[B+64>>2]=0,i[B+68>>2]=0,Q=i[8589],i[B>>2]=i[8588],i[B+4>>2]=Q,SA(B,I,g,C),j(B,A),s=B+208|0,0}function SI(A){var I=0;return i[64+(A|=0)>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,I=i[8589],i[A>>2]=i[8588],i[A+4>>2]=I,I=i[8591],i[A+8>>2]=i[8590],i[A+12>>2]=I,I=i[8593],i[A+16>>2]=i[8592],i[A+20>>2]=I,I=i[8595],i[A+24>>2]=i[8594],i[A+28>>2]=I,I=i[8597],i[A+32>>2]=i[8596],i[A+36>>2]=I,I=i[8599],i[A+40>>2]=i[8598],i[A+44>>2]=I,I=i[8601],i[A+48>>2]=i[8600],i[A+52>>2]=I,I=i[8603],i[A+56>>2]=i[8602],i[A+60>>2]=I,0}function NI(A){return~((127&~o[A+31|0]|o[A+1|0]&o[A+2|0]&o[A+3|0]&o[A+4|0]&o[A+5|0]&o[A+6|0]&o[A+7|0]&o[A+8|0]&o[A+9|0]&o[A+10|0]&o[A+11|0]&o[A+12|0]&o[A+13|0]&o[A+14|0]&o[A+15|0]&o[A+16|0]&o[A+17|0]&o[A+18|0]&o[A+19|0]&o[A+20|0]&o[A+21|0]&o[A+22|0]&o[A+23|0]&o[A+24|0]&o[A+25|0]&o[A+26|0]&o[A+27|0]&o[A+28|0]&o[A+30|0]&o[A+29|0]^255)-1&236-o[0|A])>>>8&1}function GI(A,I){var g,B=0,Q=0,i=0,E=0;if(C[15+(g=s-16|0)|0]=0,I){if(I>>>0>=4)for(E=-4&I;B=A+Q|0,C[g+15|0]=o[0|B]|o[g+15|0],C[g+15|0]=o[B+1|0]|o[g+15|0],C[g+15|0]=o[B+2|0]|o[g+15|0],C[g+15|0]=o[B+3|0]|o[g+15|0],Q=Q+4|0,(0|E)!=(0|(i=i+4|0)););if(B=3&I)for(I=0;C[g+15|0]=o[A+Q|0]|o[g+15|0],Q=Q+1|0,(0|B)!=(0|(I=I+1|0)););}return o[g+15|0]-1>>>8&1}function MI(A,I,g){var B,Q=0,E=0;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,A=0,C[B+7|0]=0,g){if(I=1&g,1!=(0|g))for(E=-2&g,g=0;C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0],Q=1|A,C[B+7|0]=o[B+7|0]|o[Q+i[B+12>>2]|0]^o[i[B+8>>2]+Q|0],A=A+2|0,(0|E)!=(0|(g=g+2|0)););I&&(C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0])}return(o[B+7|0]-1>>>8&1)-1|0}function KI(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0,_=0,c=0;B=(g=o[A+C|0])^o[0|(I=C+2688|0)]|B,Q=g^o[I+192|0]|Q,i=g^o[I+160|0]|i,E=g^o[I+128|0]|E,a=g^o[I+96|0]|a,_=g^o[I- -64|0]|_,c=g^o[I+32|0]|c,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&o[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|E))-1|(255&(122^A|a))-1|(255&(5^A|_))-1|(255&(A|c))-1|(255&(A|B))-1)>>>8&1}function UI(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<>>0>=32?(C=Q<>>32-B|C<>>0>=32?(C=-1<>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<>>C),f=g|Q,A|i}function bI(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var o=0,E=0;A:I:{g:{if(!(!(B|=0)&(C|=0)>>>0<64||(E=1+(B=B-1|0)|0,o=B,!(C=(B=C+-64|0)>>>0<4294967232?E:o)&B>>>0>4294967231|C))){if(!U(o=g,g=g- -64|0,B,C,Q|=0,0))break g;A&&bg(A,0,B)}if(C=-1,!I)break I;i[I>>2]=0,i[I+4>>2]=0,C=-1;break A}I&&(i[I>>2]=B,i[I+4>>2]=C),C=0,A&&yg(A,g,B)}return 0|C}function HI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,jg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),SC(t,35648,0-o&15,0),SC(t,I,g,C),SC(t,35648,0-g&15,0),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(Cg(A,I,g,C,a,1,_),Q=0)),s=c+352|0,Q}function YI(A,I,g,C,B,Q){var E,a;return A|=0,I|=0,g|=0,C|=0,Q|=0,s=E=s-32|0,a=o[0|(B|=0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=a,i[E+20>>2]=B,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=g,i[E+4>>2]=C,I-65>>>0<=4294967246?(i[9404]=28,A=-1):A=QA(A,I,0,0,0,Q,32,E,E+16|0),s=E+32|0,0|A}function JI(A,I,g,C,B){var Q,o;return A|=0,I|=0,g|=0,C|=0,s=Q=s-512|0,iI(o=Q+32|0,B|=0,32),dC(o,I,g,C),wg(o,Q+448|0),I=i[Q+476>>2],i[Q+24>>2]=i[Q+472>>2],i[Q+28>>2]=I,I=i[Q+468>>2],i[Q+16>>2]=i[Q+464>>2],i[Q+20>>2]=I,I=i[Q+460>>2],i[Q+8>>2]=i[Q+456>>2],i[Q+12>>2]=I,I=i[Q+452>>2],i[Q>>2]=i[Q+448>>2],i[Q+4>>2]=I,I=NC(A,Q),g=MI(Q,A,32),s=Q+512|0,((0|A)==(0|Q)?-1:I)|g}function dI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,Xg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),SC(t,I,g,C),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(mg(A,I,g,C,a,1,0,_),Q=0)),s=c+352|0,Q}function mI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,jg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),SC(r,35648,0-E&15,0),Cg(A,C,B,Q,_,1,c),SC(r,A,B,Q),SC(r,35648,0-B&15,0),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,A=t+8|0,8,0),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,A,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function lI(A,I){var g,C=0,B=0,Q=0,E=0,_=0;A:if(!(((g=o[0|A])-58&255)>>>0<246)){for(C=g,B=A;;){if(E=B,Q>>>0>429496729)break A;if((C=(255&C)-48|0)>>>0>~(Q=a(Q,10))>>>0)break A;if(Q=Q+C|0,!(((C=o[0|(B=B+1|0)])-58&255)>>>0>245))break}48==(0|g)&(0|A)!=(0|E)|(0|A)==(0|B)||(i[I>>2]=Q,_=B)}return _}function uI(A){var I=0,g=0,C=0,B=0;I=65,g=1024;A:{I:{if((0|(C=255&A))!=o[1024])for(C=a(C,16843009);;){if(-2139062144!=(-2139062144&((B=C^i[g>>2])|16843008-B)))break I;if(g=g+4|0,!((I=I-4|0)>>>0>3))break}if(!I)break A}for(A&=255;;){if((0|A)==o[0|g])return g;if(g=g+1|0,!(I=I-1|0))break}}return 0}function xI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,Xg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,o=t+8|0,8,0),mg(A,C,B,Q,_,1,0,c),SC(r,A,B,Q),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,o,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function vI(A,I,g,B,Q,i){return!B&g>>>0>=32|B?(Gg(A,I,g,B,Q,i),hC(A+16|0,A+32|0,g-32|0,B-(g>>>0<32)|0,A),C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,A=0):A=-1,A}function RI(A){var I=0,g=0,C=0;A:{I:if(3&(I=A)){if(!o[0|I])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!o[0|I])break}break A}for(;g=I,I=I+4|0,-2139062144==(-2139062144&((C=i[g>>2])|16843008-C)););for(;g=(I=g)+1|0,o[0|I];);}return I-A|0}function LI(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var o,E=0;return s=o=s-16|0,w(A|=0,o+8|0,yg(A- -64|0,g|=0,C|=0),C,B,Q,0),i[o+12>>2]|64!=i[o+8>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),bg(A,0,C- -64|0),E=-1):I&&(i[I>>2]=C- -64,i[I+4>>2]=B-((C>>>0<4294967232)-1|0)),s=o+16|0,0|E}function PI(A,I){var g,C=0,B=0,Q=0,E=0;return(g=uI(o[0|I]))&&(C=uI(o[I+1|0]))&&(B=uI(o[I+2|0]))&&(Q=uI(o[I+3|0]))&&(E=uI(o[I+4|0]))?(i[A>>2]=g-1024|C-1024<<6|B-1024<<12|Q-1024<<18|E-1024<<24,I+5|0):(i[A>>2]=0,0)}function qI(A,I,g){var C;for(i[12+(C=s-16|0)>>2]=A,i[C+8>>2]=I,A=0,i[C+4>>2]=0;i[C+4>>2]=i[C+4>>2]|o[i[C+12>>2]+A|0]^o[i[C+8>>2]+A|0],I=1|A,i[C+4>>2]=i[C+4>>2]|o[I+i[C+12>>2]|0]^o[I+i[C+8>>2]|0],(0|g)!=(0|(A=A+2|0)););return(i[C+4>>2]-1>>>8&1)-1|0}function zI(A,I,g,C,B,Q,o,E,a,_,c){var t=0,r=0,e=0;return r=-1,(t=C>>>0<32)&!B||!(t=B-t|0)&(e=C-32|0)>>>0>4294967263|t|!E&o>>>0>4294967263|E||(r=0|pB[i[c>>2]](A,g,e,(g+C|0)-32|0,32,Q,o,a,_)),I&&(i[I>>2]=r?0:C-32|0,i[I+4>>2]=r?0:B-(C>>>0<32)|0),r}function jI(A,I){var g,C=0,B=0,Q=0;s=g=s-896|0,fA(C=g+848|0,I),fA(B=g+800|0,I+32|0),$(Q=g+320|0,C),$(I=g+160|0,B),$A(C=g+640|0,I),sA(I=g+480|0,Q,C),b(g,I,C=g+600|0),b(g+40|0,B=g+520|0,Q=g+560|0),b(g+80|0,Q,C),b(g+120|0,I,B),W(A,g),s=g+896|0}function XI(A){var I=0,g=0,B=0,Q=0,i=0;for(I=1;g=(B=I)+o[0|(I=A+Q|0)]|0,C[0|I]=g,g=o[I+1|0]+(g>>>8|0)|0,C[I+1|0]=g,g=o[I+2|0]+(g>>>8|0)|0,C[I+2|0]=g,B=I,I=o[I+3|0]+(g>>>8|0)|0,C[B+3|0]=I,I=I>>>8|0,Q=Q+4|0,4!=(0|(i=i+4|0)););}function OI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?(!Q&B>>>0>=3|!!(0|Q))&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,1)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function WI(A,I){var g=0;4&I&&((I=i[A>>2])&&XC(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&XC(I,i[A+20>>2]<<3)),BA(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&BA(g),BA(I),i[A>>2]=0}function VI(A,I,g,C,B,o,E,a,_,c,t){return!B&C>>>0>4294967263|!!(0|B)|!a&E>>>0>=4294967264|!!(0|a)?(rC(),Q()):(A=0|pB[i[t>>2]](A,A+C|0,32,g,C,o,E,_,c),I&&(C=(g=C+32|0)>>>0<32?B+1|0:B,i[I>>2]=A?0:g,i[I+4>>2]=A?0:C)),A}function ZI(A){var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0;for(I=32,g=1;a|=(B=o[(C=I-2|0)+A|0])-(Q=o[C+2912|0])>>8&(I=((i=o[2912+(I=I-1|0)|0])^(E=o[A+I|0]))-1>>8&g)|E-i>>8&g,g=I&(B^Q)-1>>8,I=C;);return!!(255&a)}function TI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?!!(B|Q)&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,2)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function $I(A){var I=0;return i[32+(A|=0)>>2]=0,i[A+36>>2]=0,I=i[8809],i[A>>2]=i[8808],i[A+4>>2]=I,I=i[8811],i[A+8>>2]=i[8810],i[A+12>>2]=I,I=i[8813],i[A+16>>2]=i[8812],i[A+20>>2]=I,I=i[8815],i[A+24>>2]=i[8814],i[A+28>>2]=I,0}function Ag(A,I,g,C,B,Q,i){var o,E,a=0,_=0;return s=o=s+-64|0,a=-1,(E=g>>>0<16)&!C||CI(_=o+32|0,i,Q)||yA(o,35584,_,0)||(a=sI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o- -64|0,a}function Ig(A,I,g,C){var B,Q,i,o,E=0,_=0;return o=a(E=g>>>16|0,_=A>>>16|0),E=(65535&(_=((i=a(B=65535&g,Q=65535&A))>>>16|0)+a(_,B)|0))+a(E,Q)|0,f=(a(I,g)+o|0)+a(A,C)+(_>>>16)+(E>>>16)|0,65535&i|E<<16}function gg(A,I,g){var C=0,B=0;if(!g)return 0;if(C=o[0|A])A:{for(;;){if((0|(B=o[0|I]))!=(0|C)|!B)break A;if(!(g=g-1|0))break A;if(I=I+1|0,C=o[A+1|0],A=A+1|0,!C)break}C=0}else C=0;return C-o[0|I]|0}function Cg(A,I,g,C,B,o,E){var a=0,_=0;if(a=C,!(1==(((a=(_=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+!!(0|(a=(63&a)<<26|_>>>6))|0)&o>>>0>(_=0-a|0)>>>0|1==(0|C)|C>>>0>1))return 0|pB[i[9199]](A,I,g,C,B,o,E);rC(),Q()}function Bg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=vI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function Qg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=fI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function ig(A,I,g,C,B,i,o){var E;if(s=E=s+-64|0,!C&g>>>0<4294967280)return CI(E+32|0,o,i)?o=-1:(o=-1,yA(E,35584,E+32|0,0)||(o=EI(A+16|0,A,I,g,C,B,E),XC(E,32))),s=E- -64|0,o;rC(),Q()}function og(A,I){for(var g=0,B=0,Q=0,i=0,E=0;B=A+Q|0,g=o[I+Q|0]+(o[0|B]+g|0)|0,C[0|B]=g,i=(B=1|Q)+A|0,g=o[I+B|0]+(o[0|i]+(g>>>8|0)|0)|0,C[0|i]=g,g=g>>>8|0,Q=Q+2|0,32!=(0|(E=E+2|0)););}function Eg(A,I){for(var g=0,B=0,Q=0,i=0,E=0;g=(o[0|(B=A+Q|0)]-o[I+Q|0]|0)+g|0,C[0|B]=g,g=(o[0|(i=(B=1|Q)+A|0)]-o[I+B|0]|0)+(g>>8)|0,C[0|i]=g,g>>=8,Q=Q+2|0,64!=(0|(E=E+2|0)););}function ag(A,I){A|=0;var g,B=0,Q=0,i=0;if(s=g=s-16|0,I|=0)for(;C[g+15|0]=0,Q=A+B|0,i=0|t(36800,g+15|0,0),C[0|Q]=i,(0|(B=B+1|0))!=(0|I););s=g+16|0}function _g(A,I,g,C,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<16)&!C||cC(o,Q,i)||(a=eI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o+32|0,a}function cg(A){var I,g;A:{if(!((A=(I=i[8924])+(g=A+7&-8)|0)>>>0<=I>>>0&&g)){if(A>>>0<=wB()<<16>>>0)break A;if(0|y(0|A))break A}return i[9404]=48,-1}return i[8924]=A,I}function tg(A,I){var g,B,Q;s=g=s-176|0,LA(B=g+96|0,I+80|0),b(Q=g+48|0,I,B),b(g,I+40|0,B),QI(A,g),QI(g+144|0,Q),C[A+31|0]=o[A+31|0]^o[g+144|0]<<7,s=g+176|0}function rg(A,I,g,C,B,Q,i,o,E,a){var _,c,t=0,r=0,e=0;return s=_=s-16|0,t=-1,_C(c=_+4|0)||(r=-1,e=_A(c,A,I,g,C,B,Q,i,o,E,a),t=Rg(c)?r:e),s=_+16|0,t}function eg(A,I,g,C,B,o,E,a,_,c,t,r){return g&&(i[g>>2]=32,i[g+4>>2]=0),!_&a>>>0<4294967264&!o&B>>>0<=4294967263||(rC(),Q()),0|pB[i[r>>2]](A,I,32,C,B,E,a,c,t)}function yg(A,I,g){var B=0;if(A>>>0>>0)return Ng(A,I,g);if(g)for(B=A+g|0,I=I+g|0;I=I-1|0,C[0|(B=B-1|0)]=o[0|I],g=g-1|0;);return A}function sg(A,I,g,C,B,i,o){var E,a=0;if(s=E=s-32|0,!C&g>>>0<4294967280)return a=-1,cC(E,i,o)||(a=aI(A+16|0,A,I,g,C,B,E),XC(E,32)),s=E+32|0,a;rC(),Q()}function hg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?eI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function Dg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?sI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function fg(A,I,g,C,B,Q,o,E,a,_,c){return!C&g>>>0>4294967263|C|!E&o>>>0>4294967263|E?-1:0|pB[i[c>>2]](A,I,g,B,32,Q,o,a,_)}function pg(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=wA(A,35664,C,0)),s=C+32|0,0|B}function wg(A,I){var g;return I|=0,s=g=s+-64|0,j(A|=0,g),SA(A=A+208|0,g,64,0),j(A,I),XC(g,64),s=g- -64|0,0}function ng(A,I,g,C){var B;return I|=0,g|=0,C|=0,s=B=s+-64|0,j(A|=0,B),A=w(I,g,B,64,0,C,1),s=B- -64|0,0|A}function kg(A,I){var g,C,B;b(A,I,g=I+120|0),b(A+40|0,C=I+40|0,B=I+80|0),b(A+80|0,B,g),b(A+120|0,I,C)}function Fg(A,I,g,C,B,Q,i){return 0|TI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)}function Sg(A,I){var g;return I|=0,s=g=s-32|0,JA(A|=0,g),UA(A=A+104|0,g,32,0),JA(A,I),XC(g,32),s=g+32|0,0}function Ng(A,I,g){var B=0;if(g)for(B=A;C[0|B]=o[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);return A}function Gg(A,I,g,C,B,Q){var i;return s=i=s-32|0,wA(i,B,Q,0),A=oC(A,I,g,C,B+16|0,0,0,i),XC(i,32),s=i+32|0,A}function Mg(A){for(A|=0;ag(A,32),C[A+31|0]=31&o[A+31|0],!ZI(A)||GI(A,32););}function Kg(A,I,g){var C;return I|=0,g|=0,s=C=s+-64|0,j(A|=0,C),A=U(I,C,64,0,g,1),s=C- -64|0,0|A}function Ug(A,I,g,C,B){var Q;return s=Q=s-32|0,wA(Q,C,B,0),A=DC(A,I,g,C+16|0,Q),XC(Q,32),s=Q+32|0,A}function bg(A,I,g){var B=0;if(g)for(B=A;C[0|B]=I,B=B+1|0,g=g-1|0;);return A}function Hg(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(r(1366,1279,107,1123),Q()),0|AA(A,I,255&g)}function Yg(A,I,g,C,B,Q,i){return 0|aI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function Jg(A,I,g,C,B,Q,i){return 0|eI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function dg(A,I,g,C,B,Q,i){return 0|EI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function mg(A,I,g,C,B,o,E,a){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,o,E,a)}function lg(A,I,g,C,B,Q,i){return 0|sI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function ug(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,0,0,o)}function xg(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9199]](A,I,g,C,B,0,o)}function vg(A,I,g,C,B,Q){return w(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0}function Rg(A){var I;return(I=i[A>>2])&&BA(I),i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function Lg(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function Pg(A,I,g,C,B,Q){return 0|vI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function qg(A,I,g,C,B,Q){return 0|fI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function zg(A,I,g,C,B,Q){return 0|Gg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function jg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9197]](A,I,g,C,B)}function Xg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9196]](A,I,g,C,B)}function Og(A,I,g,C,B,o){1==(0|C)|C>>>0>1&&(rC(),Q()),pB[i[9199]](A,I,g,C,B,1,o)}function Wg(A,I,g,C,B){return 0|U(A|=0,I|=0,g|=0,C|=0,B|=0,0)}function Vg(A,I,g,C,B){return 0|hC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Zg(A,I,g,C,B){return 0|fC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Tg(A,I,g,C,B){return 0|Ug(A|=0,I|=0,g|=0,C|=0,B|=0)}function $g(){var A;s=A=s-16|0,C[A+15|0]=0,t(36836,A+15|0,0),s=A+16|0}function AC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,20),0}function IC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,12),0}function gC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,8),0}function CC(A,I,g,C){return 0|FI(A|=0,I|=0,g|=0,C|=0)}function BC(A,I,g,C){return 0|SC(A|=0,I|=0,g|=0,C|=0)}function QC(A,I,g,C){return 0|SA(A|=0,I|=0,g|=0,C|=0)}function iC(A,I,g,C){return 0|eA(A|=0,I|=0,g|=0,C|=0)}function oC(A,I,g,C,B,Q,o,E){return 0|pB[i[8933]](A,I,g,C,B,Q,o,E)}function EC(A,I,g,C){return 0|dC(A|=0,I|=0,g|=0,C|=0)}function aC(A,I,g,C,B,Q){return 0|pB[i[8933]](A,I,g,C,B,0,0,Q)}function _C(A){return i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function cC(A,I,g){return 0|pg(A|=0,I|=0,g|=0)}function tC(A,I,g){return 0|CI(A|=0,I|=0,g|=0)}function rC(){var A;(A=i[9538])&&pB[0|A](),DB(),Q()}function eC(A,I,g){return 0|Hg(A|=0,I|=0,g|=0)}function yC(A,I,g){return 0|iI(A|=0,I|=0,g|=0)}function sC(A,I){return A|=0,ag(I|=0,32),0|pC(A,I)}function hC(A,I,g,C,B){return 0|pB[i[8925]](A,I,g,C,B)}function DC(A,I,g,C,B){return 0|pB[i[8932]](A,I,g,C,B)}function fC(A,I,g,C,B){return 0|pB[i[8926]](A,I,g,C,B)}function pC(A,I){return A|=0,I|=0,0|pB[i[8931]](A,I)}function wC(A,I){return A|=0,I|=0,0|pB[i[8927]](A,I)}function nC(A,I){return A|=0,I|=0,0|pB[i[8929]](A,I)}function kC(A,I,g,C,B,Q,i){return lA(A,I,g,C,B,Q,i)}function FC(A){return A?31-_(A-1^A)|0:32}function SC(A,I,g,C){return 0|pB[i[8928]](A,I,g,C)}function NC(A,I){return 0|qI(A|=0,I|=0,32)}function GC(A,I){return 0|qI(A|=0,I|=0,64)}function MC(A,I,g){n(A|=0,I|=0,g|=0)}function KC(A,I){return 0|pC(A|=0,I|=0)}function UC(A,I){return 0|sC(A|=0,I|=0)}function bC(A,I,g,C){return BI(A,I,g,C,1)}function HC(A,I,g,C){return wI(A,I,g,C,1)}function YC(A,I,g,C){return wI(A,I,g,C,2)}function JC(A,I,g,C){return BI(A,I,g,C,2)}function dC(A,I,g,C){return SA(A,I,g,C),0}function mC(A,I,g,C){return UA(A,I,g,C),0}function lC(A,I,g,C){return WA(A,I,g,C)}function uC(A){return SI(A|=0),0}function xC(){return-2147483648}function vC(){return 1073741824}function RC(){return 268435456}function LC(){return 33554432}function PC(A){ag(A|=0,32)}function qC(){return 67108864}function zC(A){ag(A|=0,16)}function jC(){return 16777216}function XC(A,I){bg(A,0,I)}function OC(){return 1564}function WC(){return 1338}function VC(){return 8192}function ZC(){return 384}function TC(){return 256}function $C(){return 416}function AB(){return 128}function IB(){return 208}function gB(){return 64}function CB(){return 16}function BB(){return 32}function QB(){return-65}function iB(){return-33}function oB(){return 48}function EB(){return-17}function aB(){return 12}function _B(){return 24}function cB(){return-1}function tB(){return 2}function rB(){return 3}function eB(){return 8}function yB(){return 1}function sB(){return 4}function hB(){return 0}function DB(){e(),Q()}B(I=o,1024,"Li8wMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egBqcwByYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAYXJnb24yaWQsYXJnb24yaQAkYXJnb24yaQAkYXJnb24yaWQAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwBzb2RpdW0vY29kZWNzLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2JsYWtlMmItcmVmLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2dlbmVyaWNoYXNoX2JsYWtlMmIuYwB4MjU1MTlibGFrZTJiAGJ1Zl9sZW4gPD0gU0laRV9NQVgAb3V0bGVuIDw9IFVJTlQ4X01BWABTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTACRhcmdvbjJpJHY9ACRhcmdvbjJpZCR2PQBjdXJ2ZTI1NTE5AGVkMjU1MTkAaG1hY3NoYTUxMjI1NgBjdXJ2ZTI1NTE5eHNhbHNhMjBwb2x5MTMwNQBzb2RpdW1fYmluMmJhc2U2NABzaXBoYXNoMjQAc2hhNTEyAHhzYWxzYTIwADEuMC4yMAAkYXJnb24yaSQAJGFyZ29uMmlkJAAkNyQAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4="),B(I,1680,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),B(I,1728,"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/"),B(I,2720,"AQ=="),B(I,2752,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),B(I,2943,"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"),B(I,33964,"AQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCg=="),B(I,34016,"M03tAJGqVv82JjP/8YBl/yl5Sv/sTpsAqZdp/pwpSADCZq//zqJl/wAAAAAAAAAAGy57ARKo/f/Tr5f+w9tgADh2vv7+0fX/mWR+/uiBFf81uPL/x6Td"),B(I,34144,"AQ=="),B(I,34176,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4KZykpFPwv0kaFCrcnJskmXDghGy7tKsRa/G0sTd+zlZ0TDThT3mOvi1RzCmWosnc8uwpqduau7UcuycKBOzWCFIUscpJkA/FMoei/ogEwQrxLZhqokZf40HCLS8IwvlQGo1FsxxhS79YZ6JLREKllVSQGmdYqIHFXhTUO9LjRuzJwoGoQyNDSuBbBpBlTq0FRCGw3Hpnrjt9Md0gnqEib4bW8sDRjWsnFswwcOcuKQeNKqthOc+Njd0/KnFujuLLW828uaPyy713ugo90YC8XQ29jpXhyq/ChFHjIhOw5ZBoIAseMKB5jI/r/vpDpvYLe62xQpBV5xrL3o/m+K1Ny4/J4ccacYSbqzj4nygfCwCHHuIbRHuvgzdZ92up40W7uf0999bpvF3KqZ/AGppjIosV9YwquDfm+BJg/ERtHHBM1C3EbhH0EI/V32yiTJMdAe6vKMry+yRUKvp48TA0QnMRnHUO2Qj7LvtTFTCp+ZfycKX9Z7PrWOqtvy18XWEdKjBlEbIA="),B(I,35184,"7dP1XBpjEljWnPei3vneFA=="),B(I,35215,"EA=="),B(I,35232,"Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgA=="),B(I,35600,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB"),B(I,35696,"EJUBAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQ=="),B(I,35744,"xmNjpfh8fITud3eZ9nt7jf/y8g3Wa2u93m9vsZHFxVRgMDBQAgEBA85nZ6lWKyt95/7+GbXX12JNq6vm7HZ2mo/KykUfgoKdicnJQPp9fYfv+voVsllZ645HR8n78PALQa2t7LPU1GdfoqL9Ra+v6iOcnL9TpKT35HJylpvAwFt1t7fC4f39HD2Tk65MJiZqbDY2Wn4/P0H19/cCg8zMT2g0NFxRpaX00eXlNPnx8QjicXGTq9jYc2IxMVMqFRU/CAQEDJXHx1JGIyNlncPDXjAYGCg3lpahCgUFDy+amrUOBwcJJBISNhuAgJvf4uI9zevrJk4nJ2l/srLN6nV1nxIJCRsdg4OeWCwsdDQaGi42Gxst3G5usrRaWu5boKD7pFJS9nY7O0231tZhfbOzzlIpKXvd4+M+Xi8vcROEhJemU1P1udHRaAAAAADB7e0sQCAgYOP8/B95sbHItltb7dRqar6Ny8tGZ76+2XI5OUuUSkremExM1LBYWOiFz89Ku9DQa8Xv7ypPqqrl7fv7FoZDQ8WaTU3XZjMzVRGFhZSKRUXP6fn5EAQCAgb+f3+BoFBQ8Hg8PEQln5+6S6io46JRUfNdo6P+gEBAwAWPj4o/kpKtIZ2dvHA4OEjx9fUEY7y833e2tsGv2tp1QiEhYyAQEDDl//8a/fPzDr/S0m2Bzc1MGAwMFCYTEzXD7Owvvl9f4TWXl6KIRETMLhcXOZPExFdVp6fy/H5+gno9PUfIZGSsul1d5zIZGSvmc3OVwGBgoBmBgZieT0/Ro9zcf0QiImZUKip+O5CQqwuIiIOMRkbKx+7uKWu4uNMoFBQ8p97eebxeXuIWCwsdrdvbdtvg4DtkMjJWdDo6ThQKCh6SSUnbDAYGCkgkJGy4XFzkn8LCXb3T025DrKzvxGJipjmRkagxlZWk0+TkN/J5eYvV5+cyi8jIQ243N1nabW23AY2NjLHV1WScTk7SSamp4NhsbLSsVlb68/T0B8/q6iXKZWWv9Hp6jkeurukQCAgYb7q61fB4eIhKJSVvXC4ucjgcHCRXpqbxc7S0x5fGxlHL6Ogjod3dfOh0dJw+Hx8hlktL3WG9vdwNi4uGD4qKheBwcJB8Pj5CcbW1xMxmZqqQSEjYBgMDBff29gEcDg4SwmFho2o1NV+uV1f5abm50BeGhpGZwcFYOh0dJyeenrnZ4eE46/j4EyuYmLMiEREz0mlpu6nZ2XAHjo6JM5SUpy2bm7Y8Hh4iFYeHksnp6SCHzs5JqlVV/1AoKHil3996A4yMj1mhofgJiYmAGg0NF2W/v9rX5uYxhEJCxtBoaLiCQUHDKZmZsFotLXceDw8Re7Cwy6hUVPxtu7vWLBYWOgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAAR");var fB,pB=(fB=[null,function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-128&-64,i[E>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+4>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+8>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+12>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=_>>>8&1048575,i[E+40>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+44>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+48>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+80|0]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+52>>2]=Q,vA(E,I,g,B),gI(E,A),s=a,0},function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-192&-64,i[E+64>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+68>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+72>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+76>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+84>>2]=0,i[E+88>>2]=0,i[E+92>>2]=0,i[E+96>>2]=0,i[E+100>>2]=0,i[E+80>>2]=_>>>8&1048575,i[E+104>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+108>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+112>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+144|0]=0,i[E+120>>2]=0,i[E+124>>2]=0,i[E+116>>2]=Q,vA(Q=E- -64|0,I,g,B),gI(Q,I=E+48|0),A=oI(A,I),s=a,0|A},function(A,I){var g;return I|=0,i[(A|=0)>>2]=67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),i[A+4>>2]=(o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6&66076671,g=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[A+44>>2]=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[A+48>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,C[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I,0},function(A,I,g,C){return vA(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return gI(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,nA=0,kA=0;for(s=B=s-368|0;D=(a=o[g+Q|0])^o[0|(c=Q+34112|0)]|D,h=a^o[c+192|0]|h,y=a^o[c+160|0]|y,e=a^o[c+128|0]|e,_=a^o[c+96|0]|_,t=a^o[c- -64|0]|t,E=a^o[c+32|0]|E,31!=(0|(Q=Q+1|0)););if(Q=-1,!(256&((255&((a=127^(c=127&o[g+31|0]))|h))-1|(255&(a|y))-1|(255&(a|e))-1|(255&(87^c|_))-1|(255&(t|c))-1|(255&(E|c))-1|(255&(c|D))-1))){for(Q=I,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+360>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[B+364>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[B+352>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[B+356>>2]=I,E=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,I=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[B+336>>2]=I,i[B+340>>2]=E,E=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[B+344>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[B+348>>2]=E,C[B+336|0]=248&I,C[B+367|0]=63&o[B+367|0]|64,fA(B+288|0,g),i[B+260>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+208>>2]=0,i[B+212>>2]=0,i[B+216>>2]=0,i[B+220>>2]=0,i[B+224>>2]=0,i[B+228>>2]=0,I=i[B+308>>2],i[B+160>>2]=i[B+304>>2],i[B+164>>2]=I,I=i[B+316>>2],i[B+168>>2]=i[B+312>>2],i[B+172>>2]=I,I=i[B+324>>2],i[B+176>>2]=i[B+320>>2],i[B+180>>2]=I,i[B+244>>2]=0,i[B+248>>2]=0,i[B+240>>2]=1,i[B+252>>2]=0,i[B+256>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,i[B+200>>2]=0,i[B+204>>2]=0,I=i[B+292>>2],i[B+144>>2]=i[B+288>>2],i[B+148>>2]=I,I=i[B+300>>2],i[B+152>>2]=i[B+296>>2],i[B+156>>2]=I,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,i[B+128>>2]=0,i[B+132>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+96>>2]=1,i[B+108>>2]=0,i[B+112>>2]=0,g=254;Z=i[B+276>>2],a=i[B+180>>2],T=i[B+96>>2],$=i[B+192>>2],AA=i[B+144>>2],IA=i[B+240>>2],gA=i[B+100>>2],CA=i[B+196>>2],BA=i[B+148>>2],QA=i[B+244>>2],U=i[B+104>>2],iA=i[B+200>>2],H=i[B+152>>2],oA=i[B+248>>2],d=i[B+108>>2],EA=i[B+204>>2],m=i[B+156>>2],aA=i[B+252>>2],Y=i[B+112>>2],_A=i[B+208>>2],M=i[B+160>>2],cA=i[B+256>>2],D=i[B+116>>2],tA=i[B+212>>2],r=i[B+164>>2],rA=i[B+260>>2],h=i[B+120>>2],eA=i[B+216>>2],y=i[B+168>>2],yA=i[B+264>>2],e=i[B+124>>2],sA=i[B+220>>2],_=i[B+172>>2],hA=i[B+268>>2],t=i[B+128>>2],DA=i[B+224>>2],E=i[B+176>>2],G=i[B+272>>2],pA=g,K=(F=(I=0-((I=V)^(V=o[(wA=B+336|0)+(g>>>3|0)|0]>>>(7&g)&1))|0)&((Q=i[B+132>>2])^(j=i[B+228>>2])))^Q,i[B+132>>2]=K,X=a^(S=I&(a^Z)),i[B+84>>2]=X-K,J=t^(w=I&(t^DA)),i[B+128>>2]=J,O=(N=I&(E^G))^E,i[B+80>>2]=O-J,u=e^(n=I&(e^sA)),i[B+124>>2]=u,nA=_^(k=I&(_^hA)),i[B+76>>2]=nA-u,x=h^(p=I&(h^eA)),i[B+120>>2]=x,kA=y^(c=I&(y^yA)),i[B+72>>2]=kA-x,v=D^(a=I&(D^tA)),i[B+116>>2]=v,L=r^(D=I&(r^rA)),i[B+68>>2]=L-v,P=Y^(h=I&(Y^_A)),i[B+112>>2]=P,l=M^(y=I&(M^cA)),i[B+64>>2]=l-P,q=d^(e=I&(d^EA)),i[B+108>>2]=q,W=m^(_=I&(m^aA)),i[B+60>>2]=W-q,z=U^(t=I&(U^iA)),i[B+104>>2]=z,d=H^(E=I&(H^oA)),i[B+56>>2]=d-z,U=gA^(Q=I&(gA^CA)),i[B+100>>2]=U,m=BA^(g=I&(BA^QA)),i[B+52>>2]=m-U,H=T^(Y=I&(T^$)),i[B+96>>2]=H,M=(I&=AA^IA)^AA,i[B+48>>2]=M-H,r=S^Z,F^=j,i[B+36>>2]=r-F,S=N^G,w^=DA,i[B+32>>2]=S-w,N=k^hA,n^=sA,i[B+28>>2]=N-n,k=c^yA,p^=eA,i[B+24>>2]=k-p,c=D^rA,a^=tA,i[B+20>>2]=c-a,D=y^cA,h^=_A,i[B+16>>2]=D-h,y=_^aA,e^=EA,i[B+12>>2]=y-e,_=E^oA,t^=iA,i[B+8>>2]=_-t,E=g^QA,Q^=CA,i[B+4>>2]=E-Q,g=I^IA,I=Y^$,i[B>>2]=g-I,i[B+276>>2]=r+F,i[B+272>>2]=S+w,i[B+268>>2]=n+N,i[B+264>>2]=p+k,i[B+260>>2]=a+c,i[B+256>>2]=h+D,i[B+248>>2]=_+t,i[B+244>>2]=Q+E,i[B+240>>2]=I+g,i[B+252>>2]=e+y,i[B+228>>2]=K+X,i[B+224>>2]=J+O,i[B+220>>2]=u+nA,i[B+216>>2]=x+kA,i[B+212>>2]=v+L,i[B+208>>2]=l+P,i[B+204>>2]=q+W,i[B+200>>2]=d+z,i[B+196>>2]=U+m,i[B+192>>2]=M+H,b(X=B+96|0,J=B+48|0,K=B+240|0),b(G=B+192|0,G,B),R(J,B),R(B,K),r=i[B+192>>2],F=i[B+96>>2],S=i[B+196>>2],w=i[B+100>>2],N=i[B+200>>2],n=i[B+104>>2],k=i[B+204>>2],p=i[B+108>>2],c=i[B+208>>2],a=i[B+112>>2],D=i[B+212>>2],h=i[B+116>>2],y=i[B+216>>2],e=i[B+120>>2],_=i[B+220>>2],t=i[B+124>>2],E=i[B+224>>2],Q=i[B+128>>2],g=i[B+228>>2],I=i[B+132>>2],i[B+180>>2]=g+I,i[B+176>>2]=Q+E,i[B+172>>2]=_+t,i[B+168>>2]=e+y,i[B+164>>2]=h+D,i[B+160>>2]=a+c,i[B+156>>2]=p+k,i[B+152>>2]=n+N,i[B+148>>2]=S+w,i[B+144>>2]=r+F,i[B+228>>2]=I-g,i[B+224>>2]=Q-E,i[B+220>>2]=t-_,i[B+216>>2]=e-y,i[B+212>>2]=h-D,i[B+208>>2]=a-c,i[B+204>>2]=p-k,i[B+200>>2]=n-N,i[B+196>>2]=w-S,i[B+192>>2]=F-r,b(K,B,J),u=i[B+52>>2],p=i[B+4>>2],x=i[B+56>>2],c=i[B+8>>2],v=i[B+64>>2],y=i[B+16>>2],P=i[B+60>>2],e=i[B+12>>2],q=i[B+72>>2],_=i[B+24>>2],z=i[B+68>>2],t=i[B+20>>2],U=i[B+80>>2],E=i[B+32>>2],H=i[B+76>>2],Q=i[B+28>>2],j=i[B+84>>2],I=i[B+36>>2],O=i[B+48>>2],g=i[B>>2]-O|0,i[B>>2]=g,I=I-j|0,i[B+36>>2]=I,Y=Q-H|0,i[B+28>>2]=Y,M=E-U|0,i[B+32>>2]=M,a=t-z|0,i[B+20>>2]=a,D=_-q|0,i[B+24>>2]=D,h=e-P|0,i[B+12>>2]=h,y=y-v|0,i[B+16>>2]=y,e=c-x|0,i[B+8>>2]=e,E=p-u|0,i[B+4>>2]=E,R(G,G),I=Ig(I,I>>31,121666,0),Q=f,W=I,I=Ig((33554431&(Q=(r=I+16777216|0)>>>0<16777216?Q+1|0:Q))<<7|r>>>25,Q>>25,19,0),t=f,Q=I,I=Ig(g,g>>31,121666,0),l=f+t|0,I=I>>>0>(Q=Q+I|0)>>>0?l+1|0:l,g=(_=Q+33554432|0)>>>0<33554432?I+1|0:I,F=Q-(-67108864&_)|0,i[B+96>>2]=F,t=Ig(E,E>>31,121666,0),Q=f,Q=(E=t+16777216|0)>>>0<16777216?Q+1|0:Q,S=(t-(-33554432&E)|0)+((67108863&g)<<6|_>>>26)|0,i[B+100>>2]=S,l=(I=Q)>>25,Q=(33554431&I)<<7|E>>>25,g=Ig(e,e>>31,121666,0)+Q|0,I=l+f|0,I=g>>>0>>0?I+1|0:I,t=(w=g+33554432|0)>>>0<33554432?I+1|0:I,N=g-(-67108864&w)|0,i[B+104>>2]=N,Q=Ig(y,y>>31,121666,0),E=f,g=Ig(h,h>>31,121666,0),I=f,L=Q,d=g,Q=(33554431&(I=(n=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|n>>>25,I=(I>>25)+E|0,I=(g=L+Q|0)>>>0>>0?I+1|0:I,E=(k=g+33554432|0)>>>0<33554432?I+1|0:I,p=g-(-67108864&k)|0,i[B+112>>2]=p,Q=Ig(D,D>>31,121666,0),_=f,g=Ig(a,a>>31,121666,0),I=f,L=Q,m=g,Q=(33554431&(I=(c=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+_|0,I=(g=L+Q|0)>>>0>>0?I+1|0:I,Q=(a=g+33554432|0)>>>0<33554432?I+1|0:I,D=g-(-67108864&a)|0,i[B+120>>2]=D,_=Ig(M,M>>31,121666,0),e=f,g=Ig(Y,Y>>31,121666,0),I=f,M=g,g=(33554431&(I=(h=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|h>>>25,I=(I>>25)+e|0,I=g>>>0>(_=g+_|0)>>>0?I+1|0:I,g=(y=_+33554432|0)>>>0<33554432?I+1|0:I,e=_-(-67108864&y)|0,i[B+128>>2]=e,_=(t=d+((67108863&t)<<6|w>>>26)|0)-(-33554432&n)|0,i[B+108>>2]=_,t=(E=m+((67108863&E)<<6|k>>>26)|0)-(-33554432&c)|0,i[B+116>>2]=t,E=(I=M+((67108863&Q)<<6|a>>>26)|0)-(-33554432&h)|0,i[B+124>>2]=E,g=(g=W+((67108863&g)<<6|y>>>26)|0)-(-33554432&r)|0,i[B+132>>2]=g,R(I=B+144|0,I),i[B+84>>2]=g+j,i[B+80>>2]=e+U,i[B+76>>2]=E+H,i[B+72>>2]=D+q,i[B+68>>2]=t+z,i[B+64>>2]=p+v,i[B+60>>2]=_+P,i[B+56>>2]=N+x,i[B+52>>2]=S+u,i[B+48>>2]=F+O,g=pA-1|0,b(X,B+288|0,G),b(G,B,J),pA;);D=i[B+144>>2],F=i[B+240>>2],h=i[B+148>>2],S=i[B+244>>2],y=i[B+152>>2],w=i[B+248>>2],e=i[B+156>>2],N=i[B+252>>2],_=i[B+160>>2],n=i[B+256>>2],t=i[B+164>>2],k=i[B+260>>2],E=i[B+168>>2],p=i[B+264>>2],Q=i[B+172>>2],c=i[B+268>>2],g=i[B+176>>2],a=i[B+272>>2],r=0-V|0,I=i[B+276>>2],i[B+276>>2]=r&(I^i[B+180>>2])^I,i[B+272>>2]=a^r&(g^a),i[B+268>>2]=c^r&(Q^c),i[B+264>>2]=p^r&(E^p),i[B+260>>2]=k^r&(t^k),i[B+256>>2]=n^r&(_^n),i[B+252>>2]=N^r&(e^N),i[B+248>>2]=w^r&(y^w),i[B+244>>2]=S^r&(h^S),i[B+240>>2]=F^r&(D^F),F=i[B+192>>2],D=i[B+96>>2],S=i[B+196>>2],h=i[B+100>>2],w=i[B+200>>2],y=i[B+104>>2],N=i[B+204>>2],e=i[B+108>>2],n=i[B+208>>2],_=i[B+112>>2],k=i[B+212>>2],t=i[B+116>>2],p=i[B+216>>2],E=i[B+120>>2],c=i[B+220>>2],Q=i[B+124>>2],a=i[B+224>>2],g=i[B+128>>2],I=i[B+228>>2],i[B+228>>2]=r&(I^i[B+132>>2])^I,i[B+224>>2]=a^r&(g^a),i[B+220>>2]=c^r&(Q^c),i[B+216>>2]=p^r&(E^p),i[B+212>>2]=k^r&(t^k),i[B+208>>2]=n^r&(_^n),i[B+204>>2]=N^r&(e^N),i[B+200>>2]=w^r&(y^w),i[B+196>>2]=S^r&(h^S),i[B+192>>2]=F^r&(D^F),LA(G,G),b(K,K,G),QI(A,K),XC(wA,32),Q=0}return s=B+368|0,0|Q},function(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S;return I|=0,s=g=s-304|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],I=o[I+31|0],C[0|A]=248&o[0|A],C[A+31|0]=63&I|64,nA(g+48|0,A),I=i[g+128>>2],B=i[g+88>>2],Q=i[g+132>>2],E=i[g+92>>2],a=i[g+136>>2],_=i[g+96>>2],c=i[g+140>>2],t=i[g+100>>2],r=i[g+144>>2],e=i[g+104>>2],y=i[g+148>>2],h=i[g+108>>2],D=i[g+152>>2],f=i[g+112>>2],p=i[g+156>>2],w=i[g+116>>2],n=i[g+160>>2],k=i[g+120>>2],F=i[g+124>>2],S=i[g+164>>2],i[g+292>>2]=F+S,i[g+288>>2]=n+k,i[g+284>>2]=p+w,i[g+280>>2]=D+f,i[g+276>>2]=y+h,i[g+272>>2]=r+e,i[g+268>>2]=c+t,i[g+264>>2]=a+_,i[g+260>>2]=Q+E,i[g+256>>2]=I+B,i[g+244>>2]=S-F,i[g+240>>2]=n-k,i[g+236>>2]=p-w,i[g+232>>2]=D-f,i[g+228>>2]=y-h,i[g+224>>2]=r-e,i[g+220>>2]=c-t,i[g+216>>2]=a-_,i[g+212>>2]=Q-E,i[g+208>>2]=I-B,LA(I=g+208|0,I),b(g,g+256|0,I),QI(A,g),s=g+304|0,0},function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,(I|=0)|(g|=0)){a=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=a,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=a,a=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=a,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=a,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=Q,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;AC(A,E+96|0,E,0),B=o[E+104|0]+1|0,C[E+104|0]=B,B=o[E+105|0]+(B>>>8|0)|0,C[E+105|0]=B,B=o[E+106|0]+(B>>>8|0)|0,C[E+106|0]=B,B=o[E+107|0]+(B>>>8|0)|0,C[E+107|0]=B,B=o[E+108|0]+(B>>>8|0)|0,C[E+108|0]=B,B=o[E+109|0]+(B>>>8|0)|0,C[E+109|0]=B,B=o[E+110|0]+(B>>>8|0)|0,C[E+110|0]=B,C[E+111|0]=o[E+111|0]+(B>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(B=0,AC(E+32|0,E+96|0,E,0),a=3&I,Q=0,!g&I>>>0>=4|g)for(g=60&I,I=0;_=c=E+32|0,C[A+Q|0]=o[_+Q|0],C[(t=1|Q)+A|0]=o[_+t|0],C[(_=2|Q)+A|0]=o[_+c|0],C[(_=3|Q)+A|0]=o[_+(E+32|0)|0],Q=Q+4|0,(0|g)!=(0|(I=I+4|0)););if(a)for(;C[A+Q|0]=o[(E+32|0)+Q|0],Q=Q+1|0,(0|a)!=(0|(B=B+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},function(A,I,g,B,Q,E,a,_){A|=0,I|=0,Q|=0,E|=0,a|=0,_|=0;var c,t=0;if(s=c=s-112|0,(g|=0)|(B|=0)){t=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,i[c+24>>2]=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,i[c+28>>2]=t,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[c+16>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[c+20>>2]=t,t=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,i[c>>2]=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,i[c+4>>2]=t,t=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,i[c+8>>2]=o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,i[c+12>>2]=t,_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[c+96>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[c+100>>2]=_,C[c+104|0]=E,C[c+111|0]=a>>>24,C[c+110|0]=a>>>16,C[c+109|0]=a>>>8,C[c+108|0]=a,C[c+107|0]=(16777215&a)<<8|E>>>24,C[c+106|0]=(65535&a)<<16|E>>>16,C[c+105|0]=(255&a)<<24|E>>>8;A:{if(!B&g>>>0>=64|B){for(;;){for(_=0,AC(c+32|0,c+96|0,c,0);E=c+32|0,C[A+_|0]=o[E+_|0]^o[I+_|0],C[(Q=1|_)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(_=_+2|0)););if(Q=o[c+104|0]+1|0,C[c+104|0]=Q,Q=o[c+105|0]+(Q>>>8|0)|0,C[c+105|0]=Q,Q=o[c+106|0]+(Q>>>8|0)|0,C[c+106|0]=Q,Q=o[c+107|0]+(Q>>>8|0)|0,C[c+107|0]=Q,Q=o[c+108|0]+(Q>>>8|0)|0,C[c+108|0]=Q,Q=o[c+109|0]+(Q>>>8|0)|0,C[c+109|0]=Q,Q=o[c+110|0]+(Q>>>8|0)|0,C[c+110|0]=Q,C[c+111|0]=o[c+111|0]+(Q>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(!(g|B))break A}if(_=0,AC(c+32|0,c+96|0,c,0),E=1&g,1!=(0|g)|B)for(B=62&g,Q=0;a=c+32|0,C[A+_|0]=o[a+_|0]^o[I+_|0],C[(g=1|_)+A|0]=o[g+a|0]^o[I+g|0],_=_+2|0,(0|B)!=(0|(Q=Q+2|0)););E&&(C[A+_|0]=o[(c+32|0)+_|0]^o[I+_|0])}XC(c+32|0,64),XC(c,32)}return s=c+112|0,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-192&-32,P(E|=0,o|=0,a- -64|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a- -64|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a- -64|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);if((o=31&i)&&(bg((c=a+32|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a- -64|0)),E=32,o=0,B>>>0<32)Q=0;else for(;m(A+o|0,C+o|0,a- -64|0),Q=E,(E=(o=E)+32|0)>>>0<=B>>>0;);return(o=31&B)&&(bg((E=a+32|0)|o,0,32-o|0),Ng(E,C+Q|0,o),m(a,E,a- -64|0),Ng(A+Q|0,a,o)),Y(I,g,i,B,a- -64|0),s=_,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-224&-32,P(E|=0,o|=0,a+96|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a+96|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a+96|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);(o=31&i)&&(bg((c=a- -64|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a+96|0));A:{I:{g:{C:{B:{if(A){if(E=32,g>>>0<32)break B;for(Q=0;d(A+Q|0,I+Q|0,a+96|0),Q=o=E,(E=o+32|0)>>>0<=g>>>0;);}else{if(Q=32,g>>>0<32)break g;for(E=0;d(a+32|0,I+E|0,a+96|0),E=o=Q,(Q=o+32|0)>>>0<=g>>>0;);}if(!(Q=31&g))break A;if(A)break C;break I}if(o=0,Q=g,!g)break A}x(A+o|0,I+o|0,Q,a+96|0);break A}if(o=0,Q=g,!g)break A}x(a+32|0,I+o|0,Q,a+96|0)}Y(a,B,i,g,a+96|0),o=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}o=oI(a,C);break A}o=NC(a,C)}return!A|!o||bg(A,0,g),s=_,0|o},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-528|0,G(_|=0,a|=0,c+400|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+400|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+416|0,y=c+432|0,h=c+448|0,e=c+464|0,D=c+480|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+520>>2]=i[D+8>>2],i[c+524>>2]=a,a=i[D+4>>2],i[c+512>>2]=i[D>>2],i[c+516>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+496|0,c+368|0,c+352|0),t=i[c+508>>2],i[D+8>>2]=i[c+504>>2],i[D+12>>2]=t,t=i[c+500>>2],i[D>>2]=i[c+496>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+508>>2],i[e+8>>2]=i[c+504>>2],i[e+12>>2]=t,t=i[c+500>>2],i[e>>2]=i[c+496>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+508>>2],i[h+8>>2]=i[c+504>>2],i[h+12>>2]=t,t=i[c+500>>2],i[h>>2]=i[c+496>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+508>>2],i[y+8>>2]=i[c+504>>2],i[y+12>>2]=t,t=i[c+500>>2],i[y>>2]=i[c+496>>2],i[y+4>>2]=t,t=i[c+412>>2],i[c+248>>2]=i[c+408>>2],i[c+252>>2]=t,t=i[c+404>>2],i[c+240>>2]=i[c+400>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+508>>2],i[r+8>>2]=i[c+504>>2],i[r+12>>2]=t,t=i[c+500>>2],i[r>>2]=i[c+496>>2],i[r+4>>2]=t,t=i[c+524>>2],i[c+216>>2]=i[c+520>>2],i[c+220>>2]=t,t=i[c+412>>2],i[c+200>>2]=i[c+408>>2],i[c+204>>2]=t,t=i[c+516>>2],i[c+208>>2]=i[c+512>>2],i[c+212>>2]=t,t=i[c+404>>2],i[c+192>>2]=i[c+400>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+412>>2]=n^i[c+508>>2],i[c+408>>2]=i[c+504>>2]^w,i[c+404>>2]=i[c+500>>2]^p,i[c+400>>2]=i[c+496>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);if((_=15&E)&&(bg((r=c+384|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+384>>2],r=i[c+388>>2],y=i[c+392>>2],h=i[c+396>>2],a=i[c+492>>2],Q=i[c+488>>2],i[c+520>>2]=Q,i[c+524>>2]=a,e=i[c+476>>2],i[c+184>>2]=i[c+472>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+484>>2],Q=i[c+480>>2],i[c+512>>2]=Q,i[c+516>>2]=a,e=i[c+468>>2],i[c+176>>2]=i[c+464>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+496|0,c+176|0,c+160|0),a=i[c+508>>2],i[c+488>>2]=i[c+504>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+152>>2]=i[c+456>>2],i[c+156>>2]=a,a=i[c+476>>2],i[c+136>>2]=i[c+472>>2],i[c+140>>2]=a,a=i[c+500>>2],i[c+480>>2]=i[c+496>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+144>>2]=i[c+448>>2],i[c+148>>2]=a,a=i[c+468>>2],i[c+128>>2]=i[c+464>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+508>>2],i[c+472>>2]=i[c+504>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+120>>2]=i[c+440>>2],i[c+124>>2]=a,a=i[c+460>>2],i[c+104>>2]=i[c+456>>2],i[c+108>>2]=a,a=i[c+500>>2],i[c+464>>2]=i[c+496>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+112>>2]=i[c+432>>2],i[c+116>>2]=a,a=i[c+452>>2],i[c+96>>2]=i[c+448>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+508>>2],i[c+456>>2]=i[c+504>>2],i[c+460>>2]=a,a=i[c+428>>2],i[c+88>>2]=i[c+424>>2],i[c+92>>2]=a,a=i[c+444>>2],i[c+72>>2]=i[c+440>>2],i[c+76>>2]=a,a=i[c+500>>2],i[c+448>>2]=i[c+496>>2],i[c+452>>2]=a,a=i[c+420>>2],i[c+80>>2]=i[c+416>>2],i[c+84>>2]=a,a=i[c+436>>2],i[c+64>>2]=i[c+432>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+508>>2],i[c+440>>2]=i[c+504>>2],i[c+444>>2]=a,a=i[c+412>>2],i[c+56>>2]=i[c+408>>2],i[c+60>>2]=a,a=i[c+428>>2],i[c+40>>2]=i[c+424>>2],i[c+44>>2]=a,a=i[c+500>>2],i[c+432>>2]=i[c+496>>2],i[c+436>>2]=a,a=i[c+404>>2],i[c+48>>2]=i[c+400>>2],i[c+52>>2]=a,a=i[c+420>>2],i[c+32>>2]=i[c+416>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+508>>2],i[c+424>>2]=i[c+504>>2],i[c+428>>2]=a,a=i[c+524>>2],i[c+24>>2]=i[c+520>>2],i[c+28>>2]=a,a=i[c+412>>2],i[c+8>>2]=i[c+408>>2],i[c+12>>2]=a,a=i[c+500>>2],i[c+416>>2]=i[c+496>>2],i[c+420>>2]=a,a=i[c+516>>2],i[c+16>>2]=i[c+512>>2],i[c+20>>2]=a,a=i[c+404>>2],i[c>>2]=i[c+400>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+412>>2]=h^i[c+508>>2],i[c+408>>2]=y^i[c+504>>2],i[c+404>>2]=r^i[c+500>>2],i[c+400>>2]=_^i[c+496>>2]),r=16,a=0,B>>>0<16)_=0;else for(;X(A+a|0,C+a|0,c+400|0),_=r,(r=(a=r)+16|0)>>>0<=B>>>0;);return(Q=15&B)&&(bg((a=c+384|0)|Q,0,16-Q|0),Ng(a,C+_|0,Q),X(C=c+512|0,a,c+400|0),Ng(A+_|0,C,Q)),l(I,g,E,B,c+400|0),s=c+528|0,0},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-544|0,G(_|=0,a|=0,c+432|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+432|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+448|0,y=c+464|0,h=c+480|0,e=c+496|0,D=c+512|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+392>>2]=i[D+8>>2],i[c+396>>2]=a,a=i[D+4>>2],i[c+384>>2]=i[D>>2],i[c+388>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+528|0,c+368|0,c+352|0),t=i[c+540>>2],i[D+8>>2]=i[c+536>>2],i[D+12>>2]=t,t=i[c+532>>2],i[D>>2]=i[c+528>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+540>>2],i[e+8>>2]=i[c+536>>2],i[e+12>>2]=t,t=i[c+532>>2],i[e>>2]=i[c+528>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+540>>2],i[h+8>>2]=i[c+536>>2],i[h+12>>2]=t,t=i[c+532>>2],i[h>>2]=i[c+528>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+540>>2],i[y+8>>2]=i[c+536>>2],i[y+12>>2]=t,t=i[c+532>>2],i[y>>2]=i[c+528>>2],i[y+4>>2]=t,t=i[c+444>>2],i[c+248>>2]=i[c+440>>2],i[c+252>>2]=t,t=i[c+436>>2],i[c+240>>2]=i[c+432>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+540>>2],i[r+8>>2]=i[c+536>>2],i[r+12>>2]=t,t=i[c+532>>2],i[r>>2]=i[c+528>>2],i[r+4>>2]=t,t=i[c+396>>2],i[c+216>>2]=i[c+392>>2],i[c+220>>2]=t,t=i[c+444>>2],i[c+200>>2]=i[c+440>>2],i[c+204>>2]=t,t=i[c+388>>2],i[c+208>>2]=i[c+384>>2],i[c+212>>2]=t,t=i[c+436>>2],i[c+192>>2]=i[c+432>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+444>>2]=n^i[c+540>>2],i[c+440>>2]=i[c+536>>2]^w,i[c+436>>2]=i[c+532>>2]^p,i[c+432>>2]=i[c+528>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);(_=15&E)&&(bg((r=c+416|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+416>>2],r=i[c+420>>2],y=i[c+424>>2],h=i[c+428>>2],a=i[c+524>>2],Q=i[c+520>>2],i[c+392>>2]=Q,i[c+396>>2]=a,e=i[c+508>>2],i[c+184>>2]=i[c+504>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+516>>2],Q=i[c+512>>2],i[c+384>>2]=Q,i[c+388>>2]=a,e=i[c+500>>2],i[c+176>>2]=i[c+496>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+528|0,c+176|0,c+160|0),a=i[c+540>>2],i[c+520>>2]=i[c+536>>2],i[c+524>>2]=a,a=i[c+492>>2],i[c+152>>2]=i[c+488>>2],i[c+156>>2]=a,a=i[c+508>>2],i[c+136>>2]=i[c+504>>2],i[c+140>>2]=a,a=i[c+532>>2],i[c+512>>2]=i[c+528>>2],i[c+516>>2]=a,a=i[c+484>>2],i[c+144>>2]=i[c+480>>2],i[c+148>>2]=a,a=i[c+500>>2],i[c+128>>2]=i[c+496>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+540>>2],i[c+504>>2]=i[c+536>>2],i[c+508>>2]=a,a=i[c+476>>2],i[c+120>>2]=i[c+472>>2],i[c+124>>2]=a,a=i[c+492>>2],i[c+104>>2]=i[c+488>>2],i[c+108>>2]=a,a=i[c+532>>2],i[c+496>>2]=i[c+528>>2],i[c+500>>2]=a,a=i[c+468>>2],i[c+112>>2]=i[c+464>>2],i[c+116>>2]=a,a=i[c+484>>2],i[c+96>>2]=i[c+480>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+540>>2],i[c+488>>2]=i[c+536>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+88>>2]=i[c+456>>2],i[c+92>>2]=a,a=i[c+476>>2],i[c+72>>2]=i[c+472>>2],i[c+76>>2]=a,a=i[c+532>>2],i[c+480>>2]=i[c+528>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+80>>2]=i[c+448>>2],i[c+84>>2]=a,a=i[c+468>>2],i[c+64>>2]=i[c+464>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+540>>2],i[c+472>>2]=i[c+536>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+56>>2]=i[c+440>>2],i[c+60>>2]=a,a=i[c+460>>2],i[c+40>>2]=i[c+456>>2],i[c+44>>2]=a,a=i[c+532>>2],i[c+464>>2]=i[c+528>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+48>>2]=i[c+432>>2],i[c+52>>2]=a,a=i[c+452>>2],i[c+32>>2]=i[c+448>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+540>>2],i[c+456>>2]=i[c+536>>2],i[c+460>>2]=a,a=i[c+396>>2],i[c+24>>2]=i[c+392>>2],i[c+28>>2]=a,a=i[c+444>>2],i[c+8>>2]=i[c+440>>2],i[c+12>>2]=a,a=i[c+532>>2],i[c+448>>2]=i[c+528>>2],i[c+452>>2]=a,a=i[c+388>>2],i[c+16>>2]=i[c+384>>2],i[c+20>>2]=a,a=i[c+436>>2],i[c>>2]=i[c+432>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+444>>2]=h^i[c+540>>2],i[c+440>>2]=y^i[c+536>>2],i[c+436>>2]=r^i[c+532>>2],i[c+432>>2]=_^i[c+528>>2]);A:{I:{g:{C:{B:{if(A){if(r=16,g>>>0<16)break B;for(_=0;O(A+_|0,I+_|0,c+432|0),_=a=r,(r=a+16|0)>>>0<=g>>>0;);}else{if(_=16,g>>>0<16)break g;for(r=0;O(c+528|0,I+r|0,c+432|0),r=a=_,(_=a+16|0)>>>0<=g>>>0;);}if(!(_=15&g))break A;if(A)break C;break I}if(a=0,!(_=g))break A}Z(A+a|0,I+a|0,_,c+432|0);break A}if(a=0,!(_=g))break A}Z(c+528|0,I+a|0,_,c+432|0)}l(c+384|0,B,E,g,c+432|0),a=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}a=oI(c+384|0,C);break A}a=NC(c+384|0,C)}return!A|!a||bg(A,0,g),s=c+544|0,0|a},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+52>>2]=0,i[Q+44>>2]=B,i[Q+56>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+60>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+44>>2]=B,i[Q+52>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+56>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,i[Q+60>>2]=o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B,Q,E,a){var _;return A|=0,I|=0,B|=0,Q|=0,E|=0,a|=0,s=_=s+-64|0,(g|=0)|(C|=0)&&(i[_+8>>2]=2036477234,i[_+12>>2]=1797285236,i[_>>2]=1634760805,i[_+4>>2]=857760878,i[_+16>>2]=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,i[_+20>>2]=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,i[_+24>>2]=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,i[_+28>>2]=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,i[_+32>>2]=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,i[_+36>>2]=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,i[_+40>>2]=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,i[_+44>>2]=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,i[_+48>>2]=Q,i[_+52>>2]=E,i[_+56>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[_+60>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,z(_,I,A,g,C),XC(_,64)),s=_- -64|0,0},function(A,I,g,C,B,Q,E){var a;return A|=0,I|=0,B|=0,Q|=0,E|=0,s=a=s+-64|0,(g|=0)|(C|=0)&&(i[a+8>>2]=2036477234,i[a+12>>2]=1797285236,i[a>>2]=1634760805,i[a+4>>2]=857760878,i[a+16>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+20>>2]=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a+24>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+28>>2]=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+32>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+36>>2]=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+40>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,E=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+48>>2]=Q,i[a+44>>2]=E,i[a+52>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[a+56>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[a+60>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,z(a,I,A,g,C),XC(a,64)),s=a- -64|0,0}],fB.grow=function(A){var I=this.length;return this.length=this.length+A,I},fB.set=function(A,I){this[A]=I},fB.get=function(A){return this[A]},fB);function wB(){return g.byteLength/65536|0}return{e:Object.create(Object.prototype,{grow:{value:function(A){A|=0;var B=0|wB(),Q=B+A|0;if(B>>0<4294967280?(xI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},D:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|mI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},E:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(mI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},F:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|dI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},G:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=dI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},H:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|HI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},I:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=HI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},J:BB,K:aB,L:hB,M:CB,N:EB,O:PC,P:BB,Q:eB,R:hB,S:CB,T:EB,U:PC,V:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|pI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},W:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(pI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},X:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|hI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Y:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=hI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},Z:BB,_:_B,$:hB,aa:CB,ba:EB,ca:PC,da:BB,ea:BB,fa:function(){return 1462},ga:_I,ha:JI,ia:PC,ja:BB,ka:BB,la:IB,ma:PC,na:mA,oa:function(A,I,g,C){return 0|mC(A|=0,I|=0,g|=0,C|=0)},pa:Sg,qa:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-240|0,mA(Q,B|=0,32),UA(Q,I,g,C),JA(Q,I=Q+208|0),UA(g=Q+104|0,I,32,0),JA(g,A),XC(I,32),s=Q+240|0,0},ra:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-272|0,mA(i=Q+32|0,B|=0,32),UA(i,I,g,C),JA(i,I=Q+240|0),UA(g=Q+136|0,I,32,0),JA(g,Q),XC(I,32),I=NC(A,Q),g=MI(Q,A,32),s=Q+272|0,((0|A)==(0|Q)?-1:I)|g},sa:gB,ta:BB,ua:$C,va:PC,wa:iI,xa:EC,ya:wg,za:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-480|0,iI(Q,B|=0,32),SA(Q,I,g,C),j(Q,I=Q+416|0),SA(g=Q+208|0,I,64,0),j(g,A),XC(I,64),s=Q+480|0,0},Aa:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-544|0,iI(i=Q- -64|0,B|=0,32),SA(i,I,g,C),j(i,I=Q+480|0),SA(g=Q+272|0,I,64,0),j(g,Q),XC(I,64),I=GC(A,Q),g=MI(Q,A,64),s=Q+544|0,((0|A)==(0|Q)?-1:I)|g},Ba:BB,Ca:BB,Da:$C,Ea:PC,Fa:yC,Ga:EC,Ha:function(A,I){I|=0;var g,B=0;return s=g=s+-64|0,wg(A|=0,g),B=i[g+28>>2],A=i[g+24>>2],C[I+24|0]=A,C[I+25|0]=A>>>8,C[I+26|0]=A>>>16,C[I+27|0]=A>>>24,C[I+28|0]=B,C[I+29|0]=B>>>8,C[I+30|0]=B>>>16,C[I+31|0]=B>>>24,B=i[g+20>>2],A=i[g+16>>2],C[I+16|0]=A,C[I+17|0]=A>>>8,C[I+18|0]=A>>>16,C[I+19|0]=A>>>24,C[I+20|0]=B,C[I+21|0]=B>>>8,C[I+22|0]=B>>>16,C[I+23|0]=B>>>24,B=i[g+12>>2],A=i[g+8>>2],C[I+8|0]=A,C[I+9|0]=A>>>8,C[I+10|0]=A>>>16,C[I+11|0]=A>>>24,C[I+12|0]=B,C[I+13|0]=B>>>8,C[I+14|0]=B>>>16,C[I+15|0]=B>>>24,B=i[g+4>>2],A=i[g>>2],C[0|I]=A,C[I+1|0]=A>>>8,C[I+2|0]=A>>>16,C[I+3|0]=A>>>24,C[I+4|0]=B,C[I+5|0]=B>>>8,C[I+6|0]=B>>>16,C[I+7|0]=B>>>24,s=g- -64|0,0},Ia:_I,Ja:JI,Ka:BB,La:BB,Ma:BB,Na:BB,Oa:_B,Pa:BB,Qa:CB,Ra:CB,Sa:EB,Ta:function(){return 1476},Ua:function(A,I,g){return 0|cI(A|=0,I|=0,g|=0)},Va:UC,Wa:cC,Xa:Pg,Ya:qg,Za:Bg,_a:Qg,$a:Yg,ab:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=aI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},bb:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|aI(A+16|0,A,I,g,C,B,i)},cb:function(A,I,g,C,B,Q,i){return 0|sg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},db:Jg,eb:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=eI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},fb:hg,gb:function(A,I,g,C,B,Q,i){return 0|_g(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},hb:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,UC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=sg(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},ib:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=_g(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},jb:oB,kb:cI,lb:sC,mb:pg,nb:Pg,ob:qg,pb:Bg,qb:Qg,rb:BB,sb:BB,tb:BB,ub:BB,vb:_B,wb:BB,xb:CB,yb:CB,zb:EB,Ab:yA,Bb:BB,Cb:CB,Db:BB,Eb:CB,Fb:wA,Gb:BB,Hb:CB,Ib:BB,Jb:CB,Kb:AC,Lb:gB,Mb:CB,Nb:BB,Ob:CB,Pb:IC,Qb:gB,Rb:CB,Sb:BB,Tb:CB,Ub:gC,Vb:gB,Wb:CB,Xb:BB,Yb:CB,Zb:CB,_b:gB,$b:BB,ac:CB,bc:gB,cc:BB,dc:WC,ec:ZC,fc:function(A,I,g,C,B,Q,i){return 0|kC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},gc:iC,hc:function(A,I,g,C){return 0|lC(A|=0,I|=0,g|=0,C|=0)},ic:eC,jc:PC,kc:CB,lc:gB,mc:BB,nc:CB,oc:gB,pc:BB,qc:CB,rc:CB,sc:ZC,tc:PC,uc:kC,vc:function(A,I,g,C,B,Q,i,o,E){return 0|QA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0)},wc:eA,xc:function(A,I,g,B,i,E){A|=0,I|=0,i|=0,E|=0;var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(a=-1,!((B|=0)-65>>>0<4294967232|(g|=0)>>>0>64)){A:{if(!g||!I){if(((t=255&B)-65&255)>>>0>191){i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),I=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,I=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),a=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,a=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=a,C[A+49|0]=a>>>8,C[A+50|0]=a>>>16,C[A+51|0]=a>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=I,C[A+33|0]=I>>>8,C[A+34|0]=I>>>16,C[A+35|0]=I>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I=-222443256^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106;break A}rC(),Q()}s=e=s-128|0,!I|((y=255&B)-65&255)>>>0<=191|((t=255&g)-65&255)>>>0<=191?(rC(),Q()):(i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),a=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,a=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),r=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,r=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=r,C[A+49|0]=r>>>8,C[A+50|0]=r>>>16,C[A+51|0]=r>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,g=-222443256^(t<<8|y),C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,g=t>>>24^1779033703,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=Ng(bg(e,0,128),I,t),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)}a=0}return 0|a},yc:lC,zc:Hg,Ac:gB,Bc:CC,Cc:function(){return 1531},Dc:BB,Ec:function(){return 104},Fc:$I,Gc:function(A,I,g,C){return 0|UA(A|=0,I|=0,g|=0,C|=0)},Hc:JA,Ic:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0;return s=B=s-112|0,Q=i[8811],i[B+16>>2]=i[8810],i[B+20>>2]=Q,Q=i[8813],i[B+24>>2]=i[8812],i[B+28>>2]=Q,Q=i[8815],i[B+32>>2]=i[8814],i[B+36>>2]=Q,i[B+40>>2]=0,i[B+44>>2]=0,Q=i[8809],i[B+8>>2]=i[8808],i[B+12>>2]=Q,UA(Q=B+8|0,I,g,C),JA(Q,A),s=B+112|0,0},Jc:gB,Kc:IB,Lc:SI,Mc:QC,Nc:j,Oc:CC,Pc:CB,Qc:gB,Rc:eB,Sc:BB,Tc:YI,Uc:WC,Vc:CB,Wc:gB,Xc:eB,Yc:BB,Zc:YI,_c:PC,$c:function(A,I,g){return 0|mA(A|=0,I|=0,g|=0)},ad:function(A,I,g){return 0|mC(A|=0,I|=0,g|=0,0)},bd:function(A,I){return Sg(A|=0,I|=0),XC(A,4),0},cd:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-208|0,mA(Q,I|=0,g|=0),mC(Q,C,B,0),Sg(Q,A),XC(Q,4),s=Q+208|0,0},dd:PC,ed:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-256|0,C[E+15|0]=1,I>>>0<=8160){if(I>>>0>=32)for(t=A-32|0,a=32;c=a,mA(a=E+48|0,Q,32),_&&mC(a,_+t|0,32,0),mC(a=E+48|0,g,B,0),mC(a,E+15|0,1,0),Sg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)+32|0)>>>0<=I>>>0;);(_=31&I)&&(mA(I=E+48|0,Q,32),c&&mC(I,(A+c|0)-32|0,32,0),mC(I=E+48|0,g,B,0),mC(I,E+15|0,1,0),Sg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,32)),XC(E+48|0,208),A=0}else i[9404]=28,A=-1;return s=E+256|0,0|A},fd:BB,gd:hB,hd:function(){return 8160},id:IB,jd:yC,kd:function(A,I,g){return 0|dC(A|=0,I|=0,g|=0,0)},ld:function(A,I){return wg(A|=0,I|=0),XC(A,4),0},md:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-416|0,iI(Q,I|=0,g|=0),dC(Q,C,B,0),wg(Q,A),XC(Q,4),s=Q+416|0,0},nd:function(A){ag(A|=0,64)},od:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-496|0,C[E+15|0]=1,I>>>0<=16320){if(I>>>0>=64)for(t=A+-64|0,a=64;c=a,iI(a=E+80|0,Q,64),_&&dC(a,_+t|0,64,0),dC(a=E+80|0,g,B,0),dC(a,E+15|0,1,0),wg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)- -64|0)>>>0<=I>>>0;);(_=63&I)&&(iI(I=E+80|0,Q,64),c&&dC(I,(A+c|0)-64|0,64,0),dC(I=E+80|0,g,B,0),dC(I,E+15|0,1,0),wg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,64)),XC(E+80|0,416),A=0}else i[9404]=28,A=-1;return s=E+496|0,0|A},pd:gB,qd:hB,rd:function(){return 16320},sd:$C,td:function(A,I,g){return A|=0,kC(I|=0,32,g|=0,32,0,0,0),0|KC(A,I)},ud:function(A,I){return A|=0,ag(I|=0,32),0|KC(A,I)},vd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,g,32,0),lC(I,i,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+E|0]=o[0|g],C[A+B|0]=o[g+32|0],C[(g=1|A)+E|0]=o[I+g|0],C[g+B|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},wd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,i,32,0),lC(I,g,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+B|0]=o[0|g],C[A+E|0]=o[g+32|0],C[(g=1|A)+B|0]=o[I+g|0],C[g+E|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},xd:BB,yd:BB,zd:BB,Ad:BB,Bd:function(){return 1332},Cd:TC,Dd:CB,Ed:BB,Fd:Vg,Gd:Zg,Hd:function(A,I){return 0|wC(A|=0,I|=0)},Id:BC,Jd:function(A,I){return 0|nC(A|=0,I|=0)},Kd:function(){return 1494},Ld:PC,Md:Vg,Nd:Zg,Od:wC,Pd:BC,Qd:nC,Rd:CB,Sd:BB,Td:TC,Ud:PC,Vd:yB,Wd:CB,Xd:cB,Yd:hB,Zd:cB,_d:CB,$d:AB,ae:function(){return 1554},be:rB,ce:cB,de:VC,ee:xC,fe:sB,ge:LC,he:function(){return 6},ie:function(){return 134217728},je:eB,ke:function(){return 536870912},le:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|rI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},me:function(A,I,g,C,B,Q,i){return 0|OI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)},ne:function(A,I,g,C){return 0|bC(A|=0,I|=0,g|=0,C|=0)},oe:function(A,I,g,C){return 0|HC(A|=0,I|=0,g|=0,C|=0)},pe:function(A,I,g,C){return 0|YC(A|=0,I|=0,g|=0,C|=0)},qe:tB,re:CB,se:cB,te:hB,ue:cB,ve:CB,we:AB,xe:OC,ye:yB,ze:cB,Ae:VC,Be:xC,Ce:tB,De:qC,Ee:rB,Fe:RC,Ge:sB,He:vC,Ie:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|yI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Je:Fg,Ke:function(A,I,g,C){return 0|JC(A|=0,I|=0,g|=0,C|=0)},Le:yB,Me:tB,Ne:tB,Oe:CB,Pe:cB,Qe:hB,Re:cB,Se:CB,Te:AB,Ue:OC,Ve:yB,We:cB,Xe:VC,Ye:xC,Ze:tB,_e:qC,$e:rB,af:RC,bf:sB,cf:vC,df:function(A,I,g,C,B,Q,o,E,a,_,c){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,E|=0,a|=0,_|=0,I|=0,B|=0,E|=0;A:{switch((c|=0)-1|0){case 0:A=rI(A,I,g,C,B,Q,o,E,a,_,1);break A;case 1:A=yI(A,I,g,C,B,Q,o,E,a,_,2);break A}i[9404]=28,A=-1}return 0|A},ef:Fg,ff:function(A,I,g,C,B,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,o|=0,g|=0,B|=0;A:{switch((E|=0)-1|0){case 1:A=TI(A,I,g,C,B,i,o);break A;default:rC(),Q();case 0:}A=OI(A,I,g,C,B,i,o)}return 0|A},gf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=bC(A,I,g,C):A=JC(A,I,g,C),0|A},hf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=HC(A,I,g,C):A=YC(A,I,g,C),0|A},jf:function(){return 1156},kf:function(){return 1443},lf:KC,mf:tC,nf:BB,of:BB,pf:CI,qf:pC,rf:BB,sf:BB,tf:BB,uf:_B,vf:BB,wf:CB,xf:CB,yf:EB,zf:function(){return 1486},Af:Pg,Bf:qg,Cf:PC,Df:Yg,Ef:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),aI(A+16|0,A,I,g,C,B,i),0},Ff:Jg,Gf:hg,Hf:Pg,If:qg,Jf:BB,Kf:_B,Lf:BB,Mf:CB,Nf:CB,Of:EB,Pf:PC,Qf:PC,Rf:function(A,I,g){return A|=0,g|=0,ag(I|=0,24),yA(A,I,g,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Sf:function(A,I,g){return yA(A|=0,I|=0,g|=0,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Tf:function(A){var I,g=0,B=0;s=I=s-48|0,g=o[28+(A|=0)|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[I+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[I+28>>2]=g,g=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[I+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[I+20>>2]=g,g=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[I>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I+4>>2]=g,g=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[I+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[I+12>>2]=g,g=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[I+32>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[I+36>>2]=g,xg(I,I,40,0,A+32|0,A),g=i[I+28>>2],B=i[I+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,B=i[I+36>>2],g=i[I+32>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,s=I+48|0},Uf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,a|=0,_|=0,t|=0,r|=0;var e,y=0,h=0,D=0;return y=E|=0,y|=E=0,e=E|(c|=0),s=E=s-384|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),!a&y>>>0<4294967279?(jg(h=E+16|0,64,0,D=A+32|0,A),wC(c=E+80|0,h),XC(h,64),SC(c,_,e,t),SC(c,35216,0-e&15,0),i[E+72>>2]=0,i[E+76>>2]=0,i[(_=E- -64|0)>>2]=0,i[_+4>>2]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,C[E+16|0]=r,Cg(h,h,64,0,D,1,A),SC(c,h,64,0),C[0|I]=o[E+16|0],Cg(I=I+1|0,B,y,a,D,2,A),SC(c,I,y,a),SC(c,35216,15&y,0),i[E+8>>2]=e,i[E+12>>2]=t,SC(c,B=E+8|0,8,0),i[E+8>>2]=y- -64,i[E+12>>2]=a-((y>>>0<4294967232)-1|0),SC(c,B,8,0),nC(c,I=I+y|0),XC(c,256),C[A+36|0]=o[A+36|0]^o[0|I],C[A+37|0]=o[A+37|0]^o[I+1|0],C[A+38|0]=o[A+38|0]^o[I+2|0],C[A+39|0]=o[A+39|0]^o[I+3|0],C[A+40|0]=o[A+40|0]^o[I+4|0],C[A+41|0]=o[A+41|0]^o[I+5|0],C[A+42|0]=o[A+42|0]^o[I+6|0],C[A+43|0]=o[A+43|0]^o[I+7|0],XI(D),(2&r||GI(D,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[E+360>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[E+364>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[E+352>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[E+356>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[E+336>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[E+340>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[E+344>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[E+348>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[E+368>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[E+372>>2]=I,xg(I=E+336|0,I,40,0,D,A),I=i[E+364>>2],B=i[E+360>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[E+356>>2],B=i[E+352>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[E+348>>2],B=i[E+344>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[E+340>>2],B=i[E+336>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[E+368>>2],B=i[E+372>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24),g&&(a=(A=y+17|0)>>>0<17?a+1|0:a,i[g>>2]=A,i[g+4>>2]=a),s=E+384|0):(rC(),Q()),0},Vf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,E|=0,c|=0,r|=0;var e,y=0,h=0,D=0,f=0,p=0,w=0;y=a|=0,a=_|=0,h=0|y,e=t|=0,s=_=s-400|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),B&&(C[0|B]=255),w=-1;A:{I:{if(!((t=h>>>0<17)&!a)){if(p=y=a-t|0,!y&(t=h-17|0)>>>0>=4294967279|y)break I;jg(D=_+32|0,64,0,f=A+32|0,A),wC(y=_+96|0,D),XC(D,64),SC(y,c,e,r),SC(y,35216,0-e&15,0),i[_+88>>2]=0,i[_+92>>2]=0,i[_+80>>2]=0,i[_+84>>2]=0,i[_+72>>2]=0,i[_+76>>2]=0,i[(c=_- -64|0)>>2]=0,i[c+4>>2]=0,i[_+56>>2]=0,i[_+60>>2]=0,i[_+48>>2]=0,i[_+52>>2]=0,i[_+40>>2]=0,i[_+44>>2]=0,i[_+32>>2]=0,i[_+36>>2]=0,C[_+32|0]=o[0|E],Cg(D,D,64,0,f,1,A),c=o[_+32|0],C[_+32|0]=o[0|E],SC(y,D,64,0),SC(y,E=E+1|0,t,p),SC(y,35216,h-1&15,0),i[_+24>>2]=e,i[_+28>>2]=r,SC(y,r=_+24|0,8,0),a=(h=h+47|0)>>>0<47?a+1|0:a,i[_+24>>2]=h,i[_+28>>2]=a,SC(y,r,8,0),nC(y,_),XC(y,256),MI(_,E+t|0,16)?XC(_,16):(Cg(I,E,t,p,f,2,A),C[A+36|0]=o[A+36|0]^o[0|_],C[A+37|0]=o[A+37|0]^o[_+1|0],C[A+38|0]=o[A+38|0]^o[_+2|0],C[A+39|0]=o[A+39|0]^o[_+3|0],C[A+40|0]=o[A+40|0]^o[_+4|0],C[A+41|0]=o[A+41|0]^o[_+5|0],C[A+42|0]=o[A+42|0]^o[_+6|0],C[A+43|0]=o[A+43|0]^o[_+7|0],XI(f),(2&c||GI(f,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[_+376>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[_+380>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[_+368>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[_+372>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[_+352>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[_+356>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[_+360>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[_+364>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[_+384>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[_+388>>2]=I,xg(I=_+352|0,I,40,0,f,A),I=i[_+380>>2],E=i[_+376>>2],C[A+24|0]=E,C[A+25|0]=E>>>8,C[A+26|0]=E>>>16,C[A+27|0]=E>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[_+372>>2],E=i[_+368>>2],C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[_+364>>2],E=i[_+360>>2],C[A+8|0]=E,C[A+9|0]=E>>>8,C[A+10|0]=E>>>16,C[A+11|0]=E>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[_+356>>2],E=i[_+352>>2],C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[_+384>>2],E=i[_+388>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=E,C[A+41|0]=E>>>8,C[A+42|0]=E>>>16,C[A+43|0]=E>>>24),g&&(i[g>>2]=t,i[g+4>>2]=p),w=0,B&&(C[0|B]=c))}s=_+400|0;break A}rC(),Q()}return 0|w},Wf:function(){return 52},Xf:function(){return 17},Yf:_B,Zf:BB,_f:function(){return-18},$f:hB,ag:yB,bg:tB,cg:rB,dg:eB,eg:CB,fg:function(){return 1521},gg:T,hg:zC,ig:eB,jg:CB,kg:T,lg:IB,mg:gB,ng:BB,og:BB,pg:gB,qg:QB,rg:function(){return 1454},sg:function(A,I,g){return 0|FA(A|=0,I|=0,g|=0)},tg:function(A,I){return 0|YA(A|=0,I|=0)},ug:LI,vg:bI,wg:vg,xg:Wg,yg:function(A){return 0|uC(A|=0)},zg:QC,Ag:function(A,I,g,C){return 0|ng(A|=0,I|=0,g|=0,C|=0)},Bg:function(A,I,g){return 0|Kg(A|=0,I|=0,g|=0)},Cg:IB,Dg:gB,Eg:BB,Fg:BB,Gg:gB,Hg:QB,Ig:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[8+(_=I|=0)|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,B=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,Q=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,E=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,I=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=Q,C[A+17|0]=Q>>>8,C[A+18|0]=Q>>>16,C[A+19|0]=Q>>>24,C[A+20|0]=i,C[A+21|0]=i>>>8,C[A+22|0]=i>>>16,C[A+23|0]=i>>>24,C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=B,C[A+13|0]=B>>>8,C[A+14|0]=B>>>16,C[A+15|0]=B>>>24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0},Jg:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[32+(_=I|=0)|0]|o[_+33|0]<<8|o[_+34|0]<<16|o[_+35|0]<<24,B=o[_+36|0]|o[_+37|0]<<8|o[_+38|0]<<16|o[_+39|0]<<24,Q=o[_+40|0]|o[_+41|0]<<8|o[_+42|0]<<16|o[_+43|0]<<24,i=o[_+44|0]|o[_+45|0]<<8|o[_+46|0]<<16|o[_+47|0]<<24,E=o[_+48|0]|o[_+49|0]<<8|o[_+50|0]<<16|o[_+51|0]<<24,I=o[_+52|0]|o[_+53|0]<<8|o[_+54|0]<<16|o[_+55|0]<<24,a=o[_+60|0]|o[_+61|0]<<8|o[_+62|0]<<16|o[_+63|0]<<24,_=o[_+56|0]|o[_+57|0]<<8|o[_+58|0]<<16|o[_+59|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,C[A+8|0]=Q,C[A+9|0]=Q>>>8,C[A+10|0]=Q>>>16,C[A+11|0]=Q>>>24,C[A+12|0]=i,C[A+13|0]=i>>>8,C[A+14|0]=i>>>16,C[A+15|0]=i>>>24,C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,0},Kg:uC,Lg:QC,Mg:ng,Ng:Kg,Og:FA,Pg:YA,Qg:function(A,I){A|=0;var g,C=0,B=0,Q=0,o=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0;return s=g=s-256|0,SA=-1,KI(I|=0)||qA(C=g+96|0,I)||gA(C)&&(SA=0,u=i[g+172>>2],i[g+36>>2]=0-u,n=i[g+168>>2],i[g+32>>2]=0-n,x=i[g+164>>2],i[g+28>>2]=0-x,k=i[g+160>>2],i[g+24>>2]=0-k,v=i[g+156>>2],i[g+20>>2]=0-v,F=i[g+152>>2],i[g+16>>2]=0-F,R=i[g+148>>2],i[g+12>>2]=0-R,S=i[g+144>>2],i[g+8>>2]=0-S,L=i[g+140>>2],i[g+4>>2]=0-L,Q=i[g+136>>2],i[g>>2]=1-Q,LA(g,g),I=Ig(N=i[g+4>>2],d=N>>31,G=v<<1,IA=G>>31),C=f,B=Ig(p=i[g>>2],M=p>>31,k,K=k>>31),C=f+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(o=Ig(U=i[g+8>>2],P=U>>31,F,b=F>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(m=i[g+12>>2],j=m>>31,W=R<<1,CA=W>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(q=i[g+16>>2],V=q>>31,S,H=S>>31),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,fA=o=i[g+20>>2],h=Ig(o,BA=o>>31,Z=L<<1,QA=Z>>31),B=f+I|0,B=(C=h+C|0)>>>0>>0?B+1|0:B,pA=r=i[g+24>>2],I=(Q=Ig(r,sA=r>>31,h=Q+1|0,Y=h>>31))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,iA=i[g+28>>2],B=(Q=Ig(w=a(iA,19),X=w>>31,T=u<<1,oA=T>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,NA=i[g+32>>2],B=Ig(_=a(NA,19),z=_>>31,n,J=n>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,GA=i[g+36>>2],B=Ig(y=a(GA,19),l=y>>31,$=x<<1,EA=$>>31),I=f+I|0,c=C=B+C|0,Q=C>>>0>>0?I+1|0:I,I=Ig(F,b,N,d),C=f,E=Ig(p,M,v,aA=v>>31),B=f+C|0,B=(I=E+I|0)>>>0>>0?B+1|0:B,E=Ig(U,P,R,_A=R>>31),C=f+B|0,C=(I=E+I|0)>>>0>>0?C+1|0:C,B=(E=Ig(S,H,m,j))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(q,V,L,cA=L>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(h,Y,o,BA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,E=Ig(r=a(r,19),AA=r>>31,u,tA=u>>31),B=f+I|0,B=(C=E+C|0)>>>0>>0?B+1|0:B,I=(E=Ig(n,J,w,X))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(E=Ig(_,z,x,rA=x>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(y,l,k,K),I=f+I|0,wA=C=C+B|0,O=C>>>0>>0?I+1|0:I,I=Ig(N,d,W,CA),B=f,C=(E=Ig(p,M,F,b))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,E=Ig(S,H,U,P),B=f+I|0,B=(C=E+C|0)>>>0>>0?B+1|0:B,I=(E=Ig(m,j,Z,QA))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(E=Ig(h,Y,q,V))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(E=a(o,19),eA=E>>31,T,oA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,r,AA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,o=Ig(w,X,$,EA),B=f+I|0,B=(C=o+C|0)>>>0>>0?B+1|0:B,I=(o=Ig(_,z,k,K))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(o=Ig(y,l,G,IA))+I|0,I=f+C|0,MA=B,KA=I=B>>>0>>0?I+1|0:I,UA=B=B+33554432|0,bA=I=B>>>0<33554432?I+1|0:I,B=(67108863&I)<<6|B>>>26,I=(I>>26)+O|0,wA=o=B+wA|0,I=B>>>0>o>>>0?I+1|0:I,HA=o=o+16777216|0,I=(C=(B=o>>>0<16777216?I+1|0:I)>>25)+Q|0,I=(B=(o=(33554431&B)<<7|o>>>25)+c|0)>>>0>>0?I+1|0:I,D=C=B+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+72>>2]=B-(-67108864&C),I=Ig(N,d,Z,QA),C=f,Q=Ig(p,M,S,H),B=f+C|0,B=(I=Q+I|0)>>>0>>0?B+1|0:B,C=(Q=Ig(h,Y,U,P))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(Q=a(m,19),yA=Q>>31,T,oA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(c=Ig(O=a(q,19),hA=O>>31,n,J))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,c=Ig($,EA,E,eA),I=f+C|0,I=(B=c+B|0)>>>0>>0?I+1|0:I,C=(c=Ig(k,K,r,AA))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,c=Ig(w,X,G,IA),I=f+B|0,I=(C=c+C|0)>>>0>>0?I+1|0:I,B=Ig(_,z,F,b),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(c=Ig(y,l,W,CA))+C|0,C=f+I|0,e=B,nA=B>>>0>>0?C+1|0:C,I=Ig(h,Y,N,d),C=f,B=(c=Ig(p,M,L,cA))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,c=C=a(U,19),C=(t=Ig(C,DA=C>>31,u,tA))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(n,J,Q,yA),I=f+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(O,hA,x,rA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(t=Ig(k,K,E,eA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,t=Ig(r,AA,v,aA),I=f+C|0,I=(B=t+B|0)>>>0>>0?I+1|0:I,C=(t=Ig(F,b,w,X))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(_,z,R,_A),I=f+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(y,l,S,H),I=f+I|0,kA=C=B+C|0,t=C>>>0>>0?I+1|0:I,I=Ig(I=a(N,19),I>>31,T,oA),C=f,B=Ig(p,M,h,Y),C=f+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(c=Ig(n,J,c,DA))+I|0,I=f+C|0,C=(Q=Ig(Q,yA,$,EA))+B|0,B=f+(B>>>0>>0?I+1|0:I)|0,B=C>>>0>>0?B+1|0:B,Q=Ig(k,K,O,hA),I=f+B|0,I=(C=Q+C|0)>>>0>>0?I+1|0:I,B=Ig(G,IA,E,eA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(F,b,r,AA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,Q=Ig(w,X,W,CA),I=f+C|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,C=(Q=Ig(_,z,S,H))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,Q=Ig(y,l,Z,QA),I=f+B|0,c=C=Q+C|0,yA=I=C>>>0>>0?I+1|0:I,DA=C=C+33554432|0,YA=I=C>>>0<33554432?I+1|0:I,B=I>>26,I=(67108863&I)<<6|C>>>26,C=B+t|0,t=Q=I+kA|0,I=C=I>>>0>Q>>>0?C+1|0:C,kA=Q=Q+16777216|0,Q=(33554431&(I=Q>>>0<16777216?I+1|0:I))<<7|Q>>>25,I=(I>>25)+nA|0,I=(C=Q+e|0)>>>0>>0?I+1|0:I,B=C,nA=C=C+33554432|0,Q=I=C>>>0<33554432?I+1|0:I,i[g+56>>2]=B-(-67108864&C),I=Ig(k,K,N,d),B=f,C=(e=Ig(p,M,x,rA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(U,P,v,aA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(F,b,m,j),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=Ig(q,V,R,_A),B=f+I|0,B=(C=e+C|0)>>>0>>0?B+1|0:B,I=(e=Ig(S,H,fA,BA))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(e=Ig(L,cA,pA,sA))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(iA,FA=iA>>31,h,Y),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(_,z,u,tA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=(B=C)+(C=Ig(y,l,n,J))|0,B=f+I|0,C=(I=o>>26)+(C=C>>>0>e>>>0?B+1|0:B)|0,D=B=(o=(67108863&o)<<6|D>>>26)+e|0,I=C=B>>>0>>0?C+1|0:C,e=B=B+16777216|0,o=I=B>>>0<16777216?I+1|0:I,i[g+76>>2]=D-(-33554432&B),I=Ig(S,H,N,d),C=f,D=Ig(p,M,R,_A),B=f+C|0,B=(I=D+I|0)>>>0>>0?B+1|0:B,D=Ig(U,P,L,cA),C=f+B|0,C=(I=D+I|0)>>>0>>0?C+1|0:C,B=(D=Ig(h,Y,m,j))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(O,hA,u,tA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,E,eA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,C=(r=Ig(r,AA,x,rA))+C|0,B=f+I|0,I=(w=Ig(k,K,w,X))+C|0,C=f+(C>>>0>>0?B+1|0:B)|0,B=(_=Ig(_,z,v,aA))+I|0,I=f+(I>>>0>>0?C+1|0:C)|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(y,l,F,b),I=f+I|0,D=C=C+B|0,I=(I=C>>>0>>0?I+1|0:I)+(C=Q>>26)|0,_=Q=D+(B=(67108863&Q)<<6|nA>>>26)|0,I=B>>>0>Q>>>0?I+1|0:I,w=C=Q+16777216|0,Q=B=C>>>0<16777216?I+1|0:I,i[g+60>>2]=_-(-33554432&C),I=Ig(N,d,$,EA),B=f,C=(_=Ig(p,M,n,J))+I|0,I=f+B|0,I=C>>>0<_>>>0?I+1|0:I,B=Ig(k,K,U,P),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,_=Ig(m,j,G,IA),B=f+I|0,B=(C=_+C|0)>>>0<_>>>0?B+1|0:B,I=(_=Ig(F,b,q,V))+C|0,C=f+B|0,C=I>>>0<_>>>0?C+1|0:C,B=(_=Ig(W,CA,fA,BA))+I|0,I=f+C|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(S,H,pA,sA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=C,C=Ig(iA,FA,Z,QA),I=f+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,_=C=NA,C=(G=Ig(C,r=C>>31,h,Y))+B|0,B=f+I|0,I=(y=Ig(y,l,T,oA))+C|0,C=f+(C>>>0>>0?B+1|0:B)|0,B=I>>>0>>0?C+1|0:C,C=I,I=(I=o>>25)+B|0,I=(C=C+(o=(33554431&o)<<7|e>>>25)|0)>>>0>>0?I+1|0:I,B=C,y=C=C+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+80>>2]=B-(-67108864&C),C=Q>>25,B=(Q=(33554431&Q)<<7|w>>>25)+(MA-(I=-67108864&UA)|0)|0,I=C+(KA-((I>>>0>MA>>>0)+bA|0)|0)|0,I=B>>>0>>0?I+1|0:I,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+(G=wA-(-33554432&HA)|0)|0,i[g+68>>2]=I,i[g+64>>2]=B-(-67108864&C),I=Ig(n,J,N,d),B=f,C=(Q=Ig(p,M,u,tA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=(Q=Ig(U,P,x,rA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,I=(Q=Ig(k,K,m,j))+B|0,B=f+C|0,B=I>>>0>>0?B+1|0:B,C=(Q=Ig(q,V,v,aA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(F,b,fA,BA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(R,_A,pA,sA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(S,H,iA,FA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,Q=(I=Ig(_,r,L,cA))+B|0,B=f+C|0,B=I>>>0>Q>>>0?B+1|0:B,C=Q,Q=Ig(I=GA,I>>31,h,Y),I=f+B|0,B=C=C+Q|0,I=(I=C>>>0>>0?I+1|0:I)+(C=o>>26)|0,I=(B=B+(o=(67108863&o)<<6|y>>>26)|0)>>>0>>0?I+1|0:I,I=(C=B+16777216|0)>>>0<16777216?I+1|0:I,i[g+84>>2]=B-(-33554432&C),o=t-(-33554432&kA)|0,Q=c-(B=-67108864&DA)|0,p=yA-((B>>>0>c>>>0)+YA|0)|0,I=Ig((33554431&(B=I))<<7|C>>>25,I>>=25,19,0),C=f+p|0,I=I>>>0>(B=I+Q|0)>>>0?C+1|0:C,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+o|0,i[g+52>>2]=I,i[g+48>>2]=B-(-67108864&C),QI(A,g+48|0)),s=g+256|0,0|SA},Rg:function(A,I){A|=0;var g,B=0;return s=g=s+-64|0,FI(g,I|=0,32,0),C[0|g]=248&o[0|g],C[g+31|0]=63&o[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,XC(g,64),s=g- -64|0,0},Sg:Wg,Tg:bI,Ug:vg,Vg:LI,Wg:BB,Xg:eB,Yg:cB,Zg:BB,_g:aB,$g:cB,ah:function(A,I,g,C,B){return 0|Xg(A|=0,I|=0,g|=0,C|=0,B|=0)},bh:function(A,I,g,C,B,Q,i,o){return 0|mg(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},ch:function(A,I,g,C,B,Q){return 0|ug(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},dh:function(A,I,g,C,B){return 0|jg(A|=0,I|=0,g|=0,C|=0,B|=0)},eh:function(A,I,g,C,B,Q,i){return 0|Cg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fh:function(A,I,g,C,B,Q){return 0|xg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},gh:PC,hh:PC,ih:BB,jh:_B,kh:cB,lh:function(){return 1538},mh:Tg,nh:zg,oh:PC,ph:BB,qh:eB,rh:cB,sh:function(A,I,g,C,B){return 0|DC(A|=0,I|=0,g|=0,C|=0,B|=0)},th:function(A,I,g,C,B,Q,i,o){return 0|oC(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},uh:function(A,I,g,C,B,Q){return 0|aC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},vh:PC,wh:Tg,xh:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,wA(E,B|=0,o|=0,0),A=oC(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),XC(E,32),s=E+32|0,0|A},yh:zg,zh:BB,Ah:_B,Bh:cB,Ch:PC,Dh:CB,Eh:BB,Fh:gB,Gh:oI,Hh:NC,Ih:GC,Jh:function(){return 1089},Kh:function(){var A,I;return s=A=s-16|0,C[A+15|0]=0,I=0|t(36800,A+15|0,0),s=A+16|0,0|I},Lh:$g,Mh:function(A){var I,g=0,B=0;if(s=I=s-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;C[I+15|0]=0,g>>>0>(B=0|t(36800,I+15|0,0))>>>0;);g=(B>>>0)%(A>>>0)|0}return s=I+16|0,0|g},Nh:ag,Oh:function(A,I,g){jg(A|=0,I|=0,0,34336,g|=0)},Ph:BB,Qh:function(){var A=0,I=0;return(A=i[9539])&&(A=i[A+20>>2])&&(I=0|pB[0|A]()),0|I},Rh:function(A,I,g){A|=0,I|=0;var B,i=0,o=0,E=0;if(s=B=s-16|0,g|=0)r(1346,1192,198,1092),Q();else{if(I|g)for(;C[B+15|0]=0,o=A+i|0,E=0|t(36800,B+15|0,0),C[0|o]=E,(0|I)!=(0|(i=i+1|0)););s=B+16|0}},Sh:function(A,I,g,B){A|=0,g|=0;var i=0,E=0,a=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;i=(I<<1)+A|0,E=15&(a=o[I+g|0]),C[i+1|0]=22272+((E<<8)+(E+65526&55552)|0)>>>8,E=i,i=a>>>4|0,C[0|E]=87+((i+65526>>>8&217)+i|0),(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return C[I+A|0]=0,0|A}rC(),Q()},Th:function(A,I,g,B,Q,E,a){A|=0,I|=0,g|=0,Q|=0,E|=0,a|=0;var _=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{if(B|=0){if(Q)break E;for(c=1,Q=0;;){if(!(255&((s=(65526+(t=(223&(e=o[g+_|0]))-55&255)^t+65520)>>>8|0)|(h=65526+(e^=48)>>>8|0))))break i;if(I>>>0<=y>>>0)break o;if(t=t&s|e&h,255&r?(C[A+y|0]=Q|t,y=y+1|0):Q=t<<4,r=~r,(0|(_=_+1|0))==(0|B))break}_=B;break i}if(A=0,!a)break A;break g}for(;;){E:{a:{_:{c:{t:{if(!(255&((e=(65526+(c=(223&(t=o[g+_|0]))-55&255)^c+65520)>>>8|0)|(h=65526+(s=48^t)>>>8|0)))){if(255&r)break Q;if(c=0,!kI(Q,t))break C;if((_=r=_+1|0)>>>0>>0)break t;break C}if(I>>>0<=y>>>0)break o;if(c=c&e|s&h,!(255&r))break c;C[A+y|0]=c|D,y=y+1|0;break E}for(;;){if(!(255&((s=(65526+(e=(223&(t=o[g+_|0]))-55&255)^e+65520)>>>8|0)|(D=65526+(h=48^t)>>>8|0)))){if(!kI(Q,t))break C;if((_=_+1|0)>>>0>>0)continue;break _}break}if(I>>>0<=y>>>0)break a;c=e&s|h&D}D=c<<4,r=0;break E}_=B>>>0>r>>>0?B:r;break C}r=0;break o}if(r=~r,c=1,!((_=_+1|0)>>>0>>0))break}break i}i[9404]=68,c=0}if(!(255&r))break B}i[9404]=28,c=-1,_=_-1|0,y=0;break C}y=c?y:0,c=c-1|0}if(!a){if((0|B)!=(0|_))break I;A=c;break A}}i[a>>2]=g+_,A=c;break A}i[9404]=28,A=-1}return E&&(i[E>>2]=y),0|A},Uh:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(rC(),Q()),1+((3&(g=(g=A)+a(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Vh:XA,Wh:pA,Xh:function(){var A=0;return i[9537]?A=1:($g(),ag(38128,16),i[9537]=1,A=0),0|A},Yh:function(A,I,g,B,E){A|=0,I|=0,g|=0,E|=0;var a,_=0,c=0,t=0;s=a=s-16|0;A:{if(B|=0){if((_=B-1|0)&B?(c=~g,_=_-((g>>>0)%(B>>>0)|0)|0):_&=c=~g,_>>>0>=c>>>0)break A;if((g=g+_|0)>>>0>=E>>>0)I=-1;else for(A&&(i[A>>2]=g+1),A=I+g|0,I=0,C[a+15|0]=0,g=0;c=E=A-g|0,t=o[0|E]&o[a+15|0],E=(g^_)-1>>>24|0,C[0|c]=t|128&E,C[a+15|0]=E|o[a+15|0],(0|B)!=(0|(g=g+1|0)););}else I=-1;return s=a+16|0,0|I}rC(),Q()},Zh:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,E=0,a=0,_=0,c=0;if(i[12+(B=s-16|0)>>2]=0,C-1>>>0>>0){for(c=(Q=g-1|0)+I|0,g=0,I=0;_=((128^(E=o[c-g|0]))-1&i[B+12>>2]-1&a-1)>>>8&1,i[B+12>>2]=i[B+12>>2]|0-_&g,I|=_,a|=E,(0|C)!=(0|(g=g+1|0)););i[A>>2]=Q-i[B+12>>2],A=(255&I)-1|0}else A=-1;return 0|A},_h:function(){return 1547},$h:function(){return 26},ai:tB,bi:hB,ci:cI,di:sC,ei:function(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=yA(A,35584,C,0)),s=C+32|0,0|B},fi:dg,gi:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=EI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},hi:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|EI(A+16|0,A,I,g,C,B,i)},ii:function(A,I,g,C,B,Q,i){return 0|ig(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ji:lg,ki:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=sI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},li:Dg,mi:function(A,I,g,C,B,Q,i){return 0|Ag(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ni:BB,oi:BB,pi:BB,qi:BB,ri:_B,si:CB,ti:EB,ui:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,sC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=ig(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},vi:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=Ag(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},wi:oB,xi:function(A){var I,g=0;return s=I=s-160|0,NI(A|=0)&&(KI(A)||MA(I,A)||jA(I)&&(g=!!(0|gA(I)))),s=I+160|0,0|g},yi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},zi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},Ai:function(A,I){return M(A|=0,I|=0),0},Bi:function(A){var I;A|=0,s=I=s-32|0,ag(I,32),M(A,I),s=I+32|0},Ci:Mg,Di:kA,Ei:xA,Fi:uA,Gi:cA,Hi:dA,Ii:IA,Ji:MC,Ki:BB,Li:gB,Mi:BB,Ni:gB,Oi:BB,Pi:function(A){var I;return s=I=s-160|0,A=EA(I,A|=0),s=I+160|0,0|!A},Qi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Ri:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Si:function(A,I){return jI(A|=0,I|=0),0},Ti:function(A){var I;A|=0,s=I=s+-64|0,ag(I,64),jI(A,I),s=I- -64|0},Ui:function(A){Mg(A|=0)},Vi:function(A,I){return 0|kA(A|=0,I|=0)},Wi:function(A,I){xA(A|=0,I|=0)},Xi:function(A,I){uA(A|=0,I|=0)},Yi:function(A,I,g){cA(A|=0,I|=0,g|=0)},Zi:function(A,I,g){IA(A|=0,I|=0,g|=0)},_i:MC,$i:function(A,I){dA(A|=0,I|=0)},aj:BB,bj:gB,cj:gB,dj:BB,ej:function(A,I,g,C,B,Q,i,o,E,a){return 0|rg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0)},fj:CB,gj:cB,hj:hB,ij:cB,jj:BB,kj:function(){return 102},lj:function(){return 1575},mj:function(){return 32768},nj:cB,oj:jC,pj:cB,qj:function(){return 524288},rj:jC,sj:LC,tj:vC,uj:function(A,I,g,C,B,Q,o,E,a,_){var c,t,r;I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,a|=0,_|=0,t=0|(E|=0),s=E=s-16|0,r=I|=0,c=bg(A|=0,0,I),A=0|B;A:if(1==(0|(B=g|Q))|B>>>0>1)i[9404]=22,A=-1;else if(!g&I>>>0>=16|g){if(bA(t,a,_,E+12|0,E+8|0,E+4|0),(0|C)==(0|c)){i[9404]=28,A=-1;break A}B=A,A=31&(I=i[E+12>>2]),(63&I)>>>0>=32?(I=1<>>32-A,A=rg(C,B,o,32,g,I,i[E+4>>2],i[E+8>>2],c,r)}else i[9404]=28,A=-1;return s=E+16|0,0|A},vj:function(A,I,g,B,Q,E,a){I|=0,g|=0,B|=0,E|=0,a|=0;var _,c,t,r=0,e=0,y=0,h=0,D=0,p=0,w=0;r=Q|=0,r|=Q=0,s=_=s-128|0,c=bg(A|=0,0,102),D=22,t=g|Q;A:{I:{if(!B){bA(r,E,a,_+16|0,_+12|0,_+8|0),ag(e=_+96|0,32),D=28,g=_+32|0,E=i[_+16>>2],a=Ig(A=i[_+12>>2],0,B=i[_+8>>2],0);g:if(!(!(r=f)&a>>>0>1073741823|r|E>>>0>63)&&(C[0|g]=36,C[g+1|0]=55,C[g+2|0]=36,C[g+4|0]=o[1024+(63&B)|0],C[g+3|0]=o[E+1024|0],C[g+8|0]=o[1024+(B>>>24&63)|0],C[g+7|0]=o[1024+(B>>>18&63)|0],C[g+6|0]=o[1024+(B>>>12&63)|0],C[g+5|0]=o[1024+(B>>>6&63)|0],(B=g+9|0)&&(0|B)!=(0|(y=g+58|0))&&(C[0|B]=o[1024+(63&A)|0],1!=(0|(B=y-B|0))&&(C[g+10|0]=o[1024+(A>>>6&63)|0],2!=(0|B)&&(C[g+11|0]=o[1024+(A>>>12&63)|0],3!=(0|B)&&(C[g+12|0]=o[1024+(A>>>18&63)|0],4!=(0|B)&&(C[g+13|0]=o[1024+(A>>>24&63)|0],E=g+14|0))))))){for(r=y-E|0,A=0;;){if(B=E,!(A>>>0>=32)){if(E=o[A+e|0],(p=(a=A+1|0)>>>0>=32)?h=0:(E=o[a+e|0]<<8|E,(a=A+2|0)>>>0>=32?h=0:(E=o[a+e|0]<<16|E,h=1,a=A+3|0)),A=a,!r)break g;if(C[0|B]=o[1024+(63&E)|0],1==(0|r))break g;if(C[B+1|0]=o[1024+(E>>>6&63)|0],w=B+r|0,a=B+2|0,!p){if(2==(0|r))break g;if(C[B+2|0]=o[1024+(E>>>12&63)|0],a=B+3|0,h){if(3==(0|r))break g;C[B+3|0]=o[1024+(E>>>18|0)|0],a=B+4|0}}if(r=w-(E=a)|0,E)continue;break g}break}B>>>0>=y>>>0||(C[0|B]=0,Q=g)}if(Q){if(_C(A=_+20|0))break I;if(I=TA(A,I,t,g,c),Rg(A),I){A=0;break A}}}i[9404]=D}A=-1}return s=_+128|0,0|A},wj:function(A,I,g,C){I|=0,C|=0;var B,Q,i=0;B=A|=0,Q=g|=0,g=0,s=C=s-128|0;A:{I:{for(;;){if(!o[g+B|0]){A=g;break I}if(!o[B+(A=g+1|0)|0])break I;if(!o[B+(A=g+2|0)|0])break I;if(102==(0|(g=g+3|0)))break}g=-1;break A}g=-1,101==(0|A)&&(_C(i=C+4|0)||(bg(A=C+16|0,0,102),I=TA(i,I,Q,B,A),Rg(i),I&&(g=MI(A,B,102),XC(A,102))))}return s=C+128|0,0|g},xj:function(A,I,g,C){var B,Q;Q=A|=0,s=B=s-32|0,bA(I|=0,g|=0,C|=0,B+28|0,B+20|0,B+12|0),A=0;A:{I:{g:{for(;;){if(o[A+Q|0]){if(o[Q+(I=A+1|0)|0]&&o[Q+(I=A+2|0)|0]){if(102!=(0|(A=A+3|0)))continue;break g}}else I=A;break}if(101==(0|I)){if(g=B+8|0,C=B+16|0,A=0,36!=o[0|Q]|55!=o[Q+1|0]|36!=o[Q+2|0]||(I=uI(o[Q+3|0]),i[B+24>>2]=I?I-1024|0:0,I&&(I=PI(g,Q+4|0))&&(A=PI(C,I))),A)break I;i[9404]=28,A=-1;break A}}i[9404]=28,A=-1;break A}A=1,i[B+28>>2]!=i[B+24>>2]|i[B+12>>2]!=i[B+8>>2]||(A=i[B+20>>2]!=i[B+16>>2])}return s=B+32|0,0|A},yj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,1)},zj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,0)},Aj:function(A,I){return 0|II(A|=0,I|=0,1)},Bj:function(A,I){return 0|II(A|=0,I|=0,0)},Cj:BB,Dj:BB,Ej:function(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s-320|0,Q=-1,EA(B,g|=0)||(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],u(I=B+160|0,A,B),W(A,I),Q=GI(A,32)?-1:0),s=B+320|0,0|Q},Fj:function(A,I){var g;return I|=0,s=g=s-160|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],nA(g,A),W(A,g),A=GI(A,32),s=g+160|0,0|(A?-1:0)},Gj:BB,Hj:BB,Ij:dg,Jj:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),EI(A+16|0,A,I,g,C,B,i),0},Kj:lg,Lj:Dg,Mj:BB,Nj:_B,Oj:CB,Pj:EB,Qj:CB,Rj:CB,Sj:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(p=1886610805^(a=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),D=1936682341^(_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),a^=1852142177,c=1819895653^_,w=1852075907^(_=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),n=1685025377^(Q=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^_,_=1952801890^Q,s=g,(0|(E=(g+I|0)-(i=7&g)|0))!=(0|I))for(;g=(e=_^(k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24))+c|0,t=B=a+(Q=t^(y=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,r=g=B>>>0>>0?g+1|0:g,a=B,B=g,g=D+n|0,g=(_=p+w|0)>>>0

>>0?g+1|0:g,h=(c=UI(w,n,13)^_)+a|0,B=(a=f^g)+B|0,a=UI(c,a,17)^h,p=UI(a,B=(c=c>>>0>h>>>0?B+1|0:B)^f,13),D=f,e=UI(Q,e,16),Q=r^f,e^=t,r=UI(_,g,32),g=f+Q|0,g=(t=B)+(B=(_=e+r|0)>>>0>>0?g+1|0:g)|0,r=g=(t=a+_|0)>>>0<_>>>0?g+1|0:g,p=UI(a=t^p,g^=D,17),D=f,e=UI(e,Q,21),Q=B^f,e^=_,_=UI(h,c,32),B=f+Q|0,g=(_=(c=e+_|0)>>>0<_>>>0?B+1|0:B)+g|0,w=(a=a+c|0)^p,B=g=a>>>0>>0?g+1|0:g,n=g^D,g=UI(e,Q,16),e=_^=f,h=UI(g^=c,_,21),c=f,r=(_=UI(t,r,32))+g|0,g=f+e|0,t=r^h,_=(g=_>>>0>r>>>0?g+1|0:g)^c,a=UI(a,B,32),c=f,p=y^r,D=g^k,(0|E)!=(0|(I=I+8|0)););switch(y=0,Q=s<<24,i-1|0){case 6:Q|=o[I+6|0]<<16;case 5:Q|=o[I+5|0]<<8;case 4:Q|=o[I+4|0];case 3:y|=(g=o[I+3|0])<<24,Q|=B=g>>>8|0;case 2:y|=(B=o[I+2|0])<<16,Q|=g=B>>>16|0;case 1:y|=(g=o[I+1|0])<<8,Q|=B=g>>>24|0;case 0:y=o[0|I]|y}return h=Q,I=Q^_,B=UI(Q=t^y,I,16),I=I+c|0,r=I=(t=Q+a|0)>>>0>>0?I+1|0:I,s=UI(Q=B^t,I^=g=f,21),_=f,g=D+n|0,B=g=(a=p+w|0)>>>0

>>0?g+1|0:g,c=Q,Q=UI(a,g,32),g=f+I|0,I=_,_=g=Q>>>0>(c=c+Q|0)>>>0?g+1|0:g,p=UI(Q=c^s,I^=g,16),D=f,g=(a=e=UI(w,n,13)^a)+t|0,B=(t=f^B)+r|0,r=Q,Q=UI(g,B=g>>>0>>0?B+1|0:B,32),I=f+I|0,k=Q=(a=Q>>>0>(s=r+Q|0)>>>0?I+1|0:I)^D,r=p^=s,D=UI(e,t,17)^g,g=(e=f^B)+_|0,I=g=(B=c=(I=D)+c|0)>>>0>>0?g+1|0:g,_=UI(B,g,32),g=f+Q|0,c=(t=_+r|0)^y,h^=r=_>>>0>t>>>0?g+1|0:g,Q=UI(D,e,13)^B,B=UI(Q,I^=f,17),I=I+a|0,Q=B^(_=Q+s|0),B=I=_>>>0>>0?I+1|0:I,g=(I^=g=f)+h|0,g=Q>>>0>(c=Q+c|0)>>>0?g+1|0:g,Q=UI(Q,I,13)^c,a=g,s=UI(Q,I=g^f,17),y=f,h=UI(p,k,21),e=r^f,r=t^h,_=238^UI(_,B,32),g=f+e|0,g=(h=I)+(I=(B=r+_|0)>>>0<_>>>0?g+1|0:g)|0,_=g=(t=B+Q|0)>>>0>>0?g+1|0:g,y=UI(Q=t^s,g^=y,13),h=f,r=UI(r,e,16),e=I^f,s=B^r,B=UI(c,a,32),I=f+e|0,B=(c=g)+(g=B>>>0>(a=s+B|0)>>>0?I+1|0:I)|0,c=B=(r=Q+a|0)>>>0>>0?B+1|0:B,y=UI(Q=y^r,I=B^h,17),h=f,B=UI(s,e,21),e=g^f,s=B^a,B=UI(t,_,32),g=f+e|0,g=(B=B>>>0>(a=s+B|0)>>>0?g+1|0:g)+I|0,_=g=(t=Q+a|0)>>>0>>0?g+1|0:g,y=UI(Q=t^y,I=g^h,13),h=f,g=UI(s,e,16),e=B^f,s=g^a,g=UI(r,c,32),B=f+e|0,g=(B=g>>>0>(a=s+g|0)>>>0?B+1|0:B)+I|0,c=g=(r=Q+a|0)>>>0>>0?g+1|0:g,y=UI(Q=y^r,I=g^h,17),h=f,g=UI(s,e,21),e=B^f,s=g^a,a=UI(t,_,32),g=f+e|0,I=(g=(B=s+a|0)>>>0>>0?g+1|0:g)+I|0,a=I=(_=B+Q|0)>>>0>>0?I+1|0:I,y=UI(Q=_^y,I^=h,13),h=f,t=UI(s,e,16),s=g^f,t^=B,c=UI(r,c,32),g=f+s|0,g=(r=I)+(I=(B=t+c|0)>>>0>>0?g+1|0:g)|0,c=g=(r=B+Q|0)>>>0>>0?g+1|0:g,y=UI(Q=y^r,g^=h,17),h=f,t=UI(t,s,21),s=I^f,t^=B,B=UI(_,a,32),I=f+s|0,B=(_=g)+(g=B>>>0>(a=t+B|0)>>>0?I+1|0:I)|0,_=Q=(B=(I=Q+a|0)>>>0>>0?B+1|0:B)^h,y^=I,t=UI(t,s,16),e=g^f,a=(t^=a)+(c=UI(r,c,32))|0,g=f+e|0,I=UI(I,B,32),s=f,B=g=a>>>0>>0?g+1|0:g,c=A,t=(r=UI(t,e,21)^a)^I^a^y,C[0|c]=t,C[c+1|0]=t>>>8,C[c+2|0]=t>>>16,C[c+3|0]=t>>>24,g=(e=s^g^Q)^(Q=g^f),C[c+4|0]=g,C[c+5|0]=g>>>8,C[c+6|0]=g>>>16,C[c+7|0]=g>>>24,g=Q+s|0,g=(c=I)>>>0>(I=I+r|0)>>>0?g+1|0:g,h=I,Q=UI(r,Q,16)^I,r=g,s=I=g^f,B=(g=_)+B|0,_=a=(c=y^=221)+a|0,a=UI(a,B=a>>>0>>0?B+1|0:B,32),I=f+I|0,I=a>>>0>(t=a+Q|0)>>>0?I+1|0:I,a=UI(Q,s,21)^t,c=I,D=UI(a,Q=I^f,16),e=f,I=UI(y,g,13),g=r+(s=B^f)|0,I=g=(B=h+(y=I^_)|0)>>>0>>0?g+1|0:g,_=a,a=UI(B,g,32),g=f+Q|0,e=g=(_=a>>>0>(r=_+a|0)>>>0?g+1|0:g)^e,h=UI(D^=r,g,21),a=f,g=UI(y,s,17),I=c+(s=I^f)|0,B=I=(Q=t+(y=g^B)|0)>>>0>>0?I+1|0:I,I=UI(Q,I,32),g=e+f|0,e=g=(c=a)^(a=(I=I+D|0)>>>0>>0?g+1|0:g),c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),g=_+(s=B^f)|0,I=UI(Q=r+(y=I^Q)|0,g=Q>>>0>>0?g+1|0:g,32),B=e+f|0,e=B=(_=(I=I+D|0)>>>0>>0?B+1|0:B)^t,r=I,h=UI(D=h^I,B,21),t=f,I=UI(y,s,17),g=a+(s=g^f)|0,B=g=(Q=c+(y=I^Q)|0)>>>0>>0?g+1|0:g,I=UI(Q,g,32),g=e+f|0,e=g=(a=(I=I+D|0)>>>0>>0?g+1|0:g)^t,c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),B=_+(s=B^f)|0,g=UI(Q=r+(y=I^Q)|0,B=Q>>>0>>0?B+1|0:B,32),I=e+f|0,_=g=g+D|0,h=UI(h^g,(I=g>>>0>>0?I+1|0:I)^t,21),t=f,r=UI(y,s,17),g=B^f,r=UI(B=Q^r,g,13),g=g+a|0,g=(B=B+c|0)>>>0>>0?g+1|0:g,Q=UI(a=B^r,g^=Q=f,17)^h,B=f^t,g=I+g|0,I=UI(I=a+_|0,g=I>>>0<_>>>0?g+1|0:g,32)^Q^I,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g^f^B,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,0},Tj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;IC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,IC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},Uj:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,IC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,IC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},Vj:BB,Wj:eB,Xj:cB,Yj:PC,Zj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;gC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,gC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},_j:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,gC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,gC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},$j:BB,ak:eB,bk:cB,ck:PC,dk:BB,ek:_B,fk:cB,gk:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,s=Q=s-32|0,yA(Q,C|=0,B|=0,0),A=Xg(A,I,g,C+16|0,Q),s=Q+32|0,0|A},hk:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,yA(E,B|=0,o|=0,0),A=mg(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),s=E+32|0,0|A},ik:function(A,I,g,C,B,Q){var i;return A|=0,I|=0,g|=0,C|=0,s=i=s-32|0,yA(i,B|=0,Q|=0,0),A=mg(A,I,g,C,B+16|0,0,0,i),s=i+32|0,0|A},jk:PC,kk:K,lk:BA,mk:pB}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new y.Module(A);g({instance:new y.Instance(C,I)})}}},RuntimeError:Error};t=[];var s,h,D,f,p,w,n,k=!1;function F(){var A=e.buffer;B.HEAP8=s=new Int8Array(A),B.HEAP16=D=new Int16Array(A),B.HEAPU8=h=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=f=new Int32Array(A),B.HEAPU32=p=new Uint32Array(A),B.HEAPF32=w=new Float32Array(A),B.HEAPF64=n=new Float64Array(A)}var S=[],N=[],G=[],M=0,K=null,U=null;function b(A){throw B.onAbort?.(A),r(A="Aborted("+A+")"),k=!0,A+=". Build with -sASSERTIONS for more info.",new y.RuntimeError(A)}var H,Y=A=>A.startsWith("file://");var J={36800:()=>B.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=require("crypto"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw"No secure random number generator found"}}}},d=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var m,l="undefined"!=typeof TextDecoder?new TextDecoder:void 0,u=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&l)return l.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(h,A,I):"",x=[],v=A=>{var I=(A-e.buffer.byteLength+65535)/65536;try{return e.grow(I),F(),1}catch(A){}},R={b:(A,I,g,C)=>{b(`Assertion failed: ${u(A)}, at: `+[I?u(I):"unknown filename",g,C?u(C):"unknown function"])},c:()=>{b("")},a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(x.length=0;g=h[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,x.push(112==g?p[I>>2]:105==g?f[I>>2]:n[I>>3]),I+=C?8:4}return x})(I,g);return J[A](...C)})(A,I,g),d:A=>{var I=h.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(v(i))return!0}return!1}},L=function(){var A={a:R};function I(A,I){var g;return L=A.exports,e=L.e,F(),g=L.f,N.unshift(g),function(A){if(M--,B.monitorRunDependencies?.(M),0==M&&(null!==K&&(clearInterval(K),K=null),U)){var I=U;U=null,I()}}(),L}if(M++,B.monitorRunDependencies?.(M),B.instantiateWasm)try{return B.instantiateWasm(A,I)}catch(A){return r(`Module.instantiateWasm callback failed with error: ${A}`),!1}return H||(H="<<< WASM_BINARY_FILE >>>"),function(A,I,C){(function(A){return Promise.resolve().then((()=>function(A){if(A==H&&t)return new Uint8Array(t);if(g)return g(A);throw"both async and sync fetching of the wasm failed"}(A)))})(A).then((A=>y.instantiate(A,I))).then(C,(A=>{r(`failed to asynchronously prepare wasm: ${A}`),b(A)}))}(H,A,(function(A){I(A.instance)})),{}}();function P(){function A(){m||(m=!0,B.calledRun=!0,k||(d(N),B.onRuntimeInitialized?.(),function(){if(B.postRun)for("function"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),G.unshift(A);var A;d(G)}()))}M>0||(function(){if(B.preRun)for("function"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),S.unshift(A);var A;d(S)}(),M>0||(B.setStatus?(B.setStatus("Running..."),setTimeout((function(){setTimeout((function(){B.setStatus("")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=L.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=L.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=L.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=L.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=L.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=L.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=L.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=L.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=L.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=L.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=L.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=L.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=L.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=L.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=L.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=L.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=L.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=L.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=L.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=L.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=L.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=L.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=L.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=L.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=L.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=L.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=L.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=L.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=L.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=L.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=L.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=L.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=L.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=L.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=L.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=L.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=L.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=L.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=L.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=L.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=L.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=L.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=L.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=L.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=L.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=L.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=L._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=L.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=L.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=L.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=L.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=L.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=L.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=L.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=L.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=L.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=L.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=L.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=L.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=L.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=L.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=L.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=L.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=L.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=L.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=L.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=L.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=L.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=L.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=L.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=L.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=L.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=L.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=L.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=L.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=L.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=L.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=L.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=L.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=L.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=L.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=L.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=L.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=L.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=L.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=L.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=L.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=L.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=L.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=L.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=L.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=L.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=L.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=L.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=L.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=L.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=L.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=L.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=L.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=L.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=L._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=L.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=L.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=L.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=L.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=L.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=L.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=L.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=L.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=L.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=L.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=L.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=L.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=L.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=L.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=L.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=L.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=L.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=L.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=L.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=L.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=L.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=L.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=L.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=L.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=L.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=L.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=L.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=L.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=L.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=L.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=L.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=L.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=L.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=L.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=L.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=L.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=L.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=L.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=L.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=L.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=L.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=L.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=L.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=L.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=L.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=L.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=L.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=L.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=L.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=L.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=L.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=L.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=L.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=L._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=L.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=L.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=L.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=L.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=L.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=L.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=L.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=L.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=L.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=L.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=L.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=L.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=L.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=L.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=L.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=L.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=L.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=L.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=L.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=L.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=L.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=L.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=L.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=L.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=L.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=L.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=L.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=L.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=L.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=L.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=L.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=L.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=L.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=L.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=L.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=L.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=L.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=L.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=L.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=L.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=L.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=L.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=L.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=L.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=L.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=L.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=L.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=L.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=L.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=L.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=L.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=L.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=L.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=L._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=L.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=L.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=L.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=L.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=L.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=L.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=L.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=L.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=L.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=L.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=L.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=L.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=L.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=L.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=L.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=L.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=L.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=L.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=L.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=L.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=L.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=L.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=L.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=L.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=L.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=L.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=L.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=L.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=L.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=L.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=L.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=L.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=L.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=L.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=L.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=L.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=L.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=L.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=L.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=L.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=L.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=L.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=L.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=L.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=L.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=L.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=L.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=L.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=L.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=L.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=L.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=L.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=L.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=L._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=L.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=L.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=L.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=L.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=L.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=L.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=L.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=L.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=L.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=L.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=L.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=L.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=L.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=L.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=L.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=L.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=L.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=L.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=L.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=L.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=L.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=L.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=L.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=L.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=L.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=L.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=L.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=L.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=L.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=L.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=L.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=L.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=L.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=L.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=L.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=L.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=L.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=L.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=L.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=L.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=L.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=L.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=L.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=L.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=L.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=L.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=L.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=L.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=L.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=L.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=L.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=L.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=L.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=L._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=L.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=L.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=L.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=L.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=L.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=L.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=L.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=L.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=L.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=L.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=L.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=L.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=L.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=L.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=L.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=L.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=L.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=L.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=L.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=L.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=L.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=L.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=L.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=L.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=L.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=L.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=L.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=L.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=L.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=L.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=L.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=L.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=L.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=L.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=L.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=L.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=L.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=L.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=L.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=L.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=L.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=L.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=L.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=L.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=L.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=L.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=L.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=L.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=L.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=L.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=L.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=L.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=L._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=L.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=L.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=L.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=L.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=L.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=L.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=L.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=L.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=L.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=L.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=L.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=L.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=L.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=L.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=L.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=L.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=L.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=L.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=L.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=L.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=L.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=L.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=L.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=L.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=L.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=L.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=L.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=L.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=L.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=L.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=L.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=L.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=L.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=L.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=L.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=L.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=L.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=L.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=L.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=L.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=L.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=L.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=L.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=L.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=L.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=L.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=L.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=L.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=L.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=L.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=L.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=L.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=L.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=L._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=L.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=L.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=L.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=L.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=L.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=L.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=L.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=L.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=L.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=L.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=L.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=L.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=L.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=L.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=L.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=L.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=L.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=L.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=L.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=L.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=L.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=L.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=L.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=L.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=L.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=L.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=L.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=L.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=L.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=L.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=L.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=L.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=L.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=L.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=L.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=L.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=L.Jh)(),B._randombytes_random=()=>(B._randombytes_random=L.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=L.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=L.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=L.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=L.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=L.Ph)(),B._randombytes_close=()=>(B._randombytes_close=L.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=L.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=L.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=L.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=L.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=L.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=L.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=L.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=L.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=L.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=L._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=L.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=L.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=L.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=L.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=L.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=L.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=L.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=L.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=L.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=L.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=L.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=L.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=L.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=L.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=L.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=L.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=L.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=L.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=L.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=L.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=L.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=L.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=L.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=L.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=L.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=L.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=L.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=L.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=L.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=L.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=L.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=L.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=L.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=L.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=L.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=L.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=L.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=L.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=L.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=L.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=L.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=L.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=L.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=L.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=L.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=L.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=L.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=L.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=L.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=L.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=L.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=L.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=L.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=L._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=L.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=L.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=L.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=L.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=L.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=L.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=L.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=L.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=L.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=L.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=L.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=L.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=L.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=L.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=L.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=L.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=L.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=L.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=L.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=L.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=L.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=L.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=L.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=L.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=L.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=L.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=L.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=L.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=L.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=L.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=L.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=L.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=L.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=L.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=L.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=L.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=L.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=L.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=L.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=L.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=L.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=L.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=L.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=L.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=L.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=L.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=L.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=L.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=L.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=L.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=L.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=L.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=L.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=L._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=L.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=L.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=L.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=L.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=L.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=L.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=L.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=L.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=L.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=L.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=L.jk)(A),B._malloc=A=>(B._malloc=L.kk)(A),B._free=A=>(B._free=L.lk)(A),B.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":s[A]=I;break;case"i16":D[A>>1]=I;break;case"i32":f[A>>2]=I;break;case"i64":b("to do setValue(i64) use WASM_BIGINT");case"float":w[A>>2]=I;break;case"double":n[A>>3]=I;break;case"*":p[A>>2]=I;break;default:b(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return s[A];case"i16":return D[A>>1];case"i32":return f[A>>2];case"i64":b("to do getValue(i64) use WASM_BIGINT");case"float":return w[A>>2];case"double":return n[A>>3];case"*":return p[A>>2];default:b(`invalid type for getValue: ${I}`)}},B.UTF8ToString=u,U=function A(){m||P(),m||(U=A)},B.preInit)for("function"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();P()}))};var g,B=void 0!==B?B:{},Q="object"==typeof window,i="function"==typeof importScripts,o="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,E=Object.assign({},B),a="";if(o){var _=require("fs"),c=require("path");a=__dirname+"/",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),"undefined"!=typeof module&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:"undefined"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith("blob:")?"":a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}));B.print;var t,r,e=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var y,s,h,D,f,p,w,n=!1;function k(){var A=r.buffer;B.HEAP8=y=new Int8Array(A),B.HEAP16=h=new Int16Array(A),B.HEAPU8=s=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=D=new Int32Array(A),B.HEAPU32=f=new Uint32Array(A),B.HEAPF32=p=new Float32Array(A),B.HEAPF64=w=new Float64Array(A)}var F=[],S=[],N=[],G=0,M=null,K=null;function U(A){throw B.onAbort?.(A),e(A="Aborted("+A+")"),n=!0,A+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(A)}var b,H="data:application/octet-stream;base64,",Y=A=>A.startsWith("file://");function J(A){return Promise.resolve().then((()=>function(A){if(A==b&&t)return new Uint8Array(t);var I=function(A){if((A=>A.startsWith(H))(A))return function(A){if(void 0!==o&&o){var I=Buffer.from(A,"base64");return new Uint8Array(I.buffer,I.byteOffset,I.length)}for(var g=atob(A),C=new Uint8Array(g.length),B=0;BB.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=require("crypto"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw"No secure random number generator found"}}}},m=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var l,u="undefined"!=typeof TextDecoder?new TextDecoder:void 0,x=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&u)return u.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(s,A,I):"",v=[],R=A=>{var I=(A-r.buffer.byteLength+65535)/65536;try{return r.grow(I),k(),1}catch(A){}},L={b:(A,I,g,C)=>{U(`Assertion failed: ${x(A)}, at: `+[I?x(I):"unknown filename",g,C?x(C):"unknown function"])},c:()=>{U("")},d:(A,I,g)=>s.copyWithin(A,I,I+g),a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(v.length=0;g=s[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,v.push(112==g?f[I>>2]:105==g?D[I>>2]:w[I>>3]),I+=C?8:4}return v})(I,g);return d[A](...C)})(A,I,g),e:A=>{var I=s.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(R(i))return!0}return!1}},P=function(){var A,I={a:L};function g(A,I){return P=A.exports,r=P.f,k(),function(A){if(G--,B.monitorRunDependencies?.(G),0==G&&(null!==M&&(clearInterval(M),M=null),K)){var I=K;K=null,I()}}(),P}if(G++,B.monitorRunDependencies?.(G),B.instantiateWasm)try{return B.instantiateWasm(I,g)}catch(A){return e(`Module.instantiateWasm callback failed with error: ${A}`),!1}return b||(b="data:application/octet-stream;base64,AGFzbQEAAAAB5gInYAJ/fwF/YAABf2ADf39+AX9gA39/fwF/YAJ/fwBgBH9/f38Bf2AFf39/f38Bf2ADf39/AGAGf39/f39/AX9gAX8Bf2ALf39/f39/f39/f38Bf2AHf39/f39/fwF/YAZ/f35/fn8Bf2AJf39/f39/f39/AX9gAX8AYAR/fn9/AX9gBn9/fn9/fwF/YAR/f35/AX9gCH9/f39/f39/AX9gBH9/f38AYAV/f35/fwF/YAZ/f39+f38Bf2AAAGAMf39/f39/f39/f39/AX9gCn9/f39/f39/f38Bf2AFf39/f38AYAh/f35/f35/fwF/YAl/f39/fn9+f38Bf2AFf39/fn8Bf2ADf39+AGAFf39+fn8Bf2AIf35/fn9+f38Bf2AEf39/fgBgBX5/f39/AGAJf39/f35/f39/AX9gCn9/f39/fn9/f38Bf2AGf39/f39/AGAIf39/fn9/f38Bf2AFf39+f38AAh8FAWEBYQADAWEBYgATAWEBYwAWAWEBZAAHAWEBZQAJA8IDwAMEBwcHBAEDAwEWAgQEDgcBDgECBAQABQEACQMJAwUCAgECAQ4HBwUBAAMEAwAJDwAEBAAJARAMAwAEAAMAAwADCQACBQUFBAkJFRUBAQQPBAcECAgAEwkEFRUPABUTCQETFBQgGQMJCQcEHQQFHSEJBxQTFRQDAQEBAQEAEgYDAQQEBwAEBBYECQQHBwcEAAABAAAICwsIBgYICAgGCwUGBggFCwgLCwsLBQYGABobEBADBQEiBg4jJAQUFAEBGhobGwMFCQEAAw8QEAIeHwEBAQIeHwEFCwMlAQcHBAcEBAAOAxYEJgEOEwcZBwQHDgETBxkHDQwPAAMIEgYIBggGBggFBQsYGAgGCxILAAgSBxIIEgYCCAsGCBIGABgYCAUFEgoFEQoFBQULCgUFBQ0FCAYLEgsIEhEGBgYGBQoKChcKCgoKChcKFwoKFwoKChcKAQEBAQYGAwMBAQEBEREAAAMBAREUAAADAwEBAQEDAAMBEBADBQMFCQADAQAAHBwcAAABAwEIAQEBAQALBQEGBgADAwEBAQ4DAwQHBwQEAA4OAAMDCQUOAAMDCQEGDgYGAAMBBwkBARAMDw8BDQ0NBAQBcAASBQYBAUCAgAIGCAF/AUGQqgYLB6kZ2QQBZgIAAWcADQFoABwBaQANAWoACgFrAPQBAWwA8wEBbQDVAgFuANQCAW8A0wIBcADSAgFxAAoBcgAcAXMACgF0AAoBdQD0AQF2ABIBdwDRAgF4ANACAXkAzwIBegDOAgFBABwBQgDNAgFDAMwCAUQAywIBRQDKAgFGAMkCAUcAyAIBSADHAgFJAMYCAUoACgFLAOsBAUwAHAFNAA0BTgAsAU8AEgFQAAoBUQAnAVIAHAFTAA0BVAAsAVUAEgFWAMUCAVcAxAIBWADDAgFZAMICAVoACgFfACUBJAAcAmFhAA0CYmEALAJjYQASAmRhAAoCZWEACgJmYQDfAgJnYQCwAQJoYQCvAQJpYQASAmphAAoCa2EACgJsYQBQAm1hABICbmEAMAJvYQDBAgJwYQBGAnFhAMACAnJhAL8CAnNhABYCdGEACgJ1YQCEAQJ2YQASAndhAC4CeGEArgECeWEAMQJ6YQC+AgJBYQC9AgJCYQAKAkNhAAoCRGEAhAECRWEAEgJGYQDnAQJHYQCuAQJIYQDkAgJJYQCwAQJKYQCvAQJLYQAKAkxhAAoCTWEACgJOYQAKAk9hACUCUGEACgJRYQANAlJhAA0CU2EALAJUYQD2AgJVYQD1AgJWYQD0AgJXYQDzAgJYYQBYAllhAFcCWmEArQECX2EArAECJGEAqwECYWIAuwICYmIAugICY2IAuQICZGIAqgECZWIAuAICZmIAqQECZ2IAtwICaGIAtgICaWIAtQICamIAwQECa2IAegJsYgBBAm1iAEACbmIAWAJvYgBXAnBiAK0BAnFiAKwBAnJiAAoCc2IACgJ0YgAKAnViAAoCdmIAJQJ3YgAKAnhiAA0CeWIADQJ6YgAsAkFiABsCQmIACgJDYgANAkRiAAoCRWIADQJGYgArAkdiAAoCSGIADQJJYgAKAkpiAA0CS2IASgJMYgAWAk1iAA0CTmIACgJPYgANAlBiAEkCUWIAFgJSYgANAlNiAAoCVGIADQJVYgBIAlZiABYCV2IADQJYYgAKAlliAA0CWmIADQJfYgAWAiRiAAoCYWMADQJiYwAWAmNjAAoCZGMAwgECZWMA3gECZmMAqAECZ2MA+gICaGMAtAICaWMA+QICamMAEgJrYwANAmxjABYCbWMACgJuYwANAm9jABYCcGMACgJxYwANAnJjAA0Cc2MA3gECdGMAEgJ1YwCoAQJ2YwCzAgJ3YwAiAnhjAIsDAnljALICAnpjACECQWMAFgJCYwCnAQJDYwDgAgJEYwAKAkVjANYCAkZjAGMCR2MAsQICSGMALQJJYwCwAgJKYwAWAktjAFACTGMAMgJNYwBxAk5jAB0CT2MApwECUGMADQJRYwAWAlJjACcCU2MACgJUYwCmAQJVYwDCAQJWYwANAldjABYCWGMAJwJZYwAKAlpjAKYBAl9jABICJGMAmAMCYWQAlwMCYmQAlgMCY2QAlQMCZGQAEgJlZACUAwJmZAAKAmdkABwCaGQAkwMCaWQAUAJqZADnAQJrZAC3AwJsZAC2AwJtZAC1AwJuZACzAwJvZACyAwJwZAAWAnFkABwCcmQAsQMCc2QAhAECdGQA3AICdWQAQQJ2ZADbAgJ3ZADaAgJ4ZAAKAnlkAAoCemQACgJBZAAKAkJkANkCAkNkAJUBAkRkAA0CRWQACgJGZAClAQJHZACkAQJIZACXAQJJZACjAQJKZACWAQJLZADnAgJMZAASAk1kAKUBAk5kAKQBAk9kAJcBAlBkAKMBAlFkAJYBAlJkAA0CU2QACgJUZACVAQJVZAASAlZkAFECV2QADQJYZAAUAllkABwCWmQAFAJfZAANAiRkAH8CYWUAjwMCYmUAZAJjZQAUAmRlAH4CZWUAfQJmZQB8AmdlANkBAmhlAI4DAmllAI0DAmplACcCa2UAjAMCbGUArwICbWUArgICbmUArQICb2UArAICcGUAqwICcWUAOQJyZQANAnNlABQCdGUAHAJ1ZQAUAnZlAA0Cd2UAfwJ4ZQDVAQJ5ZQBRAnplABQCQWUAfgJCZQB9AkNlADkCRGUA1AECRWUAZAJGZQDTAQJHZQB8AkhlAHsCSWUAqgICSmUAogECS2UAqAICTGUAUQJNZQA5Ak5lADkCT2UADQJQZQAUAlFlABwCUmUAFAJTZQANAlRlAH8CVWUA1QECVmUAUQJXZQAUAlhlAH4CWWUAfQJaZQA5Al9lANQBAiRlAGQCYWYA0wECYmYAfAJjZgB7AmRmAKcCAmVmAKIBAmZmAKYCAmdmAKUCAmhmAKQCAmpmAIoDAmtmAN4CAmxmAIgBAm1mAN0CAm5mAAoCb2YACgJwZgAfAnFmAIgBAnJmAAoCc2YACgJ0ZgAKAnVmACUCdmYACgJ3ZgANAnhmAA0CeWYALAJ6ZgDhAgJBZgBYAkJmAFcCQ2YAEgJEZgCrAQJFZgCjAgJGZgCqAQJHZgCpAQJIZgBYAklmAFcCSmYACgJLZgAlAkxmAAoCTWYADQJOZgANAk9mACwCUGYAEgJRZgASAlJmAJ4DAlNmAJ0DAlRmAJwDAlVmAKICAlZmAKECAldmAJsDAlhmAJoDAllmACUCWmYACgJfZgCZAwIkZgAcAmFnAFECYmcAOQJjZwBkAmRnACcCZWcADQJmZwDoAgJnZwChAQJoZwDzAQJpZwAnAmpnAA0Ca2cAoQECbGcAUAJtZwAWAm5nAAoCb2cACgJwZwAWAnFnAMoBAnJnAIADAnNnAP8CAnRnAP4CAnVnAKABAnZnAJ8BAndnAJ4BAnhnAJ0BAnlnAP0CAnpnAHECQWcA/AICQmcA+wICQ2cAUAJEZwAWAkVnAAoCRmcACgJHZwAWAkhnAMoBAklnAIIDAkpnAIEDAktnAMkBAkxnAHECTWcAyAECTmcAxwECT2cAzAECUGcAywECUWcAhwMCUmcAhgMCU2cAnQECVGcAnwECVWcAngECVmcAoAECV2cACgJYZwAnAllnABQCWmcACgJfZwDrAQIkZwAUAmFoAJ8CAmJoAJ4CAmNoAJ0CAmRoAJwCAmVoAJsCAmZoAJoCAmdoABICaGgAEgJpaAAKAmpoACUCa2gAFAJsaACIAwJtaACcAQJuaACbAQJvaAASAnBoAAoCcWgAJwJyaAAUAnNoAJgCAnRoAJcCAnVoAJYCAnZoABICd2gAnAECeGgAlQICeWgAmwECemgACgJBaAAlAkJoABQCQ2gAEgJEaAANAkVoAAoCRmgAFgJHaAA3AkhoAD8CSWgAsQECSmgAvAMCS2gAuwMCTGgA6AECTWgAugMCTmgAGQJPaAC5AwJQaAAKAlFoALgDAlJoAJQCAlNoAJIDAlRoAJEDAlVoAJADAlZoAIIBAldoAIEBAlhoAMEDAlloALQDAlpoAKsDAl9oANgCAiRoANcCAmFpADkCYmkAHAJjaQB6AmRpAEECZWkAiQMCZmkAmgECZ2kAkwICaGkAkgICaWkAkAICamkAmQECa2kAjwICbGkAmAECbWkAjgICbmkACgJvaQAKAnBpAAoCcWkACgJyaQAlAnNpAA0CdGkALAJ1aQCNAgJ2aQCMAgJ3aQDBAQJ4aQCwAwJ5aQCvAwJ6aQCuAwJBaQCt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iEL///8AgyIIIAEoAA8iO0EGdkH///8Aca0iBn58IAEoAAoiPEEYdq0gATEADkIIhoQgATEAD0IQhoRCAYhC////AIMiDCACKAAKIj1BBHZB////AHGtIg1+fCA5QRh2rSACMQAGQgiGhCACMQAHQhCGhEICiEL///8AgyIOIDtBGHatIAExABNCCIaEIAExABRCEIaEQgOIIgl+fCACKAAPIjlBBnZB////AHGtIgcgATUAB0IHiEL///8AgyIPfnwgPUEYdq0gAjEADkIIhoQgAjEAD0IQhoRCAYhC////AIMiCiA8QQR2Qf///wBxrSIQfnwgOUEYdq0gAjEAE0IIhoQgAjEAFEIQhoRCA4giESABKAACIjlBGHatIAExAAZCCIaEIAExAAdCEIaEQgKIQv///wCDIhJ+fCACMwAVIAIxABdCEIZCgID8AIOEIhUgOUEFdkH///8Aca0iFn58IAEzAAAgATEAAkIQhkKAgPwAg4QiFyACKAAXIjlBBXZB////AHGtIhh+fCAEIAV+IAkgC358IAggDH58IA0gEH58IAYgDn58IAcgEn58IAogD358IBEgFn58IBUgF358Ih1CgIBAfSIeQhWIfCITIBNCgIBAfSIgQoCAgH+DfSA5QRh2rSACMQAbQgiGhCACMQAcQhCGhEICiEL///8AgyITIAEoABxBB3atIhl+IDpBGHatIAExABtCCIaEIAExABxCEIaEQgKIQv///wCDIhogAigAHEEHdq0iG358IAMgG34gGCAZfnwgEyAafnwiIUKAgEB9Ih9CFYh8IiIgIkKAgEB9IhxCgICA/////wCDfSIiQpPYKH58ICEgH0KAgID/////AIN9IBUgGX4gGCAafnwgBCAbfnwgAyATfnwgAyAYfiARIBl+fCAVIBp+fCAJIBt+fCAEIBN+fCIjQoCAQH0iFEIViHwiH0KAgEB9IiRCFYh8IiFCmNocfnwgHyAkQoCAgH+DfSIfQuf2J358ICMgFEKAgIB/g30gESAafiAHIBl+fCAEIBh+fCADIBV+fCAGIBt+fCAJIBN+fCAKIBl+IAcgGn58IAMgEX58IAkgGH58IAQgFX58IAwgG358IAYgE358IhRCgIBAfSIkQhWIfCIlQoCAQH0iJkIViHwiI0LTjEN+fCAdIAUgCX4gBiALfnwgCCAQfnwgDSAP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SQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsEAEEQCxkBAX9BiKoCKAIAIgAEQCAAERYACxCLAQAL1AECBX8CfgJ/IAJCAFIEQCAAQeABaiEHIABB4ABqIQMgACgA4AIhBANAIAMgBGohBkGAAiAEayIFrSIIIAJaBEAgBiABIAKnIgEQCxogACAAKADgAiABajYA4AJBAAwDCyAGIAEgBRALGiAAIAAoAOACIAVqNgDgAiAAIAApAEAiCUKAAXw3AEAgACAAKQBIIAlC/35WrXw3AEggACADEFIgAyAHQYABEAsaIAAgACgA4AJBgAFrIgQ2AOACIAEgBWohASACIAh9IgJCAFINAAsLQQALC58EARN/IAEoAgQhAiABKAIsIQMgASgCCCEEIAEoAjAhBSABKAIMIQYgASgCNCEHIAEoAhAhCCABKAI4IQkgASgCFCEKIAEoAjwhCyABKAIYIQwgAUFAayINKAIAIQ4gASgCHCEPIAEoAkQhECABKAIgIREgASgCSCESIAEoAiQhEyABKAJMIRQgACABKAIAIAEoAihqNgIAIAAgEyAUajYCJCAAIBEgEmo2AiAgACAPIBBqNgIcIAAgDCAOajYCGCAAIAogC2o2AhQgACAIIAlqNgIQIAAgBiAHajYCDCAAIAQgBWo2AgggACACIANqNgIEIAEoAgQhAiABKAIsIQMgASgCCCEEIAEoAjAhBSABKAIMIQYgASgCNCEHIAEoAhAhCCABKAI4IQkgASgCFCEKIAEoAjwhCyABKAIYIQwgDSgCACENIAEoAhwhDiABKAJEIQ8gASgCICEQIAEoAkghESABKAIAIRIgASgCKCETIAAgASgCTCABKAIkazYCTCAAIBEgEGs2AkggACAPIA5rNgJEIABBQGsgDSAMazYCACAAIAsgCms2AjwgACAJIAhrNgI4IAAgByAGazYCNCAAIAUgBGs2AjAgACADIAJrNgIsIAAgEyASazYCKCAAIAEpAlA3AlAgACABKQJYNwJYIAAgASkCYDcCYCAAIAEpAmg3AmggACABKQJwNwJwIABB+ABqIAFB+ABqQZANEAYL6AQBCX8gACABKAIgIgUgASgCHCIGIAEoAhgiByABKAIUIgggASgCECIJIAEoAgwiCiABKAIIIgQgASgCBCIDIAEoAgAiAiABKAIkIgFBE2xBgICACGpBGXZqQRp1akEZdWpBGnVqQRl1akEadWpBGXVqQRp1akEZdWpBGnUgAWpBGXVBE2wgAmoiAjoAACAAIAJBEHY6AAIgACACQQh2OgABIAAgAyACQRp1aiIDQQ52OgAFIAAgA0EGdjoABCAAIAJBGHZBA3EgA0ECdHI6AAMgACAEIANBGXVqIgJBDXY6AAggACACQQV2OgAHIAAgAkEDdCADQYCAgA5xQRZ2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ABcgAy0AD3I6AA8gAyAALQAYIAMtAA9yOgAPIAMgAC0AGSADLQAPcjoADyADIAAtABogAy0AD3I6AA8gAyAALQAbIAMtAA9yOgAPIAMgAC0AHCADLQAPcjoADyADIAAtAB0gAy0AD3I6AA8gAyAALQAeIAMtAA9yOgAPIAMgAC0AHyADLQAPcjoADyADLQAPQRd0QYCAgARrQR91IQQLIANBEGokACAEC30BA38CQAJAIAAiAUEDcUUNACABLQAARQRAQQAPCwNAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASICQQRqIQFBgIKECCACKAIAIgNrIANyQYCBgoR4cUGAgYKEeEYNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrCycAIAJBgAJPBEBB1gpB/wlB6wBB4wgQAQALIAAgASACQf8BcRCDAQv7AwECf0F/IQQCQCACQcAASw0AIANBwQBrQUBJDQACQCABQQAgAhtFBEAgA0H/AXEiAUHBAGtB/wFxQb8BTQRAEA4ACyAAQUBrQQBBpQIQDBogAEL5wvibkaOz8NsANwA4IABC6/qG2r+19sEfNwAwIABCn9j52cKR2oKbfzcAKCAAQtGFmu/6z5SH0QA3ACAgAELx7fT4paf9p6V/NwAYIABCq/DT9K/uvLc8NwAQIABCu86qptjQ67O7fzcACCAAIAGtQoiS95X/zPmE6gCFNwAADAELAn8gAkH/AXEhAiMAQYABayIFJAACQCADQf8BcSIDQcEAa0H/AXFBvwFNDQAgAUUNACACQcEAa0H/AXFBvwFNDQAgAEFAa0EAQaUCEAwaIABC+cL4m5Gjs/DbADcAOCAAQuv6htq/tfbBHzcAMCAAQp/Y+dnCkdqCm383ACggAELRhZrv+s+Uh9EANwAgIABC8e30+KWn/aelfzcAGCAAQqvw0/Sv7ry3PDcAECAAQrvOqqbY0Ouzu383AAggACADrSACrUIIhoRCiJL3lf/M+YTqAIU3AAAgAEHgAGogBUEAQYABEAwgASACEAsiAUGAARALGiAAIAAoAOACQYABajYA4AIgAUGAARAJIAFBgAFqJABBAAwBCxAOAAsNAQtBACEECyAECw0AIAAgASACECQaQQAL6AUCB34DfyMAQaACayILJAACQCACUA0AIAAgACkDICIDIAJCA4Z8NwMgIABBKGohCkLAACADQgOIQj+DIgR9IgggAlgEQEIAIQMgBEI/hUIDWgRAIAhC/ACDIQcDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiCSAEfKdqIAEgCadqLQAAOgAAIAogA0IChCIJIAR8p2ogASAJp2otAAA6AAAgCiADQgOEIgkgBHynaiABIAmnai0AADoAACADQgR8IQMgBUIEfCIFIAdSDQALCyAIQgODIgVCAFIEQANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgCiALIAtBgAJqIgwQYiABIAinaiEBIAIgCH0iAkI/VgRAA0AgACABIAsgDBBiIAFBQGshASACQkB8IgJCP1YNAAsLAkAgAlANACACQgODIQRCACEGQgAhAyACQgRaBEAgAkI8gyEFQgAhAgNAIAogA6ciAGogACABai0AADoAACAKIABBAXIiDGogASAMai0AADoAACAKIABBAnIiDGogASAMai0AADoAACAKIABBA3IiAGogACABai0AADoAACADQgR8IQMgAkIEfCICIAVSDQALCyAEUA0AA0AgCiADpyIAaiAAIAFqLQAAOgAAIANCAXwhAyAGQgF8IgYgBFINAAsLIAtBoAIQCQwBC0IAIQMgAkIEWgRAIAJCfIMhCANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIAogA0IBhCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgKEIgcgBHynaiABIAenai0AADoAACAKIANCA4QiByAEfKdqIAEgB6dqLQAAOgAAIANCBHwhAyAFQgR8IgUgCFINAAsLIAJCA4MiAlANAANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgAlINAAsLIAtBoAJqJABBAAsEAEEYCw0AIAAgASACEBcaQQALBABBCAv3EgIVfgN/IAAgACgALCIWQQV2Qf///wBxrSAAKAA8QQN2rSICQoOhVn4gADMAKiAAMQAsQhCGQoCA/ACDhHwiC0KAgEB9IghCFYd8IgFCg6FWfiAANQAxQgeIQv///wCDIgNC04xDfiAAKAAXIhdBGHatIAAxABtCCIaEIAAxABxCEIaEQgKIQv///wCDfCAAKAA0IhhBBHZB////AHGtIgRC5/YnfnwgFkEY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QbABaiQAC7sGAQl/IwBB4ABrIgMkACACQcEATwRAIAAQYxogACABIAKtECQaIAAgAxAtGkEgIQIgAyEBCyAAEGMaIANCtuzYsePGjZs2NwNYIANCtuzYsePGjZs2NwNQIANCtuzYsePGjZs2NwNIIANBQGsiCkK27Nix48aNmzY3AwAgA0K27Nix48aNmzY3AzggA0K27Nix48aNmzY3AzAgA0K27Nix48aNmzY3AyggA0K27Nix48aNmzY3AyACQCACRQ0AIAJBBE8EQCACQfwAcSEGA0AgA0EgaiILIARqIgUgBS0AACABIARqLQAAczoAACALIARBAXIiBWoiCCAILQAAIAEgBWotAABzOgAAIAsgBEECciIFaiIIIAgtAAAgASAFai0AAHM6AAAgCyAEQQNyIgVqIgggCC0AACABIAVqLQAAczoAACAEQQRqIQQgB0EEaiIHIAZHDQALCyACQQNxIgdFDQADQCADQSBqIARqIgYgBi0AACABIARqLQAAczoAACAEQQFqIQQgCUEBaiIJIAdHDQALCyAAIANBIGpCwAAQJBogAEHoAGoiABBjGiADQty48eLFi5eu3AA3A1ggA0LcuPHixYuXrtwANwNQIANC3Ljx4sWLl67cADcDSCAKQty48eLFi5eu3AA3AwAgA0LcuPHixYuXrtwANwM4IANC3Ljx4sWLl67cADcDMCADQty48eLFi5eu3AA3AyggA0LcuPHixYuXrtwANwMgAkAgAkUNAEEAIQlBACEEIAJBBE8EQCACQfwAcSEKQQAhBwNAIANBIGoiCCAEaiIGIAYtAAAgASAEai0AAHM6AAAgCCAEQQFyIgZqIgUgBS0AACABIAZqLQAAczoAACAIIARBAnIiBmoiBSAFLQAAIAEgBmotAABzOgAAIAggBEEDciIGaiIFIAUtAAAgASAGai0AAHM6AAAgBEEEaiEEIAdBBGoiByAKRw0ACwsgAkEDcSICRQ0AA0AgA0EgaiAEaiIHIActAAAgASAEai0AAHM6AAAgBEEBaiEEIAlBAWoiCSACRw0ACwsgACADQSBqIgBCwAAQJBogAEHAABAJIANBIBAJIANB4ABqJABBAAs7AQF/IwBBQGoiAiQAIAAgAhAdGiAAQdABaiIAIAJCwAAQFxogACABEB0aIAJBwAAQCSACQUBrJABBAAtyACAAQgA3A0AgAEIANwNIIABBsIwCKQMANwMAIABBuIwCKQMANwMIIABBwIwCKQMANwMQIABByIwCKQMANwMYIABB0IwCKQMANwMgIABB2IwCKQMANwMoIABB4IwCKQMANwMwIABB6IwCKQMANwM4QQALIwAgAUKAgICAEFoEQBAOAAsgACABIAIgA0G0nwIoAgARDwAL5QgBGH8jAEHAAmsiAiQAIABBKGoiFyABEDYgAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAkHwAWoiBCAXEAUgAkHAAWoiDiAEQbAMEAYgAiACKALAAUEBajYCwAEgAiACKALwAUEBayIDNgLwASACKAL0ASENIAIoAvgBIQUgAigC/AEhBiACKAKAAiEHIAIoAoQCIQggAigCiAIhCSACKAKMAiEKIAIoApACIQsgAigClAIhDCAAIAQgDhAGIAAgABBuIAAgBCAAEAYgAkGQAWoiBCAAEAUgBCAEIA4QBiACIAIoArQBIgQgDGs2AoQBIAIgAigCsAEiDiALazYCgAEgAiACKAKsASIPIAprNgJ8IAIgAigCqAEiECAJazYCeCACIAIoAqQBIhEgCGs2AnQgAiACKAKgASISIAdrNgJwIAIgAigCnAEiEyAGazYCbCACIAIoApgBIhQgBWs2AmggAiACKAKUASIVIA1rNgJkIAIgAigCkAEiFiADazYCYCACIAQgDGo2AlQgAiALIA5qNgJQIAIgCiAPajYCTCACIAkgEGo2AkggAiAIIBFqNgJEIAIgByASajYCQCACIAYgE2o2AjwgAiAFIBRqNgI4IAIgDSAVajYCNCACIAMgFmo2AjAgAiACQeAAahARIAJBIBAaIQQgAiACQTBqEBEgAkEgEBohDyACIABB4AwQBiAAKAIEIQwgACgCCCELIAAoAgwhCiAAKAIQIQkgACgCFCEIIAAoAhghByAAKAIcIQYgACgCICEFIAAoAgAhDiACKAIAIRAgAigCBCERIAIoAgghEiACKAIMIRMgAigCECEUIAIoAhQhFSACKAIYIRYgAigCHCEYIAIoAiAhGSAAIARBAWsiAyAAKAIkIg0gAigCJHNxIA1zIg02AiQgACAFIAUgGXMgA3FzIgU2AiAgACAGIAYgGHMgA3FzIgY2AhwgACAHIAcgFnMgA3FzIgc2AhggACAIIAggFXMgA3FzIgg2AhQgACAJIAkgFHMgA3FzIgk2AhAgACAKIAogE3MgA3FzIgo2AgwgACALIAsgEnMgA3FzIgs2AgggACAMIAwgEXMgA3FzIgw2AgQgACAOIA4gEHMgA3FzIgM2AgAgAkGgAmogABARIABBACACLQCgAkEBcSABLQAfQQd2c0GAqgItAABBAnZzayIBIA1BACANa3NxIA1zNgIkIAAgBUEAIAVrcyABcSAFczYCICAAIAZBACAGa3MgAXEgBnM2AhwgACAHQQAgB2tzIAFxIAdzNgIYIAAgCEEAIAhrcyABcSAIczYCFCAAIAlBACAJa3MgAXEgCXM2AhAgACAKQQAgCmtzIAFxIApzNgIMIAAgC0EAIAtrcyABcSALczYCCCAAIAxBACAMa3MgAXEgDHM2AgQgACADQQAgA2tzIAFxIANzNgIAIABB+ABqIAAgFxAGIAJBwAJqJAAgBCAPckEBawvKCAEDfyMAQcABayICJAAgAkGQAWoiBCABEAUgAkHgAGoiAyAEEAUgAyADEAUgAyABIAMQBiAEIAQgAxAGIAJBMGoiASAEEAUgAyADIAEQBiABIAMQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSADIAEgAxAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiABEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSADIAEgAxAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiABEAVBASEBA0AgAiACEAUgAUEBaiIBQeQARw0ACyACQTBqIgEgAiABEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgAkHgAGoiAyABIAMQBiADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSAAIAMgAkGQAWoQBiACQcABaiQAC/QEARl+IAExAB8hAiABMQAeIQYgATEAHSEOIAExAAYhByABMQAFIQggATEABCEDIAExAAkhDyABMQAIIRAgATEAByERIAExAAwhCSABMQALIQogATEACiELIAExAA8hDCABMQAOIRIgATEADSETIAExABwhBCABMQAbIRQgATEAGiEVIAExABkhBSABMQAYIRYgATEAFyEXIAE1AAAhGCAAIAExABVCD4YgATEAFEIHhoQgATEAFkIXhoQgATUAECIZQoCAgAh8IhpCGYh8Ig0gDUKAgIAQfCINQoCAgOAPg30+AhggACAWQg2GIBdCBYaEIAVCFYaEIgUgDUIaiHwgBUKAgIAIfCIFQoCAgPADg30+AhwgACAUQgyGIBVCBIaEIARCFIaEIAVCGYh8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAg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ASACIAk2AsgBIAIgCjYCxAEgAiALQQFqNgLAASACQeAAaiISIAJBwAFqIhMQBSACQTBqIhBBsAwgDBAGIAIoAmAhASACKAIwIQMgAigCZCEEIAIoAjQhBSACKAJoIQYgAigCOCEHIAIoAmwhCCACKAI8IQkgAigCcCEKIAIoAkAhCyACKAJ0IQwgAigCRCEOIAIoAnghDyACKAJIIRQgAigCfCEVIAIoAkwhFiACKAKAASEXIAIoAlAhGCACQQAgAigCVCACKAKEAWprNgJUIAJBACAXIBhqazYCUCACQQAgFSAWams2AkwgAkEAIA8gFGprNgJIIAJBACAMIA5qazYCRCACQQAgCiALams2AkAgAkEAIAggCWprNgI8IAJBACAGIAdqazYCOCACQQAgBCAFams2AjQgAkEAIAEgA2prNgIwIAIgECASEAYgAkIANwKUAyACQgA3ApwDIAJBADYCpAMgAkIANwKEAyACQQE2AoADIAJCADcCjAMgAkGwA2oiASACQYADaiACEGohDyAAIAEgExAGIABBKGoiAyABIAAQBiADIAMgEBAGIAAgACANEAYgACAAKAIkQQF0IgQ2AiQgACAAKAIgQQF0IgU2AiAgACAAKAIcQQF0IgY2AhwgACAAKAIYQQF0Igc2AhggACAAKAIUQQF0Igg2AhQgACAAKAIQQQF0Igk2AhAgACAAKAIMQQF0Igo2AgwgACAAKAIIQQF0Igs2AgggACAAKAIEQQF0Igw2AgQgACAAKAIAQQF0Ig42AgAgAkHgA2oiDSAAEBEgAEEAIAItAOADQQFxayIBIARBACAEa3NxIARzNgIkIAAgBUEAIAVrcyABcSAFczYCICAAIAZBACAGa3MgAXEgBnM2AhwgACAHQQAgB2tzIAFxIAdzNgIYIAAgCEEAIAhrcyABcSAIczYCFCAAIAlBACAJa3MgAXEgCXM2AhAgACAKQQAgCmtzIAFxIApzNgIMIAAgC0EAIAtrcyABcSALczYCCCAAIAxBACAMa3MgAXEgDHM2AgQgACAOQQAgDmtzIAFxIA5zNgIAIAMgESADEAYgAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAEH4AGoiASAAIAMQBiANIAEQESACLQDgAyEAIA0gAxARQQAgDUEgEBpBASAPayAAQQFxcnJrIQMLIAJBgARqJAAgAwuFBwEKfyMAQeADayICJAADQCACQaACaiIFIANBAXRqIgYgASADai0AACIHQQR2OgABIAYgB0EPcToAACADQQFyIgZBAXQgBWoiByABIAZqLQAAIgZBBHY6AAEgByAGQQ9xOgAAIANBAmoiA0EgRw0AC0EAIQEDQCACQaACaiAEaiIDIAMtAAAgAWoiASABQQhqIgFB8AFxazoAACADIAMtAAEgAcBBBHVqIgEgAUEIaiIBQfABcWs6AAEgAyADLQACIAHAQQR1aiIBIAFBCGoiAUHwAXFrOgACIAHAQQR1IQEgBEEDaiIEQT9HDQALIAIgAi0A3wIgAWo6AN8CIABCADcCICAAQgA3AhggAEIANwIQIABCADcCCCAAQgA3AgAgAEIANwIsIABBATYCKCAAQgA3AjQgAEIANwI8IABCADcCRCAAQoCAgIAQNwJMIABB1ABqQQBBzAAQDBogAEH4AGohCyAAQdAAaiEHIABBKGohCSACQdABaiEBIAJBqAFqIQYgAkH4AWohBEEBIQMDQCACQQhqIgggA0EBdiACQaACaiADaiwAABCPASACQYABaiIFIAAgCBBtIAAgBSAEEAYgCSAGIAEQBiAHIAEgBBAGIAsgBSAGEAYgA0E+SSADQQJqIQMNAAsgAiAAKQIgNwOIAyACIAApAhg3A4ADIAIgACkCEDcD+AIgAiAAKQIINwPwAiACIAApAgA3A+gCIAIgCSkCCDcDmAMgAiAJKQIQNwOgAyACIAkpAhg3A6gDIAIgCSkCIDcDsAMgAiAJKQIANwOQAyACIAcpAgg3A8ADIAIgBykCEDcDyAMgAiAHKQIYNwPQAyACIAcpAiA3A9gDIAIgBykCADcDuAMgBSACQegCaiIKEBggCiAFIAQQBiACQZADaiIDIAYgARAGIAJBuANqIgggASAEEAYgBSAKEBggCiAFIAQQBiADIAYgARAGIAggASAEEAYgBSAKEBggCiAFIAQQBiADIAYgARAGIAggASAEEAYgBSAKEBggACAFIAQQBiAJIAYgARAGIAcgASAEEAYgCyAFIAYQBkEAIQMDQCACQQhqIgggA0EBdiACQaACaiADaiwAABCPASACQYABaiIFIAAgCBBtIAAgBSAEEAYgCSAGIAEQBiAHIAEgBBAGIAsgBSAGEAYgA0E+SSADQQJqIQMNAAsgAkHgA2okAAuLAQEBfyMAQRBrIgIgADYCDCACIAE2AghBACEAIAJBADYCBANAIAIgAigCBCACKAIMIABqLQAAIAIoAgggAGotAABzcjYCBCACIAIoAgQgAEEBciIBIAIoAgxqLQAAIAIoAgggAWotAABzcjYCBCAAQQJqIgBBIEcNAAsgAigCBEEBa0EIdkEBcUEBaws0AQJ/IwBBIGsiAyQAQX8hBCADIAIgARAfRQRAIABB0JYCIANBABArIQQLIANBIGokACAECxYAIAFBIBAZIAAgAUGMlwIoAgARAAAL6AIBAn8CQCAAIAFGDQAgASAAIAJqIgRrQQAgAkEBdGtNBEAgACABIAIQCw8LIAAgAXNBA3EhAwJAAkAgACABSQRAIAMEQCAAIQMMAwsgAEEDcUUEQCAAIQMMAgsgACEDA0AgAkUNBCADIAEtAAA6AAAgAUEBaiEBIAJBAWshAiADQQFqIgNBA3ENAAsMAQsCQCADDQAgBEEDcQRAA0AgAkUNBSAAIAJBAWsiAmoiAyABIAJqLQAAOgAAIANBA3ENAAsLIAJBA00NAANAIAAgAkEEayICaiABIAJqKAIANgIAIAJBA0sNAAsLIAJFDQIDQCAAIAJBAWsiAmogASACai0AADoAACACDQALDAILIAJBA00NAANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIAJBBGsiAkEDSw0ACwsgAkUNAANAIAMgAS0AADoAACADQQFqIQMgAUEBaiEBIAJBAWsiAg0ACwsgAAuAAgEDfwJ/AkACQAJAIAEiA0H/AXEiAQRAIABBA3EEQANAIAAtAAAiAkUNBSABIAJGDQUgAEEBaiIAQQNxDQALC0GAgoQIIAAoAgAiAmsgAnJBgIGChHhxQYCBgoR4Rw0BIAFBgYKECGwhBANAQYCChAggAiAEcyIBayABckGAgYKEeHFBgIGChHhHDQIgACgCBCECIABBBGoiASEAIAJBgIKECCACa3JBgIGChHhxQYCBgoR4Rg0ACwwCCyAAECAgAGoMAwsgACEBCwNAIAEiAC0AACICRQ0BIABBAWohASACIANB/wFxRw0ACwsgAAsiAEEAIAAtAAAgA0H/AXFGGwtgAQJ/IAJFBEBBAA8LIAAtAAAiAwR/AkADQCADIAEtAAAiBEcNASAERQ0BIAJBAWsiAkUNASABQQFqIQEgAC0AASEDIABBAWohACADDQALQQAhAwsgAwVBAAsgAS0AAGsLUgECf0HwlgIoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQBA0BC0HwpQJBMDYCAEF/DwtB8JYCIAA2AgAgAQs5AQF/IwBBIGsiAiQAIAAgAhAtGiAAQegAaiIAIAJCIBAkGiAAIAEQLRogAkEgEAkgAkEgaiQAQQALlgEBAX8jAEHQAWsiAyQAIANCADcDSCADQbiMAikDADcDCCADQcCMAikDADcDECADQciMAikDADcDGCADQdCMAikDADcDICADQdiMAikDADcDKCADQeCMAikDADcDMCADQeiMAikDADcDOCADQgA3A0AgA0GwjAIpAwA3AwAgAyABIAIQFxogAyAAEB0aIANB0AFqJABBAAsQACAAIAEgAiADQQgQaUEACxAAIAAgASACIANBDBBpQQALEAAgACABIAIgA0EUEGlBAAuhEQIsfwV+IwBBoAZrIgIkACABKAIsIQMgASgCVCEFIAEoAjAhDCABKAJYIQ0gASgCNCEOIAEoAlwhDyABKAI4IRAgASgCYCERIAEoAjwhEiABKAJkIRMgAUFAayIUKAIAIRYgASgCaCEEIAEoAkQhBiABKAJsIQcgASgCSCEIIAEoAnAhCSABKAIoIQogASgCUCELIAIgASgCTCIVIAEoAnQiF2o2AsQCIAIgCCAJajYCwAIgAiAGIAdqNgK8AiACIAQgFmo2ArgCIAIgEiATajYCtAIgAiAQIBFqNgKwAiACIA4gD2o2AqwCIAIgDCANajYCqAIgAiADIAVqNgKkAiACIAogC2o2AqACIAIgFyAVazYCJCACIAkgCGs2AiAgAiAHIAZrNgIcIAIgBCAWazYCGCACIBMgEms2AhQgAiARIBBrNgIQIAIgDyAOazYCDCACIA0gDGs2AgggAiAFIANrNgIEIAIgCyAKazYCACACQaACaiIFIAUgAhAGIAJB8AFqIgYgASABQShqIgMQBiACQcABaiIEIAYQBSAEIAUgBBAGIAJCADcCxAMgAkIANwLMAyACQQA2AtQDIAJCADcCtAMgAkIANwK8AyACQQE2ArADIAJBwARqIgcgAkGwA2ogBBBqGiACQdAFaiIEIAcgBRAGIAJBoAVqIh8gByAGEAYgAkEwaiIdIAQgHxAGIB0gHSABQfgAaiIFEAYgAkGQBGogAUHgDBAGIAJB4ANqIANB4AwQBiACQfAEaiAEQYAXEAYgAkHQAmoiAyAFIB0QBiACQYADaiIYIAMQESACLQCAAyEDIAIgASkCICIuNwOwASACIAEpAhgiLzcDqAEgAiABKQIQIjA3A6ABIAIgASkCCCIxNwOYASACIAEpAgAiMjcDkAEgASgCLCEFIAEoAjAhDCABKAI0IQ0gASgCOCEOIAEoAjwhDyAUKAIAIRAgASgCRCERIAEoAkghEiABKAJMIRMgASgCKCEWIAIoAuQDIQogAigClAEhBCACKALsAyELIAIoApwBIQYgAigC9AMhFCACKAKkASEHIAIoAvwDIRUgAigCrAEhCCACKAKEBCEXIAIoArQBIQkgAigC4AMhHiACKALoAyEZIAIoAvADIRogAigC+AMhGyACQQAgA0EBcWsiAyAupyIcIAIoAoAEc3EgHHM2ArABIAIgGyAvpyIccyADcSAcczYCqAEgAiAaIDCnIhtzIANxIBtzNgKgASACIBkgMaciGnMgA3EgGnM2ApgBIAIgHiAypyIZcyADcSAZczYCkAEgAiAJIAkgF3MgA3FzNgK0ASACIAggCCAVcyADcXM2AqwBIAIgByAHIBRzIANxczYCpAEgAiAGIAYgC3MgA3FzNgKcASACIAQgBCAKcyADcXM2ApQBIAIoApAEIRcgAigClAQhHiACKAKYBCEZIAIoApwEIRogAigCoAQhGyACKAKkBCEcIAIoAqgEISAgAigCrAQhISACKAKwBCEiIAIoArQEISMgAigCoAUhBCACKALwBCEkIAIoAqQFIQYgAigC9AQhJSACKAKoBSEHIAIoAvgEISYgAigCrAUhCCACKAL8BCEnIAIoArAFIQkgAigCgAUhKCACKAK0BSEKIAIoAoQFISkgAigCuAUhCyACKAKIBSEqIAIoArwFIRQgAigCjAUhKyACKALABSEVIAIoApAFISwgAiACKALEBSItIAIoApQFcyADcSAtczYCxAUgAiAVIBUgLHMgA3FzNgLABSACIBQgFCArcyADcXM2ArwFIAIgCyALICpzIANxczYCuAUgAiAKIAogKXMgA3FzNgK0BSACIAkgCSAocyADcXM2ArAFIAIgCCAIICdzIANxczYCrAUgAiAHIAcgJnMgA3FzNgKoBSACIAYgBiAlcyADcXM2AqQFIAIgBCAEICRzIANxczYCoAUgAkHgAGoiBCACQZABaiAdEAYgGCAEEBEgASgCVCEEIAEoAlghBiABKAJcIQcgASgCYCEIIAEoAmQhCSABKAJoIQogASgCbCELIAEoAnAhFCABKAJQIRUgAiABKAJ0QQAgAi0AgANBAXFrIgEgEyATICNzIANxcyITQQAgE2tzcSATc2s2AqQDIAIgFCASIBIgInMgA3FzIhJBACASa3MgAXEgEnNrNgKgAyACIAsgESARICFzIANxcyIRQQAgEWtzIAFxIBFzazYCnAMgAiAKIBAgECAgcyADcXMiEEEAIBBrcyABcSAQc2s2ApgDIAIgCSAPIA8gHHMgA3FzIg9BACAPa3MgAXEgD3NrNgKUAyACIAggDiAOIBtzIANxcyIOQQAgDmtzIAFxIA5zazYCkAMgAiAHIA0gDSAacyADcXMiDUEAIA1rcyABcSANc2s2AowDIAIgBiAMIAwgGXMgA3FzIgxBACAMa3MgAXEgDHNrNgKIAyACIAQgBSAFIB5zIANxcyIFQQAgBWtzIAFxIAVzazYChAMgAiAVIAEgFiAWIBdzIANxcyIBQQAgAWtzcSABc2s2AoADIBggHyAYEAYgAkGABmogGBARIAJBACACLQCABkEBcWsiASACKAKAAyIDQQAgA2tzcSADczYCgAMgAiACKAKEAyIDQQAgA2tzIAFxIANzNgKEAyACIAIoAogDIgNBACADa3MgAXEgA3M2AogDIAIgAigCjAMiA0EAIANrcyABcSADczYCjAMgAiACKAKQAyIDQQAgA2tzIAFxIANzNgKQAyACIAIoApQDIgNBACADa3MgAXEgA3M2ApQDIAIgAigCmAMiA0EAIANrcyABcSADczYCmAMgAiACKAKcAyIDQQAgA2tzIAFxIANzNgKcAyACIAIoAqADIgNBACADa3MgAXEgA3M2AqADIAIgASACKAKkAyIBQQAgAWtzcSABczYCpAMgACAYEBEgAkGgBmokAAv4AQEKfwNAIAQgACADai0AACIBIANBgBVqIgItAABzciEEIAogASACLQDAAXNyIQogCSABIAItAKABc3IhCSAIIAEgAi0AgAFzciEIIAcgASACLQBgc3IhByAGIAEgAkFAay0AAHNyIQYgBSABIAItACBzciEFIANBAWoiA0EfRw0ACyAKIAAtAB9B/wBxIgBB/wBzIgFyQf8BcUEBayABIAlyQf8BcUEBayABIAhyQf8BcUEBayAHIABB+gBzckH/AXFBAWsgBiAAQQVzckH/AXFBAWsgACAFckH/AXFBAWsgACAEckH/AXFBAWtycnJycnJBCHZBAXELwQUBHH8jAEHAAmsiASQAIAFB8AFqIgMgABAFIAFBwAFqIgQgAEEoahAFIAFBkAFqIgIgAEHQAGoQBSABKALwASEAIAEoAsABIQUgASgC9AEhBiABKALEASEHIAEoAvgBIQggASgCyAEhCSABKAL8ASEKIAEoAswBIQsgASgCgAIhDCABKALQASENIAEoAoQCIQ4gASgC1AEhDyABKAKIAiEQIAEoAtgBIREgASgCjAIhEiABKALcASETIAEoApACIRQgASgC4AEhFSABIAEoAuQBIAEoApQCazYCVCABIBUgFGs2AlAgASATIBJrNgJMIAEgESAQazYCSCABIA8gDms2AkQgASANIAxrNgJAIAEgCyAKazYCPCABIAkgCGs2AjggASAHIAZrNgI0IAEgBSAAazYCMCABQTBqIhYgFiACEAYgASADIAQQBiABIAFBsAwQBiABQeAAaiACEAUgASgCMCEAIAEoAmAhBSABKAIAIQYgASgCNCEHIAEoAmQhCCABKAIEIQkgASgCOCEKIAEoAmghCyABKAIIIQwgASgCPCENIAEoAmwhDiABKAIMIQ8gASgCQCEQIAEoAnAhESABKAIQIRIgASgCRCETIAEoAnQhFCABKAIUIRUgASgCSCECIAEoAnghAyABKAIYIQQgASgCTCEXIAEoAnwhGCABKAIcIRkgASgCUCEaIAEoAoABIRsgASgCICEcIAEgASgCVCABKAKEASABKAIkams2AlQgASAaIBsgHGprNgJQIAEgFyAYIBlqazYCTCABIAIgAyAEams2AkggASATIBQgFWprNgJEIAEgECARIBJqazYCQCABIA0gDiAPams2AjwgASAKIAsgDGprNgI4IAEgByAIIAlqazYCNCABIAAgBSAGams2AjAgAUGgAmoiACAWEBEgAEEgEBogAUHAAmokAAuFAwIDfwF+IwBB4AJrIgYkACAGIAQgBUEAECsaAn8C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IAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCCABIAIpAogCNwIoIAEgAikCgAI3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAggASACKQKIAjcCGCABIAIpAoACNwIQIAIgAikDmAI3AxggAiACKQOQAjcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAggASACKQKIAjcCCCABIAIpAoACNwIAIAEgCiABKAAMczYCDCABIAkgASgACHM2AgggASAIIAEoAARzNgIEIAEgCyABKAAAczYCACAAIAcgACgAAHM2AgAgASAGIAEoAERzNgJEIAEgBSABKABIczYCSCABIAQgASgATHM2AkwgAkGgAmokAAvwCQEdfyABKAIEIQQgASgCLCEDIAEoAgghBSABKAIwIQYgASgCDCEHIAEoAjQhCCABKAIQIQkgASgCOCEKIAEoAhQhCyABKAI8IQwgASgCGCENIAFBQGsiDigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIkIRQgASgCTCEVIAAgASgCACABKAIoajYCACAAIBQgFWo2AiQgACASIBNqNgIgIAAgECARajYCHCAAIA0gD2o2AhggACALIAxqNgIUIAAgCSAKajYCECAAIAcgCGo2AgwgACAFIAZqNgIIIAAgAyAEajYCBCABKAIEIQMgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEPIA4oAgAhDiABKAIcIQQgASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAEoAighFCAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAEazYCRCAAQUBrIgQgDiAPazYCACAAIA0gDGs2AjwgACALIAprNgI4IAAgCSAIazYCNCAAIAcgBms2AjAgACAFIANrNgIsIAAgFCATazYCKCAAQdAAaiAAIAJBKGoQBiAAQShqIgMgAyACEAYgAEH4AGogAkH4AGogAUH4AGoQBiAAIAFB0ABqIAJB0ABqEAYgACgCBCEUIAAoAgghFSAAKAIMIRYgACgCECEXIAAoAhQhGCAAKAIYIRkgACgCHCEaIAAoAiAhGyAAKAIkIRwgACgCLCEBIAAoAlQhAiAAKAIwIQMgACgCWCEFIAAoAjQhBiAAKAJcIQcgACgCOCEIIAAoAmAhCSAAKAI8IQogACgCZCELIAQoAgAhDCAAKAJoIQ0gACgCRCEOIAAoAmwhDyAAKAJIIRAgACgCcCERIAAoAgAhHSAAKAIoIRIgACgCUCETIAAgACgCTCIeIAAoAnQiH2o2AkwgACAQIBFqNgJIIAAgDiAPajYCRCAEIAwgDWo2AgAgACAKIAtqNgI8IAAgCCAJajYCOCAAIAYgB2o2AjQgACADIAVqNgIwIAAgASACajYCLCAAIBIgE2o2AiggACAfIB5rNgIkIAAgESAQazYCICAAIA8gDms2AhwgACANIAxrNgIYIAAgCyAKazYCFCAAIAkgCGs2AhAgACAHIAZrNgIMIAAgBSADazYCCCAAIAIgAWs2AgQgACATIBJrNgIAIAAgACgCnAEiASAcQQF0IgJqNgKcASAAIAAoApgBIgQgG0EBdCIDajYCmAEgACAAKAKUASIFIBpBAXQiBmo2ApQBIAAgACgCkAEiByAZQQF0IghqNgKQASAAIAAoAowBIgkgGEEBdCIKajYCjAEgACAAKAKIASILIBdBAXQiDGo2AogBIAAgACgChAEiDSAWQQF0Ig5qNgKEASAAIAAoAoABIg8gFUEBdCIQajYCgAEgACAAKAJ8IhEgFEEBdCISajYCfCAAIAAoAngiEyAdQQF0IhRqNgJ4IAAgAyAEazYCcCAAIAYgBWs2AmwgACAIIAdrNgJoIAAgCiAJazYCZCAAIAwgC2s2AmAgACAOIA1rNgJcIAAgECAPazYCWCAAIBIgEWs2AlQgACAUIBNrNgJQIAAgAiABazYCdAtAAQN/IAAgASABQfgAaiICEAYgAEEoaiABQShqIgMgAUHQAGoiBBAGIABB0ABqIAQgAhAGIABB+ABqIAEgAxAGCxcAIAAgASACrSADrUIghoQgBCAFEL8BCxcAIAAgASACrSADrUIghoQgBCAFEMABC4UBAQV/AkAgAS0AABA4IgJFDQAgAS0AARA4IgNFDQAgAS0AAhA4IgRFDQAgAS0AAxA4IgVFDQAgAS0ABBA4IgZFDQAgACACQYAIayADQYAIa0EGdHIgBEGACGtBDHRyIAVBgAhrQRJ0ciAGQYAIa0EYdHI2AgAgAUEFag8LIABBADYCAEEAC8MGAQR/IAIgACADQQd0akFAaiIEKQIANwIAIAIgBCkCODcCOCACIAQpAjA3AjAgAiAEKQIoNwIoIAIgBCkCIDcCICACIAQpAhg3AhggAiAEKQIQNwIQIAIgBCkCCDcCCCADBEAgA0EBdCEGIANBBnQhBwNAIAIgAigCACAAIAVBBnRqIgMoAgBzNgIAIAIgAigCBCADKAIEczYCBCACIAIoAgggAygCCHM2AgggAiACKAIMIAMoAgxzNgIMIAIgAigCECADKAIQczYCECACIAIoAhQgAygCFHM2AhQgAiACKAIYIAMoAhhzNgIYIAIgAigCHCADKAIcczYCHCACIAIoAiAgAygCIHM2AiAgAiACKAIkIAMoAiRzNgIkIAIgAigCKCADKAIoczYCKCACIAIoAiwgAygCLHM2AiwgAiACKAIwIAMoAjBzNgIwIAIgAigCNCADKAI0czYCNCACIAIoAjggAygCOHM2AjggAiACKAI8IAMoAjxzNgI8IAIQuwEgASAFQQV0aiIEIAIpAjg3AjggBCACKQIwNwIwIAQgAikCKDcCKCAEIAIpAiA3AiAgBCACKQIYNwIYIAQgAikCEDcCECAEIAIpAgg3AgggBCACKQIANwIAIAIgAigCACADQUBrKAIAczYCACACIAIoAgQgAygCRHM2AgQgAiACKAIIIAMoAkhzNgIIIAIgAigCDCADKAJMczYCDCACIAIoAhAgAygCUHM2AhAgAiACKAIUIAMoAlRzNgIUIAIgAigCGCADKAJYczYCGCACIAIoAhwgAygCXHM2AhwgAiACKAIgIAMoAmBzNgIgIAIgAigCJCADKAJkczYCJCACIAIoAiggAygCaHM2AiggAiACKAIsIAMoAmxzNgIsIAIgAigCMCADKAJwczYCMCACIAIoAjQgAygCdHM2AjQgAiACKAI4IAMoAnhzNgI4IAIgAigCPCADKAJ8czYCPCACELsBIAQgB2oiAyACKQI4NwI4IAMgAikCMDcCMCADIAIpAig3AiggAyACKQIgNwIgIAMgAikCGDcCGCADIAIpAhA3AhAgAyACKQIINwIIIAMgAikCADcCACAFQQJqIgUgBkkNAAsLCyIBAX8gACgCACIBBEAgARAVCyAAQQA2AgggAEIANwIAQQALkR4CEX8UfiMAQYAgayIFJAACQCAARQ0AAkACQAJ/IAAoAiQiAkECRwRAIAEtAAghCSAAKAIEIQ4gASgCAAwBCyAAKAIEIQ4gAS0ACCEJIAEoAgAiDA0BIAlBAk8NAUEACyEMIAVBgBhqQQBBgAgQDBogBUG4EGpBAEHIBxAMGiAFIAytNwOAECABNQIEIRcgBSAJrUL/AYM3A5AQIAUgFzcDiBAgBSAANQIQNwOYECAANQIIIRcgBSACrTcDqBAgBSAXNwOgECAAKAIURQ0BQgAhFwNAIARB/wBxIgNFBEAgBSAXQgF8Ihc3A7AQIAVBAEGACBAMIgJBgAhqQQBBgAgQDBogAkGAGGoiBiACQYAQaiACEHUgBiACIAJBgAhqEHULIA4gBEEDdGogBUGACGogA0EDdGopAwA3AwAgBEEBaiIEIAAoAhQiA0kNAAsMAQsgACgCFCEDQQEhEAsgCSAMckUiEUEBdCIIIANPDQBBfyAAKAIYIgJBAWsgCCACIAEoAgQiDWxqIAMgCWxqIgogAnAbIApqIQQgCUEBaiESIA2tISYDQCAKQQFrIAQgCiAAKAIYIgJwQQFGGyENIAAoAhwhByAQBH8gACgCACgCBCANQQp0agUgDiAIQQN0agspAwAhEyABIAg2AgwgJiATQiCIpyAHcK0gERshGAJ+IAxFBEAgCUUEQCAIQQFrIQRCAAwCCyADIAlsIQQgGCAmUQRAIAQgCGpBAWshBEIADAILIAQgCEVrIQRCAAwBCyAYICZRBH8gCCADQX9zagVBAEF/IAgbIANrCyACaiEEQgAgCUEDRg0AGiADIBJsrQshFyAAKAIAKAIEIgMgAiAYp2xBCnRqIBcgBEEBa618IAStIBNC/////w+DIhcgF35CIIh+QiCIfSACrYKnQQp0aiEEIAMgDUEKdGohAiADIApBCnRqIQcCQCAMBEAgAiAEIAcQdQwBCyAFQYAYaiAEQYAIEAsaQQAhBANAIARBA3QiAyAFQYAYaiILaiIGIAYpAwAgAiADaikDAIU3AwAgCyADQQhyIgZqIg8gDykDACACIAZqKQMAhTcDACALIANBEHIiBmoiDyAPKQMAIAIgBmopAwCFNwMAIAsgA0EYciIDaiIGIAYpAwAgAiADaikDAIU3AwAgBEEEaiIEQYABRw0ACyAFQYAQaiALQYAIEAsaQQAhA0EAIQQDQCAFQYAYaiAEQQd0aiICIAIpAzgiFyACKQMYIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCACKQN4hUIgiSITIAIpA1giFnwgE0L/////D4MgFkIBhkL+////H4N+fCIWIBeFQiiJIhcgGHwgF0L/////D4MgGEIBhkL+////H4N+fCIYIBOFQjCJIhMgAikDKCIUIAIpAwgiFXwgFUIBhkL+////H4MgFEL/////D4N+fCIVIAIpA2iFQiCJIhsgAikDSCIcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgG4VCMIkiGyAcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCAYkiFCACKQMgIh8gAikDACIafCAaQgGGQv7///8fgyAfQv////8Pg358IhogAikDYIVCIIkiICACQUBrIgYpAwAiI3wgIEL/////D4MgI0IBhkL+////H4N+fCIjIB+FQiiJIh8gGnwgH0L/////D4MgGkIBhkL+////H4N+fCIafCAUQv////8PgyAaQgGGQv7///8fg358IhmFQiCJIiQgAikDMCIhIAIpAxAiHXwgHUIBhkL+////H4MgIUL/////D4N+fCIdIAIpA3CFQiCJIiIgAikDUCIefCAiQv////8PgyAeQgGGQv7///8fg358Ih4gIYVCKIkiISAdfCAhQv////8PgyAdQgGGQv7///8fg358Ih0gIoVCMIkiIiAefCAiQv////8PgyAeQgGGQv7///8fg358Ih58ICRC/////w+DIB5CAYZC/v///x+DfnwiJSAUhUIoiSIUIBl8IBRC/////w+DIBlCAYZC/v///x+DfnwiGTcDACACIBkgJIVCMIkiGTcDeCACIBkgJXwgGUL/////D4MgJUIBhkL+////H4N+fCIZNwNQIAIgFCAZhUIBiTcDKCACIB4gIYVCAYkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgGiAghUIwiSIahUIgiSIgIBMgFnwgE0L/////D4MgFkIBhkL+////H4N+fCITfCAgQv////8PgyATQgGGQv7///8fg358IhYgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhkgIIVCMIkiFTcDYCACIBk3AwggAiAVIBZ8IBVC/////w+DIBZCAYZC/v///x+DfnwiFiAUhUIBiTcDMCACIBY3A1ggAiATIBeFQgGJIhcgHXwgF0L/////D4MgHUIBhkL+////H4N+fCITIBuFQiCJIhYgGiAjfCAaQv////8PgyAjQgGGQv7///8fg358IhR8IBZC/////w+DIBRCAYZC/v///x+DfnwiFSAXhUIoiSIXIBN8IBdC/////w+DIBNCAYZC/v///x+DfnwiEzcDECACIBMgFoVCMIkiEzcDaCAGIBMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIVNwMAIAIgGCAUIB+FQgGJIhN8IBhCAYZC/v///x+DIBNC/////w+DfnwiGCAihUIgiSIWIBx8IBZC/////w+DIBxCAYZC/v///x+DfnwiFCAThUIoiSITIBh8IBNC/////w+DIBhCAYZC/v///x+DfnwiGyAWhUIwiSIYIBR8IBhC/////w+DIBRCAYZC/v///x+DfnwiFjcDSCACIBg3A3AgAiAbNwMYIAIgFSAXhUIBiTcDOCACIBMgFoVCAYk3AyAgBEEBaiIEQQhHDQALA0AgBUGAGGogA0EEdGoiAiACKQOIAyIXIAIpA4gBIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCACKQOIB4VCIIkiEyACKQOIBSIWfCATQv////8PgyAWQgGGQv7///8fg358IhYgF4VCKIkiFyAYfCAXQv////8PgyAYQgGGQv7///8fg358IhggE4VCMIkiEyACKQOIAiIUIAIpAwgiFXwgFUIBhkL+////H4MgFEL/////D4N+fCIVIAIpA4gGhUIgiSIbIAIpA4gEIhx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHCAUhUIoiSIUIBV8IBRC/////w+DIBVCAYZC/v///x+DfnwiFSAbhUIwiSIbIBx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHCAUhUIBiSIUIAIpA4ACIh8gAikDACIafCAaQgGGQv7///8fgyAfQv////8Pg358IhogAikDgAaFQiCJIiAgAikDgAQiI3wgIEL/////D4MgI0IBhkL+////H4N+fCIjIB+FQiiJIh8gGnwgH0L/////D4MgGkIBhkL+////H4N+fCIafCAUQv////8PgyAaQgGGQv7///8fg358IhmFQiCJIiQgAikDgAMiISACKQOAASIdfCAdQgGGQv7///8fgyAhQv////8Pg358Ih0gAikDgAeFQiCJIiIgAikDgAUiHnwgIkL/////D4MgHkIBhkL+////H4N+fCIeICGFQiiJIiEgHXwgIUL/////D4MgHUIBhkL+////H4N+fCIdICKFQjCJIiIgHnwgIkL/////D4MgHkIBhkL+////H4N+fCIefCAkQv////8PgyAeQgGGQv7///8fg358IiUgFIVCKIkiFCAZfCAUQv////8PgyAZQgGGQv7///8fg358Ihk3AwAgAiAZICSFQjCJIhk3A4gHIAIgGSAlfCAZQv////8PgyAlQgGGQv7///8fg358Ihk3A4AFIAIgFCAZhUIBiTcDiAIgAiAeICGFQgGJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIVIBogIIVCMIkiGoVCIIkiICATIBZ8IBNC/////w+DIBZCAYZC/v///x+DfnwiE3wgIEL/////D4MgE0IBhkL+////H4N+fCIWIBSFQiiJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIZICCFQjCJIhU3A4AGIAIgGTcDCCACIBUgFnwgFUL/////D4MgFkIBhkL+////H4N+fCIWIBSFQgGJNwOAAyACIBY3A4gFIAIgEyAXhUIBiSIXIB18IBdC/////w+DIB1CAYZC/v///x+DfnwiEyAbhUIgiSIWIBogI3wgGkL/////D4MgI0IBhkL+////H4N+fCIUfCAWQv////8PgyAUQgGGQv7///8fg358IhUgF4VCKIkiFyATfCAXQv////8PgyATQgGGQv7///8fg358IhM3A4ABIAIgEyAWhUIwiSITNwOIBiACIBMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIVNwOABCACIBggFCAfhUIBiSITfCAYQgGGQv7///8fgyATQv////8Pg358IhggIoVCIIkiFiAcfCAWQv////8PgyAcQgGGQv7///8fg358IhQgE4VCKIkiEyAYfCATQv////8PgyAYQgGGQv7///8fg358IhsgFoVCMIkiGCAUfCAYQv////8PgyAUQgGGQv7///8f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IAAgARAGIAAgABBuIAAgACAEEAYgACAAIAEQBiADQcABaiIEIAAQBSAEIAQgAhAGIAEoAgQhBSABKAIIIQ0gASgCDCEOIAEoAhAhDyABKAIUIRAgASgCGCERIAEoAhwhEiABKAIgIRMgASgCACEUIAMoAsABIQIgAygCxAEhBCADKALIASEGIAMoAswBIQcgAygC0AEhCCADKALUASEJIAMoAtgBIQogAygC3AEhCyADKALgASEMIAMgAygC5AEiFSABKAIkIhZrNgK0ASADIAwgE2s2ArABIAMgCyASazYCrAEgAyAKIBFrNgKoASADIAkgEGs2AqQBIAMgCCAPazYCoAEgAyAHIA5rNgKcASADIAYgDWs2ApgBIAMgBCAFazYClAEgAyACIBRrNgKQASADIBUgFmo2AoQBIAMgDCATajYCgAEgAyALIBJqNgJ8IAMgCiARajYCeCADIAkgEGo2AnQgAyAIIA9qNgJwIAMgByAOajYCbCADIAYgDWo2AmggAyAEIAVqNgJkIAMgAiAUajYCYCADQTBqIgUgAUHgDBAGIAMgFSADKAJUajYCVCADIAwgAygCUGo2AlAgAyALIAMoAkxqNgJMIAMgCiADKAJIajYCSCADIAkgAygCRGo2AkQgAyAIIAMoAkBqNgJAIAMgByADKAI8ajYCPCADIAYgAygCOGo2AjggAyAEIAMoAjRqNgI0IAMgAiADKAIwajYCMCADIANBkAFqEBEgA0EgEBohDiADIANB4ABqEBEgA0EgEBohDSADIAUQESADQSAQGiEBIAMgAEHgDBAGIAAoAgQhDCAAKAIIIQsgACgCDCEKIAAoAhAhCSAAKAIUIQggACgCGCEHIAAoAhwhBiAAKAIgIQQgACgCACEFIAMoAgAhDyADKAIEIRAgAygCCCERIAMoAgwhEiADKAIQIRMgAygCFCEUIAMoAhghFSADKAIcIRYgAygCICEXIABBACABIA1yayIBIAAoAiQiAiADKAIkc3EgAnMiAjYCJCAAIAQgBCAXcyABcXMiBDYCICAAIAYgBiAWcyABcXMiBjYCHCAAIAcgByAVcyABcXMiBzYCGCAAIAggCCAUcyABcXMiCDYCFCAAIAkgCSATcyABcXMiCTYCECAAIAogCiAScyABcXMiCjYCDCAAIAsgCyARcyABcXMiCzYCCCAAIAwg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DigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIkIRQgASgCTCEVIAAgASgCACABKAIoajYCACAAIBQgFWo2AiQgACASIBNqNgIgIAAgECARajYCHCAAIA0gD2o2AhggACALIAxqNgIUIAAgCSAKajYCECAAIAcgCGo2AgwgACAFIAZqNgIIIAAgAyAEajYCBCABKAIEIQMgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEPIA4oAgAhDiABKAIcIQQgASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAEoAighFCAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAEazYCRCAAQUBrIgQgDiAPazYCACAAIA0gDGs2AjwgACALIAprNgI4IAAgCSAIazYCNCAAIAcgBms2AjAgACAFIANrNgIsIAAgFCATazYCKCAAQdAAaiAAIAIQBiAAQShqIgMgAyACQShqEAYgAEH4AGogAkHQAGogAUH4AGoQBiABKAJUIRQgASgCWCEVIAEoAlwhFiABKAJgIRcgASgCZCEYIAEoAmghGSABKAJsIRogASgCcCEbIAEoAnQhHCAAKAIsIQIgACgCVCEDIAAoAjAhBSAAKAJYIQYgACgCNCEHIAAoAlwhCCAAKAI4IQkgACgCYCEKIAAoAjwhCyAAKAJkIQwgBCgCACENIAAoAmghDiAAKAJEIQ8gACgCbCEQIAAoAkghESAAKAJwIRIgASgCUCEdIAAoAighASAAKAJQIRMgACAAKAJMIh4gACgCdCIfajYCTCAAIBEgEmo2AkggACAPIBBqNgJEIAQgDSAOajYCACAAIAsgDGo2AjwgACAJIApqNgI4IAAgByAIajYCNCAAIAUgBmo2AjAgACACIANqNgIsIAAgASATajYCKCAAIB8gHms2AiQgACASIBFrNgIgIAAgECAPazYCHCAAIA4gDWs2AhggACAMIAtrNgIUIAAgCiAJazYCECAAIAggB2s2AgwgACAGIAVrNgIIIAAgAyACazYCBCAAIBMgAWs2AgAgACAcQQF0IgEgACgCnAEiAms2ApwBIAAgG0EBdCIEIAAoApgBIgNrNgKYASAAIBpBAXQiBSAAKAKUASIGazYClAEgACAZQQF0IgcgACgCkAEiCGs2ApABIAAgGEEBdCIJIAAoAowBIgprNgKMASAAIBdBAXQiCyAAKAKIASIMazYCiAEgACAWQQF0Ig0gACgChAEiDms2AoQBIAAgFUEBdCIPIAAoAoABIhBrNgKAASAAIBRBAXQiESAAKAJ8IhJrNgJ8IAAgHUEBdCITIAAoAngiFGs2AnggACADIARqNgJwIAAgBSAGajYCbCAAIAcgCGo2AmggACAJIApqNgJkIAAgCyAMajYCYCAAIA0gDmo2AlwgACAPIBBqNgJYIAAgESASajYCVCAAIBMgFGo2AlAgACABIAJqNgJ0C64IAQN/IwBBkAFrIgMkACADQeAAaiIEIAEQBSADQTBqIgIgBBAFIAIgAhAFIAIgASACEAYgBCAEIAIQBiAEIAQQBSAEIAIgBBAGIAIgBBAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAQgAiAEEAYgAiAEEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAQQBiADIAIQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSACIAMgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAQgAiAEEAYgAiAEEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAQQBiADIAIQBUEBIQIDQCADIAMQBSACQQFqIgJB5ABHDQALIANBMGoiAiADIAIQBiACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSADQeAAaiIEIAIgBBAGIAQgBBAFIAQgBBAFIAAgBCABEAYgA0GQAWokAAumBAIOfgp/IAAoAiQhEiAAKAIgIRMgACgCHCEUIAAoAhghFSAAKAIUIREgAkIQWgRAIAAtAFBFQRh0IRYgACgCECIXrSEPIAAoAgwiGK0hDSAAKAIIIhmtIQsgACgCBCIarSEJIBpBBWytIRAgGUEFbK0hDiAYQQVsrSEMIBdBBWytIQogADUCACEIA0AgASgAA0ECdkH///8fcSAVaq0iAyANfiABKAAAQf///x9xIBFqrSIEIA9+fCABKAAGQQR2Qf///x9xIBRqrSIFIAt+fCABKAAJQQZ2IBNqrSIGIAl+fCASIBZqIAEoAAxBCHZqrSIHIAh+fCADIAt+IAQgDX58IAUgCX58IAYgCH58IAcgCn58IAMgCX4gBCALfnwgBSAIfnwgBiAKfnwgByAMfnwgAyAIfiAEIAl+fCAFIAp+fCAGIAx+fCAHIA5+fCADIAp+IAQgCH58IAUgDH58IAYgDn58IAcgEH58IgNCGohC/////w+DfCIEQhqIQv////8Pg3wiBUIaiEL/////D4N8IgZCGohC/////w+DfCIHQhqIp0EFbCADp0H///8fcWoiEUEadiAEp0H///8fcWohFSAFp0H///8fcSEUIAan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aIVCIIkiCyABKQNIIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAEpAyAiDyABKQMAIgp8IApCAYZC/v///x+DIA9C/////w+DfnwiCiABKQNghUIgiSIQIAFBQGsiFikDACITfCATQgGGQv7///8fgyAQQv////8Pg358IhMgD4VCKIkiDyAKfCAPQv////8PgyAKQgGGQv7///8fg358Igp8IANC/////w+DIApCAYZC/v///x+DfnwiCYVCIIkiFCABKQMwIhEgASkDECINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gASkDcIVCIIkiEiABKQNQIg58IA5CAYZC/v///x+DIBJC/////w+DfnwiDiARhUIoiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAShUIwiSISIA58IBJC/////w+DIA5CAYZC/v///x+DfnwiDnwgFEL/////D4MgDkIBhkL+////H4N+fCIVIAOFQiiJIgMgCXwgA0L/////D4MgCUIBhkL+////H4N+fCIJNwMAIAEgCSAUhUIwiSIJNwN4IAEgCSAVfCAJQv////8PgyAVQgGGQv7///8fg358Igk3A1AgASADIAmFQgGJNwMoIAEgBCAFfCAEQv////8PgyAFQgGGQv7///8fg358IgQgDiARhUIBiSIFIAZ8IAVC/////w+DIAZCAYZC/v///x+DfnwiAyAKIBCFQjCJIgaFQiCJIgp8IARCAYZC/v///x+DIApC/////w+DfnwiECAFhUIoiSIFIAN8IAVC/////w+DIANCAYZC/v///x+DfnwiCSAKhUIwiSIDNwNgIAEgCTcDCCABIAUgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgWFQgGJNwMwIAEgBTcDWCABIAQgCIVCAYkiCCANfCAIQv////8PgyANQgGGQv7///8fg358IgQgC4VCIIkiBSAGIBN8IAZC/////w+DIBNCAYZC/v///x+DfnwiA3wgBUL/////D4MgA0IBhkL+////H4N+fCIGIAiFQiiJIgggBHwgCEL/////D4MgBEIBhkL+////H4N+fCIENwMQIAEgBCAFhUIwiSIENwNoIBYgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgY3AwAgASAHIAMgD4VCAYkiBHwgB0IBhkL+////H4MgBEL/////D4N+fCIHIBKFQiCJIgUgDHwgBUL/////D4MgDEIBhkL+////H4N+fCIDIASFQiiJIgQgB3wgBEL/////D4MgB0IBhkL+////H4N+fCILIAWFQjCJIgcgA3wgB0L/////D4MgA0IBhkL+////H4N+fCIFNwNIIAEgBzcDcCABIAs3AxggASAGIAiFQgGJNwM4IAEgBCAFhUIBiTcDICAAQQFqIgBBCEcNAAtBACEAA0AgGEGACGogAEEEdGoiASABKQOIAyIIIAEpA4gBIgd8IAdCAYZC/v///x+DIAhC/////w+DfnwiByABKQOIB4VCIIkiBCABKQOIBSIFfCAFQgGGQv7///8fgyAEQv////8Pg358IgUgCIVCKIkiCCAHfCAIQv////8PgyAHQgGGQv7///8fg358IgcgBIVCMIkiBCABKQOIAiIDIAEpAwgiBnwgBkIBhkL+////H4MgA0L/////D4N+fCIGIAEpA4gGhUIgiSILIAEpA4gEIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAEpA4ACIg8gASkDACIKfCAKQgGGQv7///8fgyAPQv////8Pg358IgogASkDgAaFQiCJIhAgASkDgAQiE3wgE0IBhkL+////H4MgEEL/////D4N+fCITIA+FQiiJIg8gCnwgD0L/////D4MgCkIBhkL+////H4N+fCIKfCADQv////8PgyAKQgGGQv7///8fg358IgmFQiCJIhQgASkDgAMiESABKQOAASINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gASkDgAeFQiCJIhIgASkDgAUiDnwgDkIBhkL+////H4MgEkL/////D4N+fCIOIBGFQiiJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBKFQjCJIhIgDnwgEkL/////D4MgDkIBhkL+////H4N+fCIOfCAUQv////8PgyAOQgGGQv7///8fg358IhUgA4VCKIkiAyAJfCADQv////8PgyAJQgGGQv7///8fg358Igk3AwAgASAJIBSFQjCJIgk3A4gHIAEgCSAVfCAJQv////8PgyAVQgGGQv7///8fg358Igk3A4AFIAEgAyAJhUIBiTcDiAIgASAEIAV8IARC/////w+DIAVCAYZC/v///x+DfnwiBCAOIBGFQgGJIgUgBnwgBUL/////D4MgBkIBhkL+////H4N+fCIDIAogEIVCMIkiBoVCIIkiCnwgBEIBhkL+////H4MgCkL/////D4N+fCIQIAWFQiiJIgUgA3wgBUL/////D4MgA0IBhkL+////H4N+fCIJIAqFQjCJIgM3A4AGIAEgCTcDCCABIAUgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgWFQgGJNwOAAyABIAU3A4gFIAEgBCAIhUIBiSIIIA18IAhC/////w+DIA1CAYZC/v///x+DfnwiBCALhUIgiSIFIAYgE3wgBkL/////D4MgE0IBhkL+////H4N+fCIDfCAFQv////8PgyADQgGGQv7///8fg358IgYgCIVCKIkiCCAEfCAIQv////8PgyAEQgGGQv7///8fg358IgQ3A4ABIAEgBCAFhUIwiSIENwOIBiABIAQgBnwgBEL/////D4MgBkIBhkL+////H4N+fCIGNwOABCABIAcgAyAPhUIBiSIEfCAHQgGGQv7///8fgyAEQv////8Pg358IgcgEoVCIIkiBSAMfCAFQv////8PgyAMQgGGQv7///8fg358IgMgBIVCKIkiBCAHfCAEQv////8PgyAHQgGGQv7///8fg358IgsgBYVCMIkiByADfCAHQv////8PgyADQgGGQv7///8fg358IgU3A4gEIAEgBzcDgAcgASALNwOIASABIAYgCIVCAYk3A4gDIAEgBCAFhUIBiTcDgAIgAEEBaiIAQQhHDQALIAIgGEGACBALIQFBACEAA0AgASAAQQN0IgJqIhYgFikDACAYQYAIaiIZIAJqKQMAhTcDACABIAJBCHIiFmoiFyAXKQMAIBYgGWopAwCFNwMAIAEgAkEQciIWaiIXIBcpAwAgGEGACGogFmopAwCFNwMAIAEgAkEYciICaiIWIBYpAwAgGEGACGogAmop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AnA3A+ADIAJBgARqIgMgAkHwA2ogAkHgA2oQCCABIAIpAogENwJ4IAEgAikCgAQ3AnAgAiABKQJYNwPYAyACIAEpAlA3A9ADIAIgASkCaDcDyAMgAiABKQJgNwPAAyADIAJB0ANqIAJBwANqEAggASACKQKIBDcCaCABIAIpAoAENwJgIAIgASkCSDcDuAMgAiABQUBrIgApAgA3A7ADIAIgASkCWDcDqAMgAiABKQJQNwOgAyADIAJBsANqIAJBoANqEAggASACKQKIBDcCWCABIAIpAoAENwJQIAIgASkCODcDmAMgAiABKQIwNwOQAyACIAEpAkg3A4gDIAIgACkCADcDgAMgAyACQZADaiACQYADahAIIAEgAikCiAQ3AkggACACKQKABDcCACACIAEpAig3A/gCIAIgASkCIDcD8AIgAiABKQI4NwPoAiACIAEpAjA3A+ACIAMgAkHwAmogAkHgAmoQCCABIAIpAogENwI4IAEgAikCgAQ3AjAgAiABKQIYNwPYAiACIAEpAhA3A9ACIAIgASkCKDcDyAIgAiABKQIgNwPAAiADIAJB0AJqIAJBwAJqEAggASACKQKIBDcCKCABIAIpAoAENwIgIAIgASkCCDcDuAIgAiABKQIANwOwAiACIAEpAhg3A6gCIAIgASkCEDcDoAIgAyACQbACaiACQaACahAIIAEgAikCiAQ3AhggASACKQKABDcCECACIAIpA5gENwOYAiACIAIpA5AENwOQAiACIAEpAgg3A4gCIAIgASkCADcDgAIgAyACQZACaiACQYACahAIIAEgAikCiAQ3AgggASACKQKABDcCACABIBIgASgADHM2AgwgASARIAEoAAhzNgIIIAEgECABKAAEczYCBCABIBMgASgAAHM2AgAgACAPIAAoAABzNgIAIAEgDiABKABEczYCRCABIA0gASgASHM2AkggASAMIAEoAExzNgJMIAIgASkCeDcDmAQgAiABKQJwNwOQBCACIAEpAmg3A/gBIAIgASkCYDcD8AEgAiABKQJ4NwPoASACIAEpAnA3A+ABIAMgAkHwAWogAkHgAWoQCCABIAIpAogENwJ4IAEgAikCgAQ3AnAgAiABKQJYNwPYASACIAEpAlA3A9ABIAIgASkCaDcDyAEgAiABKQJgNwPAASADIAJB0AFqIAJBwAFqEAggASACKQKIBDcCaCABIAIpAoAENwJgIAIgASkCSDcDuAEgAiAAKQIANwOwASACIAEpAlg3A6gBIAIgASkCUDcDoAEgAyACQbABaiACQaABahAIIAEgAikCiAQ3AlggASACKQKABDcCUCACIAEpAjg3A5gBIAIgASkCMDcDkAEgAiABKQJINwOIASACIAApAgA3A4ABIAMgAkGQAWogAkGAAWoQCCABIAIpAogENwJIIAAgAikCgAQ3AgAgAiABKQIoNwN4IAIgASkCIDcDcCACIAEpAjg3A2ggAiABKQIwNwNgIAMgAkHwAGogAkHgAGoQCCABIAIpAogENwI4IAEgAikCgAQ3AjAgAiABKQIYNwNYIAIgASkCEDcDUCACIAEpAig3A0ggAiABKQIgNwNAIAMgAkHQAGogAkFAaxAIIAEgAikCiAQ3AiggASACKQKABDcCICACIAEpAgg3AzggAiABKQIANwMwIAIgASkCGDcDKCACIAEpAhA3AyAgAyACQTBqIAJBIGoQCCABIAIpAogENwIYIAEgAikCgAQ3AhAgAiACKQOYBDcDGCACIAIpA5AENwMQIAIgASkCCDcDCCACIAEpAgA3AwAgAyACQRBqIAIQCCABIAIpAogENwIIIAEgAikCgAQ3AgAgASALIAEoAAxzNgIMIAEgCiABKAAIczYCCCABIAkgASgABHM2AgQgASAIIAEoAABzNgIAIAAgByAAKAAAczYCACABIAYgASgARHM2AkQgASAFIAEoAEhzNgJIIAEgBCABKABMczYCTCACQaAEaiQAC70JARF/IwBBoAJrIgMkACABKAAEIRAgASgACCERIAEoAAwhEiAAKAAEIQsgACgACCEMIAAoAAwhDSABKAAAIRMgAkHwAGoiASAAKAAAIg5BgIKEEHMiADYCACACQeAAaiIGIA5B2/vgqAVzNgIAIAJB0ABqIgcgADYCACACQUBrIgAgDiATcyIFNgIAIAJCoKLEkbSurZRdNwI4IAJBMGoiCELb++Co1c3wl3E3AgAgAkKVxNzJhbL6vOIANwIoIAJBIGoiCUKAgoSQsKCBhA03AgAgAkKgosSRtK6tlF03AhggAkEQaiIKQtv74KjVzfCXcTcCACACIAU2AgAgAiANQZDT55MGcyIFNgJ8IAIgDEGVxNzJBXMiBDYCeCACIAtBg4qg6ABzIg82AnQgAiANQfPqoul9czYCbCACIAxBoKLEkQRzNgJoIAIgC0HthL+Jf3M2AmQgAiAFNgJcIAIgBDYCWCACIA82AlQgAiANIBJzIgU2AkwgAiAMIBFzIgQ2AkggAiALIBBzIg82AkQgAiAFNgIMIAIgBDYCCCACIA82AgRBACEFA0AgAyABKQIINwOYAiADIAEpAgA3A5ACIAMgBikCCDcD+AEgAyAGKQIANwPwASADIAEpAgg3A+gBIAMgASkCADcD4AEgA0GAAmoiBCADQfABaiADQeABahAIIAEgAykCiAI3AgggASADKQKAAjcCACADIAcpAgg3A9gBIAMgBykCADcD0AEgAyAGKQIINwPIASADIAYpAgA3A8ABIAQgA0HQAWogA0HAAWoQCCAGIAMpAogCNwIIIAYgAykCgAI3AgAgAyAAKQIINwO4ASADIAApAgA3A7ABIAMgBykCCDcDqAEgAyAHKQIANwOgASAEIANBsAFqIANBoAFqEAggByADKQKIAjcCCCAHIAMpAoACNwIAIAMgCCkCCDcDmAEgAyAIKQIANwOQASADIAApAgg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAAgAykCiAI3AgggACADKQKAAjcCACADIAkpAgg3A3ggAyAJKQIANwNwIAMgCCkCCDcDaCADIAgpAgA3A2AgBCADQfAAaiADQeAAahAIIAggAykCiAI3AgggCCADKQKAAjcCACADIAopAgg3A1ggAyAKKQIANwNQIAMgCSkCCDcDSCADIAkpAgA3A0AgBCADQdAAaiADQUBrEAggCSADKQKIAjcCCCAJIAMpAoACNwIAIAMgAikCCDcDOCADIAIpAgA3AzAgAyAKKQIINwMoIAMgCikCADcDICAEIANBMGogA0EgahAIIAogAykCiAI3AgggCiADKQKAAjcCACADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAIIAIgAykCiAI3AgggAiADKQKAAjcCACACIAIoAAwgEnM2AgwgAiACKAAIIBFzNgIIIAIgAigABCAQczYCBCACIAIoAAAgE3M2AgAgACAAKAAAIA5zNgIAIAIgAigARCALczYCRCACIAIoAEggDHM2AkggAiACKABMIA1zNgJMIAVBAWoiBUEKRw0ACyADQaACaiQACxAAIAAgAUGMlwIoAgARAAAL0g8BJH8jAEHwBGsiAiQAIAJB4ANqIgMgARAFIANB4AwgAxAGIAIgAigChAQiBzYClAIgAiACKAKABCIINgKQAiACIAIoAvwDIgk2AowCIAIgAigC+AMiCjYCiAIgAiACKAL0AyILNgKEAiACIAIoAvADIgw2AoACIAIgAigC7AMiDTYC/AEgAiACKALoAyIONgL4ASACIAIoAuQDIgU2AvQBIAIgAigC4AMiBkEBajYC8AEgAkHwAWoiBCAEQbCJAhAGIAIgB0HM5N8FazYC1AMgAiAIQYCS9QhrNgLQAyACIAlB55zGAWs2AswDIAIgCkHEhv8CazYCyAMgAiALQeiumARrNgLEAyACIAxBqYAHajYCwAMgAiANQY+UqANqNgK8AyACIA5Bw6KqB2s2ArgDIAIgBUGF5c0GajYCtAMgAiAGQcqOmgVrNgKwAyACQcABaiIZIANBsAwQBiACQQAgAigC5AFrNgLkASACQQAgAigC4AFrNgLgASACQQAgAigC3AFrNgLcASACQQAgAigC2AFrNgLYASACQQAgAigC1AFrNgLUASACQQAgAigC0AFrNgLQASACQQAgAigCzAFrNgLMASACQQAgAigCyAFrNgLIASACQQAgAigCxAFrNgLEASACIAIoAsABQX9zNgLAASAZIBkgAkGwA2oQBiACQYADaiIiIAQgGRBqIQMgAkHQAmoiBCAiIAEQBiACQcAEaiIkIAQQESACLQDABCElIAIoAqQDIRogAigC9AIhBCACKAKgAyEbIAIoAvACIRAgAigCnAMhHCACKALsAiERIAIoApgDIR0gAigC6AIhEiACKAKUAyEeIAIoAuQCIRMgAigCkAMhHyACKALgAiEUIAIoAowDISAgAigC3AIhFSACKAKIAyEhIAIoAtgCIRYgAigChAMhDyACKALUAiEXIAIoAoADISMgAigC0AIhGCACIAcgA0EBayIBcTYC5AQgAiABIAhxNgLgBCACIAEgCXE2AtwEIAIgASAKcTYC2AQgAiABIAtxNgLUBCACIAEgDHE2AtAEIAIgASANcTYCzAQgAiABIA5xNgLIBCACIAEgBXE2AsQEIAIgBkEAIANrcjYCwAQgAiAjICNBACAYQQAgJUEBcWsiAyAYQQAg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IAIgASADEAYgAkGQBmoiASACEAUgASABEAUgAkGQB2oiBSACIAEQBiACQcAEaiIDIAUQBSADIAMQBSADIAMQBSADIAMQBSACQZAEaiIBIAUgAxAGIAEgARAFIAEgARAFIAEgASACEAYgAiACKQOwBDcDgAQgAiACKQOoBDcD+AMgAiACKQOgBDcD8AMgAiACKQOYBDcD6AMgAiACKQOQBDcD4AMgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAJB4ANqIgMQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEgAxAGIAIgAikDsAQ3A9ADIAIgAikDqAQ3A8gDIAIgAikDoAQ3A8ADIAIgAikDmAQ3A7gDIAIgAikDkAQ3A7ADIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASACQbADaiIDEAYgAiACKQOwBDcD0AMgAiACKQOoBDcDyAMgAiACKQOgBDcDwAMgAiACKQOYBDcDuAMgAiACKQOQBDcDsAMgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAIpA7AENwPQAyACIAIpA6gENwPIAyACIAIpA6AENwPAAyACIAIpA5gENwO4AyACIAIpA5AENwOwAwNAIAJBkARqIgEgARAFIARBAWoiBEH4AEcNAAsgASABIAJBsANqEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAJB4ANqEAYgASABEAUgASABEAUgASABEAUgASABIAIQBiABIAEQBSACQZADaiABEBEgAigCgAIhAyACKAKEAiEEIAIoAogCIQUgAigCjAIhBiACKAKQAiEHIAIoApQCIQggAigCmAIhCSACKAKcAiEKIAIoAqACIQsgAkEAIAItAJEDQQFxayIBIAIoAqQCIgxBACAMa3NxIAxzIgw2ApQFIAIgCyALQQAgC2tzIAFxcyILNgKQBSACIAogCkEAIAprcyABcXMiCjYCjAUgAiAJIAlBACAJa3MgAXFzIgk2AogFIAIgCCAIQQAgCGtzIAFxcyIINgKEBSACIAcgB0EAIAdrcyABcXMiBzYCgAUgAiAGIAZBACAGa3MgAXFzIgY2AvwEIAIgBSAFQQAgBWtzIAFxcyIFNgL4BCACIAQgBEEAIARrcyABcXMiBDYC9AQgAiADIANBACADa3MgAXFzIAFBhtodcWsiAUEBajYC8AQgAiAMNgK0BiACIAs2ArAGIAIgCjYCrAYgAiAJNgKoBiACIAg2AqQGIAIgBzYCoAYgAiAGNgKcBiACIAU2ApgGIAIgBDYClAYgAiABQQFrNgKQBiACIAJB8ARqEDUgAkGQB2oiASACQZAGaiACEAYgACABEBEgACAALQAfIBByOgAfIAIgABA0BEAQiwEACyACIAIpAiA3A7AGIAIgAikCGDcDqAYgAiACKQIQNwOgBiACIAIpAgg3A5gGIAIgAikCMDcDwAYgAiACKQI4NwPIBiACIAJBQGspAgA3A9AGIAIgAikCSDcD2AYgAiACKQIANwOQBiACIAIpAig3A7gGIAIgAikCcDcDgAcgAiACKQJoNwP4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QQFrQR92ECogACABQcAHaiAEQQdzQf8BcUEBa0EfdhAqIAAgAUHgCGogBEEIc0H/AXFBAWtBH3YQKiADIAApAkg3AyAgAyAAQUBrKQIANwMYIAMgACkCODcDECADIAApAjA3AwggAyAAKQIoNwMAIAMgACkCIDcDSCADQUBrIAApAhg3AwAgAyAAKQIQNwM4IAMgACkCCDcDMCADIAApAgA3AyggAyAAKQJYNwNYIAMgACkCYDcDYCADIAApAmg3A2ggAyAAKQJwNwNwIAMgACkCUDcDUCAAKAJ8IQEgACgCgAEhBCAAKAKEASEFIAAoAogBIQYgACgCjAEhByAAKAKQASEIIAAoApQBIQkgACgCmAEhCiAAKAJ4IQsgA0EAIAAoApwBazYCnAEgA0EAIAprNgKYASADQQAgCWs2ApQBIANBACAIazYCkAEgA0EAIAdrNgKMASADQQAgBms2AogBIANBACAFazYChAEgA0EAIARrNgKAASADQQAgAWs2AnwgA0EAIAtrNgJ4IAAgAyACQYABcUEHdhAqIANBoAFqJAALjhEBE38jAEHAH2siAyQAIANBoAFqIAIQECADQYAeaiIGIAIpAiA3AwAgA0H4HWoiByACKQIYNwMAIANB8B1qIgkgAikCEDcDACADQegdaiIMIAIpAgg3AwAgAyACKQIANwPgHSADQZAeaiINIAIpAjA3AwAgA0GYHmoiDiACKQI4NwMAIANBoB5qIg8gAkFAaykCADcDACADQageaiIQIAIpAkg3AwAgAyACKQIoNwOIHiADQbgeaiIRIAIpAlg3AwAgA0HAHmoiEiACKQJgNwMAIANByB5qIhMgAikCaDcDACADQdAeaiIUIAIpAnA3AwAgAyACKQJQNwOwHiADQcgbaiIIIANB4B1qIhUQGCADQegSaiILIAggA0HAHGoiBBAGIANBkBNqIANB8BtqIgUgA0GYHGoiChAGIANBuBNqIAogBBAGIANB4BNqIAggBRAGIANBwAJqIgQgCxAQIANBqBpqIgggAiAEEBMgA0HIEWoiCyAIIANBoBtqIgQQBiADQfARaiADQdAaaiIFIANB+BpqIgoQBiADQZgSaiAKIAQQBiADQcASaiAIIAUQBiADQeADaiALEBAgBiADQYgTaikCADcDACAHIANBgBNqKQIANwMAIAkgA0H4EmopAgA3AwAgDCADQfASaikCADcDACANIANBmBNqKQIANwMAIA4gA0GgE2opAgA3AwAgDyADQagTaikCADcDACAQIANBsBNqKQIANwMAIAMgAykC6BI3A+AdIAMgAykCkBM3A4geIBQgA0HYE2opAgA3AwAgEyADQdATaikCADcDACASIANByBNqKQIANwMAIBEgA0HAE2opAgA3AwAgAyADKQK4EzcDsB4gA0GIGWoiCCAVEBggA0GoEGoiCyAIIANBgBpqIgQQBiADQdAQaiADQbAZaiIFIANB2BlqIgoQBiADQfgQaiAKIAQQBiADQaARaiAIIAUQBiADQYAFaiIEIAsQECADQegXaiIIIAIgBBATIANBiA9qIgsgCCADQeAYaiIEEAYgA0GwD2ogA0GQGGoiBSADQbgYaiIKEAYgA0HYD2ogCiAEEAYgA0GAEGogCCAFEAYgA0GgBmogCxAQIAYgA0HoEWopAgA3AwAgByADQeARaikCADcDACAJIANB2BFqKQIANwMAIAwgA0HQEWopAgA3AwAgDSADQfgRaikCADcDACAOIANBgBJqKQIANwMAIA8gA0GIEmopAgA3AwAgECADQZASaikCADcDACADIAMpAsgRNwPgHSADIAMpAvARNwOIHiAUIANBuBJqKQIANwMAIBMgA0GwEmopAgA3AwAgEiADQagSaikCADcDACARIANBoBJqKQIANwMAIAMgAykCmBI3A7AeIANByBZqIgggFRAYIANB6A1qIgsgCCADQcAXaiIEEAYgA0GQDmogA0HwFmoiBSADQZgXaiIKEAYgA0G4DmogCiAEEAYgA0HgDmogCCAFEAYgA0HAB2oiBCALEBAgA0GoFWoiCiACIAQQEyADQcgMaiIIIAogA0GgFmoiAhAGIANB8AxqIANB0BVqIgQgA0H4FWoiBRAGIANBmA1qIAUgAhAGIANBwA1qIAogBBAGIANB4AhqIAgQECAGIANByBBqKQIANwMAIAcgA0HAEGopAgA3AwAgCSADQbgQaikCADcDACAMIANBsBBqKQIANwMAIA0gA0HYEGopAgA3AwAgDiADQeAQaikCADcDACAPIANB6BBqKQIANwMAIBAgA0HwEGopAgA3AwAgAyADKQKoEDcD4B0gAyADKQLQEDcDiB4gFCADQZgRaikCADcDACATIANBkBFqKQIA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azYCACAAQQAgACgCJGs2AiQgAEEAIAAoAiBrNgIgIABBACAAKAIcazYCHCAAQQAgACgCGGs2AhggAEEAIAAoAhRrNgIUIABBACAAKAIQazYCECAAQQAgACgCDGs2AgwgAEEAIAAoAghrNgIIIABBACAAKAIEazYCBAsgAEH4AGogACAGEAZBACEHCyACQcACaiQAIAcLBQBBgAILEAAgACABQYSXAigCABEAAAsQACAAIAFB/JYCKAIAEQAACy0BAX4gAq0gA61CIIaEIgZCEFoEfyAAIAFBEGogASAGQhB9IAQgBRBeBUF/CwsYACAAIAEgAiADrSAErUIghoQgBSAGEF4LGAAgACABIAIgA60gBK1CIIaEIAUgBhBPCxYAIAAgASACrSADrUIghoQgBCAFEHkLFQAgACABrSACrUIghoQgAyAEEM0BCxYAIAAgASACrSADrUIghoQgBEEAEHYLFwAgACABIAIgA60gBK1CIIaEIAUQhQMLFwAgACABIAIgA60gBK1CIIaEIAUQgwMLFwAgACABIAIgA60gBK1CIIaEIAUQhAMLFQAgACABIAKtIAOtQiCGhCAEEOkCCx8AIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYQ0QELGgAgACABIAKtIAOtQiCGhEGAlwIoAgARAgALHAAgACABIAKtIAOtQiCGhCAEQfiWAigCABERAAscACAAIAEgAq0gA61CIIaEIARB9JYCKAIAEREACxcAIAAgASACrSADrUIghoQgBCAFEOoCCxIAIAAgASACrSADrUIghoQQRwsYACAAIAEgAiADrSAErUIghoQgBSAGEGELLQEBfiACrSADrUIghoQiBkIQWgR/IAAgAUEQaiABIAZCEH0gBCAFEF0FQX8LCxgAIAAgASACIAOtIAStQiCGhCAFIAYQXQsYACAAIAEgAiADrSAErUIghoQgBSAGEE4LGQAgACABIAKtIAOtQiCGhCAEIAUgBhD3AgsZACAAIAEgAq0gA61CIIaEIAQgBSAGEPgCCxIAIAAgASACrSADrUIghoQQJgsVACAAIAEgAq0gA61CIIaEIAQQ4gILFQAgACABIAKtIAOtQiCGhCAEEOMCC4wBAQF/IwBBEGsiAiAANgIMIAIgATYCCEEAIQAgAkEANgIEA0AgAiACKAIEIAIoAgwgAGotAAAgAigCCCAAai0AAHNyNgIEIAIgAigCBCAAQQFyIgEgAigCDGotAAAgAigCCCABai0AAHNyNgIEIABBAmoiAEHAAEcNAAsgAigCBEEBa0EIdkEBcUEBawvaAgECfyMAQZADayIIJAAgCEEANgIEIAhBEGoiCSAGIAdBABAbGiAIIAYpABA3AgggCEHQAGoiB0LAACAIQQRqIAkQMxogCEGQAWoiBiAHQfyWAigCABEAABogB0HAABAJIAYgBCAFQYCXAigCABECABogBkHglgJCACAFfUIPg0GAlwIoAgARAgAaIAYgASACQYCXAigCABECABogBkHglgJCACACfUIPg0GAlwIoAgARAgAaIAggBTcDSCAGIAhByABqIgRCCEGAlwIoAgARAgAaIAggAjcDSCAGIARCCEGAlwIoAgARAgAaIAYgCEEwaiIEQYSXAigCABEAABogBkGAAhAJIAQgAxA3IQYgBEEQEAkCQCAARQ0AIAYEQCAAQQAgAqcQDBpBfyEGDAELIAAgASACIAhBBGogCEEQahDqAUEAIQYLIAhBEGpBIBAJIAhBkANqJAAgBgusAgEDfyMAQYADayIJJAAgCUEANgIEIAlBEGoiCiAHIAhBABAbGiAJIAcpABA3AgggCUFAayIIQsAAIAlBBGoiCyAKEDMaIAlBgAFqIgcgCEH8lgIoAgARAAAaIAhBwAAQCSAHIAUgBkGAlwIoAgARAgAaIAdB4JYCQgAgBn1CD4NBgJcCKAIAEQIAGiAAIAMgBCALIAoQ6gEgByAAIARBgJcCKAIAEQIAGiAHQeCWAkIAIAR9Qg+DQYCXAigCABECABogCSAGNwM4IAcgCUE4aiIAQghBgJcCKAIAEQIAGiAJIAQ3AzggByAAQghBgJcCKAIAEQIAGiAHIAFBhJcCKAIAEQAAGiAHQYACEAkgAgRAIAJCEDcDAAsgCUEQakEgEAkgCUGAA2okAEEAC0oBAn8jAEEgayIGJABBfyEHAkAgAkIQVA0AIAYgBCAFEEANACAAIAFBEGogASACQhB9IAMgBhBdIQcgBkEgEAkLIAZBIGokACAHC08BAn8jAEEgayIGJAAgAkLw////D1QEQEF/IQcgBiAEIAUQQEUEQCAAQRBqIAAgASACIAMgBhBOIQcgBkEgEAkLIAZBIGokACAHDwsQDgAL6AQBAn8jAEGgAWsiBCQAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiABLQAfIQMgACACBH8gACAALQAAQfgBcToAACADQcAAcgUgAwtB/wBxOgAfIAQgABA+IAAgBBAvQX8hAyAALQAfQf8AcSAALQAeIAAtAB0gAC0AHCAALQAbIAAtABogAC0AGSAALQAYIAAtABcgAC0AFiAALQAVIAAtABQgAC0AEyAALQASIAAtABEgAC0AECAALQAPIAAtAA4gAC0ADSAALQAMIAAtAAsgAC0ACiAALQAJIAAtAAggAC0AByAALQAGIAAtAAUgAC0ABCAALQADIAAtAAIgAC0AASAALQAAQQFzcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyckEBa0GAAnFFBEBBf0EAIAFBIBAaGyEDCyAEQaABaiQAIAMLjgUBAn8jAEHAAmsiBCQAQX8hBQJAIAIQa0UNACACEEwNACAEIAIQNA0AIAQQbEUNACAAIAEtAAA6AAAgACABLQABOgABIAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gACABLQAQOgAQIAAgAS0AEToAESAAIAEtABI6ABIgACABLQATOgATIAAgAS0AFDoAFCAAIAEtABU6ABUgACABLQAWOgAWIAAgAS0AFzoAFyAA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DCAHKQAAQuv6htq/tfbBH4ULIQ4gAUFAa0EAQaUCEAwaIAEgDDcDOCABIA43AzAgASALNwMoIAEgDTcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgCK1CiJL3lf/M+YTqAIU3AwBBAAshBAJAIANQDQAgAUHgAWohCSABQeAAaiEFA0AgBCAFaiEHQYACIARrIgatIgsgA1oEQCAHIAIgA6ciAhALGiABIAEoAuACIAJqNgLgAgwCCyAHIAIgBhALGiABIAEoAuACIAZqNgLgAiABIAEpA0AiDEKAAXw3A0AgASABKQNIIAxC/35WrXw3A0ggASAFEFIgBSAJQYABEAsaIAEgASgC4AJBgAFrIgQ2AuACIAIgBmohAiADIAt9IgNCAFINAAsLIAEgACAIEIMBGiAKJABBAAwBCxAOAAshCAsgCAsFAEGAAwsKACAAIAEgAhAHC/ADAgJ/An4jAEHAAWsiAyQAIANCADcDkAEgA0IANwOYASADQgA3A2ggA0IANwNwIANCADcDeCADQfiSAikDADcDqAEgA0GAkwIpAwA3A7ABIANBiJMCKQMANwO4ASADQgA3A4ABIANCADcDiAEgA0IANwNgIANB8JICKQMANwOgASADIAIpABA3A1AgAyACKQAYNwNYIAMgAikAADcDQCADIAIpAAg3A0ggA0GAAWoiAiADQUBrIgQQhQEgAhAoIAMgAykDmAE3AxggAyADKQOQATcDECADIAMpA4gBNwMIIAMgAykDgAE3AwAgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIAMgASkAEDcDUCADIAEpABg3A1ggASkACCEFIAEpAAAhBiADQgA3AzggA0IANwMwIANCADcDKCADIAY3A0AgAyAFNwNIIANCADcDICAEIAMQ6QEgAyADKQN4NwO4ASADIAMpA3A3A7ABIAMgAykDaDcDqAEgAyADKQNgNwOgASADIAMpA1g3A5gBIAMgAykDUDcDkAEgAyADKQNINwOIASADIAMpA0A3A4ABIAIQKCAAIAMpA5gBNwAYIAAgAykDkAE3ABAgACADKQOIATcACCAAIAMpA4ABNwAAIAJBwAAQCSADQcABaiQAC5cBAQF/IwBBQGoiAiQAIAIgASkAODcDOCACIAEpADA3AzAgAiABKQAoNwMoIAIgASkAIDcDICACIAEpABg3AxggAiABKQAQNwMQIAIgASkAADcDACACIAEpAAg3AwggAhAoIAAgAikDGDcAGCAAIAIpAxA3ABAgACACKQMINwAIIAAgAikDADcAACACQcAAEAkgAkFAayQAC8cCAgF/An4jAEHAAWsiAyQAIANCADcDYCADQgA3A2ggA0IANwNwIANCADcDeCADIAEpABA3A1AgAyABKQAYNwNYIAEpAAghBCABKQAAIQUgA0IANwMoIANCADcDMCADQgA3AzggAyAFNwNAIAMgBDcDSCADQgA3AyAgAyACKQAQNwMQIAMgAikAGDcDGCADIAIpAAA3AwAgAyACKQAINwMIIANBQGsgAxDpASADIAMpA3g3A7gBIAMgAykDcDcDsAEgAyADKQNoNwOoASADIAMpA2A3A6ABIAMgAykDWDcDmAEgAyADKQNQNwOQASADIAMpA0g3A4gBIAMgAykDQDcDgAEgA0GAAWoiARAoIAAgAykDmAE3ABggACADKQOQATcAECAAIAMpA4gBNwAIIAAgAykDgAE3AAAgAUHAABAJIANBwAFqJAAL5QEBAX8jAEGAAWsiAiQAIAJCADcDUCACQgA3A1ggAkIANwMoIAJCADcDMCACQgA3AzggAkH4kgIpAwA3A2ggAkGAkwIpAwA3A3AgAkGIkwIpAwA3A3ggAkIANwNAIAJCADcDSCACQQE6AEAgAkIANwMgIAJB8JICKQMANwNgIAIgASkAGDcDGCACIAEpABA3AxAgAiABKQAINwMIIAIgASkAADcDACACQUBrIgEgAhCFASABECggACACKQNYNwAYIAAgAikDUDcAECAAIAIpA0g3AAggACACKQNANwAAIAJBgAFqJAAL3gEBAX8jAEGAAWsiAiQAIAJCADcDUCACQgA3A1ggAkIANwMoIAJCADcDMCACQgA3AzggAkH4kgIpAwA3A2ggAkGAkwIpAwA3A3AgAkGIkwIpAwA3A3ggAkIANwNAIAJCADcDSCACQgA3AyAgAkHwkgIpAwA3A2AgAiABKQAQNwMQIAIgASkAGDcDGCACIAEpAAA3AwAgAiABKQAINwMIIAJBQGsiASACEIUBIAEQKCAAIAIpA1g3ABggACACKQNQNwAQIAAgAikDSDcACCAAIAIpA0A3AAAgAkGAAWokAAvPCwELfyMAQeAFayICJAAgAkHABWoiByABIAEQByACQeABaiIGIAEgBxAHIAJBoAVqIgQgASAGEAcgAkGABWoiBSAEIAQQByACQaADaiIJIAcgBRAHIAJBwAJqIgcgASAJEAcgAkHgBGoiAyAFIAUQByACQaACaiIFIAcgBxAHIAJBwARqIgggCSAFEAcgAkHAA2oiDCADIAUQByACQaAEaiIKIAggCBAHIAJBgANqIgggAyAKEAcgAkHgAmoiCyAGIAgQByACQcABaiIGIAMgCxAHIAJBoAFqIgMgBCAGEAcgAkHgAGogBCADEAcgAkGABGoiBiAKIAsQByACQeADaiIDIAQgBhAHIAJBgAJqIgYgDCADEAcgAkGAAWogBSAGEAcgAkFAayIFIAggAxAHIAJBIGoiAyAEIAUQByACIAkgAxAHIAAgByACEAdBACEEA0AgACAAIAAQByAEQQFqIgRB/gBHDQALIAAgACACQeACahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQcAFahAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGgAWoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAhAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGAAmoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBQGsQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHgAGoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHAAmoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBgARqEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHAAWoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHgA2oQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQYABahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkEgahAHIAJB4AVqJABBACABQSAQGmsLKAADQCAAQSAQGSAAIAAtAB9BH3E6AB8gABCNAUUNACAAQSAQGg0ACwsKACAAIAEgAhAuCykBAX8jAEEQayIAJAAgAEEAOgAPQeSfAiAAQQ9qQQAQABogAEEQaiQAC2MBBX8DQCAAIANqIgIgASADai0AACAEIAItAABqaiICOgAAIAAgA0EBciIEaiIGIAEgBGotAAAgBi0AACACQQh2amoiAjoAACACQQh2IQQgA0ECaiEDIAVBAmoiBUEgRw0ACwsoACACQoCAgIAQWgRAEA4ACyAAIAEgAiADQQEgBEG8nwIoAgAREAAaCwQAQQwLdAEFfwJAQQEhAgNAIAAgA2oiASACIAEtAABqIgI6AAAgASABLQABIAJBCHZqIgI6AAEgASABLQACIAJBCHZqIgI6AAIgASABLQADIAJBCHZqIgE6AAMgAUEIdiECIANBBGohAyAEQQRqIgRBBEcNAAsMAAsLggcBFH8jAEHwAWsiBCQAIARCADcDyAEgBEIANwPAASAEQcABaiIJIAEgAhALGiADKAAQIQYgA0FAayIBKAAAIQcgAygAUCEFIAMoACAhCCADKAAwIQogAygAFCELIAMoAEQhDCADKABUIQ0gAygAJCEOIAMoADQhDyADKAAYIRAgAygASCERIAMoAFghEiADKAAoIRMgAygAOCEUIAQoAsABIRUgBCgCxAEhFiAEKALIASEXIAQgAygALCADKAA8cSADKAAcIAMoAEwgAygAXCAEKALMAXNzc3M2AswBIAQgEyAUcSAQIBEgEiAXc3NzczYCyAEgBCAOIA9xIAsgDCANIBZzc3NzNgLEASAEIAggCnEgBiAHIAUgFXNzc3M2AsABIAIgCWpBAEEQIAJrEAwaIAAgCSACEAsaIAQoAsABIQAgBCgCxAEhAiAEKALIASEGIAQoAswBIQcgBCADKQJYNwPoASAEIAMpAlA3A+ABIAQgAykCSDcDuAEgBCABKQIANwOwASAEIAMpAlg3A6gBIAQgAykCUDcDoAEgBEHQAWoiBSAEQbABaiAEQaABahAIIAMgBCkC2AE3AlggAyAEKQLQATcCUCAEIAMpAjg3A5gBIAQgAykCMDcDkAEgBCADKQJINwOIASAEIAEpAgA3A4ABIAUgBEGQAWogBEGAAWoQCCADIAQpAtgBNwJIIAEgBCkC0AE3AgAgBCADKQIoNwN4IAQgAykCIDcDcCAEIAMpAjg3A2ggBCADKQIwNwNgIAUgBEHwAGogBEHgAGoQCCADIAQpAtgBNwI4IAMgBCkC0AE3AjAgBCADKQIYNwNYIAQgAykCEDcDUCAEIAMpAig3A0ggBCADKQIgNwNAIAUgBEHQAGogBEFAaxAIIAMgBCkC2AE3AiggAyAEKQLQATcCICAEIAMpAgg3AzggBCADKQIANwMwIAQgAykCGDcDKCAEIAMpAhA3AyAgBSAEQTBqIARBIGoQCCADIAQpAtgBNwIYIAMgBCkC0AE3AhAgBCAEKQPoATcDGCAEIAQpA+ABNwMQIAQgAykCCDcDCCAEIAMpAgA3AwAgBSAEQRBqIAQQCCAEKALQASEBIAQoAtQBIQUgBCgC2AEhCCADIAcgBCgC3AFzNgIMIAMgBiAIczYCCCADIAIgBXM2AgQgAyAAIAFzNgIAIARB8AFqJAALqwYBFH8jAEHgAWsiAyQAIAIoABAhBCACQUBrIgUoAAAhBiACKABQIQkgAigAICEKIAIoADAhCyACKAAUIQcgAigARCEMIAIoAFQhDSABKAAEIQ4gAigAJCEPIAIoADQhECACKAAYIQggAigASCERIAIoAFghEiABKAAIIRMgAigAKCEUIAIoADghFSABKAAAIRYgACACKAAsIAIoADxxIAIoABwgAigATCACKABcIAEoAAxzc3NzIgE2AAwgACAUIBVxIAggESASIBNzc3NzIgg2AAggACAPIBBxIAcgDCANIA5zc3NzIgc2AAQgACAKIAtxIAQgBiAJIBZzc3NzIgA2AAAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCSDcDuAEgAyAFKQIANwOwASADIAIpAlg3A6gBIAMgAikCUDcDoAEgA0HAAWoiBCADQbABaiADQaABahAIIAIgAykCyAE3AlggAiADKQLAATcCUCADIAIpAjg3A5gBIAMgAikCMDcDkAEgAyACKQJINwOIASADIAUpAgA3A4ABIAQgA0GQAWogA0GAAWoQCCACIAMpAsgBNwJIIAUgAykCwAE3AgAgAyACKQIoNwN4IAMgAikCIDcDcCADIAIpAjg3A2ggAyACKQIwNwNgIAQgA0HwAGogA0HgAGoQCCACIAMpAsgBNwI4IAIgAykCwAE3AjAgAyACKQIYNwNYIAMgAikCEDcDUCADIAIpAig3A0ggAyACKQIgNwNAIAQgA0HQAGogA0FAaxAIIAIgAykCyAE3AiggAiADKQLAATcCICADIAIpAgg3AzggAyACKQIANwMwIAMgAikCGDcDKCADIAIpAhA3AyAgBCADQTBqIANBIGoQCCACIAMpAsgBNwIYIAIgAykCwAE3AhAgAyADKQPYATcDGCADIAMpA9ABNwMQIAMgAikCCDcDCCADIAIpAgA3AwAgBCADQRBqIAMQCCADKALAASEFIAMoAsQBIQQgAygCyAEhBiACIAMoAswBIAFzNgIMIAIgBiAIczYCCCACIAQgB3M2AgQgAiAAIAVzNgIAIANB4AFqJAALiwkBEX8jAEHgAWsiBSQAIAQoADwgA0EddnMhDiAEKAA4IANBA3RzIQ8gBCgANCACQR12cyEQIARBMGoiAygAACACQQN0cyERIARBEGohAiAEQSBqIQYgBEFAayEHIARB0ABqIQgDQCAFIAgpAgg3A9gBIAUgCCkCADcD0AEgBSAHKQIINwO4ASAFIAcpAgA3A7ABIAUgCCkCCDcDqAEgBSAIKQIANwOgASAFQcABaiIJIAVBsAFqIAVBoAFqEAggCCAFKQLIATcCCCAIIAUpAsABNwIAIAUgAykCCDcDmAEgBSADKQIANwOQASAFIAcpAgg3A4gBIAUgBykCADcDgAEgCSAFQZABaiAFQYABahAIIAcgBSkCyAE3AgggByAFKQLAATcCACAFIAYpAgg3A3ggBSAGKQIANwNwIAUgAykCCDcDaCAFIAMpAgA3A2AgCSAFQfAAaiAFQeAAahAIIAMgBSkCyAE3AgggAyAFKQLAATcCACAFIAIpAgg3A1ggBSACKQIANwNQIAUgBikCCDcDSCAFIAYpAgA3A0AgCSAFQdAAaiAFQUBrEAggBiAFKQLIATcCCCAGIAUpAsABNwIAIAUgBCkCCDcDOCAFIAQpAgA3AzAgBSACKQIINwMoIAUgAikCADcDICAJIAVBMGogBUEgahAIIAIgBSkCyAE3AgggAiAFKQLAATcCACAFIAUpA9gBNwMYIAUgBSkD0AE3AxAgBSAEKQIINwMIIAUgBCkCADcDACAJIAVBEGogBRAIIAUoAsABIQsgBSgCxAEhDCAFKALIASEJIAQgDiAFKALMAXMiDTYCDCAEIAkgD3MiCTYCCCAEIAwgEHMiDDYCBCAEIAsgEXMiCzYCACAKQQFqIgpBB0cNAAsCQAJAAkACQCABQRBrDhEAAgICAgICAgICAgICAgICAQILIAQoABAhASAEKAAwIQIgBCgAICEDIAQoAFAhBiAEQUBrKAAAIQcgBCgAFCEIIAQoADQhCiAEKAAkIQ4gBCgAVCEPIAQoAEQhECAEKAAYIREgBCgAOCESIAQoACghEyAEKABYIRQgBCgASCEVIAAgBCgAHCAEKAA8IAQoACwgBCgAXCAEKABMc3NzcyANczYADCAAIBEgEiATIBQgFXNzc3MgCXM2AAggACAIIAogDiAPIBBzc3NzIAxzNgAEIAAgASACIAMgBiAHc3NzcyALczYAAAwCCyAEKAAgIQEgBCgAECECIAQoACQhAyAEKAAUIQYgBCgAKCEHIAQoABghCCAAIAQoACwgBCgAHHMgDXM2AAwgACAHIAhzIAlzNgAIIAAgAyAGcyAMczYABCAAIAEgAnMgC3M2AAAgBCgAMCEBIAQoAFAhAiAEQUBrKAAAIQMgBCgANCEGIAQoAFQhByAEKABEIQggBCgAOCEKIAQoAFghDSAEKABIIQkgACAEKAA8IAQoAFwgBCgATHNzNgAcIAAgCiAJIA1zczYAGCAAIAYgByAIc3M2ABQgACABIAIgA3NzNgAQDAELIABBACABEAwaCyAFQeABaiQAC6UGARR/IwBB4AFrIgMkACACKAAQIQUgAkFAayIEKAAAIQkgAigAUCEKIAIoACAhCyACKAAwIQwgASgABCEGIAIoABQhDSACKABEIQ4gAigAVCEPIAIoACQhECACKAA0IREgASgACCEHIAIoABghEiACKABIIRMgAigAWCEUIAIoACghFSACKAA4IRYgASgAACEIIAAgASgADCIBIAIoACwgAigAPHEgAigAHCACKABcIAIoAExzc3NzNgAMIAAgByAVIBZxIBIgEyAUc3NzczYACCAAIAYgECARcSANIA4gD3Nzc3M2AAQgACAIIAsgDHEgBSAJIApzc3NzNgAAIAMgAikCWDcD2AEgAyACKQJQNwPQASADIAIpAkg3A7gBIAMgBCkCADcDsAEgAyACKQJYNwOoASADIAIpAlA3A6ABIANBwAFqIgAgA0GwAWogA0GgAWoQCCACIAMpAsgBNwJYIAIgAykCwAE3AlAgAyACKQI4NwOYASADIAIpAjA3A5ABIAMgAikCSDcDiAEgAyAEKQIANwOAASAAIANBkAFqIANBgAFqEAggAiADKQLIATcCSCAEIAMpAsABNwIAIAMgAikCKDcDeCADIAIpAiA3A3AgAyACKQI4NwNoIAMgAikCMDcDYCAAIANB8ABqIANB4ABqEAggAiADKQLIATcCOCACIAMpAsABNwIwIAMgAikCGDcDWCADIAIpAhA3A1AgAyACKQIoNwNIIAMgAikCIDcDQCAAIANB0ABqIANBQGsQCCACIAMpAsgBNwIoIAIgAykCwAE3AiAgAyACKQIINwM4IAMgAikCADcDMCADIAIpAhg3AyggAyACKQIQNwMgIAAgA0EwaiADQSBqEAggAiADKQLIATcCGCACIAMpAsABNwIQIAMgAykD2AE3AxggAyADKQPQATcDECADIAIpAgg3AwggAyACKQIANwMAIAAgA0EQaiADEAggAygCwAEhACADKALEASEEIAMoAsgBIQUgAiABIAMoAswBczYCDCACIAUgB3M2AgggAiAEIAZzNgIEIAIgACAIczYCACADQeABaiQAC6UJAQ1/IwBBoANrIgIkACAAKAAQIQYgACgAFCEHIAAoABghCCAAKAAcIQkgACgABCEEIAAoAAghBSAAKAAMIQogACgAACELIAIgASkCWDcDmAMgAiABKQJQNwOQAyACIAEpAkg3A/gCIAIgAUFAayIAKQIANwPwAiACIAEpAlg3A+gCIAIgASkCUDcD4AIgAkGAA2oiAyACQfACaiACQeACahAIIAEgAikCiAM3AlggASACKQKAAzcCUCACIAEpAjg3A9gCIAIgASkCMDcD0AIgAiABKQJINwPIAiACIAApAgA3A8ACIAMgAkHQAmogAkHAAmoQCCABIAIpAogDNwJIIAAgAikCgAM3AgAgAiABKQIoNwO4AiACIAEpAiA3A7ACIAIgASkCODcDqAIgAiABKQIwNwOgAiADIAJBsAJqIAJBoAJqEAggASACKQKIAzcCOCABIAIpAoADNwIwIAIgASkCGDcDmAIgAiABKQIQNwOQAiACIAEpAig3A4gCIAIgASkCIDcDgAIgAyACQZACaiACQYACahAIIAEgAikCiAM3AiggASACKQKAAzcCICACIAEpAgg3A/gBIAIgASkCADcD8AEgAiABKQIYNwPoASACIAEpAhA3A+ABIAMgAkHwAWogAkHgAWoQCCABIAIpAogDNwIYIAEgAikCgAM3AhAgAiACKQOYAzcD2AEgAiACKQOQAzcD0AEgAiABKQIINwPIASACIAEpAgA3A8ABIAMgAkHQAWogAkHAAWoQCCACKAKAAyEMIAIoAoQDIQ0gAigCiAMhDiABIAogAigCjANzNgIMIAEgBSAOczYCCCABIAQgDXM2AgQgASALIAxzNgIAIAIgASkCWDcDmAMgAiABKQJQNwOQAyACIAEpAkg3A7gBIAIgACkCADcDsAEgAiABKQJYNwOoASACIAEpAlA3A6ABIAMgAkGwAWogAkGgAWoQCCABIAIpAogDNwJYIAEgAikCgAM3AlAgAiABKQI4NwOYASACIAEpAjA3A5ABIAIgASkCSDcDiAEgAiAAKQIANwOAASADIAJBkAFqIAJBgAFqEAggASACKQKIAzcCSCAAIAIpAoADNwIAIAIgASkCKDcDeCACIAEpAiA3A3AgAiABKQI4NwNoIAIgASkCMDcDYCADIAJB8ABqIAJB4ABqEAggASACKQKIAzcCOCABIAIpAoADNwIwIAIgASkCGDcDWCACIAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCCABIAIpAogDNwIoIAEgAikCgAM3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAggASACKQKIAzcCGCABIAIpAoADNwIQIAIgAikDmAM3AxggAiACKQOQAzcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAggAigCgAMhACACKAKEAyEEIAIoAogDIQUgASAJIAIoAowDczYCDCABIAUgCHM2AgggASAEIAdzNgIEIAEgACAGczYCACACQaADaiQAC/MUARl/IwBBoAZrIgMkACABKAAEIQsgASgACCEMIAEoAAwhDSABKAAQIQ4gASgAFCEEIAEoABghDyABKAAcIRAgACgABCERIAAoAAghEiAAKAAMIRMgACgAECEUIAAoABQhFSAAKAAYIRYgACgAHCEXIAEoAAAhBSACQUBrIgEgACgAACIYQYCChBBzNgIAIAJClcTcyYWy+rziADcCOCACQTBqIgBCgIKEkLCggYQNNwIAIAJCoKLEkbSurZRdNwIoIAJBIGoiBkLb++Co1c3wl3E3AgAgAiAFIBhzIhk2AgAgAiAXQfPqoul9czYCXCACIBZBoKLEkQRzNgJYIAIgFUHthL+Jf3M2AlQgAkHQAGoiBSAUQdv74KgFczYCACACIBNBkNPnkwZzNgJMIAIgEkGVxNzJBXM2AkggAiARQYOKoOgAczYCRCACIBAgF3MiEDYCHCACIA8gFnMiDzYCGCACIAQgFXMiGjYCFCACQRBqIgQgDiAUcyIONgIAIAIgDSATcyINNgIMIAIgDCAScyIMNgIIIAIgCyARcyIbNgIEQQAhCwNAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A/gFIAMgASkCADcD8AUgAyAFKQIINwPoBSADIAUpAgA3A+AFIANBgAZqIgcgA0HwBWogA0HgBWoQCCAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwPYBSADIAApAgA3A9AFIAMgASkCCDcDyAUgAyABKQIANwPABSAHIANB0AVqIANBwAVqEAggASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDuAUgAyAGKQIANwOwBSADIAApAgg3A6gFIAMgACkCADcDoAUgByADQbAFaiADQaAFahAIIAAgAykCiAY3AgggACADKQKABjcCACADIAQpAgg3A5gFIAMgBCkCADcDkAUgAyAGKQIINwOIBSADIAYpAgA3A4AFIAcgA0GQBWogA0GABWoQCCAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwP4BCADIAIpAgA3A/AEIAMgBCkCCDcD6AQgAyAEKQIANwPgBCAHIANB8ARqIANB4ARqEAggBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3A9gEIAMgAykDkAY3A9AEIAMgAikCCDcDyAQgAyACKQIANwPABCAHIANB0ARqIANBwARqEAggAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiATczYCDCACIAogEnM2AgggAiAJIBFzNgIEIAIgCCAYczYCACADIAUpAgg3A5gGIAMgBSkCADcDkAYgAyABKQIINwO4BCADIAEpAgA3A7AEIAMgBSkCCDcDqAQgAyAFKQIANwOgBCAHIANBsARqIANBoARqEAggBSADKQKIBjcCCCAFIAMpAoAGNwIAIAMgACkCCDcDmAQgAyAAKQIANwOQBCADIAEpAgg3A4gEIAMgASkCADcDgAQgByADQZAEaiADQYAEahAIIAEgAykCiAY3AgggASADKQKABjcCACADIAYpAgg3A/gDIAMgBikCADcD8AMgAyAAKQIINwPoAyADIAApAgA3A+ADIAcgA0HwA2ogA0HgA2oQCCAAIAMpAogGNwIIIAAgAykCgAY3AgAgAyAEKQIINwPYAyADIAQpAgA3A9ADIAMgBikCCDcDyAMgAyAGKQIANwPAAyAHIANB0ANqIANBwANqEAggBiADKQKIBjcCCCAGIAMpAoAGNwIAIAMgAikCCDcDuAMgAyACKQIANwOwAyADIAQpAgg3A6gDIAMgBCkCADcDoAMgByADQbADaiADQaADahAIIAQgAykCiAY3AgggBCADKQKABjcCACADIAMpA5gGNwOYAyADIAMpA5AGNwOQAyADIAIpAgg3A4gDIAMgAikCADcDgAMgByADQZADaiADQYADahAIIAMoAoAGIQggAygChAYhCSADKAKIBiEKIAIgAygCjAYgF3M2AgwgAiAKIBZzNgIIIAIgCSAVczYCBCACIAggFHM2AgAgAyAFKQIINwOYBiADIAUpAgA3A5AGIAMgASkCCDcD+AIgAyABKQIANwPwAiADIAUpAgg3A+gCIAMgBSkCADcD4AIgByADQfACaiADQeACahAIIAUgAykCiAY3AgggBSADKQKABjcCACADIAApAgg3A9gCIAMgACkCADcD0AIgAyABKQIINwPIAiADIAEpAgA3A8ACIAcgA0HQAmogA0HAAmoQCCABIAMpAogGNwIIIAEgAykCgAY3AgAgAyAGKQIINwO4AiADIAYpAgA3A7ACIAMgACkCCDcDqAIgAyAAKQIANwOgAiAHIANBsAJqIANBoAJqEAggACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDmAIgAyAEKQIANwOQAiADIAYpAgg3A4gCIAMgBikCADcDgAIgByADQZACaiADQYACahAIIAYgAykCiAY3AgggBiADKQKABjcCACADIAIpAgg3A/gBIAMgAikCADcD8AEgAyAEKQIINwPoASADIAQpAgA3A+ABIAcgA0HwAWogA0HgAWoQCCAEIAMpAogGNwIIIAQgAykCgAY3AgAgAyADKQOYBjcD2AEgAyADKQOQBjcD0AEgAyACKQIINwPIASADIAIpAgA3A8ABIAcgA0HQAWogA0HAAWoQCCADKAKABiEIIAMoAoQGIQkgAygCiAYhCiACIAMoAowGIA1zNgIMIAIgCiAMczYCCCACIAkgG3M2AgQgAiAIIBlzNgIAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A7gBIAMgASkCADcDsAEgAyAFKQIINwOoASADIAUpAgA3A6ABIAcgA0GwAWogA0GgAWoQCCAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwOYASADIAApAgA3A5ABIAMgASkCCDcDiAEgAyABKQIANwOAASAHIANBkAFqIANBgAFqEAggASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDeCADIAYpAgA3A3AgAyAAKQIINwNoIAMgACkCADcDYCAHIANB8ABqIANB4ABqEAggACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDWCADIAQpAgA3A1AgAyAGKQIINwNIIAMgBikCADcDQCAHIANB0ABqIANBQGsQCCAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwM4IAMgAikCADcDMCADIAQpAgg3AyggAyAEKQIANwMgIAcgA0EwaiADQSBqEAggBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3AxggAyADKQOQBjcDECADIAIpAgg3AwggAyACKQIANwMAIAcgA0EQaiADEAggAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiAQczYCDCACIAogD3M2AgggAiAJIBpzNgIEIAIgCCAOczYCACALQQFqIgtBBEcNAAsgA0GgBmokAAsIACAAQRAQGQsEAEFfC5gKAR5/IwBBwAJrIgQkACAEQgA3A5gCIARCADcDkAIgBEIANwOIAiAEQgA3A4ACIARBgAJqIgUgASACEAsaIAMoABAhCyADKAAwIQwgAygAFCENIAMoADQhDiADKAAYIQ8gAygAOCEQIAMoABwhESADKAA8IRIgAygAJCEBIAMoAFQhEyADKAB0IRQgAygAZCEGIAMoACwhByADKABcIRUgAygAfCEWIAMoAGwhCCADKAAgIQkgAygAUCEXIAMoAHAhGCADKABgIQogBCgCkAIhGSAEKAKAAiEaIAQoAoQCIRsgBCgCiAIhHCAEKAKMAiEdIAQoApQCIR4gBCgCnAIhHyAEIAMoACgiICADKABoIiEgAygAeHEgAygAWCAEKAKYAnNzczYCmAIgBCAJIAogGHEgFyAZc3NzNgKQAiAEIAcgCCAWcSAVIB9zc3M2ApwCIAQgASAGIBRxIBMgHnNzczYClAIgBCAIIAcgEnEgESAdc3NzNgKMAiAEICEgECAgcSAPIBxzc3M2AogCIAQgBiABIA5xIA0gG3NzczYChAIgBCAKIAkgDHEgCyAac3NzNgKAAiACIAVqQQBBICACaxAMGiAAIAUgAhALGiAEKAKYAiEBIAQoApACIQIgBCgCnAIhBiAEKAKUAiEHIAQoAoACIQggBCgChAIhCSAEKAKIAiEKIAQoAowCIQsgBCADKQJ4NwO4AiAEIAMpAnA3A7ACIAQgAykCaDcD+AEgBCADKQJgNwPwASAEIAMpAng3A+gBIAQgAykCcDcD4AEgBEGgAmoiBSAEQfABaiAEQeABahAIIAMgBCkCqAI3AnggAyAEKQKgAjcCcCAEIAMpAlg3A9gBIAQgAykCUDcD0AEgBCADKQJoNwPIASAEIAMpAmA3A8ABIAUgBEHQAWogBEHAAWoQCCADIAQpAqgCNwJoIAMgBCkCoAI3AmAgBCADKQJINwO4ASAEIANBQGsiACkCADcDsAEgBCADKQJYNwOoASAEIAMpAlA3A6ABIAUgBEGwAWogBEGgAWoQCCADIAQpAqgCNwJYIAMgBCkCoAI3AlAgBCADKQI4NwOYASAEIAMpAjA3A5ABIAQgAykCSDcDiAEgBCAAKQIANwOAASAFIARBkAFqIARBgAFqEAggAyAEKQKoAjcCSCAAIAQpAqACNwIAIAQgAykCKDcDeCAEIAMpAiA3A3AgBCADKQI4NwNoIAQgAykCMDcDYCAFIARB8ABqIARB4ABqEAggAyAEKQKoAjcCOCADIAQpAqACNwIwIAQgAykCGDcDWCAEIAMpAhA3A1AgBCADKQIoNwNIIAQgAykCIDcDQCAFIARB0ABqIARBQGsQCCADIAQpAqgCNwIoIAMgBCkCoAI3AiAgBCADKQIINwM4IAQgAykCADcDMCAEIAMpAhg3AyggBCADKQIQNwMgIAUgBEEwaiAEQSBqEAggAyAEKQKoAjcCGCADIAQpAqACNwIQIAQgBCkDuAI3AxggBCAEKQOwAjcDECAEIAMpAgg3AwggBCADKQIANwMAIAUgBEEQaiAEEAggAyAEKQKoAjcCCCADIAQpAqACNwIAIAMgCyADKAAMczYCDCADIAogAygACHM2AgggAyAJIAMoAARzNgIEIAMgCCADKAAAczYCACAAIAIgACgAAHM2AgAgAyAHIAMoAERzNgJEIAMgASADKABIczYCSCADIAYgAygATHM2AkwgBEHAAmokAAuRCQEefyMAQaACayIDJAAgAigAECEOIAIoADAhDyACKAAUIRAgASgABCERIAIoADQhEiACKAAYIRMgASgACCEUIAIoADghFSACKAAcIQggASgADCEWIAIoADwhFyACKAAgIQUgAigAUCEJIAEoABAhGCACKABwIRkgAigAYCEEIAIoACQhBiACKABUIQogASgAFCEaIAIoAHQhGyACKABkIQwgAigAKCEHIAIoAFghCyABKAAYIRwgAigAeCEdIAIoAGghDSABKAAAIR4gACACKAAsIh8gAigAbCIgIAIoAHxxIAIoAFwgASgAHHNzcyIBNgAcIAAgByANIB1xIAsgHHNzcyILNgAYIAAgBiAMIBtxIAogGnNzcyIKNgAUIAAgBSAEIBlxIAkgGHNzcyIJNgAQIAAgICAXIB9xIAggFnNzcyIINgAMIAAgDSAHIBVxIBMgFHNzcyIHNgAIIAAgDCAGIBJxIBAgEXNzcyIGNgAEIAAgBCAFIA9xIA4gHnNzcyIFNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCCACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAggAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAggAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAIIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAggAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAIIAIgAykCiAI3AhggAiADKQKAAjcCECADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAIIAIgAykCiAI3AgggAiADKQKAAjcCACACIAIoAAwgCHM2AgwgAiACKAAIIAdzNgIIIAIgAigABCAGczYCBCACIAIoAAAgBXM2AgAgACAAKAAAIAlzNgIAIAIgAigARCAKczYCRCACIAIoAEggC3M2AkggAiACKABMIAFzNgJMIANBoAJqJAAL0gsBFX8jAEGgAmsiBSQAIAQoACwgA0EddnMhDCAEKAAoIANBA3RzIQ0gBCgAJCACQR12cyEOIARBIGoiAygAACACQQN0cyEPIARBEGohBiAEQTBqIQcgBEFAayECIARB0ABqIQggBEHgAGohCSAEQfAAaiEKA0AgBSAKKQIINwOYAiAFIAopAgA3A5ACIAUgCSkCCDcD+AEgBSAJKQIANwPwASAFIAopAgg3A+gBIAUgCikCADcD4AEgBUGAAmoiCyAFQfABaiAFQeABahAIIAogBSkCiAI3AgggCiAFKQKAAjcCACAFIAgpAgg3A9gBIAUgCCkCADcD0AEgBSAJKQIINwPIASAFIAkpAgA3A8ABIAsgBUHQAWogBUHAAWoQCCAJIAUpAogCNwIIIAkgBSkCgAI3AgAgBSACKQIINwO4ASAFIAIpAgA3A7ABIAUgCCkCCDcDqAEgBSAIKQIANwOgASALIAVBsAFqIAVBoAFqEAggCCAFKQKIAjcCCCAIIAUpAoACNwIAIAUgBykCCDcDmAEgBSAHKQIANwOQASAFIAIpAgg3A4gBIAUgAikCADcDgAEgCyAFQZABaiAFQYABahAIIAIgBSkCiAI3AgggAiAFKQKAAjcCACAFIAMpAgg3A3ggBSADKQIANwNwIAUgBykCCDcDaCAFIAcpAgA3A2AgCyAFQfAAaiAFQeAAahAIIAcgBSkCiAI3AgggByAFKQKAAjcCACAFIAYpAgg3A1ggBSAGKQIANwNQIAUgAykCCDcDSCAFIAMpAgA3A0AgCyAFQdAAaiAFQUBrEAggAyAFKQKIAjcCCCADIAUpAoACNwIAIAUgBCkCCDcDOCAFIAQpAgA3AzAgBSAGKQIINwMoIAUgBikCADcDICALIAVBMGogBUEgahAIIAYgBSkCiAI3AgggBiAFKQKAAjcCACAFIAUpA5gCNwMYIAUgBSkDkAI3AxAgBSAEKQIINwMIIAUgBCkCADcDACALIAVBEGogBRAIIAQgBSkCiAI3AgggBCAFKQKAAjcCACAEIAQoAAwgDHMiCzYCDCAEIAQoAAggDXMiETYCCCAEIAQoAAQgDnMiEjYCBCAEIAQoAAAgD3MiEzYCACACIAIoAAAgD3MiFDYCACAEIAQoAEQgDnMiFTYCRCAEIAQoAEggDXMiFjYCSCAEIAQoAEwgDHMiFzYCTCAQQQFqIhBBB0cNAAsCQAJAAkACQCABQRBrDhEAAgICAgICAgICAgICAgICAQILIAQoABAhASAEKAAwIQIgBCgAICEDIAQoAGAhBiAEKABQIQcgBCgAFCEIIAQoADQhCSAEKAAkIQogBCgAZCEMIAQoAFQhDSAEKAAYIQ4gBCgAOCEPIAQoACghECAEKABoIRggBCgAWCEZIAAgBCgAHCAEKAA8IAQoACwgBCgAXCAEKABsc3NzcyAXcyALczYADCAAIA4gDyAQIBggGXNzc3MgFnMgEXM2AAggACAIIAkgCiAMIA1zc3NzIBVzIBJzNgAEIAAgASACIAMgBiAHc3NzcyAUcyATczYAAAwCCyAEKAAQIQEgBCgAMCECIAQoACAhAyAEKAAUIQYgBCgANCEHIAQoACQhCCAEKAAYIQkgBCgAOCEKIAQoACghDCAAIAQoABwgBCgAPCAEKAAsc3MgC3M2AAwgACAJIAogDHNzIBFzNgAIIAAgBiAHIAhzcyASczYABCAAIAEgAiADc3MgE3M2AAAgBCgAUCEBIARBQGsoAAAhAiAEKABwIQMgBCgAYCEGIAQoAFQhByAEKABEIQggBCgAdCEJIAQoAGQhCiAEKABYIQwgBCgASCENIAQoAHghDiAEKABoIQ8gACAEKABcIAQoAEwgBCgAfCAEKABsc3NzNgAcIAAgDCANIA4gD3NzczYAGCAAIAcgCCAJIApzc3M2ABQgACABIAIgAyAGc3NzNgAQDAELIABBACABEAwaCyAFQaACaiQAC4MJAR5/IwBBoAJrIgMkACACKAAQIREgAigAMCESIAEoAAQhBSACKAAUIRMgAigANCEUIAEoAAghBiACKAAYIRUgAigAOCEWIAEoAAwhByACKAAcIRcgAigAPCEYIAIoACAhBCABKAAQIQggAigAUCEZIAIoAHAhGiACKABgIQkgAigAJCEKIAEoABQhCyACKABUIRsgAigAdCEcIAIoAGQhDCACKAAoIQ0gASgAGCEOIAIoAFghHSACKAB4IR4gAigAaCEPIAEoAAAhECAAIAIoACwiHyABKAAcIgEgAigAXCACKABsIiAgAigAfHFzc3M2ABwgACANIA4gHSAPIB5xc3NzNgAYIAAgCiALIBsgDCAccXNzczYAFCAAIAQgCCAZIAkgGnFzc3M2ABAgACAgIAcgFyAYIB9xc3NzNgAMIAAgDyAGIBUgDSAWcXNzczYACCAAIAwgBSATIAogFHFzc3M2AAQgACAJIBAgESAEIBJxc3NzNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCCACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAggAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAggAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAIIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAggAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAIIAIgAykCiAI3AhggAiADKQKAAjcCECADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAE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ACJDNwPQAiADIAEpAAg3A9gCIAMgQ6dB+AFxOgDQAiADIAMtAO8CQT9xQcAAcjoA7wIgA0GgAmogAhA2IANCADcChAIgA0IANwKMAiADQQA2ApQCIANCADcD0AEgA0IANwPYASADQgA3A+ABIAMgAykDsAI3A6ABIAMgAykDuAI3A6gBIAMgAykDwAI3A7ABIANCADcC9AEgA0EBNgLwASADQgA3AvwBIANCADcDwAEgA0IANwPIASADIAMpA6ACNwOQASADIAMpA6gCNwOYASADQgA3AnQgA0IANwJ8IANBADYChAEgA0IANwJkIANBATYCYCADQgA3AmxB/gEhAkEAIQQDQCADKAKUAiEJIAMoArQBIQYgAygCYCEHIAMoAsABIQogAygCkAEhCyADKALwASENIAMoAmQhCCADKALEASEMIAMoApQBIQUgAygC9AEhECADKAJoIQ4gAygCyAEhESADKAKYASESIAMoAvgBIRMgAygCbCEPIAMoAswBIRQgAygCnAEhFSADKAL8ASEXIAMoAnAhGCADKALQASEcIAMoAqABIR0gAygCgAIhHiADKAJ0IRkgAygC1AEhHyADKAKkASEgIAMoAoQCISEgAygCeCEaIAMoAtgBISIgAygCqAEhIyADKAKIAiEkIAMoAnwhGyADKALcASElIAMoAqwBISYgAygCjAIhJyADKAKAASEWIAMoAuABISggAygCsAEhKSADKAKQAiEsIANBACAEIANB0AJqIi0gAiIBQQN2ai0AACACQQdxdkEBcSIEc2siAiADKAKEASIqIAMoAuQBIitzcSIuICpzIio2AoQBIAMgBiAGIAlzIAJxIi9zIjAgKms2AlQgAyAWIBYgKHMgAnEiMXMiBjYCgAEgAyApICkgLHMgAnEiFnMiKSAGazYCUCADIBsgGyAlcyACcSIycyIbNgJ8IAMgJiAmICdzIAJxIjNzIiYgG2s2AkwgAyAaIBogInMgAnEiNHMiGjYCeCADICMgIyAkcyACcSI1cyIjIBprNgJIIAMgGSAZIB9zIAJxIjZzIhk2AnQgAyAgICAgIXMgAnEiN3MiICAZazYCRCADIBggGCAccyACcSI4cyIYNgJwIAMgHSAdIB5zIAJxIjlzIh0gGGs2AkAgAyAPIA8gFHMgAnEiOnMiDzYCbCADIBUgFSAXcyACcSI7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BiAWIAMgGhAGIAENAAsgAygCkAEhECADKALwASECIAMoApQBIQ4gAygC9AEhBiADKAKYASERIAMoAvgBIQcgAygCnAEhEiADKAL8ASEKIAMoAqABIRMgAygCgAIhCyADKAKkASEPIAMoAoQCIQ0gAygCqAEhFCADKAKIAiEIIAMoAqwBIRUgAygCjAIhDCADKAKwASEXIAMoApACIQUgA0EAIARrIgEgAygClAIiBCADKAK0AXNxIARzNgKUAiADIAUgBSAXcyABcXM2ApACIAMgDCAMIBVzIAFxczYCjAIgAyAIIAggFHMgAXFzNgKIAiADIA0gDSAPcyABcXM2AoQCIAMgCyALIBNzIAFxczYCgAIgAyAKIAogEnMgAXFzNgL8ASADIAcgByARcyABcXM2AvgBIAMgBiAGIA5zIAFxczYC9AEgAyACIAIgEHMgAXFzNgLwASADKALAASECIAMoAmAhBSADKALEASEEIAMoAmQhECADKALIASEGIAMoAmghDiADKALMASEHIAMoAmwhESADKALQASEKIAMoAnAhEiADKALUASELIAMoAnQhEyADKALYASENIAMoAnghDyADKALcASEIIAMoAnwhFCADKALgASEMIAMoAoABIRUgAyADKALkASIXIAMoAoQBcyABcSAXczYC5AEgAyAMIAwgFXMgAXFzNgLgASADIAggCCAUcyABcXM2AtwBIAMgDSANIA9zIAFxczYC2AEgAyALIAsgE3MgAXFzNgLUASADIAogCiAScyABcXM2AtABIAMgByAHIBFzIAFxczYCzAEgAyAGIAYgDnMgAXFzNgLIASADIAQgBCAQcyABcXM2AsQBIAMgAiACIAVzIAFxczYCwAEgFiAWEDUgGSAZIBYQBiAAIBkQESAtQSAQCUEAIQkLIANB8AJqJAAgCQs4AQF/IwBBIGsiBiQAIAYgBCAFQQAQGxogACABIAKtIAOtQiCGhCAEQRBqQgAgBhA7IAZBIGokAAtAAQF/IwBBIGsiCCQAIAggBCAHQQAQGxogACABIAKtIAOtQiCGhCAEQRBqIAWtIAatQiCGhCAIEDsgCEEgaiQACzQBAX8jAEEgayIFJAAgBSADIARBABAbGiAAIAGtIAKtQiCGhCADQRBqIAUQUyAFQSBqJAALtgQCA38CfiMAQfAAayIGJAAgAq0gA61C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IwtbAQJ+IAetIAitQiCGhCEMQX8hAiAErSAFrUIghoQiC0IQWgRAIAAgAyALQhB9IAMgC6dqQRBrIAYgDCAJIAoQsgEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQsgELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChCzARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALELMBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChDDASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChDDAQtbAQJ+IAetIAitQiCGhCEMQX8hAiAErSAFrUIghoQiC0IQWgRAIAAgAyALQhB9IAMgC6dqQRBrIAYgDCAJIAoQxAEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQxAELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChDFARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEMUBC1kBAn4CfyAGrSAHrUIghoQhDCADrSAErUIghoQiC0Lw////D1QEQCAAIAAgC6dqQQAgAiALIAUgDCAJIAoQxgEaIAEEQCABIAtCEHw3AwALQQAMAQsQDgALCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxDGAQtZAQJ+IAetIAitQiCGhCELQX8hAQJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC3////w9WDQAgACACIAynIAVBICAGIAunIAkgCkGsnwIoAgARDQAhAQsgAQuAAQEDfiAHrSAIrUIghoQhDEF/IQICQCAErSAFrUIghoQiC0IgVA0AIAtCIH0iDULf////D1YNACAMQt////8PVg0AIAAgAyANpyADIAunakEga0EgIAYgDKcgCSAKQayfAigCABENACECCyABBEAgAUIAIAtCIH0gAhs3AwALIAILYAECfiAErSAFrUIghoQhDCAHrSAIrUIghoQhDSACBEAgAkIgNwMACyANQuD///8PVCAMQt////8PWHFFBEAQDgALIAAgAUEgIAMgDKcgBiANpyAKIAtBqJ8CKAIAEQ0AC3YBAn4CfyAGrSAHrUIghoQhCwJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC4P///w9aDQAgACAAIAynIgNqQSAgAiADIAUgC6cgCSAKQaifAigCABENACEAIAEEQCABQgAgDEIgfCAAGzcDAAsgAAwBCxAOAAsLWQECfiAHrSAIrUIghoQhC0F/IQECQCADrSAErUIghoQiDELf////D1YNACALQt////8PVg0AIAAgAiAMpyAFQSAgBiALpyAJIApBpJ8CKAIAEQ0AIQELIAELgAEBA34gB60gCK1CIIaEIQxBfyECAkAgBK0gBa1CIIaEIgtCIFQNACALQiB9Ig1C3////w9WDQAgDELf////D1YNACAAIAMgDacgAyALp2pBIGtBICAGIAynIAkgCkGknwIoAgARDQAhAgsgAQRAIAFCACALQiB9IAIbNwMACyACC2ABAn4gBK0gBa1CIIaEIQwgB60gCK1CIIaEIQ0gAgRAIAJCIDcDAAsgDULg////D1QgDELf////D1hxRQRAEA4ACyAAIAFBICADIAynIAYgDacgCiALQaCfAigCABENAAt2AQJ+An8gBq0gB61CIIaEIQsCQCADrSAErUIghoQiDELf////D1YNACALQuD///8PWg0AIAAgACAMpyIDakEgIAIgAyAFIAunIAkgCkGgnwIoAgARDQAhACABBEAgAUIAIAxCIHwgABs3AwALIAAMAQsQDgALCwUAQegACwQAQRoLBQBBiwwLBQBBtAoL/QEBBX8jACIFIQkgBUGABGtBQHEiBSQAIAAgASAAGyIHBEBBfyEGIAVB4ABqIgggAyAEEB9FBEAgASAAIAEbIQNBACEAIAVBgAFqIgFBAEEAQcAAECIaIAEgCEIgEA8aIAhBIBAJIAEgBEIgEA8aIAEgAkIgEA8aIAEg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ACABIAIgAxAiCwsAIAAgASACEMcBCw0AIAAgASACIAMQyAELBwAgABDJAQsJACAAIAEQywELCwAgACABIAIQzAELBQBBrgsLOgEDfiABKQAgIQIgASkAKCEDIAEpADAhBCAAIAEpADg3ABggACAENwAQIAAgAzcACCAAIAI3AABBAAs6AQN+IAEpAAghAiABKQAQIQMgASkAACEEIAAgASkAGDcAGCAAIAM3ABAgACACNwAIIAAgBDcAAEEAC3wBAX8CQAJAAkAgA0LAAFQNACADQkB8IgNCv////w9WDQAgAiACQUBrIgUgAyAEQQAQdkUNASAARQ0AIABBACADpxAMGgtBfyECIAFFDQEgAUIANwMAQX8PCyABBEAgASADNwMAC0EAIQIgAEUNACAAIAUgA6cQQhoLIAILcAECfyMAQRBrIgUkACAAIAVBCGogAEFAayACIAOnIgIQQiADIARBABB4GgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQDBpBfyEGDAELIAFFDQAgASADQkB9NwMACyAFQRBqJAAgBgsTACAAIAEgAiADIARBABB4GkEAC20BAX8jAEFAaiICJAAgAiABQiAQRxogAiACLQAAQfgBcToAACACIAItAB9BP3FBwAByOgAfIAAgAikDEDcAECAAIAIpAwg3AAggACACKQMANwAAIAAgAikDGDcAGCACQcAAEAkgAkFAayQAQQAL5woCD38nfiMAQYACayICJABBfyEIAkAgARBMDQAgAkHgAGoiAyABEJQBDQAgAxBsRQ0AQQAhCCACQQAgAigCrAEiAWs2AiQgAkEAIAIoAqgBIgNrNgIgIAJBACACKAKkASIJazYCHCACQQAgAigCoAEiBGs2AhggAkEAIAIoApwBIgprNgIUIAJBACACKAKYASIFazYCECACQQAgAigClAEiC2s2AgwgAkEAIAIoApABIgZrNgIIIAJBACACKAKMASIMazYCBCACQQEgAigCiAEiB2s2AgAgAiACEDUgAiACKAIEIg2sIhkgCkEBdKwiIn4gAjQCACIRIASsIhR+fCACKAIIIgSsIhsgBawiFX58IAIoAgwiBawiHiALQQF0rCIjfnwgAigCECIOrCIfIAasIhZ+fCACKAIUIgasIiQgDEEBdKwiJX58IAIoAhgiD6wiLiAH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IAIQPQ0AIAMgARAQIANBoAFqIgEgBSADEFUgA0HAAmoiAiABEFYgACACEEtBACEECyADQaAGaiQAIAQLZQEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABED0NACADQeADaiIBIAIQPQ0AIAMgARAQIANBoAFqIgEgBSADEBMgA0HAAmoiAiABEFYgACACEEtBACEECyADQaAGaiQAIAQLHQEBfyMAQaABayIBJAAgASAAED0gAUGgAWokAEULpQEBBn8jAEEQayIFQQA2AgxBfyEEIAIgA0EBa0sEfyABIAJBAWsiB2ohCEEAIQJBACEBQQAhBANAIAUgBSgCDCIGQQAgCCACay0AACIJQYABc0EBayAGQQFrIARBAWtxcUEIdkEBcSIGayACcXI2AgwgASAGciEBIAQgCXIhBCACQQFqIgIgA0cNAAsgACAHIAUoAgxrNgIAIAFB/wFxQQFrBUF/CwshAQF/IwBBIGsiASQAIAFBIBAZIAAgARCMASABQSBqJAALCwAgACABEIwBQQALcwEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABEDQNACAFEE1FDQAgA0HgA2oiASACEDQNACABEE1FDQAgAyABEBAgA0GgAWoiASAFIAMQVSADQcACaiICIAEQViAAIAIQL0EAIQQLIANBoAZqJAAgBAtzAQN/IwBBoAZrIgMkAEF/IQQCQCADQYAFaiIFIAEQNA0AIAUQTUUNACADQeADaiIBIAIQNA0AIAEQTUUNACADIAEQECADQaABaiIBIAUgAxATIANBwAJqIgIgARBWIAAgAhAvQQAhBAsgA0GgBmokACAEC0ABAn8jAEGgAWsiASQAAkAgABBrRQ0AIAAQTA0AIAEgABA0DQAgARBNRQ0AIAEQbEEARyECCyABQaABaiQAIAILBgBBwP8AC7UCAgV/AX4jAEHwA2siBSQAIAVBAToADwJ/IAFBwP8ATQRAIAFBwABPBEAgAEFAaiEJIAOtIQpBwAAhBgNAIAYhByAFQdAAaiIGIARBwAAQLhogCARAIAYgCCAJakLAABAmGgsgBUHQAGoiBiACIAoQJhogBiAFQQ9qQgEQJhogBiAAIAhqEDEaIAUgBS0AD0EBajoADyAHIQggB0FAayIGIAFNDQALCyABQT9xIggEQCAFQdAAaiIBIARBwAAQ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ZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/9KjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/y9jqP6q4pn/ZrPYAOKNev96Qpn+tvWGAOPkGQHWOev/2K04/7Xn0gB3gJ3/gV+I/25+MwACqbf/B4Ji/kWwXv90BOMB2fKR/8qtHwFpASf/Lq9FAOQvOv/X4EX+zzhF/xD+i/8Xz9T/yhR+/1/VYP8JsCEAyAXP//EqgP4jIcD/+OXEAYEReAD7Z5f/BzRw/4w4Qv8o4vX/2UYl/qzWCf9IQ4YBksDW/ywmcABEuEv/zlr7AJXrjQC1qjoAdPTvAFydAgBmrWIA6YlgAX8xywAFm5QAF5QJ/9N6DAAihhr/28yIAIYIKf/gUyv+VRn3AG1/AP6piDAA7nfb/+et1QDOEv7+CLoH/34JBwFvKkgAbzTs/mA/jQCTv3/+zU7A/w5q7QG720wAr/O7/mlZrQBVGVkBovOUAAJ20f4hngkAi6Mu/11GKABsKo7+b/yO/5vfkAAz5af/Sfyb/150DP+YoNr/nO4l/7Pqz//FALP/mqSNAOHEaAAKIxn+0dTy/2H93v64ZeUA3hJ/AaSIh/8ez4z+kmHzAIHAGv7JVCH/bwpO/5NRsv8EBBgAoe7X/waNIQA11w7/KbXQ/+eLnQCzy93//7lxAL3irP9xQtb/yj4t/2ZACP9OrhD+hXVE/wBBoBULAQEAQcAVC7ABJuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQAQf8WC6zxARD9QF0AoGo/ADnTV/4M0roAWLx0/kHYAQD/yD0B2EKU/wD7XAAksuH/AAAA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AZGInAD8dan+keLuAO8XawBttbz/5nAx/kmq7f/nt+P/UNwUAMJrfwF/zWUALjTFAdKrJP9YA1r/OJeNAGC7//8qTsgA/kZGAfR9qADMRIoBfNdGAGZCyP4RNOQAddyP/sv4ewA4Eq7/upek/zPo0AGg5Cv/+R0ZAUS+PwANAAAAAP8AAAAA9QAAAAAAAPsAAAAAAAD9AAAAAPMAAAAABwAAAAAAAwAAAADzAAAAAAUAAAAAAAAAAAsAAAAAAAsAAAAA8wAAAAAAAP0AAAAAAP8AAAAAAwAAAAD1AAAAAAAAAA8AAAAAAP8AAAAA/wAAAAAHAAAAAAUAQayJAgsrAQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCgBB4IkCC1czTe0AkapW/zYmM//xgGX/KXlK/+xOmwCpl2n+nClIAMJmr//OomX/AAAAAAAAAAAbLnsBEqj9/9Ovl/7D22AAOHa+/v7R9f+ZZH7+6IEV/zW48v/HpN0AQeCKAgsBAQBBgIsCC/EG4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4K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"),A=I,J(b).then((I=>WebAssembly.instantiate(I,A))).then((function(A){g(A.instance)}),(A=>{e(`failed to asynchronously prepare wasm: ${A}`),U(A)})),{}}();function q(){function A(){l||(l=!0,B.calledRun=!0,n||(m(S),B.onRuntimeInitialized?.(),function(){if(B.postRun)for("function"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),N.unshift(A);var A;m(N)}()))}G>0||(function(){if(B.preRun)for("function"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),F.unshift(A);var A;m(F)}(),G>0||(B.setStatus?(B.setStatus("Running..."),setTimeout((function(){setTimeout((function(){B.setStatus("")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=P.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=P.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=P.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=P.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=P.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=P.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=P.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=P.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=P.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=P.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=P.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=P.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=P.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=P.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=P.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=P.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=P.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=P.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=P.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=P.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=P.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=P.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=P.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=P.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=P.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=P.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=P.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=P.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=P.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=P.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=P.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=P.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=P.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=P.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=P.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=P.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=P.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=P.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=P.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=P.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=P.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=P.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=P.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=P.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=P.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=P.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=P._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=P.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=P.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=P.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=P.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=P.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=P.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=P.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=P.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=P.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=P.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=P.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=P.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=P.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=P.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=P.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=P.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=P.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=P.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=P.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=P.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=P.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=P.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=P.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=P.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=P.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=P.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=P.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=P.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=P.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=P.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=P.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=P.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=P.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=P.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=P.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=P.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=P.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=P.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=P.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=P.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=P.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=P.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=P.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=P.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=P.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=P.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=P.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=P.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=P.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=P.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=P.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=P.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=P.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=P._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=P.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=P.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=P.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=P.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=P.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=P.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=P.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=P.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=P.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=P.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=P.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=P.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=P.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=P.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=P.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=P.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=P.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=P.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=P.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=P.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=P.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=P.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=P.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=P.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=P.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=P.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=P.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=P.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=P.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=P.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=P.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=P.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=P.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=P.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=P.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=P.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=P.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=P.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=P.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=P.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=P.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=P.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=P.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=P.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=P.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=P.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=P.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=P.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=P.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=P.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=P.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=P.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=P.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=P._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=P.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=P.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=P.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=P.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=P.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=P.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=P.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=P.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=P.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=P.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=P.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=P.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=P.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=P.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=P.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=P.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=P.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=P.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=P.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=P.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=P.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=P.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=P.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=P.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=P.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=P.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=P.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=P.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=P.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=P.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=P.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=P.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=P.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=P.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=P.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=P.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=P.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=P.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=P.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=P.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=P.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=P.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=P.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=P.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=P.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=P.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=P.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=P.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=P.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=P.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=P.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=P.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=P.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=P._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=P.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=P.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=P.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=P.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=P.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=P.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=P.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=P.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=P.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=P.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=P.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=P.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=P.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=P.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=P.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=P.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=P.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=P.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=P.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=P.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=P.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=P.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=P.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=P.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=P.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=P.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=P.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=P.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=P.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=P.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=P.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=P.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=P.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=P.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=P.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=P.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=P.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=P.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=P.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=P.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=P.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=P.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=P.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=P.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=P.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=P.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=P.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=P.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=P.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=P.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=P.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=P.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=P.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=P._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=P.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=P.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=P.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=P.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=P.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=P.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=P.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=P.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=P.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=P.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=P.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=P.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=P.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=P.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=P.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=P.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=P.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=P.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=P.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=P.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=P.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=P.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=P.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=P.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=P.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=P.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=P.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=P.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=P.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=P.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=P.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=P.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=P.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=P.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=P.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=P.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=P.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=P.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=P.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=P.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=P.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=P.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=P.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=P.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=P.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=P.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=P.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=P.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=P.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=P.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=P.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=P.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=P.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=P._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=P.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=P.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=P.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=P.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=P.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=P.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=P.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=P.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=P.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=P.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=P.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=P.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=P.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=P.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=P.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=P.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=P.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=P.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=P.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=P.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=P.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=P.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=P.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=P.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=P.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=P.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=P.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=P.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=P.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=P.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=P.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=P.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=P.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=P.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=P.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=P.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=P.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=P.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=P.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=P.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=P.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=P.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=P.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=P.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=P.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=P.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=P.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=P.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=P.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=P.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=P.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=P.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=P._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=P.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=P.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=P.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=P.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=P.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=P.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=P.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=P.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=P.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=P.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=P.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=P.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=P.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=P.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=P.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=P.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=P.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=P.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=P.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=P.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=P.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=P.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=P.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=P.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=P.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=P.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=P.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=P.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=P.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=P.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=P.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=P.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=P.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=P.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=P.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=P.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=P.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=P.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=P.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=P.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=P.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=P.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=P.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=P.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=P.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=P.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=P.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=P.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=P.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=P.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=P.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=P.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=P.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=P._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=P.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=P.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=P.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=P.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=P.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=P.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=P.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=P.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=P.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=P.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=P.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=P.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=P.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=P.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=P.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=P.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=P.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=P.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=P.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=P.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=P.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=P.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=P.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=P.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=P.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=P.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=P.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=P.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=P.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=P.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=P.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=P.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=P.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=P.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=P.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=P.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=P.Jh)(),B._randombytes_random=()=>(B._randombytes_random=P.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=P.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=P.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=P.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=P.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=P.Ph)(),B._randombytes_close=()=>(B._randombytes_close=P.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=P.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=P.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=P.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=P.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=P.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=P.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=P.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=P.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=P.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=P._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=P.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=P.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=P.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=P.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=P.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=P.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=P.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=P.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=P.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=P.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=P.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=P.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=P.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=P.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=P.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=P.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=P.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=P.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=P.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=P.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=P.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=P.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=P.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=P.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=P.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=P.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=P.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=P.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=P.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=P.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=P.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=P.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=P.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=P.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=P.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=P.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=P.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=P.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=P.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=P.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=P.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=P.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=P.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=P.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=P.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=P.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=P.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=P.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=P.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=P.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=P.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=P.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=P.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=P._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=P.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=P.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=P.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=P.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=P.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=P.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=P.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=P.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=P.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=P.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=P.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=P.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=P.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=P.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=P.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=P.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=P.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=P.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=P.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=P.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=P.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=P.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=P.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=P.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=P.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=P.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=P.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=P.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=P.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=P.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=P.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=P.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=P.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=P.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=P.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=P.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=P.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=P.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=P.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=P.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=P.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=P.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=P.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=P.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=P.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=P.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=P.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=P.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=P.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=P.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=P.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=P.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=P.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=P._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=P.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=P.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=P.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=P.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=P.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=P.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=P.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=P.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=P.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=P.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=P.jk)(A),B._malloc=A=>(B._malloc=P.kk)(A),B._free=A=>(B._free=P.lk)(A),B.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":y[A]=I;break;case"i16":h[A>>1]=I;break;case"i32":D[A>>2]=I;break;case"i64":U("to do setValue(i64) use WASM_BIGINT");case"float":p[A>>2]=I;break;case"double":w[A>>3]=I;break;case"*":f[A>>2]=I;break;default:U(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return y[A];case"i16":return h[A>>1];case"i32":return D[A>>2];case"i64":U("to do getValue(i64) use WASM_BIGINT");case"float":return p[A>>2];case"double":return w[A>>3];case"*":return f[A>>2];default:U(`invalid type for getValue: ${I}`)}},B.UTF8ToString=x,K=function A(){l||q(),l||(K=A)},B.preInit)for("function"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();q()})).catch((function(){return C.useBackupModule()})),I}"function"==typeof define&&define.amd?define(["exports"],I):"object"==typeof exports&&"string"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this); +!function(A){function I(A){"use strict";var I;void 0===(I=A)&&(I={});var g=I;"object"!=typeof g.sodium&&("object"==typeof global?g=global:"object"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(B=C).onAbort=I,B.print=function(A){},B.printErr=function(A){},B.onRuntimeInitialized=function(){try{B._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},B.useBackupModule=function(){return new Promise((function(A,I){(B={}).onAbort=I,B.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){"getRandomValue"!==A&&delete C[A]})),Object.keys(B).forEach((function(A){C[A]=B[A]})),A()};var g,B=void 0!==B?B:{},Q="object"==typeof window,i="function"==typeof importScripts,o=false,E=Object.assign({},B),a="";if(o){var _=require("fs"),c=require("path");a=__dirname+"/",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),"undefined"!=typeof module&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:"undefined"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith("blob:")?"":a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}));B.print;var t,r=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var e,y={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,o=I,E=C.length,a=I+(3*E>>2)-("="==C[E-2])-("="==C[E-1]);i>4,o>2),o>>0>P>>>0?a+1|0:a)|0,a=(QA=(_=P)>>>0>(P=P+QA|0)>>>0?a+1|0:a)+yA|0,iA=eA=P+rA|0,eA=a=eA>>>0

>>0?a+1|0:a,P=UI(P^(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24)^-79577749,QA^(o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)^528734635,32),kA=a=f,a=a+1013904242|0,QA=P,V=a=(P=P-23791573|0)>>>0<4271175723?a+1|0:a,_A=UI(P^aA,a^_A,40),a=(a=eA)+(eA=f)|0,aA=UI(QA^(h=aA=_A+iA|0),kA^(D=h>>>0<_A>>>0?a+1|0:a),48),a=V+(R=f)|0,k=a=(aA=P+(p=aA)|0)>>>0

>>0?a+1|0:a,aA=a=UI(_A^(n=aA),eA^a,1),V=P=f,eA=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,kA=a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,tA=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,P=(_A=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)+(QA=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24)|0,a=(GA=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)+(KA=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)|0,a=(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24)+(P>>>0>>0?a+1|0:a)|0,a=kA+(iA=(_=P)>>>0>(P=P+tA|0)>>>0?a+1|0:a)|0,a=(tA=P+eA|0)>>>0

>>0?a+1|0:a,_=UI(P^(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)^725511199,iA^(o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24)^-1694144372,32),e=UI(QA^(c=_-2067093701|0),KA^(x=(J=P=f)-((_>>>0<2067093701)+1150833018|0)|0),40),a=(L=f)+a|0,a=(Y=(F=P=e+tA|0)>>>0>>0?a+1|0:a)+V|0,a=(F>>>0>(P=F+aA|0)>>>0?a+1|0:a)+X|0,a=(QA=(t=P)>>>0>(P=P+oA|0)>>>0?a+1|0:a)+z|0,l=z=P+g|0,s=a=z>>>0

>>0?a+1|0:a,w=aA,wA=V,V=P,iA=QA,aA=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,P=a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,KA=a=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i=QA=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,X=a,a=(FA=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)+(r=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)|0,a=i+((z=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)>>>0>(t=z+(QA=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)|0)>>>0?a+1|0:a)|0,a=(tA=(X=t+X|0)>>>0>>0?a+1|0:a)+P|0,fA=t=X+aA|0,t=a=t>>>0>>0?a+1|0:a,y=z,z=UI(X^(o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)^-1377402159,tA^(o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24)^1359893119,32),tA=a=f,a=a+1779033703|0,X=z,U=a=(z=z-205731576|0)>>>0<4089235720?a+1|0:a,r=UI(y^(S=z),a^r,40),a=(m=f)+t|0,y=UI(X^(t=z=r+fA|0),tA^(G=r>>>0>t>>>0?a+1|0:a),48),a=UI(y^V,(T=f)^iA,32),W=z=f,u=a,B=a=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,tA=fA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,K=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,z=(iA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24)+(X=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)|0,a=(SA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24)+(d=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)|0,a=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)+(z>>>0>>0?a+1|0:a)|0,a=B+(V=(M=z)>>>0>(z=K+z|0)>>>0?a+1|0:a)|0,a=(K=z+tA|0)>>>0>>0?a+1|0:a,V=UI(z^(o[A+88|0]|o[A+89|0]<<8|o[A+90|0]<<16|o[A+91|0]<<24)^327033209,V^(o[A+92|0]|o[A+93|0]<<8|o[A+94|0]<<16|o[A+95|0]<<24)^1541459225,32),X=UI(X^(tA=V+1595750129|0),(M=d)^(d=(b=z=f)-((V>>>0<2699217167)+1521486533|0)|0),40),a=(IA=f)+a|0,z=UI((K=z=X+K|0)^V,b^(M=K>>>0>>0?a+1|0:a),48),a=d+($=f)|0,H=a=(z=tA+(d=z)|0)>>>0>>0?a+1|0:a,a=W+a|0,O=w^(V=u+(b=z)|0),w=a=V>>>0>>0?a+1|0:a,tA=UI(O,a^wA,40),a=(wA=f)+s|0,z=UI(l=u^(s=z=tA+l|0),W^(u=s>>>0>>0?a+1|0:a),48),a=w+(CA=f)|0,W=a=(w=V+(l=z)|0)>>>0>>0?a+1|0:a,z=(v=UI(w^tA,wA^a,1))+(V=o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)|0,a=(hA=f)+(wA=o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)|0,nA=z,q=z>>>0>>0?a+1|0:a,Z=sA,z=o[I+96|0]|o[I+97|0]<<8|o[I+98|0]<<16|o[I+99|0]<<24,tA=a=o[I+100|0]|o[I+101|0]<<8|o[I+102|0]<<16|o[I+103|0]<<24,X=(a=h)+(h=UI(b^X,H^IA,1))|0,a=(b=f)+D|0,a=(h>>>0>X>>>0?a+1|0:a)+tA|0,a=(D=(D=X)>>>0>(X=z+X|0)>>>0?a+1|0:a)+Z|0,O=H=X+gA|0,H=a=H>>>0>>0?a+1|0:a,F=UI(_^F,Y^J,48),Y=a=UI(F^X,(J=f)^D,32),a=U+T|0,a=(IA=X=f)+(S=(X=y+S|0)>>>0>>0?a+1|0:a)|0,U=a=(D=X)>>>0>(y=D+Y|0)>>>0?a+1|0:a,h=UI(y^h,b^a,40),a=(T=f)+H|0,a=(b=h>>>0>(H=X=h+O|0)>>>0?a+1|0:a)+q|0,a=(_=H>>>0>(X=H+nA|0)>>>0?a+1|0:a)+pA|0,nA=q=X+EA|0,q=a=q>>>0>>0?a+1|0:a,O=X,Z=_,X=o[I+116|0]|o[I+117|0]<<8|o[I+118|0]<<16|o[I+119|0]<<24,I=o[I+112|0]|o[I+113|0]<<8|o[I+114|0]<<16|o[I+115|0]<<24,r=UI(r^D,S^m,1),a=(m=f)+M|0,a=((_=r+K|0)>>>0>>0?a+1|0:a)+X|0,a=(D=(S=_)>>>0>(_=I+_|0)>>>0?a+1|0:a)+pA|0,MA=S=_+EA|0,S=a=S>>>0<_>>>0?a+1|0:a,a=UI(_^p,D^R,32),AA=_=f,p=a,D=_,a=J+x|0,F=_=c+F|0,K=a=_>>>0>>0?a+1|0:a,a=a+D|0,M=_=_+p|0,R=a=F>>>0>_>>>0?a+1|0:a,D=UI(_^r,m^a,40),a=(m=f)+S|0,p=UI((_=D+MA|0)^p,AA^(c=_>>>0>>0?a+1|0:a),48),a=UI(p^O,(MA=f)^Z,32),AA=r=f,S=a,O=r,e=UI(e^F,K^L,1),a=G+(F=f)|0,a=((r=t)>>>0>(t=t+e|0)>>>0?a+1|0:a)+BA|0,a=(t=(r=t+j|0)>>>0>>0?a+1|0:a)+wA|0,Z=G=r+V|0,G=a=G>>>0>>0?a+1|0:a,K=e,r=UI(r^d,t^$,32),a=(d=f)+k|0,n=UI(K^(t=e=r+n|0),(k=r>>>0>t>>>0?a+1|0:a)^F,40),a=($=f)+G|0,F=e=n+Z|0,e=UI(r^e,d^(G=e>>>0>>0?a+1|0:a),48),a=k+(E=f)|0,k=e,d=a=(e=t+e|0)>>>0>>0?a+1|0:a,a=a+O|0,a=(K=e)>>>0>(e=e+S|0)>>>0?a+1|0:a,O=e,e^=v,v=a,r=UI(e,hA^a,40),a=(hA=f)+q|0,q=e=r+nA|0,a=Q+(Z=r>>>0>e>>>0?a+1|0:a)|0,nA=e=e+g|0,J=a=e>>>0>>0?a+1|0:a,e=_,x=gA,L=sA,_=UI(Y^H,b^IA,48),a=U+(IA=f)|0,Y=_,U=a=(t=y+_|0)>>>0>>0?a+1|0:a,_=UI(t^h,T^a,1),a=(y=f)+L|0,a=((h=_+x|0)>>>0<_>>>0?a+1|0:a)+c|0,a=SA+(e=(c=e+h|0)>>>0>>0?a+1|0:a)|0,H=h=c+iA|0,h=a=h>>>0>>0?a+1|0:a,c=UI(c^k,e^E,32),a=W+(b=f)|0,k=c,w=a=(c=w+c|0)>>>0>>0?a+1|0:a,e=UI(_^c,a^y,40),a=(a=h)+(h=f)|0,y=_=e+H|0,_=UI(_^k,b^(H=_>>>0>>0?a+1|0:a),48),a=w+(T=f)|0,b=_,W=a=(w=c+_|0)>>>0>>0?a+1|0:a,_=UI(e^w,h^a,1),a=(h=f)+J|0,a=B+(e=(c=_+nA|0)>>>0<_>>>0?a+1|0:a)|0,nA=k=c+fA|0,k=a=k>>>0>>0?a+1|0:a,J=_,x=h,a=R+MA|0,a=(_=p+M|0)>>>0

>>0?a+1|0:a,p=_,M=a,a=UI(_^D,m^a,1),D=h=f,_=a,a=G+X|0,a=((F=I+F|0)>>>0>>0?a+1|0:a)+h|0,a=DA+(F=(h=_+F|0)>>>0>>0?a+1|0:a)|0,R=G=h+oA|0,G=a=G>>>0>>0?a+1|0:a,h=UI(h^l,F^CA,32),a=U+(l=f)|0,F=h,U=a=(U=t)>>>0>(t=t+h|0)>>>0?a+1|0:a,h=UI(_^t,a^D,40),a=(m=f)+G|0,D=_=h+R|0,_=UI(G=_^F,l^(F=_>>>0>>0?a+1|0:a),48),a=U+(CA=f)|0,U=_,G=_=t+_|0,l=a=_>>>0>>0?a+1|0:a,R=c,L=e,_=UI(n^K,d^$,1),a=(t=f)+N|0,a=u+((c=_+cA|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(e=(c=c+s|0)>>>0>>0?a+1|0:a)|0,u=s=c+j|0,s=a=s>>>0>>0?a+1|0:a,n=_,_=(c=UI(c^Y,e^IA,32))+p|0,a=(p=f)+M|0,e=_,t=UI(_^n,(Y=_>>>0>>0?a+1|0:a)^t,40),a=(IA=f)+s|0,s=_=t+u|0,K=UI(_^c,p^(u=_>>>0>>0?a+1|0:a),48),c=UI(K^R,(a=L)^(L=f),32),a=(R=f)+l|0,p=_=c+G|0,n=UI(_^J,(M=_>>>0>>0?a+1|0:a)^x,40),a=(J=f)+k|0,k=_=n+nA|0,_=UI(_^c,R^(d=_>>>0>>0?a+1|0:a),48),a=M+($=f)|0,M=_,R=a=(c=p)>>>0>(p=p+_|0)>>>0?a+1|0:a,_=UI(p^n,J^a,1),a=pA+(nA=f)|0,J=_,MA=_=EA+_|0,n=a=_>>>0>>0?a+1|0:a,c=rA,_=UI(h^G,m^l,1),a=H+(h=f)|0,a=((G=y)>>>0>(y=_+y|0)>>>0?a+1|0:a)+yA|0,a=(G=(c=c+y|0)>>>0>>0?a+1|0:a)+kA|0,x=y=c+eA|0,H=a=y>>>0>>0?a+1|0:a,l=_,y=UI(S^q,Z^AA,48),a=UI(y^c,(m=f)^G,32),AA=_=f,S=a,c=_,a=Y+L|0,a=(_=e+K|0)>>>0>>0?a+1|0:a,e=_,Y=a,a=a+c|0,G=_=_+S|0,K=a=e>>>0>_>>>0?a+1|0:a,c=UI(_^l,a^h,40),a=(a=H)+(H=f)|0,l=_=c+x|0,q=a=_>>>0>>0?a+1|0:a,a=a+n|0,Z=a=(h=_+MA|0)>>>0<_>>>0?a+1|0:a,n=a,_=UI(t^e,Y^IA,1),a=P+(t=f)|0,a=F+((e=_+aA|0)>>>0>>0?a+1|0:a)|0,a=tA+(D=(e=e+D|0)>>>0>>0?a+1|0:a)|0,x=F=e+z|0,F=a=F>>>0>>0?a+1|0:a,Y=_,a=UI(e^b,D^T,32),L=_=f,e=a,D=_,a=m+v|0,b=_=y+O|0,v=a=_>>>0>>0?a+1|0:a,a=a+D|0,a=(y=_+e|0)>>>0<_>>>0?a+1|0:a,_=y^Y,Y=a,D=UI(_,a^t,40),a=(T=f)+F|0,t=_=D+x|0,O=UI(_^e,L^(F=_>>>0>>0?a+1|0:a),48),a=UI(O^h,(IA=f)^n,32),MA=_=f,x=a,n=_,_=UI(r^b,v^hA,1),a=u+(r=f)|0,a=FA+((e=_+s|0)>>>0>>0?a+1|0:a)|0,a=(s=(e=e+QA|0)>>>0>>0?a+1|0:a)+GA|0,b=u=e+_A|0,u=a=u>>>0>>0?a+1|0:a,e=UI(e^U,s^CA,32),a=W+(v=f)|0,U=e,s=r,r=a=(e=w+e|0)>>>0>>0?a+1|0:a,s=UI(_^e,s^a,40),a=(CA=f)+u|0,w=_=s+b|0,_=UI(b=_^U,v^(U=_>>>0>>0?a+1|0:a),48),a=r+(m=f)|0,r=_,u=_=e+_|0,b=a=_>>>0>>0?a+1|0:a,a=a+n|0,W=a=(n=_+x|0)>>>0<_>>>0?a+1|0:a,e=UI(n^J,nA^a,40),a=Z+(v=f)|0,a=((_=e+h|0)>>>0>>0?a+1|0:a)+sA|0,h=_,Z=_=_+gA|0,J=a=h>>>0>_>>>0?a+1|0:a,L=BA,h=UI(S^l,q^AA,48),a=(hA=f)+K|0,S=_=h+G|0,a=UI(_^c,(G=_>>>0>>0?a+1|0:a)^H,1),H=c=f,_=a,a=F+Q|0,a=((t=t+g|0)>>>0>>0?a+1|0:a)+c|0,a=(t=(c=_+t|0)>>>0>>0?a+1|0:a)+L|0,K=F=c+j|0,F=a=F>>>0>>0?a+1|0:a,c=UI(c^r,t^m,32),a=R+(l=f)|0,p=a=(r=c+p|0)>>>0

>>0?a+1|0:a,t=UI(_^r,a^H,40),a=(q=f)+F|0,F=_=t+K|0,c=UI(_^c,l^(H=_>>>0>>0?a+1|0:a),48),a=p+(K=f)|0,l=a=(p=c+r|0)>>>0>>0?a+1|0:a,_=UI(t^p,q^a,1),a=(q=f)+J|0,a=wA+((r=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=(t=(r=r+V|0)>>>0>>0?a+1|0:a)+N|0,nA=N=r+cA|0,N=a=N>>>0>>0?a+1|0:a,R=_,L=r,m=t,r=rA,_=UI(s^u,b^CA,1),a=d+(s=f)|0,a=((t=k)>>>0>(k=_+k|0)>>>0?a+1|0:a)+yA|0,a=GA+(t=(r=r+k|0)>>>0>>0?a+1|0:a)|0,d=k=r+_A|0,u=a=k>>>0<_A>>>0?a+1|0:a,k=_,t=a=UI(r^h,t^hA,32),a=Y+IA|0,a=(b=_=f)+(y=(_=y+O|0)>>>0>>0?a+1|0:a)|0,Y=a=(h=_+t|0)>>>0<_>>>0?a+1|0:a,k=UI(h^k,a^s,40),a=(IA=f)+u|0,u=UI(d=(r=k+d|0)^t,b^(t=r>>>0>>0?a+1|0:a),48),a=UI(u^L,(CA=f)^m,32),hA=s=f,d=a,b=s,_=UI(_^D,y^T,1),a=tA+(s=f)|0,a=U+((y=_+z|0)>>>0>>0?a+1|0:a)|0,a=FA+(w=(y=y+w|0)>>>0>>0?a+1|0:a)|0,L=D=y+QA|0,D=a=D>>>0>>0?a+1|0:a,U=_,O=s,y=UI(y^M,w^$,32),a=(M=f)+G|0,s=_=y+S|0,w=UI(_^U,(S=_>>>0>>0?a+1|0:a)^O,40),a=(T=f)+D|0,U=_=w+L|0,_=UI(_^y,M^(G=_>>>0>>0?a+1|0:a),48),a=S+(L=f)|0,D=_,S=_=s+_|0,M=a=_>>>0>>0?a+1|0:a,a=a+b|0,b=_=_+d|0,y=q,q=a=S>>>0>_>>>0?a+1|0:a,y=UI(_^R,y^a,40),a=(a=N)+(N=f)|0,O=_=y+nA|0,R=a=_>>>0>>0?a+1|0:a,s=t,_=UI(x^Z,J^MA,48),a=W+($=f)|0,W=_,t=(_=n+_|0)^e,e=a=_>>>0>>0?a+1|0:a,t=UI(t,a^v,1),a=(v=f)+s|0,a=B+((r=t+r|0)>>>0>>0?a+1|0:a)|0,a=(s=(r=r+fA|0)>>>0>>0?a+1|0:a)+P|0,Z=n=r+aA|0,n=a=n>>>0>>0?a+1|0:a,r=UI(r^D,s^L,32),a=l+(J=f)|0,l=r,p=a=(s=p+r|0)>>>0

>>0?a+1|0:a,t=UI(t^s,v^a,40),a=(a=n)+(n=f)|0,D=r=t+Z|0,r=UI(x=r^l,J^(l=r>>>0>>0?a+1|0:a),48),a=p+(nA=f)|0,v=r,Z=a=(p=s+r|0)>>>0>>0?a+1|0:a,r=UI(t^p,n^a,1),a=(n=f)+R|0,a=Q+((t=r+O|0)>>>0>>0?a+1|0:a)|0,a=X+(s=(t=t+g|0)>>>0>>0?a+1|0:a)|0,MA=J=I+t|0,J=a=J>>>0>>0?a+1|0:a,x=r,L=n,n=t,m=s,r=UI(w^S,M^T,1),a=(s=f)+H|0,a=DA+((t=r+F|0)>>>0>>0?a+1|0:a)|0,a=(w=(t=t+oA|0)>>>0>>0?a+1|0:a)+X|0,H=F=I+t|0,F=a=F>>>0>>0?a+1|0:a,S=r,t=a=UI(t^W,w^$,32),w=r=f,a=Y+CA|0,Y=a=(r=h+u|0)>>>0>>0?a+1|0:a,a=a+w|0,a=(h=r)>>>0>(r=r+t|0)>>>0?a+1|0:a,u=r,r^=S,S=a,s=UI(r,a^s,40),a=(T=f)+F|0,w=UI(F=(r=s+H|0)^t,w^(t=r>>>0>>0?a+1|0:a),48),a=UI(w^n,(a=m)^(m=f),32),$=n=f,F=a,H=e,e=c,a=UI(h^k,Y^IA,1),M=c=f,h=a,a=G+kA|0,a=((k=U+eA|0)>>>0>>0?a+1|0:a)+c|0,k=a=(c=h+k|0)>>>0>>0?a+1|0:a,e=UI(c^e,a^K,32),a=(a=H)+(H=f)|0,h=UI((_=e+_|0)^h,M^(Y=_>>>0>>0?a+1|0:a),40),a=k+(IA=f)|0,U=h,a=SA+((G=c)>>>0>(c=c+h|0)>>>0?a+1|0:a)|0,G=a=(h=c+iA|0)>>>0>>0?a+1|0:a,c=UI(e^h,H^a,48),a=Y+(CA=f)|0,K=_,e=c,Y=_=_+c|0,H=a=K>>>0>_>>>0?a+1|0:a,a=a+n|0,K=a=(n=_+F|0)>>>0<_>>>0?a+1|0:a,_=(k=UI(n^x,a^L,40))+MA|0,a=(MA=f)+J|0,M=_,W=_>>>0>>0?a+1|0:a,_=UI(d^O,R^hA,48),a=(d=f)+q|0,b=c=_+b|0,x=N,N=a=c>>>0<_>>>0?a+1|0:a,a=UI(c^y,x^a,1),O=c=f,y=a,a=t+B|0,a=((r=r+fA|0)>>>0>>0?a+1|0:a)+c|0,a=wA+(r=(c=r+y|0)>>>0>>0?a+1|0:a)|0,R=t=c+V|0,t=a=t>>>0>>0?a+1|0:a,c=UI(c^e,r^CA,32),a=Z+(J=f)|0,q=c,c=(e=p+c|0)^y,y=a=e>>>0

>>0?a+1|0:a,r=UI(c,O^a,40),a=(a=t)+(t=f)|0,O=c=r+R|0,c=UI(p=c^q,J^(q=c>>>0>>0?a+1|0:a),48),a=y+(CA=f)|0,Z=c,e=a=(c=e+c|0)>>>0>>0?a+1|0:a,r=UI(c^r,t^a,1),a=(p=f)+W|0,a=pA+((t=r+M|0)>>>0>>0?a+1|0:a)|0,a=(y=(t=t+EA|0)>>>0>>0?a+1|0:a)+BA|0,AA=R=t+j|0,R=a=R>>>0>>0?a+1|0:a,J=r,x=t,L=y,r=UI(U^Y,H^IA,1),a=(H=f)+sA|0,a=l+(r>>>0>(t=r+gA|0)>>>0?a+1|0:a)|0,y=a=(t=t+D|0)>>>0>>0?a+1|0:a,a=UI(_^t,a^d,32),d=_=f,D=a,a=S+m|0,a=(_=w+u|0)>>>0>>0?a+1|0:a,w=_,Y=a,a=d+a|0,S=_=_+D|0,U=a=w>>>0>_>>>0?a+1|0:a,_=UI(_^r,H^a,40),a=y+(m=f)|0,u=_,a=tA+((_=t+_|0)>>>0>>0?a+1|0:a)|0,a=(_=_+z|0)>>>0>>0?a+1|0:a,H=_,_^=D,D=a,y=UI(_,d^a,48),a=UI(y^x,(a=L)^(L=f),32),IA=_=f,d=a,l=_,_=UI(s^w,Y^T,1),a=kA+(t=f)|0,a=G+((r=_+eA|0)>>>0>>0?a+1|0:a)|0,a=(s=(r=r+h|0)>>>0>>0?a+1|0:a)+P|0,G=w=r+aA|0,w=a=w>>>0>>0?a+1|0:a,h=_,Y=t,_=(r=UI(r^v,s^nA,32))+b|0,a=(b=f)+N|0,t=_,s=UI(s=_^h,(h=_>>>0>>0?a+1|0:a)^Y,40),a=(T=f)+w|0,w=_=s+G|0,r=UI(_^r,b^(N=_>>>0>>0?a+1|0:a),48),a=h+(Y=f)|0,G=_=r+t|0,b=a=_>>>0>>0?a+1|0:a,a=a+l|0,l=a=(h=_+d|0)>>>0<_>>>0?a+1|0:a,t=UI(h^J,a^p,40),a=(v=f)+R|0,R=_=t+AA|0,J=a=_>>>0>>0?a+1|0:a,_=c,p=e,e=r,c=UI(F^M,W^$,48),a=K+(AA=f)|0,F=c,n=a=(r=n+c|0)>>>0>>0?a+1|0:a,a=UI(r^k,MA^a,1),K=c=f,k=a,a=D+NA|0,a=((D=H+cA|0)>>>0>>0?a+1|0:a)+c|0,D=a=(c=D+k|0)>>>0>>0?a+1|0:a,e=UI(c^e,a^Y,32),a=(H=f)+p|0,k=UI((_=e+_|0)^k,K^(p=_>>>0>>0?a+1|0:a),40),a=D+(M=f)|0,a=FA+((D=c)>>>0>(c=c+k|0)>>>0?a+1|0:a)|0,Y=a=(D=c+QA|0)>>>0>>0?a+1|0:a,c=UI(e^D,H^a,48),a=p+($=f)|0,H=c,K=a=(p=_+c|0)>>>0<_>>>0?a+1|0:a,_=UI(p^k,M^a,1),a=(k=f)+J|0,a=DA+((c=_+R|0)>>>0<_>>>0?a+1|0:a)|0,a=pA+(e=(c=c+oA|0)>>>0>>0?a+1|0:a)|0,hA=M=c+EA|0,M=a=M>>>0>>0?a+1|0:a,W=_,x=c,_=UI(s^G,b^T,1),a=(s=f)+q|0,a=GA+((c=_+O|0)>>>0<_>>>0?a+1|0:a)|0,a=SA+(G=(c=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,O=b=c+iA|0,b=a=b>>>0>>0?a+1|0:a,q=_,a=UI(c^F,G^AA,32),AA=_=f,c=a,a=U+L|0,S=_=y+S|0,F=a=_>>>0>>0?a+1|0:a,a=AA+a|0,U=a=(y=_+c|0)>>>0<_>>>0?a+1|0:a,s=UI(y^q,a^s,40),a=(L=f)+b|0,G=_=s+O|0,q=UI(_^c,AA^(b=_>>>0>>0?a+1|0:a),48),a=UI(q^x,(AA=f)^e,32),T=_=f,O=a,e=_,c=rA,_=UI(S^u,F^m,1),a=N+(F=f)|0,a=((S=w)>>>0>(w=_+w|0)>>>0?a+1|0:a)+yA|0,a=DA+(w=(c=c+w|0)>>>0>>0?a+1|0:a)|0,S=N=c+oA|0,N=a=N>>>0>>0?a+1|0:a,c=UI(c^Z,w^CA,32),a=n+(u=f)|0,n=c,a=(c=r+c|0)>>>0>>0?a+1|0:a,r=F,F=a,r=UI(_^c,r^a,40),a=(m=f)+N|0,w=_=r+S|0,_=UI(_^n,u^(N=_>>>0>>0?a+1|0:a),48),a=F+(x=f)|0,F=_,S=_=c+_|0,u=a=_>>>0>>0?a+1|0:a,a=a+e|0,a=(n=_+O|0)>>>0<_>>>0?a+1|0:a,_=n^W,W=a,k=UI(_,a^k,40),a=(CA=f)+M|0,M=_=k+hA|0,Z=_>>>0>>0?a+1|0:a,_=UI(d^R,J^IA,48),a=l+(IA=f)|0,d=_,a=(_=h+_|0)>>>0>>0?a+1|0:a,h=_,l=a,a=UI(_^t,a^v,1),v=_=f,e=a,a=b+wA|0,a=((c=G+V|0)>>>0>>0?a+1|0:a)+_|0,a=FA+(c=(_=c+e|0)>>>0>>0?a+1|0:a)|0,G=t=_+QA|0,t=a=t>>>0>>0?a+1|0:a,_=UI(_^F,c^x,32),a=K+(b=f)|0,F=_,p=a=(c=p+_|0)>>>0

>>0?a+1|0:a,e=UI(c^e,v^a,40),a=(v=f)+t|0,G=_=e+G|0,_=UI(t=_^F,b^(F=_>>>0>>0?a+1|0:a),48),a=p+(hA=f)|0,p=_,K=a=(t=c+_|0)>>>0>>0?a+1|0:a,_=UI(t^e,v^a,1),a=(b=f)+Z|0,a=kA+((c=_+M|0)>>>0<_>>>0?a+1|0:a)|0,a=(e=(c=c+eA|0)>>>0>>0?a+1|0:a)+sA|0,nA=v=c+gA|0,v=a=v>>>0>>0?a+1|0:a,R=_,J=c,x=e,_=UI(r^S,m^u,1),a=GA+(e=f)|0,a=Y+((c=_+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=NA+(r=(c=c+D|0)>>>0>>0?a+1|0:a)|0,u=D=c+cA|0,D=a=D>>>0>>0?a+1|0:a,Y=_,S=e,a=UI(c^d,r^IA,32),d=_=f,r=a,c=_,a=U+AA|0,a=(_=y+q|0)>>>0>>0?a+1|0:a,y=_,U=a,a=a+c|0,a=(e=_+r|0)>>>0<_>>>0?a+1|0:a,_=e^Y,Y=a,_=UI(_,a^S,40),a=(a=D)+(D=f)|0,S=c=_+u|0,u=a=c>>>0<_>>>0?a+1|0:a,d=UI(c^r,d^a,48),a=UI(d^J,(a=x)^(x=f),32),m=c=f,q=a,c=UI(y^s,U^L,1),a=(y=f)+yA|0,a=N+((r=c+rA|0)>>>0>>0?a+1|0:a)|0,a=B+(s=(r=r+w|0)>>>0>>0?a+1|0:a)|0,L=w=r+fA|0,w=a=w>>>0>>0?a+1|0:a,N=c,U=y,r=UI(r^H,s^$,32),a=(H=f)+l|0,y=c=r+h|0,c=(s=UI(c^N,(h=c>>>0>>0?a+1|0:a)^U,40))+L|0,a=(L=f)+w|0,N=c,c=UI(c^r,H^(U=c>>>0>>0?a+1|0:a),48),a=h+(AA=f)|0,H=c,l=c=y+c|0,J=a=c>>>0>>0?a+1|0:a,a=m+a|0,a=(r=c+q|0)>>>0>>0?a+1|0:a,c=b,b=a,y=UI(r^R,c^a,40),a=(IA=f)+v|0,w=c=y+nA|0,a=UI(c^q,m^(v=c>>>0>>0?a+1|0:a),48),m=c=f,q=a,c=_,a=Y+x|0,Y=_=e+d|0,d=a=_>>>0>>0?a+1|0:a,a=UI(_^c,a^D,1),e=c=f,_=a,a=U+Q|0,a=((h=N+g|0)>>>0>>0?a+1|0:a)+c|0,a=tA+(h=(c=_+h|0)>>>0>>0?a+1|0:a)|0,x=D=c+z|0,D=a=D>>>0>>0?a+1|0:a,N=_,U=e,_=UI(M^O,Z^T,48),a=W+(T=f)|0,M=_,a=(_=n+_|0)>>>0>>0?a+1|0:a,n=_,c=UI(c^p,h^hA,32),W=a,a=a+(O=f)|0,e=_=c+_|0,h=UI(_^N,(p=_>>>0>>0?a+1|0:a)^U,40),a=(Z=f)+D|0,D=_=h+x|0,_=UI(_^c,O^(N=_>>>0>>0?a+1|0:a),48),a=p+($=f)|0,U=_,O=a=(p=e+_|0)>>>0>>0?a+1|0:a,_=UI(h^p,Z^a,1),a=FA+(x=f)|0,Z=_,hA=_=QA+_|0,e=a=_>>>0>>0?a+1|0:a,_=UI(k^n,W^CA,1),a=(h=f)+u|0,a=SA+((c=_+S|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(n=(c=c+iA|0)>>>0>>0?a+1|0:a)|0,W=k=c+j|0,k=a=k>>>0>>0?a+1|0:a,S=h,c=UI(c^H,n^AA,32),a=K+(AA=f)|0,u=c,a=(h=t+c|0)>>>0>>0?a+1|0:a,t=S,S=a,n=UI(_^h,t^a,40),a=(CA=f)+k|0,H=_=n+W|0,a=(K=_>>>0>>0?a+1|0:a)+e|0,k=a=(e=_+hA|0)>>>0<_>>>0?a+1|0:a,W=a=UI(e^q,a^m,32),R=_=f,_=UI(s^l,J^L,1),a=(t=f)+F|0,a=X+((c=_+G|0)>>>0<_>>>0?a+1|0:a)|0,a=(s=(c=I+c|0)>>>0>>0?a+1|0:a)+P|0,J=F=c+aA|0,F=a=F>>>0>>0?a+1|0:a,G=_,l=t,c=UI(c^M,s^T,32),a=(M=f)+d|0,t=_=c+Y|0,_=(s=UI(_^G,(Y=_>>>0>>0?a+1|0:a)^l,40))+J|0,a=(J=f)+F|0,F=_,_=UI(_^c,M^(G=_>>>0>>0?a+1|0:a),48),a=Y+(T=f)|0,Y=_,M=a=(_=t+_|0)>>>0>>0?a+1|0:a,a=a+R|0,d=a=(t=_)>>>0>(_=_+W|0)>>>0?a+1|0:a,c=UI(_^Z,x^a,40),a=k+(x=f)|0,l=c,a=Q+((c=e+c|0)>>>0>>0?a+1|0:a)|0,Z=c=c+g|0,e=c^W,W=a=c>>>0>>0?a+1|0:a,c=UI(e,R^a,48),a=d+(R=f)|0,d=a=(k=_+c|0)>>>0<_>>>0?a+1|0:a,_=a=UI(k^l,x^a,1),l=e=f,e=UI(t^s,M^J,1),a=N+(s=f)|0,a=SA+((t=e+D|0)>>>0>>0?a+1|0:a)|0,a=DA+(D=(t=t+iA|0)>>>0>>0?a+1|0:a)|0,x=N=t+oA|0,N=a=N>>>0>>0?a+1|0:a,M=e,J=s,a=b+m|0,a=(e=r+q|0)>>>0>>0?a+1|0:a,b=e,u=UI(H^u,K^AA,48),s=UI(t^u,D^(AA=f),32),H=a,a=a+(hA=f)|0,D=e=s+e|0,e=UI(e^M,(K=e>>>0>>0?a+1|0:a)^J,40),a=(M=f)+N|0,J=a=(r=e+x|0)>>>0>>0?a+1|0:a,a=a+l|0,a=B+((q=r)>>>0>(r=_+r|0)>>>0?a+1|0:a)|0,a=(t=(r=r+fA|0)>>>0>>0?a+1|0:a)+yA|0,nA=N=r+rA|0,x=a=N>>>0>>0?a+1|0:a,L=_,m=r,a=UI(y^b,H^IA,1),y=r=f,_=a,a=G+GA|0,a=((N=F+_A|0)>>>0<_A>>>0?a+1|0:a)+r|0,a=tA+(N=(r=_+N|0)>>>0>>0?a+1|0:a)|0,H=F=r+z|0,F=a=F>>>0>>0?a+1|0:a,G=_,a=UI(r^U,N^$,32),b=_=f,r=a,N=_,a=S+AA|0,S=_=h+u|0,U=a=_>>>0>>0?a+1|0:a,a=a+N|0,a=(h=_+r|0)>>>0<_>>>0?a+1|0:a,_=h^G;G=a,N=UI(_,a^y,40),a=(AA=f)+F|0,u=UI(F=(_=N+H|0)^r,b^(r=_>>>0>>0?a+1|0:a),48),a=UI(a=u^m,(m=f)^t,32),IA=t=f,H=a,F=t,t=UI(n^S,U^CA,1),a=BA+(n=f)|0,a=v+((y=t+j|0)>>>0>>0?a+1|0:a)|0,a=kA+(w=(y=y+w|0)>>>0>>0?a+1|0:a)|0,U=S=y+eA|0,S=a=S>>>0>>0?a+1|0:a,y=UI(y^Y,w^T,32),a=O+(b=f)|0,Y=y,p=a=(y=p+y|0)>>>0

>>0?a+1|0:a,w=UI(t^y,a^n,40),a=(T=f)+S|0,n=t=w+U|0,t=UI(S=t^Y,b^(Y=t>>>0>>0?a+1|0:a),48),a=p+($=f)|0,S=t,U=t=y+t|0,b=a=t>>>0>>0?a+1|0:a,a=a+F|0,a=(y=t+H|0)>>>0>>0?a+1|0:a,t=l,l=a,p=UI(y^L,t^a,40),a=(v=f)+x|0,F=t=p+nA|0,t=UI(x=t^H,IA^(H=t>>>0

>>0?a+1|0:a),48),a=l+(IA=f)|0,l=t,y=a=(t=y+t|0)>>>0>>0?a+1|0:a,v=a=UI(t^p,v^a,1),CA=a,O=p=f,p=r,r=e,e=UI(s^q,J^hA,48),a=K+(hA=f)|0,K=e,a=(e=D+e|0)>>>0>>0?a+1|0:a,D=_,_=r^e,r=a,_=UI(_,a^M,1),a=(M=f)+p|0,a=NA+(_>>>0>(s=D+_|0)>>>0?a+1|0:a)|0,a=sA+(D=(s=s+cA|0)>>>0>>0?a+1|0:a)|0,q=p=s+gA|0,p=a=p>>>0>>0?a+1|0:a,s=UI(s^S,D^$,32),a=d+(J=f)|0,S=a=(D=s+k|0)>>>0>>0?a+1|0:a,k=UI(_^D,M^a,40),a=($=f)+p|0,M=_=k+q|0,s=UI(_^s,J^(d=_>>>0>>0?a+1|0:a),48),a=S+(q=f)|0,J=_=s+D|0,S=_,x=a=_>>>0>>0?a+1|0:a,D=e,p=r,a=G+m|0,a=(_=h+u|0)>>>0>>0?a+1|0:a,h=_,_^=N,N=a,a=UI(_,AA^a,1),L=_=f,G=a,r=a,a=Y+P|0,a=((e=n+aA|0)>>>0>>0?a+1|0:a)+_|0,n=a=(_=e)>>>0>(e=r+e|0)>>>0?a+1|0:a,r=UI(c^e,a^R,32),a=(a=p)+(p=f)|0,u=_=r+D|0,c=UI(c=_^G,L^(G=_>>>0>>0?a+1|0:a),40),a=n+(R=f)|0,a=wA+((_=c+e|0)>>>0>>0?a+1|0:a)|0,L=a=(D=_+V|0)>>>0>>0?a+1|0:a,p=UI(r^D,p^a,48),nA=a=f,_=UI(w^U,b^T,1),a=(r=f)+W|0,a=pA+((e=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=X+(w=(e=e+EA|0)>>>0>>0?a+1|0:a)|0,W=n=I+e|0,U=a=n>>>0>>0?a+1|0:a,b=_,n=UI(e^K,w^hA,32),a=(T=f)+N|0,N=_=n+h|0,e=UI(_^b,(K=_>>>0>>0?a+1|0:a)^r,40),a=(a=U)+(U=f)|0,b=_=e+W|0,W=a=_>>>0>>0?a+1|0:a,r=a,a=X+O|0,a=((w=I+v|0)>>>0>>0?a+1|0:a)+r|0,Y=a=(r=_+w|0)>>>0>>0?a+1|0:a,_=UI(r^p,nA^a,32),a=(v=f)+x|0,h=UI((w=_+S|0)^CA,(a=w>>>0<_>>>0?a+1|0:a)^O,40),O=a,a=sA+(S=f)|0,a=Y+((Z=h+gA|0)>>>0>>0?a+1|0:a)|0,a=(Y=r+Z|0)>>>0>>0?a+1|0:a,r=v,v=a,r=UI(_^Y,r^a,48),a=(a=O)+(O=f)|0,_=h^(w=r+w|0),h=a=w>>>0>>0?a+1|0:a,Z=a=UI(_,a^S,1),CA=a,m=_=f,S=t,AA=y,t=e,e=UI(n^b,W^T,48),a=K+(b=f)|0,n=_=e+N|0,N=a=_>>>0>>0?a+1|0:a,t=UI(_^t,a^U,1),a=(W=f)+NA|0,a=L+((_=t+cA|0)>>>0>>0?a+1|0:a)|0,D=a=(y=_+D|0)>>>0>>0?a+1|0:a,_=UI(y^s,a^q,32),a=(U=f)+AA|0,S=s=_+S|0,K=a=s>>>0<_>>>0?a+1|0:a,t=UI(t^s,a^W,40),a=DA+(hA=f)|0,W=t,a=D+((t=oA+t|0)>>>0>>0?a+1|0:a)|0,y=a=(t=t+y|0)>>>0>>0?a+1|0:a,s=UI(_^t,a^U,48),a=(a=K)+(K=f)|0,q=_=s+S|0,U=_,L=a=_>>>0>>0?a+1|0:a,a=G+nA|0,S=(_=p+u|0)^c,c=a=_>>>0

>>0?a+1|0:a,a=UI(S,a^R,1),R=D=f,S=a,a=d+tA|0,a=((p=M+z|0)>>>0>>0?a+1|0:a)+D|0,G=a=(G=p)>>>0>(p=p+S|0)>>>0?a+1|0:a,u=D=UI(p^l,IA^a,32),M=a=f,a=a+N|0,d=D=D+n|0,l=a=u>>>0>D>>>0?a+1|0:a,D=UI(D^S,R^a,40),a=yA+(R=f)|0,a=G+((n=D+rA|0)>>>0>>0?a+1|0:a)|0,n=a=(S=p)>>>0>(p=p+n|0)>>>0?a+1|0:a,S=UI(p^u,a^M,48),IA=a=f,N=a,k=UI(k^J,x^$,1),G=a=f,u=e,a=a+P|0,a=H+((e=k+aA|0)>>>0>>0?a+1|0:a)|0,a=(e=e+F|0)>>>0>>0?a+1|0:a,F=e^u,u=a,F=UI(F,a^b,32),a=($=f)+c|0,H=_=F+_|0,c=UI(_^k,(c=G)^(G=_>>>0>>0?a+1|0:a),40),a=pA+(M=f)|0,a=u+((_=c+EA|0)>>>0>>0?a+1|0:a)|0,u=_=_+e|0,b=a=_>>>0>>0?a+1|0:a,e=a,a=m+SA|0,a=((k=Z+iA|0)>>>0>>0?a+1|0:a)+e|0,Z=a=(e=_+k|0)>>>0>>0?a+1|0:a,_=UI(e^S,a^N,32),a=(J=f)+L|0,N=UI((k=_+U|0)^CA,(a=k>>>0<_>>>0?a+1|0:a)^m,40),x=U=f,m=a,a=U+kA|0,a=Z+((U=N+eA|0)>>>0>>0?a+1|0:a)|0,Z=a=(U=e+U|0)>>>0>>0?a+1|0:a,e=UI(_^U,a^J,48),a=(J=f)+m|0,_=(k=e+k|0)^N,N=a=k>>>0>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=w,T=s,s=c,c=UI(F^u,b^$,48),a=(F=f)+G|0,G=_=c+H|0,u=a=_>>>0>>0?a+1|0:a,s=UI(_^s,a^M,1),a=(M=f)+FA|0,a=((_=s+QA|0)>>>0>>0?a+1|0:a)+n|0,p=a=(w=_+p|0)>>>0<_>>>0?a+1|0:a,_=UI(w^T,a^K,32),a=(n=f)+h|0,H=h=_+AA|0,K=a=h>>>0<_>>>0?a+1|0:a,s=UI(s^h,a^M,40),a=B+(T=f)|0,M=s,a=p+((s=fA+s|0)>>>0>>0?a+1|0:a)|0,b=a=(h=s+w|0)>>>0>>0?a+1|0:a,s=UI(_^h,a^n,48),a=(a=K)+(K=f)|0,H=_=s+H|0,AA=a=_>>>0>>0?a+1|0:a,p=r,w=t,a=l+IA|0,r=a=(_=S+d|0)>>>0>>0?a+1|0:a,t=UI(_^D,a^R,1),a=(D=f)+BA|0,a=((n=t+j|0)>>>0>>0?a+1|0:a)+y|0,y=UI(p^(w=w+n|0),(a=w>>>0>>0?a+1|0:a)^O,32),n=a,S=t,a=(p=f)+u|0,a=(t=y+G|0)>>>0>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^D,40),a=Q+(u=f)|0,a=((D=t+g|0)>>>0>>0?a+1|0:a)+n|0,d=a=(n=D)>>>0>(D=D+w|0)>>>0?a+1|0:a,p=UI(y^D,a^p,48),IA=a=f,w=a,y=UI(q^W,L^hA,1),l=a=f,W=r,a=a+wA|0,a=v+((r=y+V|0)>>>0>>0?a+1|0:a)|0,n=F,F=a=(r=r+Y|0)>>>0>>0?a+1|0:a,n=UI(c^r,n^a,32),a=($=f)+W|0,Y=_=n+_|0,c=UI(_^y,(c=l)^(l=_>>>0>>0?a+1|0:a),40),a=GA+(W=f)|0,a=F+((_=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,v=_=_+r|0,q=a=_>>>0>>0?a+1|0:a,r=a,a=m+tA|0,a=((y=z+x|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+y|0)>>>0>>0?a+1|0:a,_=UI(r^p,a^w,32),a=(O=f)+AA|0,w=UI((y=_+H|0)^x,(a=y>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=P+(R=f)|0,a=F+((L=w+aA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+L|0)>>>0>>0?a+1|0:a,r=O,O=a,r=UI(_^F,r^a,48),a=(a=x)+(x=f)|0,_=(y=r+y|0)^w,w=a=y>>>0>>0?a+1|0:a,R=a=UI(_,a^R,1),L=_=f,m=s,s=c,c=UI(n^v,q^$,48),a=(a=l)+(l=f)|0,Y=_=c+Y|0,n=W,W=a=_>>>0>>0?a+1|0:a,s=UI(_^s,n^a,1),a=(v=f)+kA|0,a=d+((_=s+eA|0)>>>0>>0?a+1|0:a)|0,n=D,D=_+D|0,_=K,K=a=n>>>0>D>>>0?a+1|0:a,_=UI(D^m,_^a,32),a=(a=N)+(N=f)|0,d=a=(n=_+k|0)>>>0<_>>>0?a+1|0:a,k=n,s=UI(s^n,a^v,40),a=wA+($=f)|0,v=s,a=K+((s=V+s|0)>>>0>>0?a+1|0:a)|0,K=a=(n=s+D|0)>>>0>>0?a+1|0:a,s=UI(_^n,a^N,48),a=(a=d)+(d=f)|0,q=_=s+k|0,m=a=_>>>0>>0?a+1|0:a,k=e,a=S+IA|0,e=a=(_=p+G|0)>>>0

>>0?a+1|0:a,t=UI(_^t,a^u,1),a=sA+(p=f)|0,a=b+((D=t+gA|0)>>>0>>0?a+1|0:a)|0,S=(D=h+D|0)^k,k=a=D>>>0>>0?a+1|0:a,h=UI(S,a^J,32),N=a=f,S=t,a=a+W|0,a=(t=h+Y|0)>>>0>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^p,40),a=Q+(u=f)|0,a=k+((p=t+g|0)>>>0>>0?a+1|0:a)|0,b=a=(p=D+p|0)>>>0>>0?a+1|0:a,k=UI(h^p,a^N,48),IA=a=f,D=a,h=UI(M^H,T^AA,1),Y=a=f,H=e,a=a+B|0,a=Z+((e=h+fA|0)>>>0>>0?a+1|0:a)|0,U=a=(e=e+U|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^l,32),a=(CA=f)+H|0,H=_=N+_|0,c=UI(_^h,(M=_>>>0>>0?a+1|0:a)^Y,40),a=X+(l=f)|0,a=U+((_=I+c|0)>>>0>>0?a+1|0:a)|0,U=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=L+pA|0,a=((h=R+EA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+m|0,D=UI((h=_+q|0)^R,(a=h>>>0<_>>>0?a+1|0:a)^L,40),J=a,a=NA+(R=f)|0,a=Y+((L=D+cA|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+L|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=J)+(J=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,R=a=UI(_,a^R,1),hA=a,L=_=f,AA=y,T=s,y=c,c=UI(N^U,W^CA,48),a=(N=f)+M|0,U=_=c+H|0,H=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^l,1),a=(l=f)+yA|0,a=b+((_=y+rA|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(M=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=FA+(CA=f)|0,b=y,a=p+((y=QA+y|0)>>>0>>0?a+1|0:a)|0,p=y+s|0,y=M,M=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=S+IA|0,r=a=(_=k+G|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^u,1),a=(k=f)+GA|0,a=K+((w=t+_A|0)>>>0>>0?a+1|0:a)|0,s=UI(s^(w=w+n|0),(a=w>>>0>>0?a+1|0:a)^x,32),S=n=f,n=a,G=t,a=S+H|0,a=(t=s+U|0)>>>0>>0?a+1|0:a,U=t,t^=G,G=a,t=UI(t,a^k,40),a=DA+(u=f)|0,a=((k=t+oA|0)>>>0>>0?a+1|0:a)+n|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,m^$,1),H=a=f,K=r,a=a+BA|0,a=O+((r=s+j|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+K|0,K=_=N+_|0,c=UI(_^s,(c=H)^(H=_>>>0>>0?a+1|0:a),40),a=SA+(v=f)|0,a=F+((_=c+iA|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=L+Q|0,a=((s=R+g|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^hA,(a=s>>>0<_>>>0?a+1|0:a)^L,40),L=a,a=kA+(x=f)|0,a=F+((m=w+eA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+H|0,H=_=c+K|0,K=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+FA|0,a=S+((_=y+QA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=BA+($=f)|0,v=y,a=n+((y=j+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+U|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^u,1),a=SA+(k=f)|0,a=M+((D=t+iA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^J,32),U=a=f,G=t,a=a+K|0,a=(t=h+H|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=pA+(H=f)|0,a=p+((k=t+EA|0)>>>0>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+X|0,a=Z+((e=I+h|0)>>>0>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=wA+(b=f)|0,a=Y+((_=c+V|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+sA|0,a=((h=x+gA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^x,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=B+(J=f)|0,a=Y+((m=D+fA|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+tA|0,a=U+((_=y+z|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=GA+(CA=f)|0,b=y,a=p+((y=_A+y|0)>>>0<_A>>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+DA|0,a=S+((w=t+oA|0)>>>0>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=yA+(H=f)|0,a=n+((k=t+rA|0)>>>0>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+P|0,a=R+((r=s+aA|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=NA+(v=f)|0,a=F+((_=c+cA|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=m+B|0,a=((s=J+fA|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=SA+(J=f)|0,a=F+((m=w+iA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+P|0,a=S+((_=y+aA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=yA+($=f)|0,v=y,a=n+((y=rA+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=DA+(k=f)|0,a=U+((D=t+oA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=GA+(H=f)|0,a=p+((k=t+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+BA|0,a=Z+((e=h+j|0)>>>0>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=NA+(b=f)|0,a=Y+((_=c+cA|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+wA|0,a=((h=J+V|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=X+(J=f)|0,a=Y+((m=I+D|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+pA|0,a=U+((_=y+EA|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=Q+(CA=f)|0,b=y,a=p+((y=g+y|0)>>>0>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+sA|0,a=S+((w=t+gA|0)>>>0>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=FA+(H=f)|0,a=n+((k=t+QA|0)>>>0>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+kA|0,a=R+((r=s+eA|0)>>>0>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=tA+(v=f)|0,a=F+((_=c+z|0)>>>0>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0>>0?a+1|0:a,r=a,a=m+NA|0,a=((s=J+cA|0)>>>0>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=yA+(J=f)|0,a=F+((m=w+rA|0)>>>0>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+SA|0,a=S+((_=y+iA|0)>>>0>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=B+($=f)|0,v=y,a=n+((y=fA+y|0)>>>0>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=FA+(k=f)|0,a=U+((D=t+QA|0)>>>0>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0

>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=P+(H=f)|0,a=p+((k=t+aA|0)>>>0>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+GA|0,a=Z+((e=h+_A|0)>>>0<_A>>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0>>0?a+1|0:a),40),a=kA+(b=f)|0,a=Y+((_=c+eA|0)>>>0>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0>>0?a+1|0:a,e=a,a=m+DA|0,a=((h=J+oA|0)>>>0>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=Q+(J=f)|0,a=Y+((m=D+g|0)>>>0>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(l=f)+BA|0,a=U+((_=y+j|0)>>>0>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0

>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=w=_+AA|0,b=a=w>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=wA+(AA=f)|0,l=y,a=p+((y=V+y|0)>>>0>>0?a+1|0:a)|0,w=y+s|0,y=U,U=a=w>>>0>>0?a+1|0:a,y=UI(_^w,y^a,48),a=(a=b)+(b=f)|0,d=_=y+d|0,W=a=_>>>0>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+X|0,a=S+((p=I+t|0)>>>0>>0?a+1|0:a)|0,n=a=(p=p+n|0)>>>0>>0?a+1|0:a,S=s=UI(s^p,a^L,32),G=a=f,u=t,a=a+M|0,a=(t=s+K|0)>>>0>>0?a+1|0:a,H=t,t^=u,u=a,t=UI(t,a^k,40),a=pA+(K=f)|0,a=n+((s=t+EA|0)>>>0>>0?a+1|0:a)|0,M=(s=s+p|0)^S,S=a=s>>>0

>>0?a+1|0:a,p=UI(M,a^G,48),L=a=f,k=a,G=n=UI(q^v,O^$,1),M=a=f,v=r,a=a+tA|0,a=R+((r=n+z|0)>>>0>>0?a+1|0:a)|0,a=(r=r+F|0)>>>0>>0?a+1|0:a,F=N,N=a,n=UI(c^r,F^a,32),a=(T=f)+v|0,F=_=n+_|0,c=UI(c=_^G,(G=_>>>0>>0?a+1|0:a)^M,40),a=sA+(M=f)|0,a=N+((_=c+gA|0)>>>0>>0?a+1|0:a)|0,N=_=_+r|0,v=a=_>>>0>>0?a+1|0:a,r=a,a=m+wA|0,a=((R=V)>>>0>(V=J+V|0)>>>0?a+1|0:a)+r|0,wA=a=(_=_+V|0)>>>0>>0?a+1|0:a,V=UI(_^p,a^k,32),a=(q=f)+W|0,k=UI((r=d+V|0)^J,(a=r>>>0>>0?a+1|0:a)^m,40),R=a,a=pA+(O=f)|0,a=wA+((J=EA)>>>0>(EA=k+EA|0)>>>0?a+1|0:a)|0,a=(EA=_+EA|0)>>>0<_>>>0?a+1|0:a,_=V^EA,V=a,pA=UI(_,a^q,48);a=(wA=f)+R|0,r=a=(_=r+pA|0)>>>0>>0?a+1|0:a,a=UI(_^k,a^O,1),k=f,q=a,O=h,h=gA,R=sA,sA=UI(n^N,v^T,48),a=(n=f)+G|0,G=h,F=a=(gA=F+sA|0)>>>0>>0?a+1|0:a,h=UI(c^(N=gA),a^M,1),a=(M=f)+R|0,a=S+(h>>>0>(gA=G+h|0)>>>0?a+1|0:a)|0,c=a=(gA=s+gA|0)>>>0>>0?a+1|0:a,y=UI(y^gA,a^b,32),a=(a=D)+(D=f)|0,S=s=y+O|0,G=a=s>>>0>>0?a+1|0:a,s=UI(s^h,a^M,40),a=(M=f)+SA|0,a=(s>>>0>(iA=s+iA|0)>>>0?a+1|0:a)+c|0,c=a=(c=iA)>>>0>(iA=gA+iA|0)>>>0?a+1|0:a,y=UI(y^iA,a^D,48),a=(h=f)+G|0,D=gA=y+S|0,SA=a=gA>>>0>>0?a+1|0:a,S=I,G=X,a=u+L|0,gA=a=(I=p+H|0)>>>0

>>0?a+1|0:a,X=UI(I^t,a^K,1),a=(p=f)+G|0,a=U+((t=S+X|0)>>>0>>0?a+1|0:a)|0,e=UI((t=t+w|0)^e,(a=t>>>0>>0?a+1|0:a)^x,32),S=a,U=oA,oA=X,a=(w=f)+F|0,F=p,p=a=(X=e+N|0)>>>0>>0?a+1|0:a,oA=UI(X^oA,F^a,40),a=(N=f)+DA|0,a=((DA=U+oA|0)>>>0>>0?a+1|0:a)+S|0,S=DA,t=e^(DA=t+DA|0),e=a=S>>>0>DA>>>0?a+1|0:a,a=UI(t,a^w,48),u=t=f,w=a,F=j,S=BA,j=UI(d^l,W^AA,1),G=a=f,a=a+NA|0,a=Z+((j=(U=j)+cA|0)>>>0>>0?a+1|0:a)|0,cA=a=(j=Y+j|0)>>>0>>0?a+1|0:a,BA=UI(j^sA,a^n,32),a=(Y=f)+gA|0,gA=I=BA+I|0,sA=UI(I^U,(n=I>>>0>>0?a+1|0:a)^G,40),a=(a=S)+(S=f)|0,a=cA+((I=sA+F|0)>>>0>>0?a+1|0:a)|0,cA=I=I+j|0,NA=a=I>>>0>>0?a+1|0:a,j=a,a=k+FA|0,a=((U=QA)>>>0>(QA=q+QA|0)>>>0?a+1|0:a)+j|0,FA=a=(j=I+QA|0)>>>0>>0?a+1|0:a,QA=UI(w^j,a^t,32),a=(U=f)+SA|0,t=I=QA+D|0,I=UI(I^q,(F=k)^(k=I>>>0>>0?a+1|0:a),40),a=GA+(G=f)|0,GA=I,a=FA+((I=_A+I|0)>>>0<_A>>>0?a+1|0:a)|0,a=(I=I+j|0)>>>0>>0?a+1|0:a,FA=I,H=(o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24)^I,F=a,K=a^(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24),j=UI(BA^cA,Y^NA,48),a=(cA=f)+n|0,n=I=j+gA|0,NA=a=I>>>0>>0?a+1|0:a,BA=rA,a=p+u|0,rA=a=(I=w+X|0)>>>0>>0?a+1|0:a,oA=UI(I^oA,a^N,1),a=(w=f)+yA|0,a=((BA=oA+BA|0)>>>0>>0?a+1|0:a)+c|0,BA=a=(yA=BA+iA|0)>>>0>>0?a+1|0:a,gA=UI(yA^pA,a^wA,32),a=(X=f)+NA|0,iA=a=(_A=gA+n|0)>>>0>>0?a+1|0:a,pA=gA,gA=UI(oA^_A,a^w,40),a=(c=f)+kA|0,a=(gA>>>0>(oA=gA+eA|0)>>>0?a+1|0:a)+BA|0,p=X,X=a=(yA=oA+yA|0)>>>0>>0?a+1|0:a,oA=UI(pA^(eA=yA),p^a,48),a=(w=f)+iA|0,a=(BA=oA+_A|0)>>>0>>0?a+1|0:a,_A=BA,BA^=H,C[A+8|0]=BA,C[A+9|0]=BA>>>8,C[A+10|0]=BA>>>16,C[A+11|0]=BA>>>24,iA=a,a^=K,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,yA=I,BA=rA,I=j,j=UI(s^D,M^SA,1),a=(kA=f)+Q|0,a=(j>>>0>(rA=j+g|0)>>>0?a+1|0:a)+V|0,EA=a=(D=rA)>>>0>(rA=EA+rA|0)>>>0?a+1|0:a,I=UI(I^rA,a^cA,32),a=(a=BA)+(BA=f)|0,cA=a=(yA=I+yA|0)>>>0>>0?a+1|0:a,pA=I,yA=UI(j^(V=yA),a^kA,40),a=(s=f)+B|0,a=EA+((I=yA+fA|0)>>>0>>0?a+1|0:a)|0,a=(I=I+rA|0)>>>0>>0?a+1|0:a,EA=I,I^=pA,pA=a,rA=UI(I,a^BA,48),a=(D=f)+cA|0,V=I=rA+V|0,cA=I>>>0>>0?a+1|0:a,sA=I=UI(n^sA,S^NA,1),kA=a=f,a=a+P|0,a=e+((I=I+aA|0)>>>0>>0?a+1|0:a)|0,P=a=(j=I+DA|0)>>>0>>0?a+1|0:a,I=(BA=UI(y^j,a^h,32))+_|0,a=(_=f)+r|0,DA=I,I=(aA=UI(e=I^sA,(sA=I>>>0>>0?a+1|0:a)^kA,40))+z|0,a=(z=f)+tA|0,a=P+(I>>>0>>0?a+1|0:a)|0,a=(P=I+j|0)>>>0>>0?a+1|0:a,j=P^KA^V,C[0|(I=A)]=j,C[I+1|0]=j>>>8,C[I+2|0]=j>>>16,C[I+3|0]=j>>>24,j=a^i^cA,C[I+4|0]=j,C[I+5|0]=j>>>8,C[I+6|0]=j>>>16,C[I+7|0]=j>>>24,j=(BA=UI(P^BA,a^_,48))+DA|0,a=(DA=f)+sA|0,a=(sA=j>>>0>>0?a+1|0:a)^(o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)^pA,P=(o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)^EA^j,C[I+16|0]=P,C[I+17|0]=P>>>8,C[I+18|0]=P>>>16,C[I+19|0]=P>>>24,C[I+20|0]=a,C[I+21|0]=a>>>8,C[I+22|0]=a>>>16,C[I+23|0]=a>>>24,I=UI(QA^FA,F^U,48),P=f,EA=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,a=(o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)^UI(gA^_A,c^iA,1)^I,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,a=f^EA^P,C[A+36|0]=a,C[A+37|0]=a>>>8,C[A+38|0]=a>>>16,C[A+39|0]=a>>>24,a=k+P|0,a=(EA=I+t|0)>>>0>>0?a+1|0:a,gA=(o[(I=A)+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^X^a,P=(o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24)^eA^EA,C[I+24|0]=P,C[I+25|0]=P>>>8,C[I+26|0]=P>>>16,C[I+27|0]=P>>>24,C[I+28|0]=gA,C[I+29|0]=gA>>>8,C[I+30|0]=gA>>>16,C[I+31|0]=gA>>>24,gA=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,I=rA^(o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24)^UI(j^aA,z^sA,1),C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,I=D^f^gA,C[A+44|0]=I,C[A+45|0]=I>>>8,C[A+46|0]=I>>>16,C[A+47|0]=I>>>24,j=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,I=BA^(o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)^UI(V^yA,s^cA,1),C[A+56|0]=I,C[A+57|0]=I>>>8,C[A+58|0]=I>>>16,C[A+59|0]=I>>>24,I=DA^f^j,C[A+60|0]=I,C[A+61|0]=I>>>8,C[A+62|0]=I>>>16,C[A+63|0]=I>>>24,j=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,I=oA^(o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24)^UI(EA^GA,a^G,1),C[A+48|0]=I,C[A+49|0]=I>>>8,C[A+50|0]=I>>>16,C[A+51|0]=I>>>24,I=w^f^j,C[A+52|0]=I,C[A+53|0]=I>>>8,C[A+54|0]=I>>>16,C[A+55|0]=I>>>24}function w(A,I,g,B,Q,E,a){var _,c,t,r,e,y,h,D,p,w,n,k,F,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA,iA,oA,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,kA=0,FA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0,zA=0,jA=0,XA=0,OA=0,WA=0,VA=0,ZA=0,TA=0,$A=0,AI=0,II=0;return s=t=s-560|0,SI(_A=t+352|0),a&&SA(_A,35600,34,0),FI(t+288|0,E,32,0),SA(rA=t+352|0,t+320|0,32,0),SA(rA,g,B,Q),j(rA,yA=t+224|0),hA=o[(aA=E)+32|0]|o[aA+33|0]<<8|o[aA+34|0]<<16|o[aA+35|0]<<24,DA=o[aA+36|0]|o[aA+37|0]<<8|o[aA+38|0]<<16|o[aA+39|0]<<24,cA=o[aA+40|0]|o[aA+41|0]<<8|o[aA+42|0]<<16|o[aA+43|0]<<24,EA=o[aA+44|0]|o[aA+45|0]<<8|o[aA+46|0]<<16|o[aA+47|0]<<24,_A=o[aA+48|0]|o[aA+49|0]<<8|o[aA+50|0]<<16|o[aA+51|0]<<24,E=o[aA+52|0]|o[aA+53|0]<<8|o[aA+54|0]<<16|o[aA+55|0]<<24,tA=o[aA+60|0]|o[aA+61|0]<<8|o[aA+62|0]<<16|o[aA+63|0]<<24,aA=o[aA+56|0]|o[aA+57|0]<<8|o[aA+58|0]<<16|o[aA+59|0]<<24,C[A+56|0]=aA,C[A+57|0]=aA>>>8,C[A+58|0]=aA>>>16,C[A+59|0]=aA>>>24,C[A+60|0]=tA,C[A+61|0]=tA>>>8,C[A+62|0]=tA>>>16,C[A+63|0]=tA>>>24,C[A+48|0]=_A,C[A+49|0]=_A>>>8,C[A+50|0]=_A>>>16,C[A+51|0]=_A>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=cA,C[A+41|0]=cA>>>8,C[A+42|0]=cA>>>16,C[A+43|0]=cA>>>24,C[A+44|0]=EA,C[A+45|0]=EA>>>8,C[A+46|0]=EA>>>16,C[A+47|0]=EA>>>24,C[0|(E=A+32|0)]=hA,C[E+1|0]=hA>>>8,C[E+2|0]=hA>>>16,C[E+3|0]=hA>>>24,C[E+4|0]=DA,C[E+5|0]=DA>>>8,C[E+6|0]=DA>>>16,C[E+7|0]=DA>>>24,S(yA),nA(t,yA),tg(A,t),SI(rA),a&&SA(rA,35600,34,0),SA(a=t+352|0,A,64,0),SA(a,g,B,Q),j(a,eA=t+160|0),S(eA),C[t+288|0]=248&o[t+288|0],C[t+319|0]=63&o[t+319|0]|64,g=o[23+(A=c=t+288|0)|0],cA=Ig(r=o[A+21|0]|o[A+22|0]<<8|g<<16&2031616,0,e=(o[eA+28|0]|o[eA+29|0]<<8|o[eA+30|0]<<16|o[eA+31|0]<<24)>>>7|0,0),_A=f,g=(A=o[eA+27|0])>>>24|0,Q=A<<8|(EA=o[eA+23|0]|o[eA+24|0]<<8|o[eA+25|0]<<16|o[eA+26|0]<<24)>>>24,A=Ig(y=2097151&((3&(DA=(A=(B=o[eA+28|0])>>>16|0)|g))<<30|(g=(B<<=16)|Q)>>>2),0,h=(a=o[c+23|0]|o[c+24|0]<<8|o[c+25|0]<<16|o[c+26|0]<<24)>>>5&2097151,0),g=f+_A|0,B=A>>>0>(Q=A+cA|0)>>>0?g+1|0:g,A=Ig(D=(g=o[eA+23|0])<<16&2031616|o[eA+21|0]|o[eA+22|0]<<8,0,p=(o[c+28|0]|o[c+29|0]<<8|o[c+30|0]<<16|o[c+31|0]<<24)>>>7|0,0),B=f+B|0,_A=g=A+Q|0,Q=A>>>0>g>>>0?B+1|0:B,B=(A=o[c+27|0])>>>24|0,a=A<<8|a>>>24,A=Ig(w=2097151&((3&(B|=g=(A=o[c+28|0])>>>16|0))<<30|(g=(A<<=16)|a)>>>2),0,n=EA>>>5&2097151,0),g=f+Q|0,aA=B=A+_A|0,Q=A>>>0>B>>>0?g+1|0:g,EA=Ig(h,0,n,0),_A=f,g=(A=o[c+19|0])>>>24|0,a=A<<8|(GA=o[c+15|0]|o[c+16|0]<<8|o[c+17|0]<<16|o[c+18|0]<<24)>>>24,B=g,g=Ig(k=(7&(B|=g=(A=o[c+20|0])>>>16|0))<<29|(g=(A<<=16)|a)>>>3,DA=B>>>3|0,e,0),A=f+_A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,a=(g=Ig(r,0,y,0))+B|0,B=f+A|0,g=g>>>0>(EA=a)>>>0?B+1|0:B,B=(A=o[eA+19|0])>>>24|0,_A=A<<8|(kA=o[eA+15|0]|o[eA+16|0]<<8|o[eA+17|0]<<16|o[eA+18|0]<<24)>>>24,A=Ig(F=(7&(cA=(A=(a=o[eA+20|0])>>>16|0)|B))<<29|(B=(a<<=16)|_A)>>>3,N=cA>>>3|0,p,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,A=Ig(D,0,w,0),g=f+g|0,hA=g=A>>>0>(yA=A+B|0)>>>0?g+1|0:g,fA=A=g-((yA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+Q|0,EA=B=(A=(2097151&A)<<11|(cA=yA- -1048576|0)>>>21)>>>0>(aA=A+aA|0)>>>0?B+1|0:B,wA=A=B-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&A)<<11|(_A=aA- -1048576|0)>>>21,a=A>>>21|0,A=Ig(p,0,n,0),g=f,B=A,A=Ig(e,0,h,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,pA=(A=B)+(B=Ig(y,0,w,0))|0,A=f+g|0,A=B>>>0>pA>>>0?A+1|0:A,rA=pA-(g=-2097152&(B=pA- -1048576|0))|0,g=(A-((131071&(Q=A-((pA>>>0<4293918720)-1|0)|0))+(g>>>0>pA>>>0)|0)|0)+a|0,R=g=(A=tA+rA|0)>>>0>>0?g+1|0:g,L=A,rA=Ig(A,g,470296,0),tA=f,g=Ig(e,0,w,0),A=f,a=g,g=Ig(y,0,p,0),A=f+A|0,g=g>>>0>(a=a+g|0)>>>0?A+1|0:A,A=Q>>>21|0,Q=(2097151&Q)<<11|B>>>21,B=A+g|0,bA=Q=(B=Q>>>0>(a=Q+a|0)>>>0?B+1|0:B)-((a>>>0<4293918720)-1|0)|0,A=a-(g=-2097152&(UA=a- -1048576|0))|0,P=a=B-((131071&Q)+(g>>>0>a>>>0)|0)|0,q=g=aA-(B=-2097152&_A)|0,z=Q=EA-((B>>>0>aA>>>0)+wA|0)|0,X=A,B=Ig(A,a,666643,0),A=f+tA|0,A=B>>>0>(a=B+rA|0)>>>0?A+1|0:A,B=Ig(g,Q,654183,0),g=f+A|0,sA=Q=B+a|0,_A=B>>>0>Q>>>0?g+1|0:g,pA=yA-(A=-2097152&cA)|0,fA=hA-((A>>>0>yA>>>0)+fA|0)|0,g=Ig(y,0,k,DA),B=f,Q=(A=g)+(g=Ig(G=GA>>>6&2097151,0,e,0))|0,A=f+B|0,A=g>>>0>Q>>>0?A+1|0:A,g=Ig(h,0,D,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(r,0,n,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(p,0,M=kA>>>6&2097151,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(w,0,F,N),g=f+A|0,yA=Q=B+Q|0,a=B>>>0>Q>>>0?g+1|0:g,g=(A=o[c+14|0])>>>24|0,Q=A<<8|(hA=o[c+10|0]|o[c+11|0]<<8|o[c+12|0]<<16|o[c+13|0]<<24)>>>24,g=Ig(K=2097151&((1&(g|=A=(B=o[c+15|0])>>>16|0))<<31|(A=(B<<=16)|Q)>>>1),0,e,0),A=f,B=g,g=Ig(y,0,G,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(n,0,k,DA))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(h,0,F,N),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,A=Ig(r,0,D,0),g=f+g|0,cA=B=A+Q|0,Q=A>>>0>B>>>0?g+1|0:g,g=(A=o[eA+14|0])>>>24|0,EA=A<<8|(aA=o[eA+10|0]|o[eA+11|0]<<8|o[eA+12|0]<<16|o[eA+13|0]<<24)>>>24,B=g,g=(A=o[eA+15|0])>>>16|0,g=Ig(U=2097151&((1&(g|=B))<<31|(A=A<<16|EA)>>>1),0,p,0),A=f+Q|0,A=g>>>0>(B=g+cA|0)>>>0?A+1|0:A,g=Ig(w,0,M,0),A=f+A|0,EA=A=g>>>0>(cA=g+B|0)>>>0?A+1|0:A,HA=g=A-((cA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,tA=B=(g=(2097151&g)<<11|(rA=cA- -1048576|0)>>>21)>>>0>(wA=g+yA|0)>>>0?B+1|0:B,MA=g=B-((wA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+fA|0,O=A=(g=(B=(2097151&g)<<11|(yA=wA- -1048576|0)>>>21)+pA|0)>>>0>>0?A+1|0:A,W=g,A=Ig(g,A,-997805,-1),g=f+_A|0,sA=B=A+sA|0,_A=A>>>0>B>>>0?g+1|0:g,pA=(dA=o[23+(_=t+224|0)|0]|o[_+24|0]<<8|o[_+25|0]<<16|o[_+26|0]<<24)>>>5&2097151,B=Ig(b=(A=o[c+2|0])<<16&2031616|o[0|c]|o[c+1|0]<<8,0,n,0),g=f,Q=(A=Ig(D,0,H=(a=o[c+2|0]|o[c+3|0]<<8|o[c+4|0]<<16|o[c+5|0]<<24)>>>5&2097151,0))+B|0,B=f+g|0,B=A>>>0>Q>>>0?B+1|0:B,A=Ig(Y=(o[c+7|0]|o[c+8|0]<<8|o[c+9|0]<<16|o[c+10|0]<<24)>>>7&2097151,0,M,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(U,0,J=hA>>>4&2097151,0),A=f+g|0,hA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=(g=o[c+6|0])<<8|a>>>24,B=A=g>>>24|0,g=(A=o[c+7|0])>>>16|0,g=Ig(d=2097151&((3&(g|=B))<<30|(A=A<<16|a)>>>2),0,F,N),A=f+Q|0,A=g>>>0>(B=g+hA|0)>>>0?A+1|0:A,Q=(g=Ig(G,0,m=(o[eA+7|0]|o[eA+8|0]<<8|o[eA+9|0]<<16|o[eA+10|0]<<24)>>>7&2097151,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,g=Ig(K,0,KA=aA>>>4&2097151,0),A=f+B|0,a=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,A=(g=o[eA+6|0])>>>24|0,hA=g<<8|(aA=o[eA+2|0]|o[eA+3|0]<<8|o[eA+4|0]<<16|o[eA+5|0]<<24)>>>24,g=A,A=Ig(k,DA,l=2097151&((3&(g|=B=(A=o[eA+7|0])>>>16|0))<<30|(A=A<<16|hA)>>>2),0),g=f+a|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,Q=B,B=Ig(u=(A=o[eA+2|0])<<16&2031616|o[0|eA]|o[eA+1|0]<<8,0,h,0),A=f+g|0,A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,g=Ig(r,0,x=aA>>>5&2097151,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,g=B,hA=B=B+pA|0,a=g=g>>>0>B>>>0?A+1|0:A,Q=o[_+21|0]|o[_+22|0]<<8,A=Ig(D,0,b,0),g=f,aA=(B=A)+(A=Ig(F,N,H,0))|0,B=f+g|0,B=A>>>0>aA>>>0?B+1|0:B,A=Ig(U,0,Y,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(J,0,KA,0),g=f+g|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,aA=(A=B)+(B=Ig(M,0,d,0))|0,A=f+g|0,A=B>>>0>aA>>>0?A+1|0:A,g=Ig(G,0,l,0),A=f+A|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,aA=(g=Ig(K,0,m,0))+B|0,B=f+A|0,B=g>>>0>aA>>>0?B+1|0:B,A=Ig(k,DA,x,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(r,0,u,0),g=f+g|0,A=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,g=(g=B)>>>0>(B=B+Q|0)>>>0?A+1|0:A,Q=B,B=(A=o[_+23|0])<<16&2031616,A=g,B=A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,eA=A=A-((Q>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+a|0,A=(g=(a=hA=(A=(2097151&A)<<11|(aA=Q- -1048576|0)>>>21)+hA|0)>>>0>>0?g+1|0:g)+_A|0,A=(_A=a+sA|0)>>>0>>0?A+1|0:A,kA=a- -1048576|0,FA=a=g-((a>>>0<4293918720)-1|0)|0,NA=_A-(g=-2097152&kA)|0,YA=A-((g>>>0>_A>>>0)+a|0)|0,hA=Q,_A=B,A=Ig(q,z,470296,0),g=f,B=A,A=Ig(L,R,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(W,O,654183,0))|0,A=f+g|0,GA=Q,a=B>>>0>Q>>>0?A+1|0:A,g=Ig(F,N,b,0),A=f,B=g,g=Ig(M,0,H,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,KA,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(J,0,m,0),B=f+g|0,B=A>>>0>(Q=A+Q|0)>>>0?B+1|0:B,A=Ig(U,0,d,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(G,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(K,0,l,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(k,DA,u,0))|0,g=f+A|0,pA=Q,B=B>>>0>Q>>>0?g+1|0:g,g=(A=o[_+19|0])>>>24|0,fA=A<<8|(sA=o[_+15|0]|o[_+16|0]<<8|o[_+17|0]<<16|o[_+18|0]<<24)>>>24,B=((JA=(A=(Q=o[_+20|0])>>>16|0)|g)>>>3|0)+B|0,pA=Q=(g=(7&JA)<<29|(g=(Q<<=16)|fA)>>>3)+pA|0,Q=g>>>0>Q>>>0?B+1|0:B,fA=sA>>>6&2097151,A=Ig(M,0,b,0),g=f,B=A,A=Ig(U,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,sA=(A=B)+(B=Ig(Y,0,m,0))|0,A=f+g|0,A=B>>>0>sA>>>0?A+1|0:A,B=Ig(J,0,l,0),g=f+A|0,g=B>>>0>(sA=B+sA|0)>>>0?g+1|0:g,B=Ig(d,0,KA,0),A=f+g|0,A=B>>>0>(sA=B+sA|0)>>>0?A+1|0:A,g=Ig(G,0,u,0),B=f+A|0,B=g>>>0>(sA=g+sA|0)>>>0?B+1|0:B,A=Ig(K,0,x,0),g=f+B|0,A=A>>>0>(sA=A+sA|0)>>>0?g+1|0:g,qA=A=(lA=sA+fA|0)>>>0>>0?A+1|0:A,ZA=A=A-((lA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(LA=lA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,jA=A=B>>>0>(zA=B+pA|0)>>>0?A+1|0:A,TA=A=A-((zA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(xA=zA- -1048576|0)>>>21,A=(A>>>21|0)+a|0,g=(B>>>0>(Q=B+GA|0)>>>0?A+1|0:A)+_A|0,_A=(B=Q+hA|0)-(A=-2097152&aA)|0,eA=A=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+eA|0)|0,$A=A=A-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(vA=_A- -1048576|0)>>>21,A=(A>>21)+YA|0,Q=A=B>>>0>(a=B+NA|0)>>>0?A+1|0:A,VA=A=A-((a>>>0<4293918720)-1|0)|0,RA=(2097151&A)<<11|(GA=a- -1048576|0)>>>21,hA=A>>21,JA=wA-(A=-2097152&yA)|0,MA=tA-((A>>>0>wA>>>0)+MA|0)|0,A=Ig(e,0,p,0),PA=g=f,NA=A,sA=A- -1048576|0,uA=g=g-((A>>>0<4293918720)-1|0)|0,V=A=g>>>21|0,A=Ig(v=(2097151&g)<<11|sA>>>21,A,-683901,-1),g=f+EA|0,g=A>>>0>(B=A+cA|0)>>>0?g+1|0:g,yA=B-(A=-2097152&rA)|0,aA=g-((A>>>0>B>>>0)+HA|0)|0,g=Ig(n,0,G,0),A=f,B=g,g=Ig(e,0,J,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(y,0,K,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,EA=(g=B)+(B=Ig(D,0,k,DA))|0,g=f+A|0,g=B>>>0>EA>>>0?g+1|0:g,A=Ig(h,0,M,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,A=Ig(r,0,F,N),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(p,0,KA,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,U,0),A=f+A|0,cA=B=g+EA|0,EA=g>>>0>B>>>0?A+1|0:A,A=Ig(y,0,J,0),g=f,B=A,A=Ig(e,0,Y,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,tA=(A=Ig(D,0,G,0))+B|0,B=f+g|0,B=A>>>0>tA>>>0?B+1|0:B,A=Ig(n,0,K,0),g=f+B|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,B=Ig(k,DA,F,N),A=f+g|0,A=B>>>0>(tA=B+tA|0)>>>0?A+1|0:A,g=Ig(h,0,U,0),A=f+A|0,A=g>>>0>(B=g+tA|0)>>>0?A+1|0:A,tA=(g=B)+(B=Ig(r,0,M,0))|0,g=f+A|0,g=B>>>0>tA>>>0?g+1|0:g,A=Ig(p,0,m,0),B=f+g|0,B=A>>>0>(tA=A+tA|0)>>>0?B+1|0:B,A=Ig(w,0,KA,0),g=f+B|0,fA=g=A>>>0>(pA=A+tA|0)>>>0?g+1|0:g,OA=A=g-((pA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(wA=pA- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,rA=A=g>>>0>(HA=g+cA|0)>>>0?A+1|0:A,mA=A=A-((HA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+aA|0,yA=g=(A=(2097151&A)<<11|(tA=HA- -1048576|0)>>>21)>>>0>(YA=A+yA|0)>>>0?g+1|0:g,XA=A=g-((YA>>>0<4293918720)-1|0)|0,EA=(2097151&A)<<11|(aA=YA- -1048576|0)>>>21,A=(A>>21)+MA|0,Z=A=(g=EA+JA|0)>>>0>>0?A+1|0:A,T=g,A=Ig(g,A,-683901,-1),g=f+hA|0,RA=B=A+RA|0,hA=A>>>0>B>>>0?g+1|0:g,A=Ig(y,0,b,0),g=f,B=A,A=Ig(n,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(F,N,Y,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(M,0,J,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(D,0,d,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(G,0,KA,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(K,0,U,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(k,DA,m,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(h,0,x,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(r,0,l,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(w,0,u,0),g=f+A|0,MA=EA=B+EA|0,B=B>>>0>EA>>>0?g+1|0:g,g=(A=o[_+27|0])>>>24|0,cA=A<<8|dA>>>24,EA=2097151&((3&(g|=A=(EA=o[_+28|0])>>>16|0))<<30|(A=(EA<<=16)|cA)>>>2),g=B,cA=A=EA+MA|0,EA=A>>>0>>0?g+1|0:g,JA=Ig(X,P,470296,0),MA=f,A=(B=(2097151&bA)<<11|UA>>>21)+(NA-(g=-2097152&sA)|0)|0,g=PA-((524287&uA)+(g>>>0>NA>>>0)|0)+(bA>>>21)|0,$=g=A>>>0>>0?g+1|0:g,AA=A,g=Ig(A,g,666643,0),A=f+MA|0,A=g>>>0>(B=g+JA|0)>>>0?A+1|0:A,sA=(g=Ig(L,R,654183,0))+B|0,B=f+A|0,B=g>>>0>sA>>>0?B+1|0:B,g=Ig(q,z,-997805,-1),A=f+B|0,A=g>>>0>(sA=g+sA|0)>>>0?A+1|0:A,B=Ig(W,O,136657,0),g=f+A|0,kA=(A=(2097151&FA)<<11|kA>>>21)+(sA=B+sA|0)|0,g=(FA>>>21|0)+(B>>>0>sA>>>0?g+1|0:g)|0,uA=sA=EA-((cA>>>0<4293918720)-1|0)|0,A=(A>>>0>kA>>>0?g+1|0:g)+EA|0,g=(EA=cA+kA|0)-(B=-2097152&(PA=cA- -1048576|0))|0,B=(A=(A=EA>>>0>>0?A+1|0:A)-((B>>>0>EA>>>0)+sA|0)|0)+hA|0,JA=EA=A-((g>>>0<4293918720)-1|0)|0,NA=(B=(cA=g+RA|0)>>>0>>0?B+1|0:B)-(((g=-2097152&(MA=g- -1048576|0))>>>0>cA>>>0)+EA|0)|0,dA=A=cA-g|0,EA=a,a=Q,WA=YA-(A=-2097152&aA)|0,sA=yA-((A>>>0>YA>>>0)+XA|0)|0,A=Ig(AA,$,-683901,-1),g=f,Q=(B=A)+(A=Ig(v,V,136657,0))|0,B=f+g|0,g=rA+(A>>>0>Q>>>0?B+1|0:B)|0,tA=(B=Q+HA|0)-(A=-2097152&tA)|0,yA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+mA|0)|0,g=Ig(v,V,-997805,-1),A=f+fA|0,A=g>>>0>(B=g+pA|0)>>>0?A+1|0:A,Q=(g=Ig(AA,$,136657,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(X,P,-683901,-1),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,aA=Q-(A=-2097152&wA)|0,hA=g-((A>>>0>Q>>>0)+OA|0)|0,g=Ig(n,0,J,0),A=f,B=g,g=Ig(y,0,Y,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(e,0,d,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(F,N,G,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(D,0,K,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(k,DA,M,0),g=f+A|0,g=B>>>0>(Q=B+Q|0)>>>0?g+1|0:g,B=Ig(h,0,KA,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(r,0,U,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(p,0,l,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(w,0,m,0),A=f+g|0,cA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,A=Ig(n,0,Y,0),g=f,B=A,A=Ig(e,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,rA=(A=B)+(B=Ig(D,0,J,0))|0,A=f+g|0,A=B>>>0>rA>>>0?A+1|0:A,g=Ig(y,0,d,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,A=Ig(G,0,M,0),g=f+B|0,g=A>>>0>(rA=A+rA|0)>>>0?g+1|0:g,B=Ig(F,N,K,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,B=Ig(k,DA,U,0),g=f+A|0,g=B>>>0>(rA=B+rA|0)>>>0?g+1|0:g,B=Ig(h,0,m,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,g=Ig(r,0,KA,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,rA=(A=Ig(p,0,x,0))+rA|0,g=f+B|0,B=Ig(w,0,l,0),A=f+(A>>>0>rA>>>0?g+1|0:g)|0,YA=A=B>>>0>(XA=B+rA|0)>>>0?A+1|0:A,gA=A=A-((XA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(bA=XA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,UA=A=B>>>0>(RA=B+cA|0)>>>0?A+1|0:A,CA=A=A-((RA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(FA=RA- -1048576|0)>>>21,A=(A>>>21|0)+hA|0,kA=A=B>>>0>(HA=B+aA|0)>>>0?A+1|0:A,BA=A=A-((HA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(fA=HA- -1048576|0)>>>21,A=(A>>21)+yA|0,Q=A=B>>>0>(aA=B+tA|0)>>>0?A+1|0:A,yA=A=A-((aA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(B=aA- -1048576|0)>>>21,A=(A>>21)+sA|0,OA=A=(cA=hA+WA|0)>>>0>>0?A+1|0:A,mA=cA,A=Ig(cA,A,-683901,-1),g=f,cA=A,A=Ig(T,Z,136657,0),g=f+g|0,A=(A>>>0>(cA=cA+A|0)>>>0?g+1|0:g)+a|0,AI=(a=EA+cA|0)-(g=-2097152&GA)|0,II=(A=a>>>0>>0?A+1|0:A)-((g>>>0>a>>>0)+VA|0)|0,hA=_A,cA=eA,_A=Ig(mA,OA,136657,0),a=f,WA=A=aA-(g=-2097152&B)|0,IA=Q=Q-((g>>>0>aA>>>0)+yA|0)|0,B=Ig(T,Z,-997805,-1),g=f+a|0,g=B>>>0>(_A=B+_A|0)>>>0?g+1|0:g,B=Ig(A,Q,-683901,-1),A=f+g|0,VA=Q=B+_A|0,EA=B>>>0>Q>>>0?A+1|0:A,A=Ig(W,O,470296,0),g=f,Q=(B=A)+(A=Ig(q,z,666643,0))|0,B=f+g|0,g=jA+(A>>>0>Q>>>0?B+1|0:B)|0,GA=A=Q+zA|0,a=g=A>>>0>>0?g+1|0:g,g=Ig(W,O,666643,0),A=f+qA|0,A=g>>>0>(B=g+lA|0)>>>0?A+1|0:A,tA=B-(g=-2097152&LA)|0,pA=A-((g>>>0>B>>>0)+ZA|0)|0,g=Ig(U,0,b,0),A=f,B=g,g=Ig(H,0,KA,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,l,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,B=Ig(J,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(d,0,m,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(K,0,u,0),g=f+B|0,aA=Q=A+Q|0,Q=A>>>0>Q>>>0?g+1|0:g,g=(A=o[_+14|0])>>>24|0,_A=A<<8|(yA=o[_+10|0]|o[_+11|0]<<8|o[_+12|0]<<16|o[_+13|0]<<24)>>>24,g=2097151&((1&(g|=B=(A=o[_+15|0])>>>16|0))<<31|(A=_A|A<<16)>>>1),A=Q,aA=B=g+aA|0,Q=g>>>0>B>>>0?A+1|0:A,_A=yA>>>4&2097151,A=Ig(b,0,KA,0),g=f,B=A,A=Ig(H,0,m,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(Y,0,x,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,yA=(A=B)+(B=Ig(J,0,u,0))|0,A=f+g|0,A=B>>>0>yA>>>0?A+1|0:A,g=Ig(d,0,l,0),B=f+A|0,A=g>>>0>(yA=g+yA|0)>>>0?B+1|0:B,eA=A=(LA=_A+yA|0)>>>0>>0?A+1|0:A,QA=A=A-((LA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+Q|0,wA=g=(A=(2097151&A)<<11|(sA=LA- -1048576|0)>>>21)>>>0>(jA=A+aA|0)>>>0?g+1|0:g,iA=A=g-((jA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(rA=jA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,yA=A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,oA=A=A-((tA>>>0<4293918720)-1|0)|0,g=(B=A>>21)+a|0,ZA=g=(g=(A=(2097151&A)<<11|(aA=tA- -1048576|0)>>>21)>>>0>(Q=A+GA|0)>>>0?g+1|0:g)-(((B=-2097152&xA)>>>0>Q>>>0)+TA|0)|0,xA=A=Q-B|0,_A=A- -1048576|0,TA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+EA|0,g=((A=(2097151&A)<<11|_A>>>21)>>>0>(Q=A+VA|0)>>>0?B+1|0:B)+cA|0,lA=g=(g=(A=Q)>>>0>(Q=Q+hA|0)>>>0?g+1|0:g)-(((B=-2097152&vA)>>>0>Q>>>0)+$A|0)|0,cA=A=Q-B|0,a=A- -1048576|0,qA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+II|0,vA=A=(B=(A=(2097151&A)<<11|a>>>21)>>>0>(EA=A+AI|0)>>>0?B+1|0:B)-((EA>>>0<4293918720)-1|0)|0,GA=dA- -1048576|0,pA=NA-((dA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(Q=EA- -1048576|0)>>>21,A=(A>>21)+NA|0,$A=(dA=hA+dA|0)-(g=-2097152&GA)|0,AI=(hA>>>0>dA>>>0?A+1|0:A)-((g>>>0>dA>>>0)+pA|0)|0,II=EA-(A=-2097152&Q)|0,VA=B-((A>>>0>EA>>>0)+vA|0)|0,zA=cA-(A=-2097152&a)|0,dA=lA-((A>>>0>cA>>>0)+qA|0)|0,A=Ig(mA,OA,-997805,-1),g=f,B=A,A=Ig(T,Z,654183,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(WA,IA,136657,0))|0,A=f+g|0,g=ZA+(B>>>0>Q>>>0?A+1|0:A)|0,lA=(B=Q+xA|0)-(A=-2097152&_A)|0,qA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+TA|0)|0,xA=HA-(A=-2097152&fA)|0,NA=kA-((A>>>0>HA>>>0)+BA|0)|0,g=Ig(AA,$,-997805,-1),A=f,B=g,g=Ig(v,V,654183,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(X,P,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(L,R,-683901,-1),B=f+g|0,g=UA+(A>>>0>(Q=A+Q|0)>>>0?B+1|0:B)|0,fA=(B=Q+RA|0)-(A=-2097152&FA)|0,kA=(g=B>>>0>>0?g+1|0:g)-((A>>>0>B>>>0)+CA|0)|0,g=Ig(AA,$,654183,0),A=f,B=g,g=Ig(v,V,470296,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(X,P,-997805,-1))+B|0,B=f+A|0,g=YA+(g>>>0>Q>>>0?B+1|0:B)|0,g=(A=Q+XA|0)>>>0>>0?g+1|0:g,B=A,A=Ig(L,R,136657,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(q,z,-683901,-1))|0,A=f+g|0,_A=Q-(g=-2097152&bA)|0,a=(B>>>0>Q>>>0?A+1|0:A)-((g>>>0>Q>>>0)+gA|0)|0,Q=(o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24)>>>7|0,A=Ig(e,0,b,0),g=f,EA=(B=A)+(A=Ig(y,0,H,0))|0,B=f+g|0,B=A>>>0>EA>>>0?B+1|0:B,A=Ig(D,0,Y,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(F,N,J,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(n,0,d,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(G,0,U,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(M,0,K,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,A=Ig(k,DA,KA,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(h,0,l,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(r,0,m,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(p,0,u,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,x,0),B=f+A|0,g=B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,UA=(B=(2097151&uA)<<11|PA>>>21)+(A=Q+EA|0)|0,A=(uA>>>21|0)+(g=A>>>0>>0?g+1|0:g)|0,hA=A=B>>>0>UA>>>0?A+1|0:A,vA=g=A-((UA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,cA=B=(g=(2097151&g)<<11|(DA=UA- -1048576|0)>>>21)>>>0>(FA=g+_A|0)>>>0?B+1|0:B,PA=g=B-((FA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+kA|0,_A=A=(g=(2097151&g)<<11|(EA=FA- -1048576|0)>>>21)>>>0>(fA=g+fA|0)>>>0?A+1|0:A,bA=g=A-((fA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+NA|0,uA=B=(g=(Q=(2097151&g)<<11|(a=fA- -1048576|0)>>>21)+xA|0)>>>0>>0?B+1|0:B,NA=g,A=Ig(g,B,-683901,-1),g=f+qA|0,kA=B=A+lA|0,Q=A>>>0>B>>>0?g+1|0:g,g=Ig(T,Z,470296,0),A=f+yA|0,A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,g=Ig(mA,OA,654183,0),A=f+(A-(((B=-2097152&aA)>>>0>tA>>>0)+oA|0)|0)|0,A=g>>>0>(aA=g+(tA-B|0)|0)>>>0?A+1|0:A,B=Ig(WA,IA,-997805,-1),g=f+A|0,g=B>>>0>(aA=B+aA|0)>>>0?g+1|0:g,YA=B=fA-(A=-2097152&a)|0,KA=_A=_A-((A>>>0>fA>>>0)+bA|0)|0,aA=(a=Ig(NA,uA,136657,0))+aA|0,A=f+g|0,B=Ig(B,_A,-683901,-1),g=f+(a>>>0>aA>>>0?A+1|0:A)|0,_A=g=B>>>0>(yA=B+aA|0)>>>0?g+1|0:g,bA=A=g-((yA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(a=yA- -1048576|0)>>>21,A=(A>>21)+Q|0,fA=g=(A=g>>>0>(aA=g+kA|0)>>>0?A+1|0:A)-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&g)<<11|(Q=aA- -1048576|0)>>>21,g=(g>>21)+dA|0,zA=kA=tA+zA|0,kA=tA>>>0>kA>>>0?g+1|0:g,dA=aA-(g=-2097152&Q)|0,XA=A-((g>>>0>aA>>>0)+fA|0)|0,lA=yA-(A=-2097152&a)|0,qA=_A-((A>>>0>yA>>>0)+bA|0)|0,A=Ig(T,Z,666643,0),B=wA+f|0,B=(a=A+jA|0)>>>0>>0?B+1|0:B,Q=(A=Ig(mA,OA,470296,0))+(a-(g=-2097152&rA)|0)|0,g=f+(B-((g>>>0>a>>>0)+iA|0)|0)|0,g=A>>>0>Q>>>0?g+1|0:g,B=Ig(WA,IA,654183,0),A=f+g|0,aA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=FA-(A=-2097152&EA)|0,_A=cA-((A>>>0>FA>>>0)+PA|0)|0,A=Ig(AA,$,470296,0),g=f,B=A,A=Ig(v,V,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(X,P,654183,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(L,R,-997805,-1))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(q,z,136657,0),A=f+A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,EA=(g=Ig(W,O,-683901,-1))+B|0,B=f+A|0,g=hA+(g>>>0>EA>>>0?B+1|0:B)|0,FA=(B=(2097151&JA)<<11|MA>>>21)+((EA=EA+UA|0)-(A=-2097152&DA)|0)|0,A=((g=EA>>>0>>0?g+1|0:g)-((A>>>0>EA>>>0)+vA|0)|0)+(JA>>21)|0,fA=A=B>>>0>FA>>>0?A+1|0:A,xA=A=A-((FA>>>0<4293918720)-1|0)|0,g=a,a=(2097151&A)<<11|(rA=FA- -1048576|0)>>>21,A=(A>>21)+_A|0,bA=A=(B=g+a|0)>>>0>>0?A+1|0:A,UA=B,A=Ig(B,A,-683901,-1),g=f+Q|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(NA,uA,-997805,-1))|0,A=f+g|0,A=B>>>0>Q>>>0?A+1|0:A,g=Ig(YA,KA,136657,0),B=f+A|0,MA=Q=g+Q|0,cA=g>>>0>Q>>>0?B+1|0:B,aA=LA-(A=-2097152&sA)|0,hA=eA-((A>>>0>LA>>>0)+QA|0)|0,g=Ig(b,0,m,0),A=f,B=g,g=Ig(H,0,l,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(Y,0,u,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,Q=(g=Ig(d,0,x,0))+B|0,B=f+A|0,g=g>>>0>Q>>>0?B+1|0:B,DA=B=(A=(o[_+7|0]|o[_+8|0]<<8|o[_+9|0]<<16|o[_+10|0]<<24)>>>7&2097151)+Q|0,EA=A>>>0>B>>>0?g+1|0:g,A=Ig(b,0,l,0),g=f,B=A,A=Ig(H,0,x,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(d,0,u,0))|0,A=f+g|0,_A=Q,Q=B>>>0>Q>>>0?A+1|0:A,A=(g=o[_+6|0])>>>24|0,a=g<<8|(vA=o[_+2|0]|o[_+3|0]<<8|o[_+4|0]<<16|o[_+5|0]<<24)>>>24,B=A,g=(A=o[_+7|0])>>>16|0,g|=B,B=Q,a=B=(A=2097151&((3&g)<<30|(A=A<<16|a)>>>2))>>>0>(_A=A+_A|0)>>>0?B+1|0:B,RA=A=B-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(wA=_A- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,tA=A=B>>>0>(eA=B+DA|0)>>>0?A+1|0:A,PA=A=A-((eA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+hA|0,B=(A=(2097151&A)<<11|(yA=eA- -1048576|0)>>>21)>>>0>(Q=A+aA|0)>>>0?B+1|0:B,g=Ig(mA,OA,666643,0),A=f+B|0,A=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,g=Ig(WA,IA,470296,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(UA,bA,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(NA,uA,654183,0),g=f+g|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,aA=(A=Ig(YA,KA,-997805,-1))+B|0,B=f+g|0,hA=B=A>>>0>aA>>>0?B+1|0:B,JA=A=B-((aA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(DA=aA- -1048576|0)>>>21,A=(A>>21)+cA|0,MA=B=(A=B>>>0>(Q=B+MA|0)>>>0?A+1|0:A)-((Q>>>0<4293918720)-1|0)|0,EA=(2097151&B)<<11|(cA=Q- -1048576|0)>>>21,B=(B>>21)+qA|0,HA=sA=EA+lA|0,sA=EA>>>0>sA>>>0?B+1|0:B,EA=Q,g=A,Q=(FA-(A=-2097152&rA)|0)+(rA=(2097151&pA)<<11|GA>>>21)|0,A=(fA-((A>>>0>FA>>>0)+xA|0)|0)+(pA>>21)|0,pA=A=Q>>>0>>0?A+1|0:A,lA=A=A-((Q>>>0<4293918720)-1|0)|0,FA=B=A>>21,A=Ig(mA=(2097151&A)<<11|(fA=Q- -1048576|0)>>>21,B,-683901,-1),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,qA=B-(A=-2097152&cA)|0,LA=g-((A>>>0>B>>>0)+MA|0)|0,g=Ig(mA,FA,136657,0),A=f+hA|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,jA=B-(g=-2097152&DA)|0,JA=A-((g>>>0>B>>>0)+JA|0)|0,g=Ig(WA,IA,666643,0),A=f+(tA-(((B=-2097152&yA)>>>0>eA>>>0)+PA|0)|0)|0,A=g>>>0>(EA=g+(eA-B|0)|0)>>>0?A+1|0:A,B=Ig(UA,bA,-997805,-1),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(NA,uA,470296,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,g=Ig(YA,KA,654183,0),A=f+B|0,MA=EA=g+EA|0,hA=g>>>0>EA>>>0?A+1|0:A,B=vA>>>5&2097151,A=Ig(b,0,x,0),g=f,cA=A,A=Ig(H,0,u,0),g=f+g|0,A=A>>>0>(EA=cA+A|0)>>>0?g+1|0:g,cA=g=B+EA|0,B=A=g>>>0>>0?A+1|0:A,eA=(g=Ig(b,0,u,0))+(A=(A=o[_+2|0])<<16&2031616|o[0|_]|o[_+1|0]<<8)|0,g=f,rA=g=A>>>0>eA>>>0?g+1|0:g,xA=g=g-((eA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+B|0,yA=A=(g=(2097151&g)<<11|(tA=eA- -1048576|0)>>>21)>>>0>(GA=g+cA|0)>>>0?A+1|0:A,vA=g=A-((GA>>>0<4293918720)-1|0)|0,B=(2097151&g)<<11|(aA=GA- -1048576|0)>>>21,g=(g>>>21|0)+a|0,g=B>>>0>(EA=B+_A|0)>>>0?g+1|0:g,B=Ig(UA,bA,654183,0),A=f+(g-(((a=-2097152&wA)>>>0>EA>>>0)+RA|0)|0)|0,A=B>>>0>(_A=B+(EA-a|0)|0)>>>0?A+1|0:A,g=Ig(NA,uA,666643,0),A=f+A|0,A=g>>>0>(B=g+_A|0)>>>0?A+1|0:A,DA=(g=B)+(B=Ig(YA,KA,470296,0))|0,g=f+A|0,cA=g=B>>>0>DA>>>0?g+1|0:g,PA=g=g-((DA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+hA|0,wA=g=(B=(g=(2097151&g)<<11|(EA=DA- -1048576|0)>>>21)>>>0>(_A=g+MA|0)>>>0?B+1|0:B)-((_A>>>0<4293918720)-1|0)|0,hA=(2097151&g)<<11|(a=_A- -1048576|0)>>>21,g=(g>>21)+JA|0,uA=NA=hA+jA|0,hA=hA>>>0>NA>>>0?g+1|0:g,A=Ig(mA,FA,-997805,-1),g=f+B|0,g=A>>>0>(_A=A+_A|0)>>>0?g+1|0:g,JA=_A-(A=-2097152&a)|0,MA=g-((A>>>0>_A>>>0)+wA|0)|0,g=Ig(mA,FA,654183,0),A=f+cA|0,A=g>>>0>(B=g+DA|0)>>>0?A+1|0:A,NA=B-(g=-2097152&EA)|0,wA=A-((g>>>0>B>>>0)+PA|0)|0,A=Ig(UA,bA,470296,0),B=f+(yA-(((g=-2097152&aA)>>>0>GA>>>0)+vA|0)|0)|0,B=A>>>0>(a=A+(GA-g|0)|0)>>>0?B+1|0:B,g=Ig(YA,KA,666643,0),A=f+B|0,_A=a=g+a|0,B=g>>>0>a>>>0?A+1|0:A,g=Ig(UA,bA,666643,0),A=f+(rA-((4095&xA)+((a=-2097152&tA)>>>0>eA>>>0)|0)|0)|0,DA=A=g>>>0>(aA=g+(eA-a|0)|0)>>>0?A+1|0:A,rA=A=A-((aA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(cA=aA- -1048576|0)>>>21,A=(A>>21)+B|0,B=A=a>>>0>(EA=a+_A|0)>>>0?A+1|0:A,tA=A=A-((EA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(_A=EA- -1048576|0)>>>21,A=(A>>21)+wA|0,a=a>>>0>(yA=a+NA|0)>>>0?A+1|0:A,A=Ig(mA,FA,470296,0),B=f+B|0,B=A>>>0>(g=A+EA|0)>>>0?B+1|0:B,EA=g-(A=-2097152&_A)|0,_A=B-((A>>>0>g>>>0)+tA|0)|0,g=Ig(mA,FA,666643,0),A=f+(DA-(((B=-2097152&cA)>>>0>aA>>>0)+rA|0)|0)|0,g=(B=(A=g>>>0>(wA=g+(aA-B|0)|0)>>>0?A+1|0:A)>>21)+_A|0,A=(A=(g=(A=(2097151&A)<<11|wA>>>21)>>>0>(rA=A+EA|0)>>>0?g+1|0:g)>>21)+a|0,g=(g=(A=(g=(2097151&g)<<11|rA>>>21)>>>0>(tA=g+yA|0)>>>0?A+1|0:A)>>21)+MA|0,B=(A=(g=(A=(2097151&A)<<11|tA>>>21)>>>0>(a=A+JA|0)>>>0?g+1|0:g)>>21)+hA|0,A=(g=(B=(g=(2097151&g)<<11|a>>>21)>>>0>(yA=g+uA|0)>>>0?B+1|0:B)>>21)+LA|0,g=(B=(A=(B=(2097151&B)<<11|yA>>>21)>>>0>(aA=B+qA|0)>>>0?A+1|0:A)>>21)+sA|0,A=(A=(g=(A=(2097151&A)<<11|aA>>>21)>>>0>(hA=A+HA|0)>>>0?g+1|0:g)>>21)+XA|0,g=(g=(A=(g=(2097151&g)<<11|hA>>>21)>>>0>(DA=g+dA|0)>>>0?A+1|0:A)>>21)+kA|0,B=(A=(g=(A=(2097151&A)<<11|DA>>>21)>>>0>(cA=A+zA|0)>>>0?g+1|0:g)>>21)+VA|0,A=(g=(B=(g=(2097151&g)<<11|cA>>>21)>>>0>(EA=g+II|0)>>>0?B+1|0:B)>>21)+AI|0,fA=(sA=Q-(g=-2097152&fA)|0)+((2097151&(A=(B=(2097151&B)<<11|EA>>>21)>>>0>(_A=B+$A|0)>>>0?A+1|0:A))<<11|_A>>>21)|0,A=(pA-((g>>>0>Q>>>0)+lA|0)|0)+(A>>21)|0,pA=g=(A=sA>>>0>fA>>>0?A+1|0:A)>>21,wA=(A=Ig(kA=(2097151&A)<<11|fA>>>21,g,666643,0))+(g=2097151&wA)|0,A=f,Q=A=g>>>0>wA>>>0?A+1|0:A,C[0|E]=wA,C[E+1|0]=(255&A)<<24|wA>>>8,A=2097151&rA,g=Ig(kA,pA,470296,0)+A|0,B=f,A=(Q>>21)+(A>>>0>g>>>0?B+1|0:B)|0,A=(rA=(sA=(2097151&Q)<<11|wA>>>21)+g|0)>>>0>>0?A+1|0:A,C[E+4|0]=(2047&A)<<21|rA>>>11,g=A,B=rA,C[E+3|0]=(7&A)<<29|B>>>3,C[E+2|0]=31&((65535&Q)<<16|wA>>>16)|B<<5,Q=2097151&tA,tA=Ig(kA,pA,654183,0)+Q|0,A=f,rA=(2097151&g)<<11|B>>>21,g=(g>>21)+(Q=Q>>>0>tA>>>0?A+1|0:A)|0,A=g=(tA=rA+tA|0)>>>0>>0?g+1|0:g,C[E+6|0]=(63&A)<<26|tA>>>6,Q=tA,tA=0,C[E+5|0]=tA<<13|(1572864&B)>>>19|Q<<2,B=2097151&a,a=Ig(kA,pA,-997805,-1)+B|0,g=f,g=B>>>0>a>>>0?g+1|0:g,tA=(2097151&(B=A))<<11|Q>>>21,B=(A>>=21)+g|0,B=(a=tA+a|0)>>>0>>0?B+1|0:B,C[E+9|0]=(511&B)<<23|a>>>9,C[E+8|0]=(1&B)<<31|a>>>1,g=0,C[E+7|0]=g<<18|(2080768&Q)>>>14|a<<7,g=2097151&yA,Q=Ig(kA,pA,136657,0)+g|0,A=f,A=g>>>0>Q>>>0?A+1|0:A,yA=(2097151&(g=B))<<11|a>>>21,g=A+(B=g>>21)|0,g=(Q=yA+Q|0)>>>0>>0?g+1|0:g,C[E+12|0]=(4095&g)<<20|Q>>>12,B=Q,C[E+11|0]=(15&g)<<28|B>>>4,Q=0,C[E+10|0]=Q<<15|(1966080&a)>>>17|B<<4,Q=2097151&aA,a=Ig(kA,pA,-683901,-1)+Q|0,A=f,A=Q>>>0>a>>>0?A+1|0:A,Q=g,g=A+(g>>=21)|0,g=(Q=(aA=a)+(a=(2097151&Q)<<11|B>>>21)|0)>>>0>>0?g+1|0:g,C[E+14|0]=(127&g)<<25|Q>>>7,a=0,C[E+13|0]=a<<12|(1048576&B)>>>20|Q<<1,A=g>>21,B=(g=(2097151&g)<<11|Q>>>21)>>>0>(a=g+(2097151&hA)|0)>>>0?A+1|0:A,C[E+17|0]=(1023&B)<<22|a>>>10,C[E+16|0]=(3&B)<<30|a>>>2,g=0,C[E+15|0]=g<<17|(2064384&Q)>>>15|a<<6,A=B>>21,A=(g=(2097151&B)<<11|a>>>21)>>>0>(B=g+(2097151&DA)|0)>>>0?A+1|0:A,C[E+20|0]=(8191&A)<<19|B>>>13,C[E+19|0]=(31&A)<<27|B>>>5,Q=(g=2097151&cA)+(cA=(2097151&A)<<11|B>>>21)|0,g=A>>21,g=Q>>>0>>0?g+1|0:g,cA=Q,C[E+21|0]=Q,DA=0,C[E+18|0]=DA<<14|(1835008&a)>>>18|B<<3,C[E+22|0]=(255&g)<<24|Q>>>8,B=g>>21,B=(Q=(a=(2097151&g)<<11|Q>>>21)+(2097151&EA)|0)>>>0>>0?B+1|0:B,C[E+25|0]=(2047&B)<<21|Q>>>11,C[E+24|0]=(7&B)<<29|Q>>>3,C[E+23|0]=31&((65535&g)<<16|cA>>>16)|Q<<5,A=B>>21,A=(g=(2097151&B)<<11|Q>>>21)>>>0>(B=g+(2097151&_A)|0)>>>0?A+1|0:A,C[E+27|0]=(63&A)<<26|B>>>6,a=0,C[E+26|0]=a<<13|(1572864&Q)>>>19|B<<2,g=A,A>>=21,g=(Q=(_A=(2097151&g)<<11|B>>>21)+(a=2097151&fA)|0)>>>0>>0?A+1|0:A,C[E+31|0]=(131071&g)<<15|Q>>>17,A=Q,C[E+30|0]=(511&g)<<23|A>>>9,Q=0,C[E+28|0]=Q<<18|(2080768&B)>>>14|A<<7,C[E+29|0]=_A+fA>>>1,XC(c,64),XC(_,64),I&&(i[I>>2]=64,i[I+4>>2]=0),s=t+560|0,0}function n(A,I,g){var B,Q,i,E,a,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0;Z=Ig(B=(W=o[g+2|0])<<16&2031616|o[0|g]|o[g+1|0]<<8,0,Q=(QA=o[I+23|0]|o[I+24|0]<<8|o[I+25|0]<<16|o[I+26|0]<<24)>>>5&2097151,0),V=f,O=Ig(i=(W=o[I+23|0])<<16&2031616|o[I+21|0]|o[I+22|0]<<8,0,E=(T=o[g+2|0]|o[g+3|0]<<8|o[g+4|0]<<16|o[g+5|0]<<24)>>>5&2097151,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(a=(o[g+7|0]|o[g+8|0]<<8|o[g+9|0]<<16|o[g+10|0]<<24)>>>7&2097151,0,_=(aA=o[I+15|0]|o[I+16|0]<<8|o[I+17|0]<<16|o[I+18|0]<<24)>>>6&2097151,0),O=f+W|0,IA=Z=V+Z|0,V=V>>>0>Z>>>0?O+1|0:O,O=(W=o[I+14|0])>>>24|0,$=W<<8|(gA=o[I+10|0]|o[I+11|0]<<8|o[I+12|0]<<16|o[I+13|0]<<24)>>>24,O=Ig(c=2097151&((1&(CA=(W=O)|(O=(Z=o[I+15|0])>>>16|0)))<<31|(W=(Z<<=16)|$)>>>1),0,t=(AA=o[g+10|0]|o[g+11|0]<<8|o[g+12|0]<<16|o[g+13|0]<<24)>>>4&2097151,0),V=f+V|0,CA=W=O+IA|0,Z=W>>>0>>0?V+1|0:V,V=(O=o[g+6|0])>>>24|0,IA=O<<8|T>>>24,T=r=2097151&((3&(V|=O=(W=o[g+7|0])>>>16|0))<<30|(W=IA|W<<16)>>>2),IA=0,$=(W=o[I+19|0])<<8|aA>>>24,V=O=W>>>24|0,W=(O=o[I+20|0])>>>16|0,G=V=(W|=V)>>>3|0,O=Ig(T,IA,e=(7&W)<<29|(O=O<<16|$)>>>3,V),W=f+Z|0,W=O>>>0>($=O+CA|0)>>>0?W+1|0:W,V=Ig(y=(T=o[g+15|0]|o[g+16|0]<<8|o[g+17|0]<<16|o[g+18|0]<<24)>>>6&2097151,0,s=(o[I+7|0]|o[I+8|0]<<8|o[I+9|0]<<16|o[I+10|0]<<24)>>>7&2097151,0),O=f+W|0,IA=Z=V+$|0,Z=V>>>0>Z>>>0?O+1|0:O,$=(W=o[g+14|0])<<8|AA>>>24,W=O=W>>>24|0,V=(O=o[g+15|0])>>>16|0,O=Ig(h=2097151&((1&(V|=W))<<31|(W=(O<<=16)|$)>>>1),0,D=gA>>>4&2097151,0),W=f+Z|0,AA=V=O+IA|0,IA=O>>>0>V>>>0?W+1|0:W,W=(O=o[g+19|0])>>>24|0,Z=O<<8|T>>>24,V=(O=o[g+20|0])>>>16|0,p=(7&(V|=W))<<29|(O=Z|O<<16)>>>3,eA=W=V>>>3|0,Z=W,W=(O=o[I+6|0])>>>24|0,T=O<<8|(CA=o[I+2|0]|o[I+3|0]<<8|o[I+4|0]<<16|o[I+5|0]<<24)>>>24,V=W,W=(O=o[I+7|0])>>>16|0,W=Ig(p,Z,w=2097151&((3&(W|=V))<<30|(O=O<<16|T)>>>2),0),O=f+IA|0,V=W>>>0>(Z=W+AA|0)>>>0?O+1|0:O,W=Ig(n=(W=o[g+23|0])<<16&2031616|o[g+21|0]|o[g+22|0]<<8,0,k=CA>>>5&2097151,0),O=f+V|0,V=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,O=Ig(F=(W=o[I+2|0])<<16&2031616|o[0|I]|o[I+1|0]<<8,0,hA=(CA=o[g+23|0]|o[g+24|0]<<8|o[g+25|0]<<16|o[g+26|0]<<24)>>>5&2097151,0),W=f+V|0,T=Z=O+Z|0,IA=O>>>0>Z>>>0?W+1|0:W,O=Ig(i,0,B,0),W=f,Z=(V=O)+(O=Ig(e,G,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,O=Ig(a,0,c,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(t,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,W=Ig(_,0,r,0),O=f+O|0,O=W>>>0>(V=W+Z|0)>>>0?O+1|0:O,Z=(W=V)+(V=Ig(y,0,w,0))|0,W=f+O|0,W=V>>>0>Z>>>0?W+1|0:W,O=Ig(h,0,s,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,Z=(O=Ig(p,eA,k,0))+Z|0,W=f+V|0,V=Ig(n,0,F,0),O=f+(O>>>0>Z>>>0?W+1|0:W)|0,Z=O=V>>>0>($=V+Z|0)>>>0?O+1|0:O,yA=O=O-(($>>>0<4293918720)-1|0)|0,W=(W=O>>>21|0)+IA|0,oA=V=(W=(O=(2097151&O)<<11|(cA=$- -1048576|0)>>>21)>>>0>(T=O+T|0)>>>0?W+1|0:W)-((T>>>0<4293918720)-1|0)|0,iA=T-(O=-2097152&(EA=T- -1048576|0))|0,BA=W-((O>>>0>T>>>0)+V|0)|0,IA=(W=o[g+27|0])<<8|CA>>>24,V=O=W>>>24|0,T=Ig(S=2097151&((3&(V|=W=(O=o[g+28|0])>>>16|0))<<30|(W=(O<<=16)|IA)>>>2),0,DA=(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)>>>7|0,0),IA=f,W=(O=o[I+27|0])>>>24|0,I=Ig(N=2097151&((3&(W|=V=(I=o[I+28|0])>>>16|0))<<30|(O=O<<8|QA>>>24|I<<16)>>>2),0,fA=(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)>>>7|0,0),O=f+IA|0,O=I>>>0>(g=I+T|0)>>>0?O+1|0:O,V=g,I=Ig(Q,0,fA,0),g=f,IA=(W=I)+(I=Ig(hA,0,DA,0))|0,W=f+g|0,W=I>>>0>IA>>>0?W+1|0:W,I=Ig(S,0,N,0),W=f+W|0,IA=W=I>>>0>(CA=I+IA|0)>>>0?W+1|0:W,AA=I=W-((CA>>>0<4293918720)-1|0)|0,W=I>>>21|0,T=(I=(2097151&I)<<11|(g=CA- -1048576|0)>>>21)+V|0,V=W+O|0,aA=W=(V=I>>>0>T>>>0?V+1|0:V)-((T>>>0<4293918720)-1|0)|0,I=T-(O=-2097152&(gA=T- -1048576|0))|0,K=O=V-((131071&W)+(O>>>0>T>>>0)|0)|0,U=I,I=Ig(I,O,666643,0),O=f+BA|0,nA=W=I+iA|0,T=I>>>0>W>>>0?O+1|0:O,iA=CA-(I=-2097152&g)|0,tA=IA-((131071&AA)+(I>>>0>CA>>>0)|0)|0,I=Ig(n,0,DA,0),g=f,W=(O=I)+(I=Ig(hA,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,fA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,S,0),O=f+W|0,AA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,g=Ig(Q,0,hA,0),O=f,V=(W=g)+(g=Ig(p,eA,DA,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,O=(g=Ig(n,0,N,0))+V|0,V=f+W|0,V=g>>>0>O>>>0?V+1|0:V,W=(g=Ig(e,G,fA,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,BA=(g=Ig(i,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>BA>>>0?W+1|0:W,_A=g=W-((BA>>>0<4293918720)-1|0)|0,W=I+(O=g>>>21|0)|0,g=W=(g=(2097151&g)<<11|(IA=BA- -1048576|0)>>>21)>>>0>(AA=g+AA|0)>>>0?W+1|0:W,QA=W=W-((AA>>>0<4293918720)-1|0)|0,O=iA,iA=(2097151&W)<<11|(I=AA- -1048576|0)>>>21,W=(W>>>21|0)+tA|0,b=W=(V=O+iA|0)>>>0>>0?W+1|0:W,H=I=AA-(O=-2097152&I)|0,Y=AA=g-((O>>>0>AA>>>0)+QA|0)|0,J=V,g=Ig(V,W,470296,0),O=f+T|0,O=g>>>0>(W=g+nA|0)>>>0?O+1|0:O,I=Ig(I,AA,654183,0),V=f+O|0,tA=g=I+W|0,T=I>>>0>g>>>0?V+1|0:V,QA=BA-(I=-2097152&IA)|0,BA=CA-((I>>>0>BA>>>0)+_A|0)|0,I=Ig(p,eA,N,0),g=f,W=(O=I)+(I=Ig(y,0,DA,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,hA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,n,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(_,0,fA,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,S,0),W=f+O|0,CA=g=I+g|0,IA=I>>>0>g>>>0?W+1|0:W,I=Ig(h,0,DA,0),g=f,W=(O=I)+(I=Ig(y,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(Q,0,p,eA))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(e,G,hA,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(i,0,n,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(c,0,fA,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(_,0,S,0),O=f+W|0,I=O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,sA=O=O-((g>>>0<4293918720)-1|0)|0,V=(W=O>>>21|0)+IA|0,iA=V=(O=(2097151&O)<<11|(_A=g- -1048576|0)>>>21)>>>0>(pA=O+CA|0)>>>0?V+1|0:V,NA=O=V-((pA>>>0<4293918720)-1|0)|0,IA=(2097151&O)<<11|(AA=pA- -1048576|0)>>>21,O=(O>>>21|0)+BA|0,d=O=(V=IA+QA|0)>>>0>>0?O+1|0:O,m=V,O=Ig(V,O,-997805,-1),W=f+T|0,BA=V=O+tA|0,T=O>>>0>V>>>0?W+1|0:W,IA=$,$=Z,O=Ig(B,0,e,G),W=f,Z=(V=O)+(O=Ig(_,0,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(a,0,D,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(t,0,s,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(c,0,r,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(y,0,k,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(h,0,w,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(p,eA,F,0),O=f+V|0,CA=Z=W+Z|0,Z=W>>>0>Z>>>0?O+1|0:O,O=Ig(B,0,_,0),W=f,V=O,O=Ig(E,0,c,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,QA=(O=V)+(V=Ig(a,0,s,0))|0,O=f+W|0,O=V>>>0>QA>>>0?O+1|0:O,V=Ig(t,0,w,0),W=f+O|0,W=V>>>0>(QA=V+QA|0)>>>0?W+1|0:W,O=Ig(r,0,D,0),V=f+W|0,V=O>>>0>(QA=O+QA|0)>>>0?V+1|0:V,QA=(W=Ig(y,0,F,0))+QA|0,O=f+V|0,V=Ig(h,0,k,0),W=f+(W>>>0>QA>>>0?O+1|0:O)|0,KA=W=V>>>0>(MA=V+QA|0)>>>0?W+1|0:W,xA=W=W-((MA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(GA=MA- -1048576|0)>>>21,W=(W>>>21|0)+Z|0,rA=W=V>>>0>(UA=V+CA|0)>>>0?W+1|0:W,vA=W=W-((UA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(nA=UA- -1048576|0)>>>21,W=(W>>>21|0)+$|0,W=V>>>0>(IA=V+IA|0)>>>0?W+1|0:W,O=Ig(J,b,666643,0),W=f+(W-(((V=-2097152&cA)>>>0>IA>>>0)+yA|0)|0)|0,W=O>>>0>(Z=O+(IA-V|0)|0)>>>0?W+1|0:W,V=Ig(H,Y,470296,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(m,d,654183,0),W=f+O|0,tA=W=V>>>0>(kA=V+Z|0)>>>0?W+1|0:W,mA=W=W-((kA>>>0<4293918720)-1|0)|0,O=(O=W>>21)+T|0,BA=O=(W=(2097151&W)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(yA=W+BA|0)>>>0?O+1|0:O,bA=W=O-((yA>>>0<4293918720)-1|0)|0,JA=(2097151&W)<<11|(cA=yA- -1048576|0)>>>21,CA=W>>21,O=Ig(B,0,N,0),W=f,V=O,O=Ig(Q,0,E,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,Z=(O=Ig(a,0,e,G))+V|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(_,0,t,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(i,0,r,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(y,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(h,0,c,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(s,0,p,eA),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(k,0,hA,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(w,0,n,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=(O=Z)+(Z=Ig(S,0,F,0))|0,O=f+W|0,T=V,IA=V>>>0>>0?O+1|0:O,FA=Ig(DA,0,fA,0),$=V=(SA=f)-((FA>>>0<4293918720)-1|0)|0,W=FA-(O=-2097152&(Z=FA- -1048576|0))|0,O=(aA>>>21|0)+(O=SA-((524287&V)+(O>>>0>FA>>>0)|0)|0)|0,l=O=(V=(gA=(2097151&aA)<<11|gA>>>21)+W|0)>>>0>>0?O+1|0:O,u=V,W=(2097151&oA)<<11|EA>>>21,gA=Ig(V,O,666643,0)+W|0,O=f+(oA>>>21|0)|0,O=W>>>0>gA>>>0?O+1|0:O,V=Ig(U,K,470296,0),W=f+O|0,W=(V>>>0>(gA=V+gA|0)>>>0?W+1|0:W)+IA|0,W=(O=T+gA|0)>>>0>>0?W+1|0:W,gA=(V=Ig(J,b,654183,0))+O|0,O=f+W|0,dA=T- -1048576|0,FA=IA=IA-((T>>>0<4293918720)-1|0)|0,W=Ig(H,Y,-997805,-1),V=f+(V>>>0>gA>>>0?O+1|0:O)|0,V=W>>>0>(T=W+gA|0)>>>0?V+1|0:V,EA=(O=Ig(m,d,136657,0))+(T-(W=-2097152&dA)|0)|0,W=f+(V-((W>>>0>T>>>0)+IA|0)|0)|0,V=(aA=O>>>0>EA>>>0?W+1|0:W)+CA|0,HA=O=EA+JA|0,gA=V=O>>>0>>0?V+1|0:V,SA=pA-(O=-2097152&AA)|0,pA=iA-((O>>>0>pA>>>0)+NA|0)|0,x=V=$>>>21|0,W=(O=g)+(g=Ig(M=(2097151&$)<<11|Z>>>21,V,-683901,-1))|0,O=f+I|0,iA=W-(I=-2097152&_A)|0,oA=(g>>>0>W>>>0?O+1|0:O)-((I>>>0>W>>>0)+sA|0)|0,I=Ig(Q,0,y,0),g=f,O=I,I=Ig(t,0,DA,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(h,0,N,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(i,0,p,eA),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(_,0,hA,0),O=f+O|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,n,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(D,0,fA,0),W=f+W|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(c,0,S,0),V=f+W|0,Z=g=I+g|0,I=I>>>0>g>>>0?V+1|0:V,g=Ig(t,0,N,0),O=f,W=g,g=Ig(a,0,DA,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,y,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,V=(g=Ig(Q,0,h,0))+W|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(e,G,p,eA),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,g=Ig(c,0,hA,0),V=f+W|0,V=g>>>0>(O=g+O|0)>>>0?V+1|0:V,W=(g=Ig(_,0,n,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,g=Ig(s,0,fA,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,AA=(g=Ig(D,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>AA>>>0?W+1|0:W,YA=g=W-((AA>>>0<4293918720)-1|0)|0,V=I+(O=g>>>21|0)|0,IA=V=(g=(2097151&g)<<11|(T=AA- -1048576|0)>>>21)>>>0>(_A=g+Z|0)>>>0?V+1|0:V,sA=I=V-((_A>>>0<4293918720)-1|0)|0,W=(O=I>>>21|0)+oA|0,Z=W=(I=(2097151&I)<<11|($=_A- -1048576|0)>>>21)>>>0>(iA=I+iA|0)>>>0?W+1|0:W,oA=g=W-((iA>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,v=V=(g=(W=(2097151&g)<<11|(I=iA- -1048576|0)>>>21)+SA|0)>>>0>>0?V+1|0:V,NA=EA- -1048576|0,JA=W=aA-((EA>>>0<4293918720)-1|0)|0,lA=g,g=Ig(g,V,-683901,-1),O=f+gA|0,SA=O=(W=(O=g>>>0>(V=g+HA|0)>>>0?O+1|0:O)-(((g=-2097152&NA)>>>0>V>>>0)+W|0)|0)-(((gA=V-g|0)>>>0<4293918720)-1|0)|0,P=gA-(g=-2097152&(pA=gA- -1048576|0))|0,RA=W-((g>>>0>gA>>>0)+O|0)|0,g=Ig(lA,v,136657,0),W=f+(BA-(((O=-2097152&cA)>>>0>yA>>>0)+bA|0)|0)|0,uA=V=g+(yA-O|0)|0,g=g>>>0>V>>>0?W+1|0:W,wA=iA-(I&=-2097152)|0,cA=Z-((I>>>0>iA>>>0)+oA|0)|0,I=Ig(u,l,-683901,-1),O=f,W=I,I=Ig(M,x,136657,0),O=f+O|0,W=IA+(I>>>0>(V=W+I|0)>>>0?O+1|0:O)|0,aA=(O=V+_A|0)-(I=-2097152&$)|0,gA=(W=O>>>0<_A>>>0?W+1|0:W)-((I>>>0>O>>>0)+sA|0)|0,I=Ig(M,x,-997805,-1),O=f+CA|0,O=I>>>0>(W=I+AA|0)>>>0?O+1|0:O,I=Ig(u,l,136657,0),O=f+O|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(U,K,-683901,-1))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,IA=V-(I=-2097152&T)|0,$=W-((I>>>0>V>>>0)+YA|0)|0,I=Ig(Q,0,t,0),O=f,V=(W=I)+(I=Ig(a,0,N,0))|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,DA,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(y,0,e,G),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(i,0,h,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,W=(I=Ig(_,0,p,eA))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,O=(I=Ig(D,0,hA,0))+W|0,W=f+V|0,W=I>>>0>O>>>0?W+1|0:W,V=(I=Ig(c,0,n,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,I=Ig(w,0,fA,0),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(s,0,S,0),O=f+W|0,Z=V=I+V|0,I=I>>>0>V>>>0?O+1|0:O,O=Ig(Q,0,a,0),W=f,T=(V=O)+(O=Ig(E,0,DA,0))|0,V=f+W|0,V=O>>>0>T>>>0?V+1|0:V,O=Ig(i,0,t,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(r,0,N,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(_,0,y,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(e,G,h,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,W=Ig(c,0,p,eA),V=f+O|0,V=W>>>0>(T=W+T|0)>>>0?V+1|0:V,O=Ig(s,0,hA,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(D,0,n,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(k,0,fA,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(w,0,S,0),O=f+W|0,yA=O=V>>>0>(bA=V+T|0)>>>0?O+1|0:O,q=O=O-((bA>>>0<4293918720)-1|0)|0,W=I+(W=O>>>21|0)|0,EA=W=(O=(2097151&O)<<11|(oA=bA- -1048576|0)>>>21)>>>0>(HA=O+Z|0)>>>0?W+1|0:W,z=I=W-((HA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+$|0,iA=O=(I=(2097151&I)<<11|(_A=HA- -1048576|0)>>>21)>>>0>(YA=I+IA|0)>>>0?O+1|0:O,j=I=O-((YA>>>0<4293918720)-1|0)|0,W=(W=I>>21)+gA|0,CA=W=(I=(2097151&I)<<11|(BA=YA- -1048576|0)>>>21)>>>0>(sA=I+aA|0)>>>0?W+1|0:W,LA=I=W-((sA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+cA|0,R=O=(I=(V=(2097151&I)<<11|(Z=sA- -1048576|0)>>>21)+wA|0)>>>0>>0?O+1|0:O,wA=I,I=Ig(I,O,-683901,-1),V=f+g|0,PA=O=I+uA|0,T=I>>>0>O>>>0?V+1|0:V,qA=kA-(I=-2097152&QA)|0,mA=tA-((I>>>0>kA>>>0)+mA|0)|0,I=Ig(H,Y,666643,0),O=f+(rA-(((g=-2097152&nA)>>>0>UA>>>0)+vA|0)|0)|0,O=I>>>0>(W=I+(UA-g|0)|0)>>>0?O+1|0:O,g=(I=Ig(m,d,470296,0))+W|0,W=f+O|0,nA=g,g=I>>>0>g>>>0?W+1|0:W,AA=MA-(I=-2097152&GA)|0,IA=KA-((I>>>0>MA>>>0)+xA|0)|0,I=Ig(B,0,c,0),O=f,W=I,I=Ig(E,0,D,0),V=f+O|0,V=I>>>0>(W=W+I|0)>>>0?V+1|0:V,I=Ig(a,0,w,0),O=f+V|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(t,0,k,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,s,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(h,0,F,0),W=f+O|0,$=V=I+V|0,I=I>>>0>V>>>0?W+1|0:W,O=Ig(B,0,D,0),W=f,gA=(V=O)+(O=Ig(E,0,s,0))|0,V=f+W|0,V=O>>>0>gA>>>0?V+1|0:V,W=Ig(a,0,k,0),O=f+V|0,O=W>>>0>(gA=W+gA|0)>>>0?O+1|0:O,V=Ig(t,0,F,0),W=f+O|0,W=V>>>0>(gA=V+gA|0)>>>0?W+1|0:W,V=Ig(r,0,w,0),O=f+W|0,tA=O=V>>>0>(kA=V+gA|0)>>>0?O+1|0:O,X=O=O-((kA>>>0<4293918720)-1|0)|0,V=I+(W=O>>>21|0)|0,cA=V=(O=(2097151&O)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(KA=O+$|0)>>>0?V+1|0:V,xA=I=V-((KA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(aA=KA- -1048576|0)>>>21)>>>0>(V=I+AA|0)>>>0?O+1|0:O,I=Ig(m,d,666643,0),W=f+O|0,gA=W=I>>>0>(GA=I+V|0)>>>0?W+1|0:W,vA=I=W-((GA>>>0<4293918720)-1|0)|0,O=g+(O=I>>21)|0,IA=O=(I=(2097151&I)<<11|(AA=GA- -1048576|0)>>>21)>>>0>(rA=I+nA|0)>>>0?O+1|0:O,uA=I=O-((rA>>>0<4293918720)-1|0)|0,W=(O=I>>21)+mA|0,W=(I=(2097151&I)<<11|($=rA- -1048576|0)>>>21)>>>0>(g=I+qA|0)>>>0?W+1|0:W,I=Ig(lA,v,-997805,-1),V=f+W|0,V=I>>>0>(O=I+g|0)>>>0?V+1|0:V,UA=I=sA-(g=-2097152&Z)|0,L=W=CA-((g>>>0>sA>>>0)+LA|0)|0,Z=(g=Ig(wA,R,136657,0))+O|0,O=f+V|0,I=Ig(I,W,-683901,-1),O=f+(g>>>0>Z>>>0?O+1|0:O)|0,Z=O=I>>>0>(CA=I+Z|0)>>>0?O+1|0:O,MA=I=O-((CA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+T|0,g=O=(T=nA=(I=(2097151&I)<<11|(V=CA- -1048576|0)>>>21)+PA|0)>>>0>>0?O+1|0:O,sA=O=O-((T>>>0<4293918720)-1|0)|0,nA=(2097151&O)<<11|(I=T- -1048576|0)>>>21,O=(O>>21)+RA|0,RA=mA=nA+P|0,nA=nA>>>0>mA>>>0?O+1|0:O,LA=T-(I&=-2097152)|0,PA=g-((I>>>0>T>>>0)+sA|0)|0,qA=CA-(I=-2097152&V)|0,mA=Z-((I>>>0>CA>>>0)+MA|0)|0,I=Ig(lA,v,654183,0),W=f+(IA-(((g=-2097152&$)>>>0>rA>>>0)+uA|0)|0)|0,W=I>>>0>(O=I+(rA-g|0)|0)>>>0?W+1|0:W,g=(I=Ig(wA,R,-997805,-1))+O|0,O=f+W|0,O=I>>>0>g>>>0?O+1|0:O,I=Ig(UA,L,136657,0),O=f+O|0,uA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,MA=YA-(g=-2097152&BA)|0,rA=iA-((g>>>0>YA>>>0)+j|0)|0,g=Ig(u,l,-997805,-1),O=f,V=(W=g)+(g=Ig(M,x,654183,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,136657,0),O=f+W|0,O=g>>>0>(V=g+V|0)>>>0?O+1|0:O,g=Ig(J,b,-683901,-1),O=f+O|0,W=EA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,BA=(O=V+HA|0)-(g=-2097152&_A)|0,_A=(W=O>>>0>>0?W+1|0:W)-((g>>>0>O>>>0)+z|0)|0,g=Ig(u,l,654183,0),O=f,V=(W=g)+(g=Ig(M,x,470296,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,-997805,-1),O=f+W|0,W=yA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,W=(g=V+bA|0)>>>0>>0?W+1|0:W,V=(O=g)+(g=Ig(J,b,136657,0))|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,W=(g=Ig(H,Y,-683901,-1))+V|0,V=f+O|0,V=g>>>0>W>>>0?V+1|0:V,$=W-(g=-2097152&oA)|0,Z=V-((g>>>0>W>>>0)+q|0)|0,g=Ig(B,0,DA,0),O=f,W=g,g=Ig(E,0,N,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,a,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,g=Ig(e,G,t,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(Q,0,r,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(y,0,c,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(_,0,h,0))+O|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,g=Ig(D,0,p,eA),O=f+O|0,O=g>>>0>(W=g+V|0)>>>0?O+1|0:O,g=Ig(w,0,hA,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(s,0,n,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(F,0,fA,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(S,0,k,0))+O|0,O=f+W|0,O=(FA>>>21|0)+(O=g>>>0>V>>>0?O+1|0:O)|0,CA=O=(g=(2097151&FA)<<11|dA>>>21)>>>0>(EA=g+V|0)>>>0?O+1|0:O,bA=g=O-((EA>>>0<4293918720)-1|0)|0,W=(W=g>>>21|0)+Z|0,IA=W=(g=(2097151&g)<<11|(T=EA- -1048576|0)>>>21)>>>0>(iA=g+$|0)>>>0?W+1|0:W,sA=g=W-((iA>>>0<4293918720)-1|0)|0,O=(W=g>>21)+_A|0,Z=O=(g=(2097151&g)<<11|($=iA- -1048576|0)>>>21)>>>0>(BA=g+BA|0)>>>0?O+1|0:O,oA=O=O-((BA>>>0<4293918720)-1|0)|0,W=(W=O>>21)+rA|0,rA=W=(O=(V=(2097151&O)<<11|(g=BA- -1048576|0)>>>21)+MA|0)>>>0>>0?W+1|0:W,dA=O,W=Ig(O,W,-683901,-1),O=f+I|0,_A=V=W+uA|0,I=W>>>0>V>>>0?O+1|0:O,O=Ig(lA,v,470296,0),V=f+(gA-(((W=-2097152&AA)>>>0>GA>>>0)+vA|0)|0)|0,V=O>>>0>(AA=O+(GA-W|0)|0)>>>0?V+1|0:V,O=Ig(wA,R,654183,0),W=f+V|0,W=O>>>0>(AA=O+AA|0)>>>0?W+1|0:W,V=Ig(UA,L,-997805,-1),O=f+W|0,O=V>>>0>(AA=V+AA|0)>>>0?O+1|0:O,FA=g=BA-(W=-2097152&g)|0,eA=Z=Z-((W>>>0>BA>>>0)+oA|0)|0,AA=(V=Ig(dA,rA,136657,0))+AA|0,W=f+O|0,g=Ig(g,Z,-683901,-1),V=f+(V>>>0>AA>>>0?W+1|0:W)|0,Z=V=g>>>0>(gA=g+AA|0)>>>0?V+1|0:V,yA=W=V-((gA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(g=gA- -1048576|0)>>>21,W=(W>>21)+I|0,oA=V=(W=V>>>0>(AA=V+_A|0)>>>0?W+1|0:W)-((AA>>>0<4293918720)-1|0)|0,BA=(2097151&V)<<11|(I=AA- -1048576|0)>>>21,V=(V>>21)+mA|0,hA=_A=BA+qA|0,_A=BA>>>0>_A>>>0?V+1|0:V,DA=AA-(I&=-2097152)|0,fA=W-((I>>>0>AA>>>0)+oA|0)|0,HA=gA-(I=-2097152&g)|0,YA=Z-((I>>>0>gA>>>0)+yA|0)|0,I=Ig(lA,v,666643,0),W=f+(cA-(((g=-2097152&aA)>>>0>KA>>>0)+xA|0)|0)|0,W=I>>>0>(O=I+(KA-g|0)|0)>>>0?W+1|0:W,I=Ig(wA,R,470296,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(UA,L,654183,0),W=f+V|0,AA=g=I+g|0,I=I>>>0>g>>>0?W+1|0:W,$=iA-(g=-2097152&$)|0,Z=IA-((g>>>0>iA>>>0)+sA|0)|0,g=Ig(u,l,470296,0),O=f,W=g,g=Ig(M,x,666643,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(U,K,654183,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(J,b,-997805,-1))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(H,Y,136657,0),W=f+W|0,O=CA+(g>>>0>(V=g+O|0)>>>0?W+1|0:W)|0,O=(g=V+EA|0)>>>0>>0?O+1|0:O,W=g,g=Ig(m,d,-683901,-1),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,oA=(g=(2097151&JA)<<11|NA>>>21)+(V-(W=-2097152&T)|0)|0,W=(O-((W>>>0>V>>>0)+bA|0)|0)+(JA>>21)|0,iA=W=g>>>0>oA>>>0?W+1|0:W,sA=g=W-((oA>>>0<4293918720)-1|0)|0,W=(O=g>>21)+Z|0,JA=W=(g=(V=(2097151&g)<<11|(BA=oA- -1048576|0)>>>21)+$|0)>>>0>>0?W+1|0:W,yA=g,g=Ig(g,W,-683901,-1),V=f+I|0,V=g>>>0>(O=g+AA|0)>>>0?V+1|0:V,I=Ig(dA,rA,-997805,-1),W=f+V|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(FA,eA,136657,0),O=f+W|0,NA=g=I+g|0,$=I>>>0>g>>>0?O+1|0:O,T=kA-(I=-2097152&QA)|0,IA=tA-((I>>>0>kA>>>0)+X|0)|0,I=Ig(B,0,s,0),g=f,O=I,I=Ig(E,0,w,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(a,0,F,0),W=f+W|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(r,0,k,0),O=f+W|0,I=I>>>0>(W=g=I+g|0)>>>0?O+1|0:O,g=Ig(B,0,w,0),O=f,Z=(V=g)+(g=Ig(E,0,k,0))|0,V=f+O|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(r,0,F,0),O=f+V|0,g=O=g>>>0>(Z=g+Z|0)>>>0?O+1|0:O,lA=O=O-((Z>>>0<4293918720)-1|0)|0,V=O>>>21|0,EA=(O=(2097151&O)<<11|(cA=Z- -1048576|0)>>>21)+W|0,W=I+V|0,aA=W=O>>>0>EA>>>0?W+1|0:W,KA=I=W-((EA>>>0<4293918720)-1|0)|0,O=(V=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(gA=EA- -1048576|0)>>>21)>>>0>(W=I+T|0)>>>0?O+1|0:O,V=(I=Ig(wA,R,666643,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(UA,L,470296,0),W=f+W|0,W=I>>>0>(O=I+V|0)>>>0?W+1|0:W,V=(I=Ig(yA,JA,136657,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,W=(I=Ig(dA,rA,654183,0))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,I=Ig(FA,eA,-997805,-1),O=f+V|0,CA=O=I>>>0>(AA=I+W|0)>>>0?O+1|0:O,GA=I=O-((AA>>>0<4293918720)-1|0)|0,W=(V=I>>21)+$|0,NA=O=(W=(I=(O=(2097151&I)<<11|(T=AA- -1048576|0)>>>21)+NA|0)>>>0>>0?W+1|0:W)-((I>>>0<4293918720)-1|0)|0,$=(2097151&O)<<11|(IA=I- -1048576|0)>>>21,O=(O>>21)+YA|0,MA=QA=$+HA|0,tA=$>>>0>QA>>>0?O+1|0:O,$=I,V=W,W=(iA-(((O=-2097152&BA)>>>0>oA>>>0)+sA|0)|0)+(SA>>21)|0,QA=W=(I=(oA-O|0)+(BA=(2097151&SA)<<11|pA>>>21)|0)>>>0>>0?W+1|0:W,bA=W=W-((I>>>0<4293918720)-1|0)|0,oA=O=W>>21,W=Ig(wA=(2097151&W)<<11|(iA=I- -1048576|0)>>>21,O,-683901,-1),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,HA=$-(W=-2097152&IA)|0,YA=O-((W>>>0>$>>>0)+NA|0)|0,O=Ig(wA,oA,136657,0),W=f+CA|0,W=O>>>0>(V=O+AA|0)>>>0?W+1|0:W,sA=V-(O=-2097152&T)|0,NA=W-((O>>>0>V>>>0)+GA|0)|0,V=(O=Ig(UA,L,666643,0))+(EA-(W=-2097152&gA)|0)|0,W=f+(aA-((W>>>0>EA>>>0)+KA|0)|0)|0,W=O>>>0>V>>>0?W+1|0:W,$=(O=Ig(yA,JA,-997805,-1))+V|0,V=f+W|0,V=O>>>0>$>>>0?V+1|0:V,W=Ig(dA,rA,470296,0),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,V=Ig(FA,eA,654183,0),W=f+O|0,SA=$=V+$|0,CA=V>>>0>$>>>0?W+1|0:W,$=Z,Z=g,g=Ig(E,0,F,0),O=f,W=g,g=Ig(B,0,k,0),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,g=Ig(B,0,F,0),kA=W=f,EA=g,aA=g- -1048576|0,KA=g=W-((g>>>0<4293918720)-1|0)|0,W=g>>>21|0,BA=(g=(2097151&g)<<11|aA>>>21)+V|0,V=W+O|0,gA=V=g>>>0>BA>>>0?V+1|0:V,GA=g=V-((BA>>>0<4293918720)-1|0)|0,O=(W=g>>>21|0)+Z|0,O=(g=(2097151&g)<<11|(AA=BA- -1048576|0)>>>21)>>>0>(V=g+$|0)>>>0?O+1|0:O,Z=(g=Ig(yA,JA,654183,0))+(V-(W=-2097152&cA)|0)|0,V=f+(O-((8191&lA)+(W>>>0>V>>>0)|0)|0)|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(dA,rA,666643,0),W=f+V|0,W=g>>>0>(O=g+Z|0)>>>0?W+1|0:W,T=(g=Ig(FA,eA,470296,0))+O|0,O=f+W|0,IA=O=g>>>0>T>>>0?O+1|0:O,pA=g=O-((T>>>0<4293918720)-1|0)|0,W=(W=g>>21)+CA|0,V=W=(g=(2097151&g)<<11|($=T- -1048576|0)>>>21)>>>0>(Z=g+SA|0)>>>0?W+1|0:W,cA=O=W-((Z>>>0<4293918720)-1|0)|0,CA=(2097151&O)<<11|(g=Z- -1048576|0)>>>21,O=(O>>21)+NA|0,CA=CA>>>0>(rA=SA=CA+sA|0)>>>0?O+1|0:O,W=Ig(wA,oA,-997805,-1),O=f+V|0,dA=(Z=W+Z|0)-(g&=-2097152)|0,NA=(W>>>0>Z>>>0?O+1|0:O)-((g>>>0>Z>>>0)+cA|0)|0,g=Ig(wA,oA,654183,0),V=f+IA|0,V=g>>>0>(O=g+T|0)>>>0?V+1|0:V,SA=O-(g=-2097152&$)|0,pA=V-((g>>>0>O>>>0)+pA|0)|0,g=Ig(yA,JA,470296,0),W=f+(gA-((8191&GA)+((O=-2097152&AA)>>>0>BA>>>0)|0)|0)|0,W=g>>>0>(V=g+(BA-O|0)|0)>>>0?W+1|0:W,g=Ig(FA,eA,666643,0),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,Z=O,g=Ig(yA,JA,666643,0),V=f+(kA-((2047&KA)+((O=-2097152&aA)>>>0>EA>>>0)|0)|0)|0,T=V=g>>>0>(AA=g+(EA-O|0)|0)>>>0?V+1|0:V,cA=g=V-((AA>>>0<4293918720)-1|0)|0,W=W+(O=g>>21)|0,aA=g=(W=(g=(2097151&g)<<11|(IA=AA- -1048576|0)>>>21)>>>0>($=g+Z|0)>>>0?W+1|0:W)-(($>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,g=(g=(2097151&g)<<11|(Z=$- -1048576|0)>>>21)>>>0>(gA=g+SA|0)>>>0?V+1|0:V,O=Ig(wA,oA,470296,0),W=f+W|0,W=O>>>0>(V=O+$|0)>>>0?W+1|0:W,Z=V-(O=-2097152&Z)|0,$=W-((O>>>0>V>>>0)+aA|0)|0,O=Ig(wA,oA,666643,0),V=f+(T-(((W=-2097152&IA)>>>0>AA>>>0)+cA|0)|0)|0,O=(W=(V=O>>>0>(BA=O+(AA-W|0)|0)>>>0?V+1|0:V)>>21)+$|0,W=g+(V=(O=(V=(2097151&V)<<11|BA>>>21)>>>0>(Z=V+Z|0)>>>0?O+1|0:O)>>21)|0,O=(O=(W=(g=$=(O=(2097151&O)<<11|Z>>>21)+gA|0)>>>0>>0?W+1|0:W)>>21)+NA|0,W=(W=(O=(W=(2097151&W)<<11|g>>>21)>>>0>(cA=W+dA|0)>>>0?O+1|0:O)>>21)+CA|0,V=(O=(W=(O=(2097151&O)<<11|cA>>>21)>>>0>(aA=O+rA|0)>>>0?W+1|0:W)>>21)+YA|0,O=(W=(V=(W=(2097151&W)<<11|aA>>>21)>>>0>(gA=W+HA|0)>>>0?V+1|0:V)>>21)+tA|0,W=(V=(O=(V=(2097151&V)<<11|gA>>>21)>>>0>(AA=V+MA|0)>>>0?O+1|0:O)>>21)+fA|0,O=(O=(W=(O=(2097151&O)<<11|AA>>>21)>>>0>(CA=O+DA|0)>>>0?W+1|0:W)>>21)+_A|0,W=(W=(O=(W=(2097151&W)<<11|CA>>>21)>>>0>(T=W+hA|0)>>>0?O+1|0:O)>>21)+PA|0,V=(O=(W=(O=(2097151&O)<<11|T>>>21)>>>0>(IA=O+LA|0)>>>0?W+1|0:W)>>21)+nA|0,W=(QA-((I>>>0<(O=-2097152&iA)>>>0)+bA|0)|0)+((V=(W=(2097151&W)<<11|IA>>>21)>>>0>($=W+RA|0)>>>0?V+1|0:V)>>21)|0,QA=O=(W=(iA=(tA=I-O|0)+((2097151&V)<<11|$>>>21)|0)>>>0>>0?W+1|0:W)>>21,I=(I=Ig(tA=(2097151&W)<<11|iA>>>21,O,666643,0))+(O=2097151&BA)|0,V=f,C[0|A]=I,V=I>>>0>>0?V+1|0:V,C[A+1|0]=(255&V)<<24|I>>>8,O=2097151&Z,Z=Ig(tA,QA,470296,0)+O|0,W=f,W=(V>>21)+(W=O>>>0>Z>>>0?W+1|0:W)|0,W=(Z=(BA=(2097151&V)<<11|I>>>21)+Z|0)>>>0>>0?W+1|0:W,C[A+4|0]=(2047&W)<<21|Z>>>11;C[A+3|0]=(7&W)<<29|Z>>>3,C[A+2|0]=31&((65535&V)<<16|I>>>16)|Z<<5,I=2097151&g,g=Ig(tA,QA,654183,0)+I|0,V=f,V=I>>>0>g>>>0?V+1|0:V,I=W,O=(W>>=21)+V|0,I=O=(I=(2097151&I)<<11|Z>>>21)>>>0>(g=I+g|0)>>>0?O+1|0:O,C[A+6|0]=(63&O)<<26|g>>>6,W=0,C[A+5|0]=W<<13|(1572864&Z)>>>19|g<<2,W=2097151&cA,V=Ig(tA,QA,-997805,-1)+W|0,O=f,O=W>>>0>V>>>0?O+1|0:O,W=(W=I>>21)+O|0,W=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0>>0?W+1|0:W,C[A+9|0]=(511&W)<<23|I>>>9,C[A+8|0]=(1&W)<<31|I>>>1,O=0,C[A+7|0]=O<<18|(2080768&g)>>>14|I<<7,g=2097151&aA,O=Ig(tA,QA,136657,0)+g|0,V=f,V=g>>>0>O>>>0?V+1|0:V,g=(Z=(2097151&(g=W))<<11|I>>>21)+O|0,O=(W>>=21)+V|0,O=g>>>0>>0?O+1|0:O,C[A+12|0]=(4095&O)<<20|g>>>12,C[A+11|0]=(15&O)<<28|g>>>4,W=0,C[A+10|0]=W<<15|(1966080&I)>>>17|g<<4,I=2097151&gA,V=Ig(tA,QA,-683901,-1)+I|0,W=f,W=I>>>0>V>>>0?W+1|0:W,I=O,O=W+(O>>=21)|0,O=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0>>0?O+1|0:O,C[A+14|0]=(127&O)<<25|I>>>7,W=0,C[A+13|0]=W<<12|(1048576&g)>>>20|I<<1,W=O>>21,W=(g=(O=(2097151&O)<<11|I>>>21)+(2097151&AA)|0)>>>0>>0?W+1|0:W,C[A+17|0]=(1023&W)<<22|g>>>10,C[A+16|0]=(3&W)<<30|g>>>2,O=0,C[A+15|0]=O<<17|(2064384&I)>>>15|g<<6,I=W,W>>=21,V=(I=(O=(2097151&I)<<11|g>>>21)+(2097151&CA)|0)>>>0>>0?W+1|0:W,C[A+20|0]=(8191&V)<<19|I>>>13,C[A+19|0]=(31&V)<<27|I>>>5,O=V>>21,O=(W=(Z=(2097151&V)<<11|I>>>21)+(2097151&T)|0)>>>0>>0?O+1|0:O,Z=W,C[A+21|0]=W,W=0,C[A+18|0]=W<<14|(1835008&g)>>>18|I<<3,C[A+22|0]=(255&O)<<24|Z>>>8,W=O>>21,W=(I=(g=(2097151&O)<<11|Z>>>21)+(2097151&IA)|0)>>>0>>0?W+1|0:W,C[A+25|0]=(2047&W)<<21|I>>>11,C[A+24|0]=(7&W)<<29|I>>>3,C[A+23|0]=31&((65535&O)<<16|Z>>>16)|I<<5,O=(2097151&W)<<11|I>>>21,W>>=21,W=(g=O+(2097151&$)|0)>>>0>>0?W+1|0:W,C[A+27|0]=(63&W)<<26|g>>>6,O=0,C[A+26|0]=O<<13|(1572864&I)>>>19|g<<2,I=W,O=W>>=21,O=(I=(Z=(2097151&I)<<11|g>>>21)+(V=2097151&iA)|0)>>>0>>0?O+1|0:O,C[A+31|0]=(131071&O)<<15|I>>>17,C[A+30|0]=(511&O)<<23|I>>>9,W=0,C[A+28|0]=W<<18|(2080768&g)>>>14|I<<7,C[A+29|0]=Z+iA>>>1}function k(A,I,g,C){for(var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0;E=(B=_<<3)+g|0,Q=o[0|(B=I+B|0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,G=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,c=Q<<24|(65280&Q)<<8,t=(a=16711680&Q)<<24,a=a>>>8|0,B=(e=-16777216&Q)>>>24|0,i[E>>2]=t|e<<8|-16777216&((255&G)<<24|Q>>>8)|16711680&((16777215&G)<<8|Q>>>24)|G>>>8&65280|G>>>24,Q=B|a|c,B=0,i[E+4>>2]=Q|B,16!=(0|(_=_+1|0)););for(I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I,I=i[A+60>>2],i[C+56>>2]=i[A+56>>2],i[C+60>>2]=I,I=i[A+52>>2],i[C+48>>2]=i[A+48>>2],i[C+52>>2]=I,I=i[A+44>>2],i[C+40>>2]=i[A+40>>2],i[C+44>>2]=I,I=i[A+36>>2],i[C+32>>2]=i[A+32>>2],i[C+36>>2]=I,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I;E=i[C+56>>2],a=i[C+60>>2],B=i[(I=G=(M=P<<3)+g|0)>>2],I=i[I+4>>2],k=Q=i[C+36>>2],Q=UI(p=i[C+32>>2],Q,50),_=f,Q=UI(p,k,46)^Q,_^=f,Q=UI(p,k,23)^Q,I=(f^_)+I|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,B=(_=i[(Q=M+34416|0)>>2])+B|0,I=i[Q+4>>2]+I|0,I=B>>>0<_>>>0?I+1|0:I,Q=(_=((t=i[C+48>>2])^(y=i[C+40>>2]))&p^t)+B|0,B=(((w=i[C+52>>2])^(F=i[C+44>>2]))&k^w)+I|0,I=(Q>>>0<_>>>0?B+1|0:B)+a|0,I=(E=Q+E|0)>>>0>>0?I+1|0:I,_=(Q=i[C+24>>2])+E|0,B=i[C+28>>2]+I|0,s=B=Q>>>0>_>>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,n=B=i[C+4>>2],B=UI(Q=i[C>>2],B,36),a=f,B=UI(Q,n,30)^B,a^=f,e=E+(UI(Q,n,25)^B)|0,B=I+(f^a)|0,B=E>>>0>e>>>0?B+1|0:B,c=(I=e)+(e=Q&((a=i[C+16>>2])|(E=i[C+8>>2]))|E&a)|0,I=(I=B)+(n&((B=i[C+20>>2])|(h=i[C+12>>2]))|B&h)|0,e=I=c>>>0>>0?I+1|0:I,i[C+56>>2]=c,i[C+60>>2]=I,r=a,D=B,N=i[(I=l=(S=8|M)+g|0)>>2],U=i[I+4>>2],B=((k^F)&s^F)+w|0,B=(I=(a=(y^p)&_^y)+t|0)>>>0>>0?B+1|0:B,a=UI(_,s,50),t=f,a=UI(_,s,46)^a,t^=f,a=(w=UI(_,s,23)^a)+I|0,I=(f^t)+B|0,I=(a>>>0>>0?I+1|0:I)+U|0,I=(B=a+N|0)>>>0>>0?I+1|0:I,a=(a=B)+(t=i[(B=S+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(I=a>>>0>>0?B+1|0:B)+D|0,w=B=(t=a+r|0)>>>0>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+((h|n)&e|h&n)|0,I=(B=a+((Q|E)&c|Q&E)|0)>>>0>>0?I+1|0:I,a=UI(c,e,36),r=f,a=UI(c,e,30)^a,r^=f,D=B,B=UI(c,e,25)^a,I=(f^r)+I|0,r=I=B>>>0>(a=D+B|0)>>>0?I+1|0:I,i[C+48>>2]=a,i[C+52>>2]=I,D=E,S=h,I=(h=i[(B=Y=(E=16|M)+g|0)>>2])+y|0,B=i[B+4>>2]+F|0,B=I>>>0>>0?B+1|0:B,E=(y=I)+(h=i[(I=E+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=((s^k)&w^k)+(I=E>>>0>>0?I+1|0:I)|0,I=(B=(B=E)+(E=(_^p)&t^p)|0)>>>0>>0?I+1|0:I,E=UI(t,w,50),h=f,E=UI(t,w,46)^E,h^=f,E=(y=UI(t,w,23)^E)+B|0,B=(f^h)+I|0,B=(y=E>>>0>>0?B+1|0:B)+S|0,S=B=(h=E)>>>0>(E=E+D|0)>>>0?B+1|0:B,i[C+8>>2]=E,i[C+12>>2]=B,I=UI(a,r,36),B=f,I=UI(a,r,30)^I,B^=f,F=UI(a,r,25)^I,I=((e|n)&r|e&n)+(f^B)|0,B=y+((D=F+((Q|c)&a|Q&c)|0)>>>0>>0?I+1|0:I)|0,h=B=(y=h+D|0)>>>0>>0?B+1|0:B,i[C+40>>2]=y,i[C+44>>2]=B,D=Q,B=(B=p)+(p=i[(I=u=(Q=24|M)+g|0)>>2])|0,I=i[I+4>>2]+k|0,I=B>>>0

>>0?I+1|0:I,Q=(F=B)+(p=i[(B=Q+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(s^(s^w)&S)+(B=Q>>>0

>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=_^(_^t)&E)|0)>>>0>>0?B+1|0:B,Q=UI(E,S,50),p=f,Q=UI(E,S,46)^Q,p^=f,Q=(k=UI(E,S,23)^Q)+I|0,I=(f^p)+B|0,B=(I=Q>>>0>>0?I+1|0:I)+n|0,k=B=(n=Q+D|0)>>>0>>0?B+1|0:B,i[C>>2]=n,i[C+4>>2]=B,B=UI(y,h,36),p=f,B=UI(y,h,30)^B,D=f^p,F=UI(y,h,25)^B,B=((e|r)&h|e&r)+(f^D)|0,I=I+((p=F+((a|c)&y|a&c)|0)>>>0>>0?B+1|0:B)|0,p=I=(D=Q+p|0)>>>0>>0?I+1|0:I,i[C+32>>2]=D,i[C+36>>2]=I,Q=i[(B=m=(I=32|M)+g|0)>>2],B=s+i[B+4>>2]|0,B=(Q=Q+_|0)>>>0<_>>>0?B+1|0:B,Q=(_=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(w^(w^S)&k)+(I=Q>>>0<_>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=t^(E^t)&n)|0)>>>0>>0?I+1|0:I,Q=UI(n,k,50),_=f,Q=UI(n,k,46)^Q,_^=f,Q=(s=UI(n,k,23)^Q)+B|0,B=(f^_)+I|0,F=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(D,p,36),_=f,B=UI(D,p,30)^B,s=f^_,N=UI(D,p,25)^B,B=((r|h)&p|r&h)+(f^s)|0,I=((_=N+((a|y)&D|a&y)|0)>>>0>>0?B+1|0:B)+I|0,_=I=(s=Q+_|0)>>>0<_>>>0?I+1|0:I,i[C+24>>2]=s,i[C+28>>2]=I,B=e+F|0,F=B=(e=Q+c|0)>>>0>>0?B+1|0:B,i[C+56>>2]=e,i[C+60>>2]=B,Q=i[(I=J=(B=40|M)+g|0)>>2],I=w+i[I+4>>2]|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,Q=(c=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=E^(E^n)&e)|0)>>>0>>0?B+1|0:B,Q=UI(e,F,50),c=f,Q=UI(e,F,46)^Q,c^=f,Q=(t=UI(e,F,23)^Q)+I|0,I=(f^c)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(s,_,36),c=f,B=UI(s,_,30)^B,t=f^c,w=UI(s,_,25)^B,B=((h|p)&_|h&p)+(f^t)|0,B=((c=w+((y|D)&s|y&D)|0)>>>0>>0?B+1|0:B)+I|0,c=B=(t=Q+c|0)>>>0>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+r|0,N=I=(r=Q+a|0)>>>0>>0?I+1|0:I,i[C+48>>2]=r,i[C+52>>2]=I,Q=i[(B=H=(I=48|M)+g|0)>>2],B=S+i[B+4>>2]|0,B=(Q=Q+E|0)>>>0>>0?B+1|0:B,Q=(E=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=n^(e^n)&r)|0)>>>0>>0?I+1|0:I,Q=UI(r,N,50),E=f,Q=UI(r,N,46)^Q,E^=f,Q=(a=UI(r,N,23)^Q)+B|0,B=(f^E)+I|0,a=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(t,c,36),E=f,B=UI(t,c,30)^B,w=f^E,S=UI(t,c,25)^B,B=((_|p)&c|_&p)+(f^w)|0,I=((E=S+((s|D)&t|s&D)|0)>>>0>>0?B+1|0:B)+I|0,w=I=(B=E)>>>0>(E=Q+E|0)>>>0?I+1|0:I,i[C+8>>2]=E,i[C+12>>2]=I,B=a+h|0,S=B=(U=Q+y|0)>>>0>>0?B+1|0:B,i[C+40>>2]=U,i[C+44>>2]=B,Q=i[(I=d=(B=56|M)+g|0)>>2],I=k+i[I+4>>2]|0,I=(Q=Q+n|0)>>>0>>0?I+1|0:I,Q=(a=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(F^(F^N)&S)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=e^(e^r)&U)|0)>>>0>>0?B+1|0:B,Q=UI(U,S,50),a=f,Q=UI(U,S,46)^Q,a^=f,Q=(h=UI(U,S,23)^Q)+I|0,I=(f^a)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(E,w,36),a=f,B=UI(E,w,30)^B,h=f^a,y=UI(E,w,25)^B,B=((_|c)&w|_&c)+(f^h)|0,B=((a=y+((t|s)&E|t&s)|0)>>>0>>0?B+1|0:B)+I|0,h=B=(h=a)>>>0>(a=Q+a|0)>>>0?B+1|0:B,i[C>>2]=a,i[C+4>>2]=B,I=I+p|0,k=I=(y=Q+D|0)>>>0>>0?I+1|0:I,i[C+32>>2]=y,i[C+36>>2]=I,Q=i[(B=x=(I=64|M)+g|0)>>2],B=F+i[B+4>>2]|0,B=(Q=Q+e|0)>>>0>>0?B+1|0:B,Q=(e=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(N^(S^N)&k)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=r^(r^U)&y)|0)>>>0>>0?I+1|0:I,Q=UI(y,k,50),e=f,Q=UI(y,k,46)^Q,e^=f,Q=(n=UI(y,k,23)^Q)+B|0,B=(f^e)+I|0,p=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(a,h,36),e=f,B=UI(a,h,30)^B,n=f^e,D=UI(a,h,25)^B,B=((c|w)&h|c&w)+(f^n)|0,I=((e=D+((E|t)&a|E&t)|0)>>>0>>0?B+1|0:B)+I|0,e=I=(n=Q+e|0)>>>0>>0?I+1|0:I,i[C+56>>2]=n,i[C+60>>2]=I,B=_+p|0,F=B=(_=Q+s|0)>>>0>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,Q=i[(I=b=(B=72|M)+g|0)>>2],I=N+i[I+4>>2]|0,I=(Q=Q+r|0)>>>0>>0?I+1|0:I,Q=(r=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=U^(y^U)&_)|0)>>>0>>0?B+1|0:B,Q=UI(_,F,50),r=f,Q=UI(_,F,46)^Q,r^=f,Q=(p=UI(_,F,23)^Q)+I|0,I=(f^r)+B|0,I=Q>>>0

>>0?I+1|0:I,B=UI(n,e,36),r=f,B=UI(n,e,30)^B,p=f^r,D=UI(n,e,25)^B,B=((h|w)&e|h&w)+(f^p)|0,B=((r=D+((E|a)&n|E&a)|0)>>>0>>0?B+1|0:B)+I|0,r=B=(p=Q+r|0)>>>0>>0?B+1|0:B,i[C+48>>2]=p,i[C+52>>2]=B,I=I+c|0,N=I=(c=Q+t|0)>>>0>>0?I+1|0:I,i[C+16>>2]=c,i[C+20>>2]=I,I=(I=U)+(t=i[(B=U=(Q=80|M)+g|0)>>2])|0,B=i[B+4>>2]+S|0,B=I>>>0>>0?B+1|0:B,Q=(s=I)+(t=i[(I=Q+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=y^(_^y)&c)|0)>>>0>>0?I+1|0:I,Q=UI(c,N,50),t=f,Q=UI(c,N,46)^Q,t^=f,Q=(D=UI(c,N,23)^Q)+B|0,B=(f^t)+I|0,s=B=Q>>>0>>0?B+1|0:B,I=B,B=UI(p,r,36),t=f,B=UI(p,r,30)^B,D=f^t,S=UI(p,r,25)^B,B=((e|h)&r|e&h)+(f^D)|0,I=((t=S+((a|n)&p|a&n)|0)>>>0>>0?B+1|0:B)+I|0,t=I=(D=Q+t|0)>>>0>>0?I+1|0:I,i[C+40>>2]=D,i[C+44>>2]=I,B=s+w|0,w=B=(s=Q+E|0)>>>0>>0?B+1|0:B,i[C+8>>2]=s,i[C+12>>2]=B,B=34416+(I=88|M)|0,E=i[(I=K=I+g|0)>>2],Q=i[B>>2]+E|0,I=i[B+4>>2]+i[I+4>>2]|0,B=k+(Q>>>0>>0?I+1|0:I)|0,B=(F^(F^N)&w)+(B=(I=Q+y|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=_^(_^c)&s)+I|0)>>>0>>0?B+1|0:B,Q=UI(s,w,50),E=f,Q=UI(s,w,46)^Q,E^=f,Q=(y=UI(s,w,23)^Q)+I|0,I=(f^E)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(D,t,36),E=f,B=UI(D,t,30)^B,y=f^E,S=UI(D,t,25)^B,B=((e|r)&t|e&r)+(f^y)|0,B=((E=S+((p|n)&D|p&n)|0)>>>0>>0?B+1|0:B)+I|0,y=B=(y=E)>>>0>(E=Q+E|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,I=I+h|0,h=I=(B=a)>>>0>(a=Q+a|0)>>>0?I+1|0:I,i[C>>2]=a,i[C+4>>2]=I,B=34416+(I=96|M)|0,S=i[(I=v=I+g|0)>>2],Q=i[B>>2]+S|0,B=i[B+4>>2]+i[I+4>>2]|0,I=F+(Q>>>0>>0?B+1|0:B)|0,I=(B=Q+_|0)>>>0<_>>>0?I+1|0:I,Q=(_=c^(c^s)&a)+B|0,B=(N^(w^N)&h)+I|0,B=Q>>>0<_>>>0?B+1|0:B,I=UI(a,h,50),_=f,I=UI(a,h,46)^I,_^=f,F=Q,Q=UI(a,h,23)^I,B=(f^_)+B|0,k=B=(I=F+Q|0)>>>0>>0?B+1|0:B,Q=I,I=UI(E,y,36),_=f,I=UI(E,y,30)^I,S=f^_,F=UI(E,y,25)^I,I=((t|r)&y|t&r)+(f^S)|0,B=((_=F+((p|D)&E|p&D)|0)>>>0>>0?I+1|0:I)+B|0,_=B=(S=Q+_|0)>>>0<_>>>0?B+1|0:B,i[C+24>>2]=S,i[C+28>>2]=B,B=e+k|0,e=B=(n=Q+n|0)>>>0>>0?B+1|0:B,i[C+56>>2]=n,i[C+60>>2]=B,B=34416+(I=104|M)|0,k=i[(I=L=I+g|0)>>2],Q=i[B>>2]+k|0,I=i[B+4>>2]+i[I+4>>2]|0,B=N+(Q>>>0>>0?I+1|0:I)|0,B=(I=Q+c|0)>>>0>>0?B+1|0:B,Q=(c=s^(a^s)&n)+I|0,I=(w^(h^w)&e)+B|0,I=Q>>>0>>0?I+1|0:I,B=UI(n,e,50),c=f,B=UI(n,e,46)^B,c^=f,k=UI(n,e,23)^B,B=(f^c)+I|0,F=B=(Q=k+Q|0)>>>0>>0?B+1|0:B,I=B,B=UI(S,_,36),c=f,B=UI(S,_,30)^B,k=f^c,N=UI(S,_,25)^B,B=((t|y)&_|t&y)+(f^k)|0,I=((c=N+((E|D)&S|E&D)|0)>>>0>>0?B+1|0:B)+I|0,c=I=(k=Q+c|0)>>>0>>0?I+1|0:I,i[C+16>>2]=k,i[C+20>>2]=I,I=r+F|0,r=I=(p=Q+p|0)>>>0>>0?I+1|0:I,i[C+48>>2]=p,i[C+52>>2]=I,B=34416+(I=112|M)|0,F=i[(Q=N=I+g|0)>>2],I=i[B>>2]+F|0,B=i[B+4>>2]+i[Q+4>>2]|0,B=w+(I>>>0>>0?B+1|0:B)|0,B=(h^(e^h)&r)+(B=(I=I+s|0)>>>0>>0?B+1|0:B)|0,B=(I=(Q=a^(a^n)&p)+I|0)>>>0>>0?B+1|0:B,Q=UI(p,r,50),s=f,Q=UI(p,r,46)^Q,s^=f,Q=(w=UI(p,r,23)^Q)+I|0,I=(f^s)+B|0,F=I=Q>>>0>>0?I+1|0:I,B=I,I=UI(k,c,36),s=f,I=UI(k,c,30)^I,w=f^s,R=UI(k,c,25)^I,I=((_|y)&c|_&y)+(f^w)|0,B=((s=R+((E|S)&k|E&S)|0)>>>0>>0?I+1|0:I)+B|0,s=B=(w=Q+s|0)>>>0>>0?B+1|0:B,i[C+8>>2]=w,i[C+12>>2]=B,B=t+F|0,Q=B=(t=Q+D|0)>>>0>>0?B+1|0:B,i[C+40>>2]=t,i[C+44>>2]=B,B=34416+(I=120|M)|0,M=i[(I=D=I+g|0)>>2],F=i[B>>2]+M|0,B=i[B+4>>2]+i[I+4>>2]|0,I=h+(F>>>0>>0?B+1|0:B)|0,I=(e^(e^r)&Q)+(I=(B=a+F|0)>>>0>>0?I+1|0:I)|0,I=(B=(a=n^(p^n)&t)+B|0)>>>0>>0?I+1|0:I,a=UI(t,Q,50),e=f,a=UI(t,Q,46)^a,e^=f,Q=(a=UI(t,Q,23)^a)+B|0,B=(f^e)+I|0,B=Q>>>0>>0?B+1|0:B,a=Q,e=B,I=B,B=UI(w,s,36),t=f,B=UI(w,s,30)^B,r=f^t,h=UI(w,s,25)^B,B=((_|c)&s|_&c)+(f^r)|0,I=((t=h+((k|S)&w|k&S)|0)>>>0>>0?B+1|0:B)+I|0,I=(Q=Q+t|0)>>>0>>0?I+1|0:I,i[C>>2]=Q,i[C+4>>2]=I,B=e+y|0,B=(r=E)>>>0>(E=E+a|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,64!=(0|P);)c=((P=P+16|0)<<3)+g|0,a=i[G>>2],_=i[G+4>>2],R=i[b>>2],e=I=i[b+4>>2],B=I,Q=I=i[N+4>>2],I=UI(S=i[N>>2],I,45),E=f,r=((63&Q)<<26|S>>>6)^(I=UI(S,Q,3)^I),I=(Q>>>6^(t=f^E))+B|0,B=((E=r+R|0)>>>0>>0?I+1|0:I)+_|0,B=(I=E+a|0)>>>0>>0?B+1|0:B,a=E=i[l+4>>2],E=UI(_=i[l>>2],E,63),t=f,E=((127&a)<<25|_>>>7)^UI(_,a,56)^E,B=(f^t^a>>>7)+B|0,E=B=E>>>0>(k=E+I|0)>>>0?B+1|0:B,i[c>>2]=k,i[c+4>>2]=B,_=(N=i[U>>2])+_|0,I=(c=i[U+4>>2])+a|0,B=_>>>0>>0?I+1|0:I,a=I=i[D+4>>2],I=UI(F=i[D>>2],I,45),t=f,r=_,_=((63&a)<<26|F>>>6)^UI(F,a,3)^I,B=(f^t^a>>>6)+B|0,_=_>>>0>(r=r+_|0)>>>0?B+1|0:B,B=UI(t=i[Y>>2],I=i[Y+4>>2],63),h=f,s=r,r=((127&I)<<25|t>>>7)^UI(t,I,56)^B,B=(f^h^I>>>7)+_|0,_=B=r>>>0>(w=s+r|0)>>>0?B+1|0:B,i[G+136>>2]=w,i[G+140>>2]=B,B=(U=i[K>>2])+t|0,I=(t=i[K+4>>2])+I|0,r=UI(k,E,45),h=f,r=(y=((63&E)<<26|k>>>6)^UI(k,E,3)^r)+B|0,B=(f^h^E>>>6)+(B>>>0>>0?I+1|0:I)|0,B=r>>>0>>0?B+1|0:B,h=I=i[u+4>>2],I=UI(y=i[u>>2],I,63),n=f,s=r,r=((127&h)<<25|y>>>7)^UI(y,h,56)^I,B=(f^n^h>>>7)+B|0,r=B=r>>>0>(M=s+r|0)>>>0?B+1|0:B,i[G+144>>2]=M,i[G+148>>2]=B,y=(l=i[v>>2])+y|0,I=(I=h)+(h=i[v+4>>2])|0,B=y>>>0>>0?I+1|0:I,I=UI(w,_,45),n=f,p=((63&_)<<26|w>>>6)^UI(w,_,3)^I,B=(f^n^_>>>6)+B|0,B=(y=p+y|0)>>>0

>>0?B+1|0:B,n=I=i[m+4>>2],I=UI(p=i[m>>2],I,63),D=f,s=y,y=((127&n)<<25|p>>>7)^UI(p,n,56)^I,B=(f^D^n>>>7)+B|0,y=B=y>>>0>(Y=s+y|0)>>>0?B+1|0:B,i[G+152>>2]=Y,i[G+156>>2]=B,I=(u=i[L>>2])+p|0,B=(B=n)+(n=i[L+4>>2])|0,p=UI(M,r,45),D=f,p=((63&r)<<26|M>>>6)^UI(M,r,3)^p,B=(f^D^r>>>6)+(I>>>0>>0?B+1|0:B)|0,p=(s=p+I|0)>>>0

>>0?B+1|0:B,B=UI(D=i[J>>2],I=i[J+4>>2],63),m=f,K=s,s=((127&I)<<25|D>>>7)^(B=UI(D,I,56)^B),B=(I>>>7^(J=f^m))+p|0,p=B=s>>>0>(m=K+s|0)>>>0?B+1|0:B,i[G+160>>2]=m,i[G+164>>2]=B,I=I+Q|0,I=(B=D+S|0)>>>0>>0?I+1|0:I,D=UI(Y,y,45),s=f,D=(J=((63&y)<<26|Y>>>6)^UI(Y,y,3)^D)+B|0,B=(f^s^y>>>6)+I|0,B=D>>>0>>0?B+1|0:B,s=i[H>>2],H=I=i[H+4>>2],I=UI(s,I,63),J=f,I=UI(s,H,56)^I,K=D,B=(H>>>7^(b=f^J))+B|0,D=B=(D=((127&H)<<25|s>>>7)^I)>>>0>(J=K+D|0)>>>0?B+1|0:B,i[G+168>>2]=J,i[G+172>>2]=B,I=a+H|0,I=(B=s+F|0)>>>0>>0?I+1|0:I,K=s=i[d+4>>2],s=UI(b=i[d>>2],s,63),H=f,s=(d=((127&K)<<25|b>>>7)^UI(b,K,56)^s)+B|0,B=(f^H^K>>>7)+I|0,I=s>>>0>>0?B+1|0:B,B=UI(m,p,45),H=f,B=UI(m,p,3)^B,d=f^H,H=s,I=(p>>>6^d)+I|0,s=I=(s=((63&p)<<26|m>>>6)^B)>>>0>(H=H+s|0)>>>0?I+1|0:I,i[G+176>>2]=H,i[G+180>>2]=I,v=i[x>>2],x=I=i[x+4>>2],d=I,I=UI(R,e,63),B=f,L=((127&e)<<25|R>>>7)^UI(R,e,56)^I,I=(f^B^e>>>7)+_|0,B=((w=L+w|0)>>>0>>0?I+1|0:I)+d|0,B=(I=w+v|0)>>>0>>0?B+1|0:B,_=UI(H,s,45),w=f,d=(_=((63&s)<<26|H>>>6)^UI(H,s,3)^_)+I|0,I=(f^w^s>>>6)+B|0,_=I=_>>>0>d>>>0?I+1|0:I,i[G+192>>2]=d,i[G+196>>2]=I,B=E+K|0,B=(I=k+b|0)>>>0>>0?B+1|0:B,w=UI(v,x,63),b=f,K=((127&x)<<25|v>>>7)^UI(v,x,56)^w,B=(f^b^x>>>7)+B|0,I=(w=K+I|0)>>>0>>0?B+1|0:B,B=UI(J,D,45),b=f,B=UI(J,D,3)^B,x=w,I=(D>>>6^(K=f^b))+I|0,w=I=(w=((63&D)<<26|J>>>6)^B)>>>0>(b=x+w|0)>>>0?I+1|0:I,i[G+184>>2]=b,i[G+188>>2]=I,I=UI(U,t,63),B=f,I=((127&t)<<25|U>>>7)^UI(U,t,56)^I,B=(f^B^t>>>7)+c|0,I=y+(I>>>0>(K=I+N|0)>>>0?B+1|0:B)|0,I=(B=Y+K|0)>>>0>>0?I+1|0:I,y=UI(d,_,45),Y=f,y=UI(d,_,3)^y,K=f^Y,Y=(y^=(63&_)<<26|d>>>6)+B|0,B=(_>>>6^K)+I|0,y=B=y>>>0>Y>>>0?B+1|0:B,i[G+208>>2]=Y,i[G+212>>2]=B,I=UI(N,c,63),B=f,K=UI(N,c,56)^I,B=((I=c>>>7|0)^f^B)+e|0,I=r+((c=(N=K^((127&c)<<25|N>>>7))+R|0)>>>0>>0?B+1|0:B)|0,I=(B=c+M|0)>>>0>>0?I+1|0:I,e=UI(b,w,45),c=f,r=(e=((63&w)<<26|b>>>6)^UI(b,w,3)^e)+B|0,B=(f^c^w>>>6)+I|0,e=B=e>>>0>r>>>0?B+1|0:B,i[G+200>>2]=r,i[G+204>>2]=B,I=UI(u,n,63),B=f,N=((127&n)<<25|u>>>7)^UI(u,n,56)^I,I=(f^B^n>>>7)+h|0,B=D+((c=N+l|0)>>>0>>0?I+1|0:I)|0,B=(I=c+J|0)>>>0>>0?B+1|0:B,c=UI(Y,y,45),D=f,N=I,I=y>>>6|0,c=((63&y)<<26|Y>>>6)^UI(Y,y,3)^c,B=(I^f^D)+B|0,c=B=c>>>0>(y=N+c|0)>>>0?B+1|0:B,i[G+224>>2]=y,i[G+228>>2]=B,I=UI(l,h,63),B=f,I=UI(l,h,56)^I,D=f^B,N=((127&h)<<25|l>>>7)^I,I=((B=h>>>7|0)^D)+t|0,B=p+((h=N+U|0)>>>0>>0?I+1|0:I)|0,B=(I=h+m|0)>>>0>>0?B+1|0:B,t=UI(r,e,45),h=f,D=I,I=e>>>6|0,e=((63&e)<<26|r>>>6)^UI(r,e,3)^t,I=(I^f^h)+B|0,e=I=(t=D+e|0)>>>0>>0?I+1|0:I,i[G+216>>2]=t,i[G+220>>2]=I,I=UI(F,a,63),B=f,h=((127&a)<<25|F>>>7)^UI(F,a,56)^I,B=(f^B^a>>>7)+Q|0,B=w+((I=h+S|0)>>>0>>0?B+1|0:B)|0,I=(r=I+b|0)>>>0>>0?B+1|0:B,B=UI(y,c,45),h=f,D=r,r=UI(y,c,3)^B,B=c>>>6|0,c=D+(r^=(63&c)<<26|y>>>6)|0,I=(B^f^h)+I|0,i[G+240>>2]=c,i[G+244>>2]=c>>>0>>0?I+1|0:I,I=UI(S,Q,63),B=f,I=UI(S,Q,56)^I,c=f^B,B=((B=Q>>>7|0)^c)+n|0,I=s+((I^=(127&Q)<<25|S>>>7)>>>0>(Q=I+u|0)>>>0?B+1|0:B)|0,I=(B=Q+H|0)>>>0>>0?I+1|0:I,Q=UI(t,e,45),c=f,r=B,B=e>>>6|0,Q=((63&e)<<26|t>>>6)^UI(t,e,3)^Q,B=(B^f^c)+I|0,Q=B=Q>>>0>(e=r+Q|0)>>>0?B+1|0:B,i[G+232>>2]=e,i[G+236>>2]=B,I=UI(k,E,63),B=f,r=UI(k,E,56)^I,B=((I=E>>>7|0)^f^B)+a|0,I=_+((E=(c=r^((127&E)<<25|k>>>7))+F|0)>>>0>>0?B+1|0:B)|0,I=(B=E+d|0)>>>0>>0?I+1|0:I,E=UI(e,Q,45),a=f,r=B,B=Q>>>6|0,Q=r+(E=((63&Q)<<26|e>>>6)^UI(e,Q,3)^E)|0,B=(B^f^a)+I|0,i[G+248>>2]=Q,i[G+252>>2]=Q>>>0>>0?B+1|0:B;I=I+i[A+4>>2]|0,I=(g=Q+i[A>>2]|0)>>>0>>0?I+1|0:I,i[A>>2]=g,i[A+4>>2]=I,B=i[A+12>>2]+i[C+12>>2]|0,I=(g=i[C+8>>2])+i[A+8>>2]|0,i[A+8>>2]=I,i[A+12>>2]=I>>>0>>0?B+1|0:B,B=i[A+20>>2]+i[C+20>>2]|0,I=(g=i[C+16>>2])+i[A+16>>2]|0,i[A+16>>2]=I,i[A+20>>2]=I>>>0>>0?B+1|0:B,I=i[A+28>>2]+i[C+28>>2]|0,g=(B=i[C+24>>2])+i[A+24>>2]|0,i[A+24>>2]=g,i[A+28>>2]=g>>>0>>0?I+1|0:I,B=i[A+36>>2]+i[C+36>>2]|0,I=(g=i[C+32>>2])+i[A+32>>2]|0,i[A+32>>2]=I,i[A+36>>2]=I>>>0>>0?B+1|0:B,I=i[A+44>>2]+i[C+44>>2]|0,g=(B=i[C+40>>2])+i[A+40>>2]|0,i[A+40>>2]=g,i[A+44>>2]=g>>>0>>0?I+1|0:I,B=i[A+52>>2]+i[C+52>>2]|0,I=(g=i[C+48>>2])+i[A+48>>2]|0,i[A+48>>2]=I,i[A+52>>2]=I>>>0>>0?B+1|0:B,B=i[A+60>>2]+i[C+60>>2]|0,I=(g=i[C+56>>2])+i[A+56>>2]|0,i[A+56>>2]=I,i[A+60>>2]=I>>>0>>0?B+1|0:B}function F(A,I){var g,C=0,B=0,Q=0,E=0,c=0,t=0,r=0,e=0,y=0,p=0,w=0,n=0,k=0,F=0,S=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0;if(s=g=s-4096|0,A){A:{I:{if(2==(0|(E=i[A+36>>2]))){if(oA=i[A+4>>2],(IA=i[I>>2])|(V=o[I+8|0])>>>0>=2)break I;IA=0}else V=o[I+8|0],oA=i[A+4>>2],IA=i[I>>2];if(bg(g+3072|0,0,1024),bg(g+2104|0,0,968),i[g+2048>>2]=IA,i[g+2052>>2]=0,u=i[I+4>>2],i[g+2064>>2]=V,i[g+2068>>2]=0,i[g+2056>>2]=u,i[g+2060>>2]=0,i[g+2072>>2]=i[A+16>>2],i[g+2076>>2]=0,u=i[A+8>>2],i[g+2088>>2]=E,i[g+2092>>2]=0,i[g+2080>>2]=u,i[g+2084>>2]=0,!i[A+20>>2])break A;for(u=0;(S=127&r)||(u=(z=z+1|0)?u:u+1|0,i[g+2096>>2]=z,i[g+2100>>2]=u,E=bg(g,0,1024),bg(E+1024|0,0,1024),N(C=E+3072|0,E+2048|0,E),N(C,E,E+1024|0)),S=i[4+(E=(g+1024|0)+(S<<3)|0)>>2],i[(C=(r<<3)+oA|0)>>2]=i[E>>2],i[C+4>>2]=S,(S=i[A+20>>2])>>>0>(r=r+1|0)>>>0;);break A}S=i[A+20>>2],cA=1}if(!((u=(aA=!(V|IA))<<1)>>>0>=S>>>0))for(E=i[A+24>>2],iA=i[I+4>>2],r=(z=(a(E,iA)+u|0)+a(S,V)|0)+((z>>>0)%(E>>>0)|0?-1:E-1|0)|0,tA=V+1|0;;){C=i[A+28>>2],EA=1==((z>>>0)%((E=i[A+24>>2])>>>0)|0)?z-1|0:r,r=cA?i[i[A>>2]+4>>2]+(EA<<10)|0:(u<<3)+oA|0,B=i[r>>2],r=i[r+4>>2],i[I+12>>2]=u,C=aA?iA:(r>>>0)%(C>>>0)|0;A:if(IA)r=E+((0|C)==(0|iA)?~S+u|0:(u?0:-1)-S|0)|0,Q=0,3!=(0|V)&&(Q=a(S,tA));else{if(!V){r=u-1|0,Q=0;break A}if(r=a(S,V),(0|C)==(0|iA)){r=(r+u|0)-1|0,Q=0;break A}r=r-!u|0,Q=0}S=Q,c=(p=i[i[A>>2]+4>>2])+(a(C,E)<<10)|0,y=(C=r-1|0)>>>0>(Q=C+S|0)>>>0,Ig(B,0,B,0),Ig(r,0,f,0),S=Q-(r=f)|0,C=0,e=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if(r=y-(Q>>>0>>0)|0){if(!E)break a;break E}h=S-a((S>>>0)/(E>>>0)|0,E)|0,D=0,f=0;break A}if(!S)break o;break i}if(!((B=E-1|0)&E))break Q;t=0-(B=(_(E)+33|0)-_(r)|0)|0;break C}h=0,D=r,f=0;break A}if((C=32-_(r)|0)>>>0<31)break B;break g}if(h=B&S,D=0,1==(0|E))break I;E=31&(S=FC(E)),(63&S)>>>0>=32?B=r>>>E|0:(C=r>>>E|0,B=0),f=C;break A}B=C+1|0,t=63-C|0}if(Q=31&(C=63&B),C>>>0>=32?(C=0,y=r>>>Q|0):(C=r>>>Q|0,y=((1<>>Q),Q=31&(t&=63),t>>>0>=32?(r=S<>>32-Q|r<>>31,y=(C=y<<1|r>>>31)-(b=E&(Q=F-(d+(C>>>0>t>>>0)|0)>>31))|0,C=d-(C>>>0>>0)|0,r=r<<1|S>>>31,S=e|S<<1,e=1&Q,B=B-1|0;);h=y,D=C,f=r<<1|S>>>31;break A}h=S,D=r,r=0}f=r}if(f=D,r=(h<<10)+c|0,E=p+(EA<<10)|0,_A=p+(z<<10)|0,IA)N(E,r,_A);else{for(Ng(g+3072|0,r,1024),r=0;Q=i[(B=(S=r<<3)+(C=g+3072|0)|0)>>2],p=i[(y=E+S|0)>>2],y=i[B+4>>2]^i[y+4>>2],i[B>>2]=Q^p,i[B+4>>2]=y,y=i[(B=(Q=8|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,y=i[(B=(Q=16|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,Q=i[(S=(B=24|S)+C|0)>>2],y=i[(B=B+E|0)>>2],B=i[S+4>>2]^i[B+4>>2],i[S>>2]=Q^y,i[S+4>>2]=B,128!=(0|(r=r+4|0)););for(Ng(g+2048|0,C,1024),S=0,r=0;Q=(y=i[56+(E=(g+3072|0)+(r<<7)|0)>>2])+(B=i[E+24>>2])|0,p=(F=i[E+60>>2])+(C=i[E+28>>2])|0,e=Ig(B<<1&-2,1&(C<<1|B>>>31),y,0),B=f+(B>>>0>Q>>>0?p+1|0:p)|0,p=(C=e+Q|0)>>>0>>0?B+1|0:B,c=(e=UI(C^i[E+120>>2],p^i[E+124>>2],32))+(B=i[E+88>>2])|0,t=(k=f)+(Q=i[E+92>>2])|0,d=Ig(e,0,B<<1&-2,1&(Q<<1|B>>>31)),B=f+(B>>>0>c>>>0?t+1|0:t)|0,b=UI(y^(Q=d+c|0),F^(v=Q>>>0>>0?B+1|0:B),40),w=1+(B=p+(BA=f)|0)|0,t=B,y=(B=C+b|0)>>>0>>0?w:t,d=(C=Ig(b,0,C<<1&-2,1&(p<<1|C>>>31)))+B|0,B=f+y|0,k=UI(d^e,k^(X=C>>>0>d>>>0?B+1|0:B),48),Y=w=f,y=(n=i[E+44>>2])+(C=i[E+12>>2])|0,e=(p=i[E+40>>2])+(B=i[E+8>>2])|0,c=Ig(B<<1&-2,1&(C<<1|B>>>31),p,0),B=f+(B>>>0>e>>>0?y+1|0:y)|0,c=(C=e+c|0)>>>0>>0?B+1|0:B,e=(t=UI(C^i[E+104>>2],c^i[E+108>>2],32))+(y=i[E+72>>2])|0,F=(M=f)+(B=i[E+76>>2])|0,G=Ig(t,0,y<<1&-2,1&(B<<1|y>>>31)),y=f+(e>>>0>>0?F+1|0:F)|0,e=UI(H=p^(B=G+e|0),n^(p=B>>>0>>0?y+1|0:y),40),G=1+(y=c+(F=f)|0)|0,n=y,n=(y=C+e|0)>>>0>>0?G:n,C=Ig(e,0,C<<1&-2,1&(c<<1|C>>>31)),c=f+n|0,n=UI((y=C+y|0)^t,M^(O=C>>>0>y>>>0?c+1|0:c),48),G=1+(C=p+(QA=f)|0)|0,t=C,c=(C=B+n|0)>>>0>>0?G:t,p=C+(B=Ig(n,0,B<<1&-2,1&(p<<1|B>>>31)))|0,C=f+c|0,M=UI(e^p,F^(Z=B>>>0>p>>>0?C+1|0:C),1),gA=H=f,e=(J=i[E+36>>2])+(C=i[E+4>>2])|0,t=(c=i[E+32>>2])+(B=i[E>>2])|0,F=Ig(B<<1&-2,1&(C<<1|B>>>31),c,0),B=f+(B>>>0>t>>>0?e+1|0:e)|0,t=(C=t+F|0)>>>0>>0?B+1|0:B,F=(q=UI(C^i[E+96>>2],t^i[E+100>>2],32))+(B=i[(e=j=E- -64|0)>>2])|0,G=($=f)+(e=i[e+4>>2])|0,R=Ig(q,0,B<<1&-2,1&(e<<1|B>>>31)),B=f+(B>>>0>F>>>0?G+1|0:G)|0,G=UI(c^(e=R+F|0),J^(R=e>>>0>>0?B+1|0:B),40),F=1+(B=t+(AA=f)|0)|0,c=B,c=(B=C+G|0)>>>0>>0?F:c,C=B+(t=Ig(G,0,C<<1&-2,1&(t<<1|C>>>31)))|0,B=f+c|0,c=1+(B=(W=C>>>0>>0?B+1|0:B)+H|0)|0,t=B,t=(B=C+M|0)>>>0>>0?c:t,c=B+(F=Ig(M,0,C<<1&-2,1&(W<<1|C>>>31)))|0,B=f+t|0,w=UI(c^k,(l=c>>>0>>0?B+1|0:B)^w,32),L=f,F=(K=i[E+52>>2])+(B=i[E+20>>2])|0,J=(H=i[E+48>>2])+(t=i[E+16>>2])|0,m=Ig(t<<1&-2,1&(B<<1|t>>>31),H,0),t=f+(t>>>0>J>>>0?F+1|0:F)|0,J=(B=J+m|0)>>>0>>0?t+1|0:t,P=(m=UI(B^i[E+112>>2],J^i[E+116>>2],32))+(F=i[E+80>>2])|0,x=(CA=f)+(t=i[E+84>>2])|0,U=Ig(m,0,F<<1&-2,1&(t<<1|F>>>31)),F=f+(F>>>0>P>>>0?x+1|0:x)|0,H=UI(H^(t=U+P|0),K^(P=t>>>0>>0?F+1|0:F),40),U=1+(F=J+(K=f)|0)|0,x=F,x=(F=B+H|0)>>>0>>0?U:x,B=Ig(H,0,B<<1&-2,1&(J<<1|B>>>31)),J=f+x|0,J=UI(U=(F=B+F|0)^m,CA^(m=B>>>0>F>>>0?J+1|0:J),48),U=1+(B=P+(CA=f)|0)|0,x=B,x=(B=t+J|0)>>>0>>0?U:x,t=Ig(J,0,t<<1&-2,1&(P<<1|t>>>31)),P=f+x|0,U=1+(t=(P=(B=t+B|0)>>>0>>0?P+1|0:P)+L|0)|0,x=t,x=(t=B+w|0)>>>0>>0?U:x,T=M^(t=(U=Ig(w,0,B<<1&-2,1&(P<<1|B>>>31)))+t|0),M=f+x|0,M=UI(T,gA^(x=t>>>0>>0?M+1|0:M),40),rA=1+(U=l+(gA=f)|0)|0,T=U,T=(U=c+M|0)>>>0>>0?rA:T,c=(l=Ig(M,0,c<<1&-2,1&(l<<1|c>>>31)))+U|0,i[E>>2]=c,U=f+T|0,l=c>>>0>>0?U+1|0:U,i[E+4>>2]=l,c=UI(c^w,l^L,48),i[E+120>>2]=c,w=f,i[E+124>>2]=w,T=1+(w=w+x|0)|0,U=w,l=(w=c+t|0)>>>0>>0?T:U,c=(t=Ig(c,0,t<<1&-2,1&(x<<1|t>>>31)))+w|0,i[E+80>>2]=c,w=f+l|0,t=c>>>0>>0?w+1|0:w,i[E+84>>2]=t,eA=E,yA=UI(c^M,t^gA,1),i[eA+40>>2]=yA,i[E+44>>2]=f,c=UI(B^H,K^P,1),w=1+(B=O+(H=f)|0)|0,t=B,t=(B=c+y|0)>>>0>>0?w:t,B=B+(M=Ig(c,0,y<<1&-2,1&(O<<1|y>>>31)))|0,y=f+t|0,t=UI(C^q,W^$,48),y=UI(t^B,(M=B>>>0>>0?y+1|0:y)^(O=f),32),q=w=f,K=1+(C=v+Y|0)|0,Y=C,W=(C=Q+k|0)>>>0>>0?K:Y,Q=Ig(k,0,Q<<1&-2,1&(v<<1|Q>>>31)),k=f+W|0,Y=1+(Q=(k=(C=Q+C|0)>>>0>>0?k+1|0:k)+w|0)|0,w=Q,w=(Q=C+y|0)>>>0>>0?Y:w,Y=c^(Q=(v=Ig(y,0,C<<1&-2,1&(k<<1|C>>>31)))+Q|0),c=f+w|0,c=UI(Y,H^(w=Q>>>0>>0?c+1|0:c),40),K=1+(v=M+(H=f)|0)|0,Y=v,W=(v=B+c|0)>>>0>>0?K:Y,Y=y^(B=(M=Ig(c,0,B<<1&-2,1&(M<<1|B>>>31)))+v|0),y=f+W|0,y=UI(Y,q^(M=B>>>0>>0?y+1|0:y),48),i[E+96>>2]=y,v=f,i[E+100>>2]=v,i[E+8>>2]=B,i[E+12>>2]=M,K=1+(B=w+v|0)|0,Y=B,M=(B=Q+y|0)>>>0>>0?K:Y,Q=Ig(y,0,Q<<1&-2,1&(w<<1|Q>>>31)),y=f+M|0,eA=E,yA=UI((B=Q+B|0)^c,H^(Q=B>>>0>>0?y+1|0:y),1),i[eA+48>>2]=yA,i[E+52>>2]=f,i[E+88>>2]=B,i[E+92>>2]=Q,y=UI(C^b,k^BA,1),Q=1+(C=m+(b=f)|0)|0,B=C,Q=(C=y+F|0)>>>0>>0?Q:B,B=C+(c=Ig(y,0,F<<1&-2,1&(m<<1|F>>>31)))|0,C=f+Q|0,c=UI(B^n,QA^(F=B>>>0>>0?C+1|0:C),32),k=Q=f,w=1+(C=R+O|0)|0,Q=C,n=(C=e+t|0)>>>0>>0?w:Q,e=Ig(t,0,e<<1&-2,1&(R<<1|e>>>31)),Q=f+n|0,w=1+(Q=k+(e=(C=e+C|0)>>>0>>0?Q+1|0:Q)|0)|0,t=Q,t=(Q=C+c|0)>>>0>>0?w:t,w=y^(Q=Q+(n=Ig(c,0,C<<1&-2,1&(e<<1|C>>>31)))|0),y=f+t|0,y=UI(w,b^(t=Q>>>0>>0?y+1|0:y),40),Y=1+(n=F+(b=f)|0)|0,w=n,M=(n=B+y|0)>>>0>>0?Y:w,B=(F=Ig(y,0,B<<1&-2,1&(F<<1|B>>>31)))+n|0,i[E+16>>2]=B,n=f+M|0,F=B>>>0>>0?n+1|0:n,i[E+20>>2]=F,B=UI(B^c,F^k,48),i[E+104>>2]=B,c=f,i[E+108>>2]=c,w=1+(c=c+t|0)|0,k=c,F=(c=B+Q|0)>>>0>>0?w:k,Q=(B=Ig(B,0,Q<<1&-2,1&(t<<1|Q>>>31)))+c|0,c=f+F|0,F=B=B>>>0>Q>>>0?c+1|0:c,i[j>>2]=Q,i[j+4>>2]=B,B=(e=UI(C^G,e^AA,1))+d|0,c=(k=f)+X|0,C=(t=Ig(d<<1&-2,1&(X<<1|d>>>31),e,0))+B|0,B=f+(B>>>0>>0?c+1|0:c)|0,c=UI(C^J,CA^(t=C>>>0>>0?B+1|0:B),32),n=1+(B=Z+(d=f)|0)|0,w=B,n=(B=c+p|0)>>>0

>>0?n:w,w=e^(B=(p=Ig(c,0,p<<1&-2,1&(Z<<1|p>>>31)))+B|0),e=f+n|0,p=UI(w,k^(e=B>>>0

>>0?e+1|0:e),40),G=1+(n=t+(k=f)|0)|0,w=n,M=(n=C+p|0)>>>0>>0?G:w,w=c^(t=(C=Ig(p,0,C<<1&-2,1&(t<<1|C>>>31)))+n|0),c=f+M|0,C=UI(w,d^(c=C>>>0>t>>>0?c+1|0:c),48),G=1+(n=e+(d=f)|0)|0,w=n,M=(n=C+B|0)>>>0>>0?G:w,B=(e=Ig(C,0,B<<1&-2,1&(e<<1|B>>>31)))+n|0,i[E+72>>2]=B,n=f+M|0,e=B>>>0>>0?n+1|0:n,i[E+76>>2]=e,i[E+112>>2]=C,i[E+116>>2]=d,i[E+24>>2]=t,i[E+28>>2]=c,eA=E,yA=UI(Q^y,F^b,1),i[eA+56>>2]=yA,i[E+60>>2]=f,eA=E,yA=UI(B^p,e^k,1),i[eA+32>>2]=yA,i[E+36>>2]=f,8!=(0|(r=r+1|0)););for(;B=(Q=i[392+(E=(g+3072|0)+(S<<4)|0)>>2])+(C=i[E+136>>2])|0,y=(t=i[E+396>>2])+(r=i[E+140>>2])|0,p=Ig(C<<1&-2,1&(r<<1|C>>>31),Q,0),C=f+(C>>>0>B>>>0?y+1|0:y)|0,y=(r=p+B|0)>>>0

>>0?C+1|0:C,e=(p=UI(r^i[E+904>>2],y^i[E+908>>2],32))+(C=i[E+648>>2])|0,c=(b=f)+(B=i[E+652>>2])|0,F=Ig(p,0,C<<1&-2,1&(B<<1|C>>>31)),C=f+(C>>>0>e>>>0?c+1|0:c)|0,d=UI(Q^(B=F+e|0),t^(J=B>>>0>>0?C+1|0:C),40),t=1+(C=y+(P=f)|0)|0,Q=C,Q=(C=r+d|0)>>>0>>0?t:Q,F=(r=Ig(d,0,r<<1&-2,1&(y<<1|r>>>31)))+C|0,C=f+Q|0,b=UI(F^p,b^(v=r>>>0>F>>>0?C+1|0:C),48),x=G=f,Q=(k=i[E+268>>2])+(r=i[E+12>>2])|0,p=(y=i[E+264>>2])+(C=i[E+8>>2])|0,e=Ig(C<<1&-2,1&(r<<1|C>>>31),y,0),C=f+(C>>>0>p>>>0?Q+1|0:Q)|0,e=(r=p+e|0)>>>0>>0?C+1|0:C,p=(c=UI(r^i[E+776>>2],e^i[E+780>>2],32))+(Q=i[E+520>>2])|0,t=(n=f)+(C=i[E+524>>2])|0,M=Ig(c,0,Q<<1&-2,1&(C<<1|Q>>>31)),Q=f+(Q>>>0>p>>>0?t+1|0:t)|0,p=UI(w=y^(C=M+p|0),k^(y=C>>>0>>0?Q+1|0:Q),40),w=1+(Q=e+(t=f)|0)|0,k=Q,k=(Q=r+p|0)>>>0>>0?w:k,r=Ig(p,0,r<<1&-2,1&(e<<1|r>>>31)),e=f+k|0,k=UI((Q=r+Q|0)^c,n^(X=Q>>>0>>0?e+1|0:e),48),n=1+(r=y+(BA=f)|0)|0,w=r,e=(r=C+k|0)>>>0>>0?n:w,y=r+(C=Ig(k,0,C<<1&-2,1&(y<<1|C>>>31)))|0,r=f+e|0,n=UI(p^y,t^(O=C>>>0>y>>>0?r+1|0:r),1),Y=w=f,p=(H=i[E+260>>2])+(r=i[E+4>>2])|0,c=(e=i[E+256>>2])+(C=i[E>>2])|0,t=Ig(C<<1&-2,1&(r<<1|C>>>31),e,0),C=f+(C>>>0>c>>>0?p+1|0:p)|0,c=(r=c+t|0)>>>0>>0?C+1|0:C,t=(Z=UI(r^i[E+768>>2],c^i[E+772>>2],32))+(C=i[E+512>>2])|0,M=(QA=f)+(p=i[E+516>>2])|0,q=Ig(Z,0,C<<1&-2,1&(p<<1|C>>>31)),C=f+(C>>>0>t>>>0?M+1|0:M)|0,M=UI(e^(p=q+t|0),H^(q=p>>>0>>0?C+1|0:C),40),e=1+(C=c+(gA=f)|0)|0,t=C,e=(C=r+M|0)>>>0>>0?e:t,r=C+(c=Ig(M,0,r<<1&-2,1&(c<<1|r>>>31)))|0,C=f+e|0,w=1+(C=(j=r>>>0>>0?C+1|0:C)+w|0)|0,t=C,c=(C=r+n|0)>>>0>>0?w:t,e=C+(t=Ig(n,0,r<<1&-2,1&(j<<1|r>>>31)))|0,C=f+c|0,G=UI(e^b,(R=e>>>0>>0?C+1|0:C)^G,32),W=f,t=($=i[E+388>>2])+(C=i[E+132>>2])|0,H=(w=i[E+384>>2])+(c=i[E+128>>2])|0,l=Ig(c<<1&-2,1&(C<<1|c>>>31),w,0),c=f+(c>>>0>H>>>0?t+1|0:t)|0,H=(C=H+l|0)>>>0>>0?c+1|0:c,L=(l=UI(C^i[E+896>>2],H^i[E+900>>2],32))+(t=i[E+640>>2])|0,m=(AA=f)+(c=i[E+644>>2])|0,K=Ig(l,0,t<<1&-2,1&(c<<1|t>>>31)),t=f+(t>>>0>L>>>0?m+1|0:m)|0,w=UI(w^(c=K+L|0),$^(L=c>>>0>>0?t+1|0:t),40),U=1+(t=H+($=f)|0)|0,K=t,m=(t=C+w|0)>>>0>>0?U:K,C=Ig(w,0,C<<1&-2,1&(H<<1|C>>>31)),H=f+m|0,H=UI(K=(t=C+t|0)^l,AA^(l=C>>>0>t>>>0?H+1|0:H),48),U=1+(C=L+(AA=f)|0)|0,K=C,m=(C=c+H|0)>>>0>>0?U:K,c=Ig(H,0,c<<1&-2,1&(L<<1|c>>>31)),L=f+m|0,U=1+(c=(L=(C=c+C|0)>>>0>>0?L+1|0:L)+W|0)|0,K=c,m=(c=C+G|0)>>>0>>0?U:K,U=n^(c=(K=Ig(G,0,C<<1&-2,1&(L<<1|C>>>31)))+c|0),n=f+m|0,n=UI(U,Y^(m=c>>>0>>0?n+1|0:n),40),T=1+(K=R+(Y=f)|0)|0,U=K,CA=(K=e+n|0)>>>0>>0?T:U,e=(R=Ig(n,0,e<<1&-2,1&(R<<1|e>>>31)))+K|0,i[E>>2]=e,K=f+CA|0,R=e>>>0>>0?K+1|0:K,i[E+4>>2]=R,e=UI(e^G,R^W,48),i[E+904>>2]=e,G=f,i[E+908>>2]=G,U=1+(G=G+m|0)|0,K=G,R=(G=c+e|0)>>>0>>0?U:K,e=(c=Ig(e,0,c<<1&-2,1&(m<<1|c>>>31)))+G|0,i[E+640>>2]=e,G=f+R|0,c=c>>>0>e>>>0?G+1|0:G,i[E+644>>2]=c,eA=E,yA=UI(e^n,c^Y,1),i[eA+264>>2]=yA,i[E+268>>2]=f,e=UI(C^w,L^$,1),G=1+(C=X+(w=f)|0)|0,n=C,c=(C=Q+e|0)>>>0>>0?G:n,C=C+(n=Ig(e,0,Q<<1&-2,1&(X<<1|Q>>>31)))|0,Q=f+c|0,c=UI(r^Z,j^QA,48),Q=UI(c^C,(n=C>>>0>>0?Q+1|0:Q)^(X=f),32),Z=G=f,K=1+(r=J+x|0)|0,Y=r,j=(r=B+b|0)>>>0>>0?K:Y,B=Ig(b,0,B<<1&-2,1&(J<<1|B>>>31)),b=f+j|0,Y=1+(B=(b=B>>>0>(r=B+r|0)>>>0?b+1|0:b)+G|0)|0,G=B,G=(B=Q+r|0)>>>0>>0?Y:G,Y=e^(B=(J=Ig(Q,0,r<<1&-2,1&(b<<1|r>>>31)))+B|0),e=f+G|0,e=UI(Y,w^(G=B>>>0>>0?e+1|0:e),40),K=1+(J=n+(w=f)|0)|0,Y=J,j=(J=C+e|0)>>>0>>0?K:Y,Y=Q^(C=(n=Ig(e,0,C<<1&-2,1&(n<<1|C>>>31)))+J|0),Q=f+j|0,Q=UI(Y,Z^(n=C>>>0>>0?Q+1|0:Q),48),i[E+768>>2]=Q,J=f,i[E+772>>2]=J,i[E+8>>2]=C,i[E+12>>2]=n,Y=1+(C=G+J|0)|0,n=C,n=(C=B+Q|0)>>>0>>0?Y:n,B=Ig(Q,0,B<<1&-2,1&(G<<1|B>>>31)),Q=f+n|0,eA=E,yA=UI((C=B+C|0)^e,w^(B=C>>>0>>0?Q+1|0:Q),1),i[eA+384>>2]=yA,i[E+388>>2]=f,i[E+648>>2]=C,i[E+652>>2]=B,Q=UI(r^d,b^P,1),B=1+(r=l+(d=f)|0)|0,C=r,B=(r=Q+t|0)>>>0>>0?B:C,C=r+(e=Ig(Q,0,t<<1&-2,1&(l<<1|t>>>31)))|0,r=f+B|0,e=UI(C^k,BA^(t=C>>>0>>0?r+1|0:r),32),b=B=f,k=1+(r=q+X|0)|0,B=r,k=(r=c+p|0)>>>0

>>0?k:B,p=Ig(c,0,p<<1&-2,1&(q<<1|p>>>31)),B=f+k|0,w=1+(B=b+(p=(r=p+r|0)>>>0

>>0?B+1|0:B)|0)|0,k=B,c=(B=r+e|0)>>>0>>0?w:k,w=Q^(B=B+(k=Ig(e,0,r<<1&-2,1&(p<<1|r>>>31)))|0),Q=f+c|0,Q=UI(w,d^(c=B>>>0>>0?Q+1|0:Q),40),n=1+(k=t+(d=f)|0)|0,w=k,n=(k=C+Q|0)>>>0>>0?n:w,C=(t=Ig(Q,0,C<<1&-2,1&(t<<1|C>>>31)))+k|0,i[E+128>>2]=C,k=f+n|0,t=C>>>0>>0?k+1|0:k,i[E+132>>2]=t,C=UI(C^e,t^b,48),i[E+776>>2]=C,e=f,i[E+780>>2]=e,k=1+(e=c+e|0)|0,t=e,t=(e=C+B|0)>>>0>>0?k:t,B=(C=Ig(C,0,B<<1&-2,1&(c<<1|B>>>31)))+e|0,e=f+t|0,t=C=C>>>0>B>>>0?e+1|0:e,i[E+512>>2]=B,i[E+516>>2]=C,C=(p=UI(r^M,p^gA,1))+F|0,e=(b=f)+v|0,r=(c=Ig(F<<1&-2,1&(v<<1|F>>>31),p,0))+C|0,C=f+(C>>>0

>>0?e+1|0:e)|0,e=UI(r^H,AA^(c=r>>>0>>0?C+1|0:C),32),w=1+(C=O+(F=f)|0)|0,k=C,k=(C=e+y|0)>>>0>>0?w:k,w=p^(C=(y=Ig(e,0,y<<1&-2,1&(O<<1|y>>>31)))+C|0),p=f+k|0,y=UI(w,b^(p=C>>>0>>0?p+1|0:p),40),n=1+(k=c+(b=f)|0)|0,w=k,n=(k=r+y|0)>>>0>>0?n:w,k=e^(c=(r=Ig(y,0,r<<1&-2,1&(c<<1|r>>>31)))+k|0),e=f+n|0,r=UI(k,F^(e=r>>>0>c>>>0?e+1|0:e),48),n=1+(k=p+(F=f)|0)|0,w=k,n=(k=C+r|0)>>>0>>0?n:w,C=(p=Ig(r,0,C<<1&-2,1&(p<<1|C>>>31)))+k|0,i[E+520>>2]=C,k=f+n|0,p=C>>>0

>>0?k+1|0:k,i[E+524>>2]=p,i[E+896>>2]=r,i[E+900>>2]=F,i[E+136>>2]=c,i[E+140>>2]=e,eA=E,yA=UI(B^Q,t^d,1),i[eA+392>>2]=yA,i[E+396>>2]=f,eA=E,yA=UI(C^y,p^b,1),i[eA+256>>2]=yA,i[E+260>>2]=f,8!=(0|(S=S+1|0)););for(E=Ng(_A,g+2048|0,1024),r=0;Q=i[(C=(S=r<<3)+E|0)>>2],p=i[(y=(B=g+3072|0)+S|0)>>2],y=i[C+4>>2]^i[y+4>>2],i[C>>2]=Q^p,i[C+4>>2]=y,y=i[(C=(Q=8|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,y=i[(C=(Q=16|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,Q=i[(S=(C=24|S)+E|0)>>2],B=i[(C=C+B|0)>>2],C=i[S+4>>2]^i[C+4>>2],i[S>>2]=B^Q,i[S+4>>2]=C,128!=(0|(r=r+4|0)););}if(r=EA+1|0,z=z+1|0,!((S=i[A+20>>2])>>>0>(u=u+1|0)>>>0))break}}s=g+4096|0}function S(A){var I,g,B,Q,i,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;h=(U=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)>>>5&2097151,s=Ig(I=(o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)>>>3|0,0,-683901,-1),y=(e=o[A+44|0])<<16&2031616|o[A+42|0]|o[A+43|0]<<8,e=f,n=e=y>>>0>(F=s+y|0)>>>0?e+1|0:e,M=e=e-((F>>>0<4293918720)-1|0)|0,s=e>>21,e=(y=h)+(h=(2097151&e)<<11|(p=F- -1048576|0)>>>21)|0,y=s,m=y=e>>>0>>0?y+1|0:y,z=e,G=Ig(e,y,-683901,-1),k=f,w=Ig(g=(o[A+49|0]|o[A+50|0]<<8|o[A+51|0]<<16|o[A+52|0]<<24)>>>7&2097151,0,-997805,-1),s=(e=o[A+27|0])>>>24|0,h=e<<8|(K=o[A+23|0]|o[A+24|0]<<8|o[A+25|0]<<16|o[A+26|0]<<24)>>>24,y=(e=o[A+28|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=h|e<<16)>>>2),e=f,e=y>>>0>(s=y+w|0)>>>0?e+1|0:e,y=Ig(P=(S=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24)>>>4&2097151,0,654183,0),e=f+e|0,w=s=y+s|0,s=y>>>0>s>>>0?e+1|0:e,D=(y=o[A+48|0])<<8|U>>>24,y=e=y>>>24|0,e=Ig(B=2097151&((3&(U=(e=(h=o[A+49|0])>>>16|0)|y))<<30|(y=(h<<=16)|D)>>>2),0,136657,0),s=f+s|0,s=e>>>0>(y=e+w|0)>>>0?s+1|0:s,h=(e=Ig(Q=(o[A+57|0]|o[A+58|0]<<8|o[A+59|0]<<16|o[A+60|0]<<24)>>>6&2097151,0,666643,0))+y|0,y=f+s|0,w=h,s=e>>>0>h>>>0?y+1|0:y,y=(e=o[A+56|0])>>>24|0,D=e<<8|S>>>24,y=Ig(i=2097151&((1&(S=(e=(h=o[A+57|0])>>>16|0)|y))<<31|(y=(h<<=16)|D)>>>1),0,470296,0),e=f+s|0,y=(e=(s=h=y+w|0)>>>0>>0?e+1|0:e)+k|0,y=s>>>0>(h=s+G|0)>>>0?y+1|0:y,b=s- -1048576|0,l=s=e-((s>>>0<4293918720)-1|0)|0,k=h-(e=-2097152&b)|0,G=y-((e>>>0>h>>>0)+s|0)|0,y=Ig(g,0,654183,0),e=f,e=y>>>0>(s=y+(K>>>5&2097151)|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(P,0,470296,0))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(B,j,-997805,-1),y=f+y|0,y=e>>>0>(s=e+h|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(i,X,666643,0))|0,e=f+y|0,D=h,h=s>>>0>h>>>0?e+1|0:e,w=(s=Ig(g,0,470296,0))+(e=(e=o[A+23|0])<<16&2031616|o[A+21|0]|o[A+22|0]<<8)|0,s=f,s=e>>>0>w>>>0?s+1|0:s,w=(y=Ig(P,0,666643,0))+w|0,e=f+s|0,s=Ig(B,j,654183,0),y=f+(y>>>0>w>>>0?e+1|0:e)|0,S=y=s>>>0>(K=s+w|0)>>>0?y+1|0:y,L=y=y-((K>>>0<4293918720)-1|0)|0,e=(e=y>>>21|0)+h|0,s=e=(y=(2097151&y)<<11|(w=K- -1048576|0)>>>21)>>>0>(D=y+D|0)>>>0?e+1|0:e,N=y=e-((D>>>0<4293918720)-1|0)|0,e=k,k=(2097151&y)<<11|(h=D- -1048576|0)>>>21,y=(y>>21)+G|0,U=k=(y=k>>>0>(H=e+k|0)>>>0?y+1|0:y)-((H>>>0<4293918720)-1|0)|0,q=H-(e=-2097152&(G=H- -1048576|0))|0,O=y-((e>>>0>H>>>0)+k|0)|0,e=Ig(z,m,136657,0),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,d=y-(e=-2097152&h)|0,Y=s-((e>>>0>y>>>0)+N|0)|0,H=F-(e=-2097152&p)|0,M=n-((e>>>0>F>>>0)+M|0)|0,n=Ig(I,0,136657,0),y=(e=o[A+40|0])>>>24|0,h=e<<8|(p=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)>>>24,s=(e=o[A+41|0])>>>16|0,y=(s|=y)>>>3|0,s=(7&s)<<29|(e=h|e<<16)>>>3,e=y+f|0,e=s>>>0>(h=s+n|0)>>>0?e+1|0:e,y=Ig(Q,0,-683901,-1),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,D=s,y=Ig(I,0,-997805,-1),s=f,s=y>>>0>(h=y+(p>>>6&2097151)|0)>>>0?s+1|0:s,p=(y=h)+(h=Ig(Q,0,136657,0))|0,y=f+s|0,s=Ig(i,X,-683901,-1),y=f+(h>>>0>p>>>0?y+1|0:y)|0,k=y=s>>>0>(u=s+p|0)>>>0?y+1|0:y,W=s=y-((u>>>0<4293918720)-1|0)|0,e=e+(y=s>>21)|0,p=e=(s=(2097151&s)<<11|(F=u- -1048576|0)>>>21)>>>0>(N=s+D|0)>>>0?e+1|0:e,x=e=e-((N>>>0<4293918720)-1|0)|0,y=(y=e>>21)+M|0,R=y=(e=(s=(2097151&e)<<11|(D=N- -1048576|0)>>>21)+H|0)>>>0>>0?y+1|0:y,v=e,y=Ig(e,y,-683901,-1),e=f+Y|0,J=s=y+d|0,h=y>>>0>s>>>0?e+1|0:e,H=K-(e=-2097152&w)|0,M=S-((4095&L)+(e>>>0>K>>>0)|0)|0,K=Ig(g,0,666643,0),e=(y=o[A+19|0])>>>24|0,w=y<<8|(S=o[A+15|0]|o[A+16|0]<<8|o[A+17|0]<<16|o[A+18|0]<<24)>>>24,s=e,y=(7&(s|=y=(e=o[A+20|0])>>>16|0))<<29|(y=(e<<=16)|w)>>>3,s=f+(s>>>3|0)|0,s=y>>>0>(w=y+K|0)>>>0?s+1|0:s,e=Ig(B,j,470296,0),y=f+s|0,e=e>>>0>(w=e+w|0)>>>0?y+1|0:y,s=Ig(B,j,666643,0),y=f,K=y=s>>>0>(d=s+(S>>>6&2097151)|0)>>>0?y+1|0:y,V=s=y-((d>>>0<4293918720)-1|0)|0,e=e+(y=s>>>21|0)|0,S=e=(s=(2097151&s)<<11|(n=d- -1048576|0)>>>21)>>>0>(Y=s+w|0)>>>0?e+1|0:e,Z=e=e-((Y>>>0<4293918720)-1|0)|0,y=(y=e>>>21|0)+M|0,y=(e=(2097151&e)<<11|(w=Y- -1048576|0)>>>21)>>>0>(s=e+H|0)>>>0?y+1|0:y,M=(e=s)+(s=Ig(z,m,-997805,-1))|0,e=f+y|0,e=s>>>0>M>>>0?e+1|0:e,L=y=N-(s=-2097152&D)|0,E=D=p-((s>>>0>N>>>0)+x|0)|0,s=Ig(v,R,136657,0),e=f+e|0,e=s>>>0>(p=s+M|0)>>>0?e+1|0:e,s=Ig(y,D,-683901,-1),y=f+e|0,p=y=s>>>0>(M=s+p|0)>>>0?y+1|0:y,x=e=y-((M>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=M- -1048576|0)>>>21,e=(e>>21)+h|0,J=y=(e=y>>>0>(N=y+J|0)>>>0?e+1|0:e)-((N>>>0<4293918720)-1|0)|0,H=(2097151&y)<<11|(h=N- -1048576|0)>>>21,y=(y>>21)+O|0,_=q=H+q|0,H=H>>>0>q>>>0?y+1|0:y,c=N-(y=-2097152&h)|0,t=e-((y>>>0>N>>>0)+J|0)|0,q=M-(e=-2097152&D)|0,O=p-((e>>>0>M>>>0)+x|0)|0,s=(e=Ig(z,m,654183,0))+(Y-(y=-2097152&w)|0)|0,y=f+(S-((2147483647&Z)+(y>>>0>Y>>>0)|0)|0)|0,y=e>>>0>s>>>0?y+1|0:y,e=Ig(v,R,-997805,-1),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(L,E,136657,0))|0,e=f+y|0,J=h,p=s>>>0>h>>>0?e+1|0:e,Y=u-(e=-2097152&F)|0,N=k-((e>>>0>u>>>0)+W|0)|0,S=Ig(P,0,-683901,-1),e=(y=o[A+35|0])>>>24|0,h=y<<8|(w=o[A+31|0]|o[A+32|0]<<8|o[A+33|0]<<16|o[A+34|0]<<24)>>>24,s=e,y=(e=o[A+36|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+S|0)>>>0?s+1|0:s,h=(e=Ig(I,0,654183,0))+y|0,y=f+s|0,y=e>>>0>h>>>0?y+1|0:y,s=Ig(Q,0,-997805,-1),e=f+y|0,e=s>>>0>(h=s+h|0)>>>0?e+1|0:e,y=Ig(i,X,136657,0),e=f+e|0,D=s=y+h|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(g,0,-683901,-1),y=f,y=e>>>0>(s=e+(w>>>4&2097151)|0)>>>0?y+1|0:y,w=(e=Ig(P,0,136657,0))+s|0,s=f+y|0,s=e>>>0>w>>>0?s+1|0:s,e=Ig(I,0,470296,0),y=f+s|0,y=e>>>0>(w=e+w|0)>>>0?y+1|0:y,w=(s=Ig(Q,0,654183,0))+w|0,e=f+y|0,y=Ig(i,X,-997805,-1),e=f+(s>>>0>w>>>0?e+1|0:e)|0,S=e=y>>>0>(k=y+w|0)>>>0?e+1|0:e,r=y=e-((k>>>0<4293918720)-1|0)|0,s=(e=y>>21)+h|0,M=y=(s=(y=(2097151&y)<<11|(w=k- -1048576|0)>>>21)>>>0>(F=y+D|0)>>>0?s+1|0:s)-((F>>>0<4293918720)-1|0)|0,e=(e=y>>21)+N|0,x=e=(y=(h=(2097151&y)<<11|(D=F- -1048576|0)>>>21)+Y|0)>>>0>>0?e+1|0:e,h=J,J=y,e=Ig(y,e,-683901,-1),y=f+p|0,N=h=h+e|0,h=e>>>0>h>>>0?y+1|0:y,p=(e=Ig(z,m,470296,0))+(d-(y=-2097152&n)|0)|0,y=f+(K-((2047&V)+(y>>>0>d>>>0)|0)|0)|0,y=e>>>0>p>>>0?y+1|0:y,n=(e=p)+(p=Ig(v,R,654183,0))|0,e=f+y|0,e=p>>>0>n>>>0?e+1|0:e,p=Ig(L,E,-997805,-1),y=f+e|0,y=p>>>0>(n=p+n|0)>>>0?y+1|0:y,u=D=F-(e=-2097152&D)|0,a=p=s-((e>>>0>F>>>0)+M|0)|0,s=Ig(J,x,136657,0),e=f+y|0,e=s>>>0>(n=s+n|0)>>>0?e+1|0:e,s=Ig(D,p,-683901,-1),y=f+e|0,p=y=s>>>0>(K=s+n|0)>>>0?y+1|0:y,Y=e=y-((K>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=K- -1048576|0)>>>21,e=(e>>21)+h|0,N=y=(e=y>>>0>(n=y+N|0)>>>0?e+1|0:e)-((n>>>0<4293918720)-1|0)|0,F=(2097151&y)<<11|(h=n- -1048576|0)>>>21,y=(y>>21)+O|0,W=M=F+q|0,M=F>>>0>M>>>0?y+1|0:y,V=n-(y=-2097152&h)|0,Z=e-((y>>>0>n>>>0)+N|0)|0,q=K-(e=-2097152&D)|0,O=p-((e>>>0>K>>>0)+Y|0)|0,p=Ig(z,m,666643,0),e=(y=o[A+14|0])>>>24|0,h=y<<8|(N=o[A+10|0]|o[A+11|0]<<8|o[A+12|0]<<16|o[A+13|0]<<24)>>>24,s=e,y=(e=o[A+15|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+p|0)>>>0?s+1|0:s,h=(e=y)+(y=Ig(v,R,470296,0))|0,e=f+s|0,e=y>>>0>h>>>0?e+1|0:e,y=Ig(L,E,654183,0),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(J,x,-997805,-1))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(u,a,136657,0),y=f+y|0,K=s=e+h|0,h=e>>>0>s>>>0?y+1|0:y,w=k-(e=-2097152&w)|0,p=S-((e>>>0>k>>>0)+r|0)|0,s=Ig(g,0,136657,0),e=f,e=(y=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)>>>7&2097151)>>>0>(s=y+s|0)>>>0?e+1|0:e,D=(y=s)+(s=Ig(P,0,-997805,-1))|0,y=f+e|0,y=s>>>0>D>>>0?y+1|0:y,e=Ig(B,j,-683901,-1),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=Ig(I,0,666643,0))+s|0,s=f+y|0,s=e>>>0>D>>>0?s+1|0:s,y=Ig(Q,0,470296,0),e=f+s|0,e=y>>>0>(D=y+D|0)>>>0?e+1|0:e,y=Ig(i,X,654183,0),e=f+e|0,y=(l>>21)+(y>>>0>(s=y+D|0)>>>0?e+1|0:e)|0,F=y=(D=(2097151&l)<<11|b>>>21)>>>0>(b=D+s|0)>>>0?y+1|0:y,l=e=y-((b>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(n=b- -1048576|0)>>>21,e=(e>>21)+p|0,d=e=(y=D+w|0)>>>0>>0?e+1|0:e,Y=y,y=Ig(y,e,-683901,-1),e=f+h|0,D=s=y+K|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(v,R,666643,0),y=f,y=e>>>0>(s=e+(N>>>4&2097151)|0)>>>0?y+1|0:y,e=Ig(L,E,470296,0),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,p=(e=Ig(J,x,654183,0))+s|0,s=f+y|0,s=e>>>0>p>>>0?s+1|0:s,y=Ig(u,a,-997805,-1),e=f+s|0,e=y>>>0>(p=y+p|0)>>>0?e+1|0:e,y=Ig(Y,d,136657,0),e=f+e|0,S=e=y>>>0>(k=y+p|0)>>>0?e+1|0:e,R=y=e-((k>>>0<4293918720)-1|0)|0,e=D,D=(2097151&y)<<11|(w=k- -1048576|0)>>>21,y=(y>>21)+h|0,v=h=(y=(s=e+D|0)>>>0>>0?y+1|0:y)-((s>>>0<4293918720)-1|0)|0,e=(e=h>>21)+O|0,z=D=(h=(2097151&h)<<11|(p=s- -1048576|0)>>>21)+q|0,K=h>>>0>D>>>0?e+1|0:e,D=s,s=y,h=(b-(y=-2097152&n)|0)+(n=(2097151&U)<<11|G>>>21)|0,y=(F-((y>>>0>b>>>0)+l|0)|0)+(U>>21)|0,N=y=h>>>0>>0?y+1|0:y,P=y=y-((h>>>0<4293918720)-1|0)|0,G=e=y>>21,e=Ig(m=(2097151&y)<<11|(l=h- -1048576|0)>>>21,e,-683901,-1),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,j=y-(e=-2097152&p)|0,X=s-((e>>>0>y>>>0)+v|0)|0,e=Ig(m,G,136657,0),y=S+f|0,v=(s=e+k|0)-(e=-2097152&w)|0,b=(y=s>>>0>>0?y+1|0:y)-((e>>>0>s>>>0)+R|0)|0,y=Ig(L,E,666643,0),s=f,s=(e=(o[A+7|0]|o[A+8|0]<<8|o[A+9|0]<<16|o[A+10|0]<<24)>>>7&2097151)>>>0>(y=e+y|0)>>>0?s+1|0:s,D=(e=Ig(J,x,470296,0))+y|0,y=f+s|0,y=e>>>0>D>>>0?y+1|0:y,e=Ig(u,a,654183,0),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=s)+(s=Ig(Y,d,-997805,-1))|0,e=f+y|0,n=D,D=s>>>0>D>>>0?e+1|0:e,S=Ig(J,x,666643,0),e=(y=o[A+6|0])>>>24|0,p=y<<8|(R=o[A+2|0]|o[A+3|0]<<8|o[A+4|0]<<16|o[A+5|0]<<24)>>>24,s=e,y=(e=o[A+7|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=e<<16|p)>>>2),e=f,e=y>>>0>(s=y+S|0)>>>0?e+1|0:e,p=(y=Ig(u,a,470296,0))+s|0,s=f+e|0,s=y>>>0>p>>>0?s+1|0:s,y=Ig(Y,d,654183,0),e=f+s|0,S=e=y>>>0>(F=y+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,y=(s=e>>21)+D|0,k=e=(y=(e=(2097151&e)<<11|(w=F- -1048576|0)>>>21)>>>0>(p=e+n|0)>>>0?y+1|0:y)-((p>>>0<4293918720)-1|0)|0,n=(2097151&e)<<11|(D=p- -1048576|0)>>>21,e=(e>>21)+b|0,v=J=n+v|0,n=n>>>0>J>>>0?e+1|0:e,e=Ig(m,G,-997805,-1),y=f+y|0,y=e>>>0>(s=e+p|0)>>>0?y+1|0:y,L=s-(e=-2097152&D)|0,x=y-((e>>>0>s>>>0)+k|0)|0,y=Ig(m,G,654183,0),e=S+f|0,J=(s=y+F|0)-(y=-2097152&w)|0,b=(e=s>>>0>>0?e+1|0:e)-((y>>>0>s>>>0)+U|0)|0,e=Ig(u,a,666643,0),y=f,y=e>>>0>(s=e+(R>>>5&2097151)|0)>>>0?y+1|0:y,e=Ig(Y,d,470296,0),y=f+y|0,p=s=e+s|0,s=e>>>0>s>>>0?y+1|0:y,D=Ig(Y,d,666643,0),y=(e=o[A+2|0])<<16&2031616|o[0|A]|o[A+1|0]<<8,e=f,S=e=y>>>0>(k=D+y|0)>>>0?e+1|0:e,d=e=e-((k>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(w=k- -1048576|0)>>>21,e=(e>>21)+s|0,s=e=D>>>0>(F=D+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(p=F- -1048576|0)>>>21,e=(e>>21)+b|0,D=D>>>0>(Y=D+J|0)>>>0?e+1|0:e,e=Ig(m,G,470296,0),s=s+f|0,s=(y=e+F|0)>>>0>>0?s+1|0:s,F=y-(e=-2097152&p)|0,p=s-((e>>>0>y>>>0)+U|0)|0,y=Ig(m,G,666643,0),e=f+(S-(((s=-2097152&w)>>>0>k>>>0)+d|0)|0)|0,y=(s=(e=y>>>0>(b=y+(k-s|0)|0)>>>0?e+1|0:e)>>21)+p|0,e=(e=(y=(e=(2097151&e)<<11|b>>>21)>>>0>(U=e+F|0)>>>0?y+1|0:y)>>21)+D|0,y=(y=(e=(y=(2097151&y)<<11|U>>>21)>>>0>(G=y+Y|0)>>>0?e+1|0:e)>>21)+x|0,s=(e=(y=(e=(2097151&e)<<11|G>>>21)>>>0>(D=e+L|0)>>>0?y+1|0:y)>>21)+n|0,e=(y=(s=(y=(2097151&y)<<11|D>>>21)>>>0>(k=y+v|0)>>>0?s+1|0:s)>>21)+X|0,y=(s=(e=(s=(2097151&s)<<11|k>>>21)>>>0>(F=s+j|0)>>>0?e+1|0:e)>>21)+K|0,K=p=(e=(2097151&e)<<11|F>>>21)+z|0,e=(e=(y=e>>>0>p>>>0?y+1|0:y)>>21)+Z|0,y=(y=(e=(y=(2097151&y)<<11|p>>>21)>>>0>(n=y+V|0)>>>0?e+1|0:e)>>21)+M|0,s=(e=(y=(e=(2097151&e)<<11|n>>>21)>>>0>(S=e+W|0)>>>0?y+1|0:y)>>21)+t|0,e=(y=(s=(y=(2097151&y)<<11|S>>>21)>>>0>(w=y+c|0)>>>0?s+1|0:s)>>21)+H|0,l=(M=h-(y=-2097152&l)|0)+((2097151&(e=(s=(2097151&s)<<11|w>>>21)>>>0>(p=s+_|0)>>>0?e+1|0:e))<<11|p>>>21)|0,e=(N-((y>>>0>h>>>0)+P|0)|0)+(e>>21)|0,N=y=(e=M>>>0>l>>>0?e+1|0:e)>>21,b=(e=Ig(H=(2097151&e)<<11|l>>>21,y,666643,0))+(y=2097151&b)|0,e=f,h=e=y>>>0>b>>>0?e+1|0:e,C[0|A]=b,C[A+1|0]=(255&e)<<24|b>>>8,e=2097151&U,y=Ig(H,N,470296,0)+e|0,s=f,e=(h>>21)+(e>>>0>y>>>0?s+1|0:s)|0,e=(M=(2097151&h)<<11|b>>>21)>>>0>(U=M+y|0)>>>0?e+1|0:e,C[A+4|0]=(2047&e)<<21|U>>>11,y=e,s=U,C[A+3|0]=(7&e)<<29|s>>>3,C[A+2|0]=31&((65535&h)<<16|b>>>16)|s<<5,h=2097151&G,G=Ig(H,N,654183,0)+h|0,e=f,U=(2097151&y)<<11|s>>>21,y=(y>>21)+(h=h>>>0>G>>>0?e+1|0:e)|0,e=y=(G=U+G|0)>>>0>>0?y+1|0:y,C[A+6|0]=(63&e)<<26|G>>>6,h=G,G=0,C[A+5|0]=G<<13|(1572864&s)>>>19|h<<2,s=2097151&D,D=Ig(H,N,-997805,-1)+s|0,y=f,y=s>>>0>D>>>0?y+1|0:y,G=(2097151&(s=e))<<11|h>>>21,s=(e>>=21)+y|0,s=(D=G+D|0)>>>0>>0?s+1|0:s,C[A+9|0]=(511&s)<<23|D>>>9,C[A+8|0]=(1&s)<<31|D>>>1,y=0,C[A+7|0]=y<<18|(2080768&h)>>>14|D<<7,y=2097151&k,h=Ig(H,N,136657,0)+y|0,e=f,e=y>>>0>h>>>0?e+1|0:e,k=(2097151&(y=s))<<11|D>>>21,y=e+(s=y>>21)|0,y=(h=k+h|0)>>>0>>0?y+1|0:y,C[A+12|0]=(4095&y)<<20|h>>>12,s=h,C[A+11|0]=(15&y)<<28|s>>>4,h=0,C[A+10|0]=h<<15|(1966080&D)>>>17|s<<4,h=2097151&F,D=Ig(H,N,-683901,-1)+h|0,e=f,e=h>>>0>D>>>0?e+1|0:e,h=y,y=e+(y>>=21)|0,y=(h=(J=D)+(D=(2097151&h)<<11|s>>>21)|0)>>>0>>0?y+1|0:y,C[A+14|0]=(127&y)<<25|h>>>7,D=0,C[A+13|0]=D<<12|(1048576&s)>>>20|h<<1,e=y>>21,s=(y=(2097151&y)<<11|h>>>21)>>>0>(D=y+(2097151&K)|0)>>>0?e+1|0:e,C[A+17|0]=(1023&s)<<22|D>>>10,C[A+16|0]=(3&s)<<30|D>>>2,y=0,C[A+15|0]=y<<17|(2064384&h)>>>15|D<<6,e=s>>21,e=(y=(2097151&s)<<11|D>>>21)>>>0>(s=y+(2097151&n)|0)>>>0?e+1|0:e,C[A+20|0]=(8191&e)<<19|s>>>13,C[A+19|0]=(31&e)<<27|s>>>5,h=(y=2097151&S)+(S=(2097151&e)<<11|s>>>21)|0,y=e>>21,y=h>>>0>>0?y+1|0:y,S=h,C[A+21|0]=h,n=0,C[A+18|0]=n<<14|(1835008&D)>>>18|s<<3,C[A+22|0]=(255&y)<<24|h>>>8,s=y>>21,s=(h=(D=(2097151&y)<<11|h>>>21)+(2097151&w)|0)>>>0>>0?s+1|0:s,C[A+25|0]=(2047&s)<<21|h>>>11,C[A+24|0]=(7&s)<<29|h>>>3,C[A+23|0]=31&((65535&y)<<16|S>>>16)|h<<5,e=s>>21,e=(y=(2097151&s)<<11|h>>>21)>>>0>(s=y+(2097151&p)|0)>>>0?e+1|0:e,C[A+27|0]=(63&e)<<26|s>>>6,D=0,C[A+26|0]=D<<13|(1572864&h)>>>19|s<<2,y=e,e>>=21,y=(h=(p=(2097151&y)<<11|s>>>21)+(D=2097151&l)|0)>>>0>>0?e+1|0:e,C[A+31|0]=(131071&y)<<15|h>>>17,e=h,C[A+30|0]=(511&y)<<23|e>>>9,h=0,C[A+28|0]=h<<18|(2080768&s)>>>14|e<<7,C[A+29|0]=p+l>>>1}function N(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=E=s-2048|0,Ng(E+1024|0,I,1024),I=0;Q=i[(_=(o=E+1024|0)+(B=I<<3)|0)>>2],a=i[(c=A+B|0)>>2],c=i[_+4>>2]^i[c+4>>2],i[_>>2]=Q^a,i[_+4>>2]=c,c=i[(_=(Q=8|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,c=i[(_=(Q=16|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,Q=i[(B=(_=24|B)+o|0)>>2],c=i[(_=A+_|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^c,i[B+4>>2]=_,128!=(0|(I=I+4|0)););for(C=Ng(E,o,1024),A=0,I=0;E=i[(B=(o=I<<3)+C|0)>>2],Q=i[(_=g+o|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^E,i[B+4>>2]=_,_=i[(B=(E=8|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,_=i[(B=(E=16|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,E=i[(o=(B=24|o)+C|0)>>2],_=i[(B=g+B|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,128!=(0|(I=I+4|0)););for(;c=(Q=i[56+(o=(C+1024|0)+(A<<7)|0)>>2])+(B=i[o+24>>2])|0,I=(t=i[o+60>>2])+(E=i[o+28>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0>>0?I+1|0:I,e=(c=UI(i[o+120>>2]^B,_^i[o+124>>2],32))+(E=i[o+88>>2])|0,I=(y=f)+(a=i[o+92>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0>>0?I+1|0:I),40),I=_+(z=f)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),j=I=f,p=H,e=I,a=(c=i[o+40>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+44>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+104>>2]^B,Q^i[o+108>>2],32))+(_=i[o+72>>2])|0,I=(w=f)+(r=i[o+76>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0>>0?I+1|0:I),48),I=c+(R=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0>>0?I+1|0:I),1),L=I=f,k=M,t=I,w=(r=i[o+32>>2])+(Q=i[o>>2])|0,I=(J=i[o+36>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0>>0?I+1|0:I,D=(d=UI(i[o+96>>2]^Q,a^i[o+100>>2],32))+(c=i[(I=S=o- -64|0)>>2])|0,I=(q=f)+(w=i[I+4>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0>>0?I+1|0:I),40),I=a+(X=f)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),P=I=f,N=I,k=(p=i[o+48>>2])+(r=i[o+16>>2])|0,I=(l=i[o+52>>2])+(e=i[o+20>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,G=(k=UI(i[o+112>>2]^r,t^i[o+116>>2],32))+(e=i[o+80>>2])|0,I=(u=f)+(K=i[o+84>>2])|0,U=e>>>0>G>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(G=(e=K+G|0)^p,l^(p=e>>>0>>0?I+1|0:I),40),I=t+(l=f)|0,U=(G=r+K|0)>>>0>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(G=(r=t+G|0)^k,u^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(u=f)|0,t=(G=e+U|0)>>>0>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+G|0)>>>0

>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0>>0?I+1|0:I,G=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=G+t|0)^M,L^(M=t>>>0>>0?I+1|0:I),40),I=D+(L=f)|0,G=(O=a+N|0)>>>0>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+O|0,I=f+G|0,i[o>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^P,48),i[o+120>>2]=a,I=f,i[o+124>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+80>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+84>>2]=I,W=o,V=UI(a^N,I^L,1),i[W+40>>2]=V,i[o+44>>2]=f,I=h+j|0,a=(t=E+H|0)>>>0>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^l,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^q,48),y=UI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(N=E^e,p^(e=E>>>0>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+96>>2]=B,y=f,i[o+100>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0>>0?I+1|0:I)^D,1),i[W+48>>2]=V,i[o+52>>2]=f,i[o+88>>2]=B,i[o+92>>2]=I,e=UI(t^x,a^z,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,R^(a=B>>>0>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+16>>2]=B,I=B>>>0>>0?I+1|0:I,i[o+20>>2]=I,B=UI(B^t,I^y,48),i[o+104>>2]=B,I=f,i[o+108>>2]=I,a=S,I=I+r|0,t=(h=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+t|0,r=B=Q+h|0,t=I=B>>>0>>0?I+1|0:I,i[a>>2]=B,i[a+4>>2]=I,c=UI(E^J,c^X,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,u^(Q=B>>>0>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+72>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+76>>2]=I,i[o+112>>2]=B,i[o+116>>2]=F,i[o+24>>2]=Q,i[o+28>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+56>>2]=V,i[o+60>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+32>>2]=V,i[o+36>>2]=f,8!=(0|(A=A+1|0)););for(A=0;c=(Q=i[392+(o=(C+1024|0)+(A<<4)|0)>>2])+(B=i[o+136>>2])|0,I=(t=i[o+396>>2])+(E=i[o+140>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0>>0?I+1|0:I,e=(c=UI(i[o+904>>2]^B,_^i[o+908>>2],32))+(E=i[o+648>>2])|0,I=(y=f)+(a=i[o+652>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0>>0?I+1|0:I),40),I=_+(G=f)|0,Q=(a=B+x|0)>>>0>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),z=I=f,p=H,e=I,a=(c=i[o+264>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+268>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+776>>2]^B,Q^i[o+780>>2],32))+(_=i[o+520>>2])|0,I=(w=f)+(r=i[o+524>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0>>0?I+1|0:I),48),I=c+(j=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0>>0?I+1|0:I),1),R=I=f,k=M,t=I,w=(r=i[o+256>>2])+(Q=i[o>>2])|0,I=(J=i[o+260>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0>>0?I+1|0:I,D=(d=UI(i[o+768>>2]^Q,a^i[o+772>>2],32))+(c=i[o+512>>2])|0,I=(L=f)+(w=i[o+516>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0>>0?I+1|0:I),40),I=a+(q=f)|0,r=(n=Q+J|0)>>>0>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0>>0?I+1|0:I)^e,32),X=I=f,N=I,k=(p=i[o+384>>2])+(r=i[o+128>>2])|0,I=(P=i[o+388>>2])+(e=i[o+132>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0>>0?I+1|0:I,S=(k=UI(i[o+896>>2]^r,t^i[o+900>>2],32))+(e=i[o+640>>2])|0,I=(l=f)+(K=i[o+644>>2])|0,U=e>>>0>S>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(S=(e=K+S|0)^p,P^(p=e>>>0>>0?I+1|0:I),40),I=t+(P=f)|0,U=(S=r+K|0)>>>0>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(S=(r=t+S|0)^k,l^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(l=f)|0,t=(S=e+U|0)>>>0>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+S|0)>>>0

>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0>>0?I+1|0:I,S=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=S+t|0)^M,R^(M=t>>>0>>0?I+1|0:I),40),I=D+(R=f)|0,S=(u=a+N|0)>>>0>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+u|0,I=f+S|0,i[o>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^X,48),i[o+904>>2]=a,I=f,i[o+908>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+640>>2]=a,I=a>>>0>>0?I+1|0:I,i[o+644>>2]=I,W=o,V=UI(a^N,I^R,1),i[W+264>>2]=V,i[o+268>>2]=f,I=h+z|0,a=(t=E+H|0)>>>0>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^P,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^L,48),y=UI(n^B,(Q=B>>>0>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(S=E^e,p^(e=E>>>0>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+768>>2]=B,y=f,i[o+772>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0>>0?I+1|0:I)^D,1),i[W+384>>2]=V,i[o+388>>2]=f,i[o+648>>2]=B,i[o+652>>2]=I,e=UI(t^x,a^G,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,j^(a=B>>>0>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+128>>2]=B,I=B>>>0>>0?I+1|0:I,i[o+132>>2]=I,B=UI(B^t,I^y,48),i[o+776>>2]=B,I=f,i[o+780>>2]=I,I=I+r|0,a=(t=B+Q|0)>>>0>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+a|0,r=B=Q+t|0,t=I=B>>>0>>0?I+1|0:I,i[o+512>>2]=B,i[o+516>>2]=I,c=UI(E^J,c^q,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,l^(Q=B>>>0>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+520>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+524>>2]=I,i[o+896>>2]=B,i[o+900>>2]=F,i[o+136>>2]=Q,i[o+140>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+392>>2]=V,i[o+396>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+256>>2]=V,i[o+260>>2]=f,8!=(0|(A=A+1|0)););for(I=Ng(g,C,1024),A=0;B=i[(o=(g=A<<3)+I|0)>>2],Q=i[(_=(E=a=C+1024|0)+g|0)>>2],_=i[o+4>>2]^i[_+4>>2],i[o>>2]=B^Q,i[o+4>>2]=_,_=i[(o=(B=8|g)+I|0)>>2],E=i[(B=B+E|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,E=i[(o=(B=16|g)+I|0)>>2],_=i[(B=B+a|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,B=i[(g=(o=24|g)+I|0)>>2],E=i[(o=o+a|0)>>2],o=i[g+4>>2]^i[o+4>>2],i[g>>2]=B^E,i[g+4>>2]=o,128!=(0|(A=A+4|0)););s=C+2048|0}function G(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;for(s=C=s-800|0,k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,w=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,K=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,U=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,Q=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,E=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,a=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,_=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,c=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,t=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,r=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,n=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g- -64|0,e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I>>2]=33620224^e,i[g+56>>2]=1496785429,i[g+60>>2]=1652156816,i[(A=g+48|0)>>2]=33620224,i[A+4>>2]=218629379,i[g+40>>2]=1110511904,i[g+44>>2]=-584534669,i[(B=g+32|0)>>2]=1427652059,i[B+4>>2]=-248528275,y=n^e,i[g>>2]=y,i[g+92>>2]=-584534669^r,i[g+88>>2]=1110511904^t,i[g+84>>2]=-248528275^c,i[(n=g+80|0)>>2]=1427652059^_,i[g+76>>2]=1652156816^a,i[g+72>>2]=1496785429^E,i[g+68>>2]=218629379^Q,U^=r,i[g+28>>2]=U,K^=t,i[g+24>>2]=K,h=w^c,i[g+20>>2]=h,M^=_,i[(w=g+16|0)>>2]=M,G^=a,i[g+12>>2]=G,D=S^E,i[g+8>>2]=D,f=k^Q,i[g+4>>2]=f,S=0;k=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=k,k=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=k,k=i[I+12>>2],i[C+760>>2]=i[I+8>>2],i[C+764>>2]=k,k=i[I+4>>2],i[C+752>>2]=i[I>>2],i[C+756>>2]=k,k=i[n+12>>2],i[C+744>>2]=i[n+8>>2],i[C+748>>2]=k,k=i[n+4>>2],i[C+736>>2]=i[n>>2],i[C+740>>2]=k,AI(k=C+768|0,C+752|0,C+736|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+728>>2]=i[A+8>>2],i[C+732>>2]=p,p=i[A+4>>2],i[C+720>>2]=i[A>>2],i[C+724>>2]=p,p=i[I+12>>2],i[C+712>>2]=i[I+8>>2],i[C+716>>2]=p,p=i[I+4>>2],i[C+704>>2]=i[I>>2],i[C+708>>2]=p,AI(k,C+720|0,C+704|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+696>>2]=i[B+8>>2],i[C+700>>2]=p,p=i[B+4>>2],i[C+688>>2]=i[B>>2],i[C+692>>2]=p,p=i[A+12>>2],i[C+680>>2]=i[A+8>>2],i[C+684>>2]=p,p=i[A+4>>2],i[C+672>>2]=i[A>>2],i[C+676>>2]=p,AI(k,C+688|0,C+672|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+664>>2]=i[w+8>>2],i[C+668>>2]=p,p=i[w+4>>2],i[C+656>>2]=i[w>>2],i[C+660>>2]=p,p=i[B+12>>2],i[C+648>>2]=i[B+8>>2],i[C+652>>2]=p,p=i[B+4>>2],i[C+640>>2]=i[B>>2],i[C+644>>2]=p,AI(k,C+656|0,C+640|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+632>>2]=i[g+8>>2],i[C+636>>2]=p,p=i[g+4>>2],i[C+624>>2]=i[g>>2],i[C+628>>2]=p,p=i[w+12>>2],i[C+616>>2]=i[w+8>>2],i[C+620>>2]=p,p=i[w+4>>2],i[C+608>>2]=i[w>>2],i[C+612>>2]=p,AI(k,C+624|0,C+608|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+600>>2]=i[C+792>>2],i[C+604>>2]=p,p=i[C+788>>2],i[C+592>>2]=i[C+784>>2],i[C+596>>2]=p,p=i[g+12>>2],i[C+584>>2]=i[g+8>>2],i[C+588>>2]=p,p=i[g+4>>2],i[C+576>>2]=i[g>>2],i[C+580>>2]=p,AI(k,C+592|0,C+576|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^a,i[g+8>>2]=N^E,i[g+4>>2]=F^Q,i[g>>2]=p^e,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+568>>2]=i[I+8>>2],i[C+572>>2]=p,p=i[I+4>>2],i[C+560>>2]=i[I>>2],i[C+564>>2]=p,p=i[n+12>>2],i[C+552>>2]=i[n+8>>2],i[C+556>>2]=p,p=i[n+4>>2],i[C+544>>2]=i[n>>2],i[C+548>>2]=p,AI(k,C+560|0,C+544|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+536>>2]=i[A+8>>2],i[C+540>>2]=p,p=i[A+4>>2],i[C+528>>2]=i[A>>2],i[C+532>>2]=p,p=i[I+12>>2],i[C+520>>2]=i[I+8>>2],i[C+524>>2]=p,p=i[I+4>>2],i[C+512>>2]=i[I>>2],i[C+516>>2]=p,AI(k,C+528|0,C+512|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+504>>2]=i[B+8>>2],i[C+508>>2]=p,p=i[B+4>>2],i[C+496>>2]=i[B>>2],i[C+500>>2]=p,p=i[A+12>>2],i[C+488>>2]=i[A+8>>2],i[C+492>>2]=p,p=i[A+4>>2],i[C+480>>2]=i[A>>2],i[C+484>>2]=p,AI(k,C+496|0,C+480|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+472>>2]=i[w+8>>2],i[C+476>>2]=p,p=i[w+4>>2],i[C+464>>2]=i[w>>2],i[C+468>>2]=p,p=i[B+12>>2],i[C+456>>2]=i[B+8>>2],i[C+460>>2]=p,p=i[B+4>>2],i[C+448>>2]=i[B>>2],i[C+452>>2]=p,AI(k,C+464|0,C+448|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+440>>2]=i[g+8>>2],i[C+444>>2]=p,p=i[g+4>>2],i[C+432>>2]=i[g>>2],i[C+436>>2]=p,p=i[w+12>>2],i[C+424>>2]=i[w+8>>2],i[C+428>>2]=p,p=i[w+4>>2],i[C+416>>2]=i[w>>2],i[C+420>>2]=p,AI(k,C+432|0,C+416|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+408>>2]=i[C+792>>2],i[C+412>>2]=p,p=i[C+788>>2],i[C+400>>2]=i[C+784>>2],i[C+404>>2]=p,p=i[g+12>>2],i[C+392>>2]=i[g+8>>2],i[C+396>>2]=p,p=i[g+4>>2],i[C+384>>2]=i[g>>2],i[C+388>>2]=p,AI(k,C+400|0,C+384|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^r,i[g+8>>2]=N^t,i[g+4>>2]=F^c,i[g>>2]=p^_,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+376>>2]=i[I+8>>2],i[C+380>>2]=p,p=i[I+4>>2],i[C+368>>2]=i[I>>2],i[C+372>>2]=p,p=i[n+12>>2],i[C+360>>2]=i[n+8>>2],i[C+364>>2]=p,p=i[n+4>>2],i[C+352>>2]=i[n>>2],i[C+356>>2]=p,AI(k,C+368|0,C+352|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+344>>2]=i[A+8>>2],i[C+348>>2]=p,p=i[A+4>>2],i[C+336>>2]=i[A>>2],i[C+340>>2]=p,p=i[I+12>>2],i[C+328>>2]=i[I+8>>2],i[C+332>>2]=p,p=i[I+4>>2],i[C+320>>2]=i[I>>2],i[C+324>>2]=p,AI(k,C+336|0,C+320|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+312>>2]=i[B+8>>2],i[C+316>>2]=p,p=i[B+4>>2],i[C+304>>2]=i[B>>2],i[C+308>>2]=p,p=i[A+12>>2],i[C+296>>2]=i[A+8>>2],i[C+300>>2]=p,p=i[A+4>>2],i[C+288>>2]=i[A>>2],i[C+292>>2]=p,AI(k,C+304|0,C+288|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+280>>2]=i[w+8>>2],i[C+284>>2]=p,p=i[w+4>>2],i[C+272>>2]=i[w>>2],i[C+276>>2]=p,p=i[B+12>>2],i[C+264>>2]=i[B+8>>2],i[C+268>>2]=p,p=i[B+4>>2],i[C+256>>2]=i[B>>2],i[C+260>>2]=p,AI(k,C+272|0,C+256|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+248>>2]=i[g+8>>2],i[C+252>>2]=p,p=i[g+4>>2],i[C+240>>2]=i[g>>2],i[C+244>>2]=p,p=i[w+12>>2],i[C+232>>2]=i[w+8>>2],i[C+236>>2]=p,p=i[w+4>>2],i[C+224>>2]=i[w>>2],i[C+228>>2]=p,AI(k,C+240|0,C+224|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+216>>2]=i[C+792>>2],i[C+220>>2]=p,p=i[C+788>>2],i[C+208>>2]=i[C+784>>2],i[C+212>>2]=p,p=i[g+12>>2],i[C+200>>2]=i[g+8>>2],i[C+204>>2]=p,p=i[g+4>>2],i[C+192>>2]=i[g>>2],i[C+196>>2]=p,AI(k,C+208|0,C+192|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=G^i[C+780>>2],i[g+8>>2]=N^D,i[g+4>>2]=F^f,i[g>>2]=p^y,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+184>>2]=i[I+8>>2],i[C+188>>2]=p,p=i[I+4>>2],i[C+176>>2]=i[I>>2],i[C+180>>2]=p,p=i[n+12>>2],i[C+168>>2]=i[n+8>>2],i[C+172>>2]=p,p=i[n+4>>2],i[C+160>>2]=i[n>>2],i[C+164>>2]=p,AI(k,C+176|0,C+160|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+152>>2]=i[A+8>>2],i[C+156>>2]=p,p=i[A+4>>2],i[C+144>>2]=i[A>>2],i[C+148>>2]=p,p=i[I+12>>2],i[C+136>>2]=i[I+8>>2],i[C+140>>2]=p,p=i[I+4>>2],i[C+128>>2]=i[I>>2],i[C+132>>2]=p,AI(k,C+144|0,C+128|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+120>>2]=i[B+8>>2],i[C+124>>2]=p,p=i[B+4>>2],i[C+112>>2]=i[B>>2],i[C+116>>2]=p,p=i[A+12>>2],i[C+104>>2]=i[A+8>>2],i[C+108>>2]=p,p=i[A+4>>2],i[C+96>>2]=i[A>>2],i[C+100>>2]=p,AI(k,C+112|0,C+96|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+88>>2]=i[w+8>>2],i[C+92>>2]=p,p=i[w+4>>2],i[C+80>>2]=i[w>>2],i[C+84>>2]=p,p=i[B+12>>2],i[C+72>>2]=i[B+8>>2],i[C+76>>2]=p,p=i[B+4>>2],i[C+64>>2]=i[B>>2],i[C+68>>2]=p,AI(k,C+80|0,C- -64|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[w+12>>2],i[C+40>>2]=i[w+8>>2],i[C+44>>2]=p,p=i[w+4>>2],i[C+32>>2]=i[w>>2],i[C+36>>2]=p,AI(k,C+48|0,C+32|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+24>>2]=i[C+792>>2],i[C+28>>2]=p,p=i[C+788>>2],i[C+16>>2]=i[C+784>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(k,C+16|0,C),k=i[C+768>>2],p=i[C+772>>2],F=i[C+776>>2],i[g+12>>2]=U^i[C+780>>2],i[g+8>>2]=F^K,i[g+4>>2]=p^h,i[g>>2]=k^M,4!=(0|(S=S+1|0)););s=C+800|0}function M(A,I){var g,B,E,a,_,c,t,r,e,y,h,D,p,w,n,k,F,S,N,G,M,K,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=g=s-48|0,Y=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,C[A+24|0]=H,C[A+25|0]=H>>>8,C[A+26|0]=H>>>16,C[A+27|0]=H>>>24,C[A+28|0]=Y,C[A+29|0]=Y>>>8,C[A+30|0]=Y>>>16,C[A+31|0]=Y>>>24,Y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,H=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,C[0|A]=H,C[A+1|0]=H>>>8,C[A+2|0]=H>>>16,C[A+3|0]=H>>>24,C[A+4|0]=Y,C[A+5|0]=Y>>>8,C[A+6|0]=Y>>>16,C[A+7|0]=Y>>>24,Y=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,C[A+16|0]=H,C[A+17|0]=H>>>8,C[A+18|0]=H>>>16,C[A+19|0]=H>>>24,C[A+20|0]=Y,C[A+21|0]=Y>>>8,C[A+22|0]=Y>>>16,C[A+23|0]=Y>>>24,H=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,I=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,C[A+12|0]=H,C[A+13|0]=H>>>8,C[A+14|0]=H>>>16,C[A+15|0]=H>>>24,I=o[A+31|0],C[A+31|0]=127&I,fA(g,A),y=128&I,s=I=s-960|0,v(H=I+304|0,g),i[I+304>>2]=i[I+304>>2]+1,LA(H,H),Y=Ig(H=i[I+340>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,x=Y-(-33554432&P)|0,U=Ig(H=i[I+336>>2],H>>31,486662,0),Y=f,J=Ig(H=i[I+332>>2],H>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,H=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,B=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+292>>2]=0-B,W=d-(-67108864&Y)|0,i[I+288>>2]=0-W,x=J-(-33554432&m)|0,Y=Ig(H=i[I+328>>2],H>>31,486662,0),H=f,m=Ig(U=i[I+324>>2],U>>31,486662,0),U=f,u=Y,H=H+(Y=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)|0,H=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0>>0?H+1|0:H,E=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+284>>2]=0-E,a=U-(-67108864&Y)|0,i[I+280>>2]=0-a,x=m-(-33554432&d)|0,U=Ig(H=i[I+320>>2],H>>31,486662,0),H=f,m=Ig(Y=i[I+316>>2],Y>>31,486662,0),Y=f,u=U,H=(U=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+H|0,U=H=(Y=u+(J=(33554431&Y)<<7|d>>>25)|0)>>>0>>0?H+1|0:H,_=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|J>>>26)+x|0,i[I+276>>2]=0-_,c=Y-(-67108864&J)|0,i[I+272>>2]=0-c,u=m-(-33554432&d)|0,H=Ig(H=i[I+312>>2],H>>31,486662,0),x=f,J=Ig(Y=i[I+308>>2],Y>>31,486662,0),U=f,Y=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+x|0,Y=Y>>>0>(d=Y+H|0)>>>0?U+1|0:U,t=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+u|0,i[I+268>>2]=0-t,r=d-(-67108864&H)|0,i[I+264>>2]=0-r,d=J-(-33554432&m)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,J=Y,Y=Ig(U=i[I+304>>2],U>>31,486662,0),H=f+H|0,Y=(U=J+Y|0)>>>0>>0?H+1|0:H,e=((67108863&(Y=(H=U+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+d|0,i[I+260>>2]=0-e,L=U-(-67108864&H)|0,i[I+256>>2]=0-L,R(Y=I+208|0,H=I+256|0),b(I+160|0,H,Y),h=i[I+196>>2],D=i[I+160>>2],q=i[I+208>>2],p=i[I+164>>2],w=i[I+168>>2],z=i[I+212>>2],j=i[I+216>>2],n=i[I+172>>2],k=i[I+176>>2],X=i[I+220>>2],O=i[I+224>>2],F=i[I+180>>2],S=i[I+184>>2],u=i[I+228>>2],x=i[I+232>>2],N=i[I+188>>2],G=i[I+192>>2],Y=Ig(H=i[I+244>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,M=Y-(-33554432&P)|0,H=Ig(H=i[I+240>>2],H>>31,486662,0),K=f,J=Ig(Y=i[I+236>>2],Y>>31,486662,0),U=f,Y=H,H=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+K|0,H=H>>>0>(d=Y+H|0)>>>0?U+1|0:U,U=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+M|0,i[I+244>>2]=U,i[I+388>>2]=U+(h-B|0),H=d-(-67108864&Y)|0,i[I+240>>2]=H,i[I+384>>2]=H+(G-W|0),W=J-(-33554432&m)|0,H=Ig(x,x>>31,486662,0),J=f,m=Ig(u,u>>31,486662,0),Y=f,u=H,H=(H=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+J|0,U=H=(U=(33554431&Y)<<7|d>>>25)>>>0>(Y=u+U|0)>>>0?H+1|0:H,J=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|(H=J)>>>26)+W|0,i[I+236>>2]=J,i[I+380>>2]=J+(N-E|0),H=Y-(-67108864&H)|0,i[I+232>>2]=H,i[I+376>>2]=H+(S-a|0),x=m-(-33554432&d)|0,U=Ig(O,O>>31,486662,0),Y=f,J=Ig(X,X>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,Y=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,U=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+x|0,i[I+228>>2]=U,i[I+372>>2]=U+(F-_|0),H=d-(-67108864&H)|0,i[I+224>>2]=H,i[I+368>>2]=H+(k-c|0),x=J-(-33554432&m)|0,H=Ig(j,j>>31,486662,0),Y=f,m=Ig(z,z>>31,486662,0),U=f,u=H,Y=(H=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)+Y|0,H=Y=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0>>0?Y+1|0:Y,J=((67108863&(H=(J=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|(Y=J)>>>26)+x|0,i[I+220>>2]=J,i[I+364>>2]=J+(n-t|0),H=U-(-67108864&Y)|0,i[I+216>>2]=H,i[I+360>>2]=H+(w-r|0),d=m-(-33554432&d)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,U=Y,Y=Ig(q,q>>31,486662,0),H=f+H|0,H=(U=U+Y|0)>>>0>>0?H+1|0:H,l=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+d|0,i[I+212>>2]=l,i[I+356>>2]=l+(p-e|0),H=U-(-67108864&Y)|0,i[I+208>>2]=H,i[I+352>>2]=H+(D-L|0),b(H=I+624|0,Y=I+352|0,Y),b(I,Y,H),R(Y=I+784|0,I),R(Y,Y),b(H=I+912|0,I,Y),R(Y=I+576|0,H),R(Y,Y),R(Y,Y),R(Y,Y),b(U=I+528|0,H,Y),R(U,U),R(U,U),b(U,U,I),H=i[I+564>>2],i[I+512>>2]=i[I+560>>2],i[I+516>>2]=H,H=i[I+556>>2],i[I+504>>2]=i[I+552>>2],i[I+508>>2]=H,H=i[I+548>>2],i[I+496>>2]=i[I+544>>2],i[I+500>>2]=H,H=i[I+540>>2],i[I+488>>2]=i[I+536>>2],i[I+492>>2]=H,H=i[I+532>>2],i[I+480>>2]=i[I+528>>2],i[I+484>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H=I+480|0),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y=I+432|0),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H;R(H=I+528|0,H),120!=(0|(V=V+1|0)););b(H,H,I+432|0),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),b(H,H,I+480|0),R(H,H),R(H,H),R(H,H),b(H,H,I),R(H,H),QI(I+400|0,H),q=i[I+256>>2],z=i[I+260>>2],j=i[I+264>>2],X=i[I+268>>2],O=i[I+272>>2],d=i[I+276>>2],l=i[I+280>>2],U=i[I+284>>2],Y=i[I+288>>2],u=(L=0-(1&C[I+401|0])|0)&(0-(H=i[I+292>>2])^H)^H,i[I+660>>2]=u,x=Y^L&(Y^0-Y),i[I+656>>2]=x,P=U^L&(U^0-U),i[I+652>>2]=P,J=l^L&(l^0-l),i[I+648>>2]=J,m=d^L&(d^0-d),i[I+644>>2]=m,d=O^L&(O^0-O),i[I+640>>2]=d,l=X^L&(X^0-X),i[I+636>>2]=l,U=j^L&(j^0-j),i[I+632>>2]=U,Y=z^L&(z^0-z),i[I+628>>2]=Y,H=(q^L&(q^0-q))-(486662&L)|0,i[I+624>>2]=H+1,i[I+820>>2]=u,i[I+816>>2]=x,i[I+812>>2]=P,i[I+808>>2]=J,i[I+804>>2]=m,i[I+800>>2]=d,i[I+796>>2]=l,i[I+792>>2]=U,i[I+788>>2]=Y,i[I+784>>2]=H-1,LA(I,I+624|0),b(H=I+912|0,I+784|0,I),QI(A,H),C[A+31|0]=o[A+31|0]|y,MA(I,A)&&(DB(),Q()),H=i[I+36>>2],i[I+816>>2]=i[I+32>>2],i[I+820>>2]=H,H=i[I+28>>2],i[I+808>>2]=i[I+24>>2],i[I+812>>2]=H,H=i[I+20>>2],i[I+800>>2]=i[I+16>>2],i[I+804>>2]=H,H=i[I+12>>2],i[I+792>>2]=i[I+8>>2],i[I+796>>2]=H,H=i[I+52>>2],i[I+832>>2]=i[I+48>>2],i[I+836>>2]=H,H=i[I+60>>2],i[I+840>>2]=i[I+56>>2],i[I+844>>2]=H,H=i[4+(Y=I- -64|0)>>2],i[I+848>>2]=i[Y>>2],i[I+852>>2]=H,H=i[I+76>>2],i[I+856>>2]=i[I+72>>2],i[I+860>>2]=H,H=i[I+4>>2],i[I+784>>2]=i[I>>2],i[I+788>>2]=H,H=i[I+44>>2],i[I+824>>2]=i[I+40>>2],i[I+828>>2]=H,H=i[I+116>>2],i[I+896>>2]=i[I+112>>2],i[I+900>>2]=H,H=i[I+108>>2],i[I+888>>2]=i[I+104>>2],i[I+892>>2]=H,H=i[I+100>>2],i[I+880>>2]=i[I+96>>2],i[I+884>>2]=H,H=i[I+92>>2],i[I+872>>2]=i[I+88>>2],i[I+876>>2]=H,H=i[I+84>>2],i[I+864>>2]=i[I+80>>2],i[I+868>>2]=H,KA(J=I+624|0,m=I+784|0),b(m,J,d=I+744|0),b(Y=I+824|0,U=I+664|0,l=I+704|0),b(H=I+864|0,l,d),KA(J,m),b(m,J,d),b(Y,U,l),b(H,l,d),KA(J,m),b(I,J,d),b(Y=I+40|0,U,l),b(H=I+80|0,l,d),b(I+120|0,J,U),LA(J,H),b(m,I,J),b(H=I+912|0,Y,J),QI(A,H),QI(I+576|0,m),C[A+31|0]=o[A+31|0]^o[I+576|0]<<7,s=I+960|0,s=g+48|0}function K(A){var I,g=0,C=0,B=0,Q=0,a=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0;s=I=s-16|0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if((A|=0)>>>0<=244){if(3&(g=(Q=i[9405])>>>(A=(t=A>>>0<11?16:A+11&504)>>>3|0)|0)){A=37660+(g=(C=A+(1&~g)|0)<<3)|0,g=i[g+37668>>2],(0|A)!=(0|(B=i[g+8>>2]))?(i[B+12>>2]=A,i[A+8>>2]=B):(h=37620,D=Lg(-2,C)&Q,i[h>>2]=D),A=g+8|0,C<<=3,i[g+4>>2]=3|C,i[4+(g=g+C|0)>>2]=1|i[g+4>>2];break A}if((r=i[9407])>>>0>=t>>>0)break a;if(g){g=37660+(C=(A=FC((0-(C=2<>2],(0|g)!=(0|(B=i[C+8>>2]))?(i[B+12>>2]=g,i[g+8>>2]=B):(Q=Lg(-2,A)&Q,i[9405]=Q),i[C+4>>2]=3|t,a=(A<<=3)-t|0,i[4+(c=C+t|0)>>2]=1|a,i[A+C>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),A=C+8|0,i[9410]=c,i[9407]=a;break A}if(!(y=i[9406]))break a;for(C=i[37924+(FC(y)<<2)>>2],a=(-8&i[C+4>>2])-t|0,g=C;(A=i[g+16>>2])||(A=i[g+20>>2]);)a=(g=(B=(-8&i[A+4>>2])-t|0)>>>0>>0)?B:a,C=g?A:C,g=A;if(e=i[C+24>>2],(0|C)!=(0|(A=i[C+12>>2]))){g=i[C+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break I}if(g=i[C+20>>2])B=C+20|0;else{if(!(g=i[C+16>>2]))break E;B=C+16|0}for(;c=B,B=(A=g)+20|0,(g=i[A+20>>2])||(B=A+16|0,g=i[A+16>>2]););i[c>>2]=0;break I}if(t=-1,!(A>>>0>4294967231)&&(t=-8&(g=A+11|0),c=i[9406])){r=31,a=0-t|0,A>>>0<=16777204&&(r=62+((t>>>38-(A=_(g>>>8|0))&1)-(A<<1)|0)|0);_:{c:{if(g=i[37924+(r<<2)>>2])for(A=0,C=t<<(31!=(0|r)?25-(r>>>1|0):0);;){if(!((Q=(-8&i[g+4>>2])-t|0)>>>0>=a>>>0||(B=g,a=Q))){a=0,A=g;break c}if(Q=i[g+20>>2],g=i[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<>2]}if(!A)break _}for(;a=(g=(C=(-8&i[A+4>>2])-t|0)>>>0>>0)?C:a,B=g?A:B,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!B|i[9407]-t>>>0<=a>>>0)){if(r=i[B+24>>2],(0|B)!=(0|(A=i[B+12>>2]))){g=i[B+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break g}if(g=i[B+20>>2])C=B+20|0;else{if(!(g=i[B+16>>2]))break o;C=B+16|0}for(;Q=C,C=(A=g)+20|0,(g=i[A+20>>2])||(C=A+16|0,g=i[A+16>>2]););i[Q>>2]=0;break g}}}if((B=i[9407])>>>0>=t>>>0){A=i[9410],(g=B-t|0)>>>0>=16?(i[4+(C=A+t|0)>>2]=1|g,i[A+B>>2]=g,i[A+4>>2]=3|t):(i[A+4>>2]=3|B,i[4+(g=A+B|0)>>2]=1|i[g+4>>2],C=0,g=0),i[9407]=g,i[9410]=C,A=A+8|0;break A}if((C=i[9408])>>>0>t>>>0){g=C-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}if(A=0,a=t+47|0,i[9523]?g=i[9525]:(i[9526]=-1,i[9527]=-1,i[9524]=4096,i[9525]=4096,i[9523]=I+12&-16^1431655768,i[9528]=0,i[9516]=0,g=4096),(g=(Q=a+g|0)&(c=0-g|0))>>>0<=t>>>0)break A;if((r=i[9515])&&(B=(e=i[9513])+g|0)>>>0<=e>>>0|B>>>0>r>>>0)break A;a:{if(!(4&o[38064])){_:{c:{t:{r:{if(B=i[9411])for(A=38068;;){if((r=i[A>>2])>>>0<=B>>>0&B>>>0>2]>>>0)break r;if(!(A=i[A+8>>2]))break}if(-1==(0|(C=cg(0))))break _;if(Q=g,(B=(A=i[9524])-1|0)&C&&(Q=(g-C|0)+(C+B&0-A)|0),Q>>>0<=t>>>0)break _;if((B=i[9515])&&(A=(c=i[9513])+Q|0)>>>0<=c>>>0|A>>>0>B>>>0)break _;if((0|C)!=(0|(A=cg(Q))))break t;break a}if((0|(C=cg(Q=c&Q-C)))==(i[A>>2]+i[A+4>>2]|0))break c;A=C}if(-1==(0|A))break _;if(t+48>>>0<=Q>>>0){C=A;break a}if(-1==(0|cg(C=(C=i[9525])+(a-Q|0)&0-C)))break _;Q=C+Q|0,C=A;break a}if(-1!=(0|C))break a}i[9516]=4|i[9516]}if(-1==(0|(C=cg(g)))|-1==(0|(A=cg(0)))|A>>>0<=C>>>0)break B;if((Q=A-C|0)>>>0<=t+40>>>0)break B}A=i[9513]+Q|0,i[9513]=A,A>>>0>E[9514]&&(i[9514]=A);a:{if(a=i[9411]){for(A=38068;;){if(((g=i[A>>2])+(B=i[A+4>>2])|0)==(0|C))break a;if(!(A=i[A+8>>2]))break}break i}for((A=i[9409])>>>0<=C>>>0&&A||(i[9409]=C),A=0,i[9518]=Q,i[9517]=C,i[9413]=-1,i[9414]=i[9523],i[9520]=0;B=37660+(g=A<<3)|0,i[g+37668>>2]=B,i[g+37672>>2]=B,32!=(0|(A=A+1|0)););B=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=B,g=g+C|0,i[9411]=g,i[g+4>>2]=1|B,i[4+(A+C|0)>>2]=40,i[9412]=i[9527];break Q}if(8&i[A+12>>2]|C>>>0<=a>>>0|g>>>0>a>>>0)break i;i[A+4>>2]=B+Q,g=(A=-8-a&7)+a|0,i[9411]=g,A=(C=i[9408]+Q|0)-A|0,i[9408]=A,i[g+4>>2]=1|A,i[4+(C+a|0)>>2]=40,i[9412]=i[9527];break Q}A=0;break I}A=0;break g}E[9409]>C>>>0&&(i[9409]=C),B=C+Q|0,A=38068;i:{for(;;){if((0|(g=i[A>>2]))!=(0|B)){if(A=i[A+8>>2])continue;break i}break}if(!(8&o[A+12|0]))break C}for(A=38068;!((g=i[A>>2])>>>0<=a>>>0&&(B=g+i[A+4>>2]|0)>>>0>a>>>0);)A=i[A+8>>2];for(c=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=c,g=g+C|0,i[9411]=g,i[g+4>>2]=1|c,i[4+(A+C|0)>>2]=40,i[9412]=i[9527],i[(g=(A=(B+(39-B&7)|0)-47|0)>>>0>>0?a:A)+4>>2]=27,A=i[9520],i[g+16>>2]=i[9519],i[g+20>>2]=A,A=i[9518],i[g+8>>2]=i[9517],i[g+12>>2]=A,i[9519]=g+8,i[9518]=Q,i[9517]=C,i[9520]=0,A=g+24|0;i[A+4>>2]=7,C=A+8|0,A=A+4|0,C>>>0>>0;);if((0|g)!=(0|a)){i[g+4>>2]=-2&i[g+4>>2],C=g-a|0,i[a+4>>2]=1|C,i[g>>2]=C;i:if(C>>>0<=255)A=37660+(-8&C)|0,(g=i[9405])&(C=1<<(C>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,B=8,C=12;else{A=31,C>>>0<=16777215&&(A=62+((C>>>38-(A=_(C>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=A,i[a+16>>2]=0,i[a+20>>2]=0,g=37924+(A<<2)|0;o:{if((B=i[9406])&(Q=1<>>1|0):0),B=i[g>>2];;){if((0|C)==(-8&i[(g=B)+4>>2]))break o;if(B=A>>>29|0,A<<=1,!(B=i[16+(Q=(4&B)+g|0)>>2]))break}i[Q+16>>2]=a}else i[9406]=B|Q,i[g>>2]=a;i[a+24>>2]=g,A=g=a,B=12,C=8;break i}A=i[g+8>>2],i[A+12>>2]=a,i[g+8>>2]=a,i[a+8>>2]=A,A=0,B=12,C=24}i[B+a>>2]=g,i[C+a>>2]=A}}if(!((A=i[9408])>>>0<=t>>>0)){g=A-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}}i[9404]=48,A=0;break A}i[A>>2]=C,i[A+4>>2]=i[A+4>>2]+Q,i[4+(r=(-8-C&7)+C|0)>>2]=3|t,c=(Q=g+(-8-g&7)|0)-(a=t+r|0)|0;C:if(i[9411]!=(0|Q))if(i[9410]!=(0|Q)){if(1==(3&(A=i[Q+4>>2]))){e=-8&A,C=i[Q+12>>2];B:if(A>>>0<=255){if((0|(g=i[Q+8>>2]))==(0|C)){h=37620,D=i[9405]&Lg(-2,A>>>3|0),i[h>>2]=D;break B}i[g+12>>2]=C,i[C+8>>2]=g}else{t=i[Q+24>>2];Q:if((0|C)==(0|Q)){i:{if(A=i[Q+20>>2])g=Q+20|0;else{if(!(A=i[Q+16>>2]))break i;g=Q+16|0}for(;B=g,C=A,g=A+20|0,(A=i[A+20>>2])||(g=C+16|0,A=i[C+16>>2]););i[B>>2]=0;break Q}C=0}else A=i[Q+8>>2],i[A+12>>2]=C,i[C+8>>2]=A;if(t){A=i[Q+28>>2];Q:{if(i[(g=37924+(A<<2)|0)>>2]==(0|Q)){if(i[g>>2]=C,C)break Q;h=37624,D=i[9406]&Lg(-2,A),i[h>>2]=D;break B}if(i[t+(i[t+16>>2]==(0|Q)?16:20)>>2]=C,!C)break B}i[C+24>>2]=t,(A=i[Q+16>>2])&&(i[C+16>>2]=A,i[A+24>>2]=C),(A=i[Q+20>>2])&&(i[C+20>>2]=A,i[A+24>>2]=C)}}c=c+e|0,A=i[4+(Q=Q+e|0)>>2]}if(i[Q+4>>2]=-2&A,i[a+4>>2]=1|c,i[a+c>>2]=c,c>>>0<=255)A=37660+(-8&c)|0,(g=i[9405])&(C=1<<(c>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,i[a+12>>2]=A,i[a+8>>2]=g;else{C=31,c>>>0<=16777215&&(C=62+((c>>>38-(A=_(c>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=C,i[a+16>>2]=0,i[a+20>>2]=0,A=37924+(C<<2)|0;B:{if((g=i[9406])&(B=1<>>1|0):0),g=i[A>>2];;){if((-8&i[(A=g)+4>>2])==(0|c))break B;if(g=C>>>29|0,C<<=1,!(g=i[16+(B=(4&g)+A|0)>>2]))break}i[B+16>>2]=a}else i[9406]=g|B,i[A>>2]=a;i[a+24>>2]=A,i[a+12>>2]=a,i[a+8>>2]=a;break C}g=i[A+8>>2],i[g+12>>2]=a,i[A+8>>2]=a,i[a+24>>2]=0,i[a+12>>2]=A,i[a+8>>2]=g}}else i[9410]=a,A=i[9407]+c|0,i[9407]=A,i[a+4>>2]=1|A,i[A+a>>2]=A;else i[9411]=a,A=i[9408]+c|0,i[9408]=A,i[a+4>>2]=1|A;A=r+8|0;break A}g:if(r){g=i[B+28>>2];C:{if(i[(C=37924+(g<<2)|0)>>2]==(0|B)){if(i[C>>2]=A,A)break C;c=Lg(-2,g)&c,i[9406]=c;break g}if(i[r+(i[r+16>>2]==(0|B)?16:20)>>2]=A,!A)break g}i[A+24>>2]=r,(g=i[B+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[B+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}g:if(a>>>0<=15)A=a+t|0,i[B+4>>2]=3|A,i[4+(A=A+B|0)>>2]=1|i[A+4>>2];else if(i[B+4>>2]=3|t,i[4+(Q=B+t|0)>>2]=1|a,i[a+Q>>2]=a,a>>>0<=255)A=37660+(-8&a)|0,(g=i[9405])&(C=1<<(a>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=Q,i[g+12>>2]=Q,i[Q+12>>2]=A,i[Q+8>>2]=g;else{A=31,a>>>0<=16777215&&(A=62+((a>>>38-(A=_(a>>>8|0))&1)-(A<<1)|0)|0),i[Q+28>>2]=A,i[Q+16>>2]=0,i[Q+20>>2]=0,g=37924+(A<<2)|0;C:{if((C=1<>>1|0):0),g=i[g>>2];;){if(C=g,(-8&i[g+4>>2])==(0|a))break C;if(c=A>>>29|0,A<<=1,!(g=i[16+(c=g+(4&c)|0)>>2]))break}i[c+16>>2]=Q,i[Q+24>>2]=C}else i[9406]=C|c,i[g>>2]=Q,i[Q+24>>2]=g;i[Q+12>>2]=Q,i[Q+8>>2]=Q;break g}A=i[C+8>>2],i[A+12>>2]=Q,i[C+8>>2]=Q,i[Q+24>>2]=0,i[Q+12>>2]=C,i[Q+8>>2]=A}A=B+8|0;break A}I:if(e){g=i[C+28>>2];g:{if(i[(B=37924+(g<<2)|0)>>2]==(0|C)){if(i[B>>2]=A,A)break g;h=37624,D=Lg(-2,g)&y,i[h>>2]=D;break I}if(i[e+(i[e+16>>2]==(0|C)?16:20)>>2]=A,!A)break I}i[A+24>>2]=e,(g=i[C+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[C+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}a>>>0<=15?(A=a+t|0,i[C+4>>2]=3|A,i[4+(A=A+C|0)>>2]=1|i[A+4>>2]):(i[C+4>>2]=3|t,i[4+(c=C+t|0)>>2]=1|a,i[a+c>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),i[9410]=c,i[9407]=a),A=C+8|0}return s=I+16|0,0|A}function U(A,I,g,B,Q,E){var _,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,X=0,O=0,W=0,V=0,Z=0,T=0;if(s=_=s-592|0,r=-1,ZI(t=A+32|0)&&!KI(A)&&NI(Q)&&!KI(Q)&&!qA(y=_+128|0,Q)){for(SI(r=_+384|0),E&&SA(r,35600,34,0),SA(r,A,32,0),SA(r,Q,32,0),SA(r,I,g,B),j(I=r,r=_+320|0),S(r),B=_+8|0,g=t,Q=0,I=0,s=c=s-2272|0;E=c+2016|0,t=o[r+(Q>>>3|0)|0],C[E+Q|0]=t>>>(6&Q)&1,C[(e=E)+(E=1|Q)|0]=t>>>(7&E)&1,256!=(0|(Q=Q+2|0)););for(;;){I=(E=I)+1|0;A:if(!(E>>>0>254)&&o[0|(D=(Q=c+2016|0)+E|0)]){I:if(Q=C[0|(h=I+Q|0)])if((0|(Q=(r=Q<<1)+(t=C[0|D])|0))<=15)C[0|D]=Q,C[0|h]=0;else{if((0|(Q=t-r|0))<-15)break A;for(C[0|D]=Q,Q=I;;){if(!o[0|(t=(c+2016|0)+Q|0)]){C[0|t]=1;break I}if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,!t)break}}if(!(E>>>0>253)){I:if(t=C[0|(e=(Q=E+2|0)+(c+2016|0)|0)])if((0|(t=(h=t<<2)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(253!=(0|E)){I:if(t=C[0|(e=(Q=E+3|0)+(c+2016|0)|0)])if((0|(t=(h=t<<3)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>251)){I:if(t=C[0|(e=(Q=E+4|0)+(c+2016|0)|0)])if((0|(t=(h=t<<4)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(251!=(0|E)){I:if(t=C[0|(e=(Q=E+5|0)+(c+2016|0)|0)])if((0|(t=(h=t<<5)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>249)&&(E=C[0|(h=(Q=E+6|0)+(c+2016|0)|0)]))if((0|(E=(r=E<<6)+(t=C[0|D])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|D]=E;;){if(o[0|(E=(c+2016|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break A}break}C[0|E]=1}else C[0|D]=E,C[0|h]=0}}}}}if(256==(0|I))break}for(Q=0;I=c+1760|0,E=o[g+(Q>>>3|0)|0],C[I+Q|0]=E>>>(6&Q)&1,C[(t=I)+(I=1|Q)|0]=E>>>(7&I)&1,256!=(0|(Q=Q+2|0)););for(I=0;;){g=I,I=I+1|0;A:if(!(g>>>0>254)&&o[0|(e=(Q=c+1760|0)+g|0)]){I:if(Q=C[0|(r=I+Q|0)])if((0|(Q=(t=Q<<1)+(E=C[0|e])|0))<=15)C[0|e]=Q,C[0|r]=0;else{if((0|(Q=E-t|0))<-15)break A;for(C[0|e]=Q,Q=I;;){if(!o[0|(E=(c+1760|0)+Q|0)]){C[0|E]=1;break I}if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,!E)break}}if(!(g>>>0>253)){I:if(E=C[0|(h=(Q=g+2|0)+(c+1760|0)|0)])if((0|(E=(r=E<<2)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(253!=(0|g)){I:if(E=C[0|(h=(Q=g+3|0)+(c+1760|0)|0)])if((0|(E=(r=E<<3)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>251)){I:if(E=C[0|(h=(Q=g+4|0)+(c+1760|0)|0)])if((0|(E=(r=E<<4)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(251!=(0|g)){I:if(E=C[0|(h=(Q=g+5|0)+(c+1760|0)|0)])if((0|(E=(r=E<<5)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>249)&&(g=C[0|(r=(Q=g+6|0)+(c+1760|0)|0)]))if((0|(g=(t=g<<6)+(E=C[0|e])|0))>=16){if((0|(g=E-t|0))<-15)break A;for(C[0|e]=g;;){if(o[0|(g=(c+1760|0)+Q|0)]){if(C[0|g]=0,g=Q>>>0<255,Q=Q+1|0,g)continue;break A}break}C[0|g]=1}else C[0|e]=g,C[0|r]=0}}}}}if(256==(0|I))break}for($A(Q=c+480|0,y),I=i[y+36>>2],i[c+192>>2]=i[y+32>>2],i[c+196>>2]=I,I=i[y+28>>2],i[c+184>>2]=i[y+24>>2],i[c+188>>2]=I,I=i[y+20>>2],i[c+176>>2]=i[y+16>>2],i[c+180>>2]=I,I=i[y+12>>2],i[c+168>>2]=i[y+8>>2],i[c+172>>2]=I,I=i[y+4>>2],i[c+160>>2]=i[y>>2],i[c+164>>2]=I,I=i[y+52>>2],i[c+208>>2]=i[y+48>>2],i[c+212>>2]=I,I=i[y+60>>2],i[c+216>>2]=i[y+56>>2],i[c+220>>2]=I,I=i[4+(g=y- -64|0)>>2],i[c+224>>2]=i[g>>2],i[c+228>>2]=I,I=i[y+76>>2],i[c+232>>2]=i[y+72>>2],i[c+236>>2]=I,I=i[y+44>>2],i[c+200>>2]=i[y+40>>2],i[c+204>>2]=I,I=i[y+92>>2],i[c+248>>2]=i[y+88>>2],i[c+252>>2]=I,I=i[y+100>>2],i[c+256>>2]=i[y+96>>2],i[c+260>>2]=I,I=i[y+108>>2],i[c+264>>2]=i[y+104>>2],i[c+268>>2]=I,I=i[y+116>>2],i[c+272>>2]=i[y+112>>2],i[c+276>>2]=I,I=i[y+84>>2],i[c+240>>2]=i[y+80>>2],i[c+244>>2]=I,KA(E=c+320|0,g=c+160|0),b(c,E,f=c+440|0),b(c+40|0,p=c+360|0,w=c+400|0),b(c+80|0,w,f),b(c+120|0,E,p),sA(E,c,Q),b(g,E,f),b(k=c+200|0,p,w),b(F=c+240|0,w,f),b(n=c+280|0,E,p),$A(I=c+640|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+800|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+960|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1120|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1280|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1440|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(c+1600|0,g),i[B+32>>2]=0,i[B+36>>2]=0,i[B+24>>2]=0,i[B+28>>2]=0,i[B+16>>2]=0,i[B+20>>2]=0,i[B+8>>2]=0,i[B+12>>2]=0,i[B>>2]=0,i[B+4>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+40>>2]=1,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=0,i[B+68>>2]=0,i[B+72>>2]=0,i[B+84>>2]=0,i[B+88>>2]=0,i[B+76>>2]=0,i[B+80>>2]=1,i[B+92>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,X=B+80|0,O=B+40|0,I=255;;){A:{I:{if(!o[(g=c+2016|0)+I|0]&&!o[(Q=c+1760|0)+I|0]){if(!(o[(E=g)+(g=I-1|0)|0]|o[g+Q|0]))break I;I=g}if((0|I)<0)break A;for(;KA(Q=c+320|0,B),g=I,(0|(E=C[I+(c+2016|0)|0]))>0?(b(I=c+160|0,Q,f),b(k,p,w),b(F,w,f),b(n,Q,p),sA(Q,I,(c+480|0)+a((254&E)>>>1|0,160)|0)):(0|E)>=0||(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),hA(Q,I,(c+480|0)+a((0-E&254)>>>1|0,160)|0)),(0|(u=C[g+(c+1760|0)|0]))>0?(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),DA(Q,I,a((254&u)>>>1|0,120)+1728|0)):(0|u)>=0||(b(c+160|0,x=c+320|0,f),b(k,p,w),b(F,w,f),b(n,x,p),N=i[c+160>>2],G=i[c+200>>2],M=i[c+164>>2],K=i[c+204>>2],U=i[c+168>>2],H=i[c+208>>2],Y=i[c+172>>2],J=i[c+212>>2],d=i[c+176>>2],m=i[c+216>>2],l=i[c+180>>2],D=i[c+220>>2],e=i[c+184>>2],h=i[c+224>>2],r=i[c+188>>2],y=i[c+228>>2],t=i[c+192>>2],E=i[c+232>>2],Q=i[c+236>>2],I=i[c+196>>2],i[c+396>>2]=Q-I,i[c+392>>2]=E-t,i[c+388>>2]=y-r,i[c+384>>2]=h-e,i[c+380>>2]=D-l,i[c+376>>2]=m-d,i[c+372>>2]=J-Y,i[c+368>>2]=H-U,i[c+364>>2]=K-M,i[c+360>>2]=G-N,i[c+356>>2]=I+Q,i[c+352>>2]=E+t,i[c+348>>2]=r+y,i[c+344>>2]=e+h,i[c+340>>2]=D+l,i[c+336>>2]=d+m,i[c+332>>2]=Y+J,i[c+328>>2]=U+H,i[c+324>>2]=M+K,i[c+320>>2]=N+G,b(w,x,40+(I=a((0-u&254)>>>1|0,120)+1728|0)|0),b(p,p,I),b(f,I+80|0,n),W=i[c+276>>2],V=i[c+272>>2],u=i[c+268>>2],x=i[c+264>>2],e=i[c+260>>2],h=i[c+256>>2],r=i[c+252>>2],y=i[c+248>>2],t=i[c+244>>2],E=i[c+240>>2],v=i[c+360>>2],R=i[c+400>>2],L=i[c+364>>2],P=i[c+404>>2],q=i[c+368>>2],z=i[c+408>>2],N=i[c+372>>2],G=i[c+412>>2],M=i[c+376>>2],K=i[c+416>>2],U=i[c+380>>2],H=i[c+420>>2],Y=i[c+384>>2],J=i[c+424>>2],d=i[c+388>>2],m=i[c+428>>2],l=i[c+392>>2],D=i[c+432>>2],Q=i[c+396>>2],I=i[c+436>>2],i[c+396>>2]=Q+I,i[c+392>>2]=D+l,i[c+388>>2]=d+m,i[c+384>>2]=Y+J,i[c+380>>2]=U+H,i[c+376>>2]=M+K,i[c+372>>2]=N+G,i[c+368>>2]=q+z,i[c+364>>2]=L+P,i[c+360>>2]=v+R,i[c+356>>2]=I-Q,i[c+352>>2]=D-l,i[c+348>>2]=m-d,i[c+344>>2]=J-Y,i[c+340>>2]=H-U,i[c+336>>2]=K-M,i[c+332>>2]=G-N,i[c+328>>2]=z-q,i[c+324>>2]=P-L,i[c+320>>2]=R-v,N=E<<1,G=i[c+440>>2],i[c+400>>2]=N-G,M=t<<1,K=i[c+444>>2],i[c+404>>2]=M-K,U=y<<1,H=i[c+448>>2],i[c+408>>2]=U-H,Y=r<<1,J=i[c+452>>2],i[c+412>>2]=Y-J,d=h<<1,m=i[c+456>>2],i[c+416>>2]=d-m,l=e<<1,D=i[c+460>>2],i[c+420>>2]=l-D,e=x<<1,h=i[c+464>>2],i[c+424>>2]=e-h,r=u<<1,y=i[c+468>>2],i[c+428>>2]=r-y,t=V<<1,E=i[c+472>>2],i[c+432>>2]=t-E,Q=W<<1,I=i[c+476>>2],i[c+436>>2]=Q-I,i[c+440>>2]=N+G,i[c+444>>2]=M+K,i[c+448>>2]=U+H,i[c+452>>2]=Y+J,i[c+456>>2]=d+m,i[c+460>>2]=D+l,i[c+464>>2]=e+h,i[c+468>>2]=r+y,i[c+472>>2]=E+t,i[c+476>>2]=I+Q),b(B,c+320|0,f),b(O,p,w),b(X,w,f),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}s=c+2272|0,tg(I=_+288|0,B),Z=-1,T=NC(I,A),r=((0|A)==(0|I)?Z:T)|MI(A,I,32)}return s=_+592|0,r}function b(A,I,g){var C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0;QA=Ig(C=i[g+4>>2],e=C>>31,wA=(w=i[I+20>>2])<<1,m=wA>>31),oA=f,iA=(hA=Ig(fA=i[g>>2],Q=fA>>31,B=i[I+24>>2],o=B>>31))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,rA=Ig(E=i[g+8>>2],h=E>>31,hA=i[I+16>>2],_=hA>>31),oA=f+QA|0,oA=(iA=rA+iA|0)>>>0>>0?oA+1|0:oA,QA=(rA=Ig(y=i[g+12>>2],n=y>>31,K=(k=i[I+12>>2])<<1,l=K>>31))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(DA=Ig(D=i[g+16>>2],U=D>>31,rA=i[I+8>>2],c=rA>>31))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(F=i[g+20>>2],u=F>>31,b=(S=i[I+4>>2])<<1,x=b>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,Z=cA=i[g+24>>2],oA=(eA=Ig(cA,W=cA>>31,DA=i[I>>2],t=DA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0>>0?iA+1|0:iA,v=i[g+28>>2],QA=(eA=Ig(sA=a(v,19),N=sA>>31,H=(G=i[I+36>>2])<<1,R=H>>31))+oA|0,oA=f+iA|0,oA=QA>>>0>>0?oA+1|0:oA,SA=i[g+32>>2],iA=(tA=Ig(EA=a(SA,19),p=EA>>31,eA=i[I+32>>2],r=eA>>31))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,T=i[g+36>>2],g=Ig(tA=a(T,19),s=tA>>31,Y=(M=i[I+28>>2])<<1,L=Y>>31),QA=f+QA|0,aA=I=g+iA|0,g=I>>>0>>0?QA+1|0:QA,I=Ig(hA,_,C,e),QA=f,iA=Ig(fA,Q,w,P=w>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(E,h,k,q=k>>31),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(rA,c,y,n),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(D,U,S,z=S>>31),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(DA,t,F,u),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(cA=a(cA,19),J=cA>>31,G,j=G>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(eA,r,sA,N),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(EA,p,M,X=M>>31),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(tA,s,B,o),QA=f+QA|0,GA=I=iA+I|0,nA=I>>>0>>0?QA+1|0:QA,I=Ig(C,e,K,l),QA=f,iA=Ig(fA,Q,hA,_),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(rA,c,E,h),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(y,n,b,x),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(DA,t,D,U),QA=f+iA|0,QA=(I=oA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(d=a(F,19),O=d>>31,H,R),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(eA,r,cA,J),QA=f+QA|0,QA=(I=iA+I|0)>>>0>>0?QA+1|0:QA,iA=Ig(sA,N,Y,L),oA=f+QA|0,oA=(I=iA+I|0)>>>0>>0?oA+1|0:oA,QA=Ig(EA,p,B,o),iA=f+oA|0,iA=(I=QA+I|0)>>>0>>0?iA+1|0:iA,oA=Ig(tA,s,wA,m),QA=f+iA|0,$=I=oA+I|0,AA=QA=I>>>0>>0?QA+1|0:QA,IA=I=I+33554432|0,gA=QA=I>>>0<33554432?QA+1|0:QA,oA=(67108863&QA)<<6|I>>>26,QA=(QA>>26)+nA|0,GA=I=oA+GA|0,QA=I>>>0>>0?QA+1|0:QA,CA=I=I+16777216|0,QA=g+(iA=(oA=I>>>0<16777216?QA+1|0:QA)>>25)|0,QA=(I=(oA=(33554431&oA)<<7|I>>>25)+aA|0)>>>0>>0?QA+1|0:QA,kA=g=(iA=I)+33554432|0,I=QA=g>>>0<33554432?QA+1|0:QA,i[A+24>>2]=iA-(-67108864&g),g=Ig(C,e,b,x),QA=f,iA=Ig(fA,Q,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=(QA=g)+(g=Ig(DA,t,E,h))|0,QA=f+oA|0,QA=g>>>0>iA>>>0?QA+1|0:QA,oA=Ig(g=a(y,19),FA=g>>31,H,R),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(eA,r,nA=a(D,19),V=nA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0>>0?iA+1|0:iA,aA=Ig(Y,L,d,O),QA=f+iA|0,QA=(oA=aA+oA|0)>>>0>>0?QA+1|0:QA,iA=(aA=Ig(B,o,cA,J))+oA|0,oA=f+QA|0,oA=iA>>>0>>0?oA+1|0:oA,aA=Ig(sA,N,wA,m),QA=f+oA|0,QA=(iA=aA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,hA,_),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(aA=Ig(tA,s,K,l))+iA|0,iA=f+QA|0,yA=oA,MA=oA>>>0>>0?iA+1|0:iA,QA=Ig(DA,t,C,e),iA=f,oA=(aA=Ig(fA,Q,S,z))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,aA=iA=a(E,19),iA=(_A=Ig(iA,NA=iA>>31,G,j))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(eA,r,g,FA),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(nA,V,M,X),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=(_A=Ig(B,o,d,O))+iA|0,iA=f+QA|0,iA=oA>>>0<_A>>>0?iA+1|0:iA,_A=Ig(cA,J,w,P),QA=f+iA|0,QA=(oA=_A+oA|0)>>>0<_A>>>0?QA+1|0:QA,iA=(_A=Ig(hA,_,sA,N))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(EA,p,k,q),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(tA,s,rA,c),QA=f+QA|0,KA=iA=oA+iA|0,_A=iA>>>0>>0?QA+1|0:QA,QA=Ig(QA=a(C,19),QA>>31,H,R),iA=f,oA=Ig(fA,Q,DA,t),iA=f+iA|0,iA=(QA=oA+QA|0)>>>0>>0?iA+1|0:iA,oA=(aA=Ig(eA,r,aA,NA))+QA|0,QA=f+iA|0,g=(iA=Ig(g,FA,Y,L))+oA|0,oA=f+(oA>>>0>>0?QA+1|0:QA)|0,oA=g>>>0>>0?oA+1|0:oA,iA=Ig(B,o,nA,V),QA=f+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(wA,m,d,O),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,_,cA,J),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,oA=Ig(sA,N,K,l),QA=f+iA|0,QA=(g=oA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(EA,p,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(tA,s,b,x),QA=f+oA|0,aA=g=iA+g|0,FA=QA=g>>>0>>0?QA+1|0:QA,NA=g=g+33554432|0,BA=QA=g>>>0<33554432?QA+1|0:QA,iA=(oA=QA>>26)+_A|0,_A=g=(QA=(67108863&QA)<<6|g>>>26)+KA|0,QA=g>>>0>>0?iA+1|0:iA,KA=g=g+16777216|0,iA=(33554431&(QA=g>>>0<16777216?QA+1|0:QA))<<7|g>>>25,QA=(QA>>25)+MA|0,QA=(g=iA+yA|0)>>>0>>0?QA+1|0:QA,MA=iA=(oA=g)+33554432|0,g=QA=iA>>>0<33554432?QA+1|0:QA,i[A+8>>2]=oA-(-67108864&iA),QA=Ig(B,o,C,e),oA=f,iA=(yA=Ig(fA,Q,M,X))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(E,h,w,P),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,oA=Ig(hA,_,y,n),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,yA=Ig(D,U,k,q),oA=f+QA|0,oA=(iA=yA+iA|0)>>>0>>0?oA+1|0:oA,QA=(yA=Ig(rA,c,F,u))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(yA=Ig(S,z,Z,W))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(DA,t,v,yA=v>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(EA,p,G,j),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,pA=Ig(tA,s,eA,r),oA=f+QA|0,QA=I>>26,I=(kA=(67108863&I)<<6|kA>>>26)+(iA=pA+iA|0)|0,iA=QA+(iA>>>0>>0?oA+1|0:oA)|0,QA=(oA=I)>>>0>>0?iA+1|0:iA,kA=iA=oA+16777216|0,I=QA=iA>>>0<16777216?QA+1|0:QA,i[A+28>>2]=oA-(-33554432&iA),QA=Ig(rA,c,C,e),iA=f,pA=Ig(fA,Q,k,q),oA=f+iA|0,oA=(QA=pA+QA|0)>>>0>>0?oA+1|0:oA,pA=Ig(E,h,S,z),iA=f+oA|0,iA=(QA=pA+QA|0)>>>0>>0?iA+1|0:iA,oA=(pA=Ig(DA,t,y,n))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(nA,V,G,j),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(eA,r,d,O),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(cA=Ig(cA,J,M,X))+iA|0,oA=f+QA|0,QA=(sA=Ig(B,o,sA,N))+iA|0,iA=f+(iA>>>0>>0?oA+1|0:oA)|0,oA=(EA=Ig(EA,p,w,P))+QA|0,QA=f+(QA>>>0>>0?iA+1|0:iA)|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(tA,s,hA,_),QA=f+QA|0,EA=iA=iA+oA|0,QA=(QA=iA>>>0>>0?QA+1|0:QA)+(iA=g>>26)|0,EA=g=EA+(oA=(67108863&g)<<6|MA>>>26)|0,QA=g>>>0>>0?QA+1|0:QA,sA=iA=g+16777216|0,g=oA=iA>>>0<16777216?QA+1|0:QA,i[A+12>>2]=EA-(-33554432&iA),QA=Ig(C,e,Y,L),oA=f,iA=(EA=Ig(fA,Q,eA,r))+QA|0,QA=f+oA|0,QA=iA>>>0>>0?QA+1|0:QA,oA=Ig(B,o,E,h),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,EA=Ig(y,n,wA,m),oA=f+QA|0,oA=(iA=EA+iA|0)>>>0>>0?oA+1|0:oA,QA=(EA=Ig(hA,_,D,U))+iA|0,iA=f+oA|0,iA=QA>>>0>>0?iA+1|0:iA,oA=(EA=Ig(K,l,F,u))+QA|0,QA=f+iA|0,QA=oA>>>0>>0?QA+1|0:QA,iA=oA,oA=Ig(rA,c,Z,W),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0>>0?QA+1|0:QA,oA=Ig(v,yA,b,x),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0>>0?QA+1|0:QA,iA=(wA=Ig(DA,t,EA=SA,cA=EA>>31))+iA|0,oA=f+QA|0,QA=(tA=Ig(tA,s,H,R))+iA|0,iA=f+(iA>>>0>>0?oA+1|0:oA)|0,iA=QA>>>0>>0?iA+1|0:iA,SA=QA,QA=(QA=I>>25)+iA|0,QA=(I=SA+(oA=(33554431&I)<<7|kA>>>25)|0)>>>0>>0?QA+1|0:QA,tA=iA=(oA=I)+33554432|0,I=QA=iA>>>0<33554432?QA+1|0:QA,i[A+32>>2]=oA-(-67108864&iA),iA=g>>25,g=(sA=(33554431&g)<<7|sA>>>25)+($-(QA=-67108864&IA)|0)|0,QA=iA+(AA-((QA>>>0>$>>>0)+gA|0)|0)|0,QA=g>>>0>>0?QA+1|0:QA,QA=((67108863&(QA=(g=(iA=g)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|g>>>26)+(oA=GA-(-33554432&CA)|0)|0,i[A+20>>2]=QA,i[A+16>>2]=iA-(-67108864&g),g=Ig(eA,r,C,e),QA=f,iA=Ig(fA,Q,G,j),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(E,h,M,X),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(B,o,y,n),oA=f+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(D,U,w,P),QA=f+oA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(hA,_,F,u),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,iA=Ig(k,q,Z,W),QA=f+QA|0,QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA,oA=Ig(rA,c,v,yA),iA=f+QA|0,iA=(g=oA+g|0)>>>0>>0?iA+1|0:iA,QA=Ig(EA,cA,S,z),oA=f+iA|0,oA=(g=QA+g|0)>>>0>>0?oA+1|0:oA,iA=Ig(DA,t,T,T>>31),QA=f+oA|0,QA=(QA=(g=iA+g|0)>>>0>>0?QA+1|0:QA)+(iA=I>>26)|0,QA=(I=(oA=g)+(g=(67108863&I)<<6|tA>>>26)|0)>>>0>>0?QA+1|0:QA,QA=(I=(g=I)+16777216|0)>>>0<16777216?QA+1|0:QA,i[A+36>>2]=g-(-33554432&I),oA=_A-(-33554432&KA)|0,iA=aA-(g=-67108864&NA)|0,fA=FA-((g>>>0>aA>>>0)+BA|0)|0,I=(g=Ig((33554431&(g=QA))<<7|I>>>25,QA>>=25,19,0))+iA|0,iA=f+fA|0,QA=I>>>0>>0?iA+1|0:iA,QA=((67108863&(QA=(I=(g=I)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|I>>>26)+oA|0,i[A+4>>2]=QA,i[A>>2]=g-(-67108864&I)}function H(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w=0,n=0,k=0;s=g=s-544|0,C=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,B=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,Q=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,E=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,a=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,_=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,c=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,t=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,w=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,r=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,e=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,y=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,D=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,f=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,p=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=A,A=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=A,A=i[I+108>>2],i[g+504>>2]=i[I+104>>2],i[g+508>>2]=A,A=i[I+100>>2],i[g+496>>2]=i[I+96>>2],i[g+500>>2]=A,A=i[I+124>>2],i[g+488>>2]=i[I+120>>2],i[g+492>>2]=A,A=i[I+116>>2],i[g+480>>2]=i[I+112>>2],i[g+484>>2]=A,AI(k=g+512|0,g+496|0,g+480|0),A=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=A,A=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+472>>2]=i[I+88>>2],i[g+476>>2]=A,A=i[I+84>>2],i[g+464>>2]=i[I+80>>2],i[g+468>>2]=A,A=i[I+108>>2],i[g+456>>2]=i[I+104>>2],i[g+460>>2]=A,A=i[I+100>>2],i[g+448>>2]=i[I+96>>2],i[g+452>>2]=A,AI(k,g+464|0,g+448|0),A=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=A,A=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+440>>2]=i[I+72>>2],i[g+444>>2]=A,n=i[4+(A=I- -64|0)>>2],i[g+432>>2]=i[A>>2],i[g+436>>2]=n,n=i[I+92>>2],i[g+424>>2]=i[I+88>>2],i[g+428>>2]=n,n=i[I+84>>2],i[g+416>>2]=i[I+80>>2],i[g+420>>2]=n,AI(k,g+432|0,g+416|0),n=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=n,n=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=n,n=i[I+60>>2],i[g+408>>2]=i[I+56>>2],i[g+412>>2]=n,n=i[I+52>>2],i[g+400>>2]=i[I+48>>2],i[g+404>>2]=n,n=i[I+76>>2],i[g+392>>2]=i[I+72>>2],i[g+396>>2]=n,n=i[A+4>>2],i[g+384>>2]=i[A>>2],i[g+388>>2]=n,AI(k,g+400|0,g+384|0),n=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=n,n=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=n,n=i[I+44>>2],i[g+376>>2]=i[I+40>>2],i[g+380>>2]=n,n=i[I+36>>2],i[g+368>>2]=i[I+32>>2],i[g+372>>2]=n,n=i[I+60>>2],i[g+360>>2]=i[I+56>>2],i[g+364>>2]=n,n=i[I+52>>2],i[g+352>>2]=i[I+48>>2],i[g+356>>2]=n,AI(k,g+368|0,g+352|0),n=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=n,n=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=n,n=i[I+28>>2],i[g+344>>2]=i[I+24>>2],i[g+348>>2]=n,n=i[I+20>>2],i[g+336>>2]=i[I+16>>2],i[g+340>>2]=n,n=i[I+44>>2],i[g+328>>2]=i[I+40>>2],i[g+332>>2]=n,n=i[I+36>>2],i[g+320>>2]=i[I+32>>2],i[g+324>>2]=n,AI(k,g+336|0,g+320|0),n=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=n,n=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=n,n=i[I+12>>2],i[g+312>>2]=i[I+8>>2],i[g+316>>2]=n,n=i[I+4>>2],i[g+304>>2]=i[I>>2],i[g+308>>2]=n,n=i[I+28>>2],i[g+296>>2]=i[I+24>>2],i[g+300>>2]=n,n=i[I+20>>2],i[g+288>>2]=i[I+16>>2],i[g+292>>2]=n,AI(k,g+304|0,g+288|0),n=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=n,n=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=n,n=i[g+540>>2],i[g+280>>2]=i[g+536>>2],i[g+284>>2]=n,n=i[g+532>>2],i[g+272>>2]=i[g+528>>2],i[g+276>>2]=n,n=i[I+12>>2],i[g+264>>2]=i[I+8>>2],i[g+268>>2]=n,n=i[I+4>>2],i[g+256>>2]=i[I>>2],i[g+260>>2]=n,AI(k,g+272|0,g+256|0),n=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=n,n=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=n,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^f,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^D,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^h,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^p,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^y,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^e,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^r,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^w,w=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=w,w=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=w,w=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=w,w=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=w,w=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=w,w=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=w,AI(k,g+240|0,g+224|0),w=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=w,w=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=w,w=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=w,w=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=w,w=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=w,w=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=w,AI(k,g+208|0,g+192|0),w=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=w,w=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=w,w=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=w,w=i[A+4>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=w,w=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=w,w=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=w,AI(k,g+176|0,g+160|0),w=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=w,w=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=w,w=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=w,w=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=w,w=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=w,w=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=w,AI(k,g+144|0,g+128|0),w=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=w,w=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=w,w=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=w,w=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=w,w=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=w,w=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=w,AI(k,g+112|0,g+96|0),w=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=w,w=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=w,w=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=w,w=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=w,w=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=w,w=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=w,AI(k,g+80|0,g- -64|0),w=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=w,w=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=w,w=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=w,w=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=w,w=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=w,w=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=w,AI(k,g+48|0,g+32|0),w=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=w,w=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=w,w=i[g+540>>2],i[g+24>>2]=i[g+536>>2],i[g+28>>2]=w,w=i[g+532>>2],i[g+16>>2]=i[g+528>>2],i[g+20>>2]=w,w=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=w,w=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=w,AI(k,g+16|0,g),k=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=k,k=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=k,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^t,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^c,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^_,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^a,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+544|0}function Y(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;for(s=E=s-288|0,D=(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^B>>>29,f=(o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24)^B<<3,p=(o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24)^g>>>29,B=(o[0|(c=Q+32|0)]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)^g<<3,y=Q+16|0,r=Q+48|0,_=Q- -64|0,e=Q+80|0,a=Q+96|0,t=Q+112|0;g=i[t+12>>2],i[E+280>>2]=i[t+8>>2],i[E+284>>2]=g,g=i[t+4>>2],i[E+272>>2]=i[t>>2],i[E+276>>2]=g,g=i[a+12>>2],i[E+248>>2]=i[a+8>>2],i[E+252>>2]=g,g=i[a+4>>2],i[E+240>>2]=i[a>>2],i[E+244>>2]=g,g=i[t+12>>2],i[E+232>>2]=i[t+8>>2],i[E+236>>2]=g,g=i[t+4>>2],i[E+224>>2]=i[t>>2],i[E+228>>2]=g,AI(h=E+256|0,E+240|0,E+224|0),g=i[E+268>>2],i[t+8>>2]=i[E+264>>2],i[t+12>>2]=g,g=i[E+260>>2],i[t>>2]=i[E+256>>2],i[t+4>>2]=g,g=i[e+12>>2],i[E+216>>2]=i[e+8>>2],i[E+220>>2]=g,g=i[e+4>>2],i[E+208>>2]=i[e>>2],i[E+212>>2]=g,g=i[a+12>>2],i[E+200>>2]=i[a+8>>2],i[E+204>>2]=g,g=i[a+4>>2],i[E+192>>2]=i[a>>2],i[E+196>>2]=g,AI(h,E+208|0,E+192|0),g=i[E+268>>2],i[a+8>>2]=i[E+264>>2],i[a+12>>2]=g,g=i[E+260>>2],i[a>>2]=i[E+256>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+184>>2]=i[_+8>>2],i[E+188>>2]=g,g=i[_+4>>2],i[E+176>>2]=i[_>>2],i[E+180>>2]=g,g=i[e+12>>2],i[E+168>>2]=i[e+8>>2],i[E+172>>2]=g,g=i[e+4>>2],i[E+160>>2]=i[e>>2],i[E+164>>2]=g,AI(h,E+176|0,E+160|0),g=i[E+268>>2],i[e+8>>2]=i[E+264>>2],i[e+12>>2]=g,g=i[E+260>>2],i[e>>2]=i[E+256>>2],i[e+4>>2]=g,g=i[r+12>>2],i[E+152>>2]=i[r+8>>2],i[E+156>>2]=g,g=i[r+4>>2],i[E+144>>2]=i[r>>2],i[E+148>>2]=g,g=i[_+12>>2],i[E+136>>2]=i[_+8>>2],i[E+140>>2]=g,g=i[_+4>>2],i[E+128>>2]=i[_>>2],i[E+132>>2]=g,AI(h,E+144|0,E+128|0),g=i[E+268>>2],i[_+8>>2]=i[E+264>>2],i[_+12>>2]=g,g=i[E+260>>2],i[_>>2]=i[E+256>>2],i[_+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[r+12>>2],i[E+104>>2]=i[r+8>>2],i[E+108>>2]=g,g=i[r+4>>2],i[E+96>>2]=i[r>>2],i[E+100>>2]=g,AI(h,E+112|0,E+96|0),g=i[E+268>>2],i[r+8>>2]=i[E+264>>2],i[r+12>>2]=g,g=i[E+260>>2],i[r>>2]=i[E+256>>2],i[r+4>>2]=g,g=i[y+12>>2],i[E+88>>2]=i[y+8>>2],i[E+92>>2]=g,g=i[y+4>>2],i[E+80>>2]=i[y>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(h,E+80|0,E- -64|0),g=i[E+268>>2],i[c+8>>2]=i[E+264>>2],i[c+12>>2]=g,g=i[E+260>>2],i[c>>2]=i[E+256>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[y+12>>2],i[E+40>>2]=i[y+8>>2],i[E+44>>2]=g,g=i[y+4>>2],i[E+32>>2]=i[y>>2],i[E+36>>2]=g,AI(h,E+48|0,E+32|0),g=i[E+268>>2],i[y+8>>2]=i[E+264>>2],i[y+12>>2]=g,g=i[E+260>>2],i[y>>2]=i[E+256>>2],i[y+4>>2]=g,g=i[E+284>>2],i[E+24>>2]=i[E+280>>2],i[E+28>>2]=g,g=i[E+276>>2],i[E+16>>2]=i[E+272>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(h,E+16|0,E),g=i[E+268>>2],i[Q+8>>2]=i[E+264>>2],i[Q+12>>2]=g,g=i[E+260>>2],i[Q>>2]=i[E+256>>2],i[Q+4>>2]=g,n=D^(o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),i[Q+12>>2]=n,k=f^(o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),i[Q+8>>2]=k,F=p^(o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),i[Q+4>>2]=F,S=B^(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[Q>>2]=S,N=B^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),i[_>>2]=N,G=p^(o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24),i[Q+68>>2]=G,M=f^(o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24),i[Q+72>>2]=M,K=D^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),i[Q+76>>2]=K,7!=(0|(w=w+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}_=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,c=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,y=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,r=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,e=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,t=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,h=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,D=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,f=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,p=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,w=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,I=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,Q=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24)^K,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=p^w^B^I^g^M^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=a^t^h^D^f^G^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=_^c^y^r^e^N^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}t=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,h=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,D=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,f=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,p=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,w=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,g=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,I=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,a=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24),C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,I=B^I^g^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=f^p^w^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=t^h^D^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,r=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,a=o[Q+112|0]|o[Q+113|0]<<8|o[Q+114|0]<<16|o[Q+115|0]<<24,t=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,h=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,D=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,f=o[Q+116|0]|o[Q+117|0]<<8|o[Q+118|0]<<16|o[Q+119|0]<<24,p=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,w=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,B=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,g=o[Q+120|0]|o[Q+121|0]<<8|o[Q+122|0]<<16|o[Q+123|0]<<24,I=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,Q=(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24)^(o[Q+124|0]|o[Q+125|0]<<8|o[Q+126|0]<<16|o[Q+127|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=w^B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^f^p,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=r^e^a^t,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+288|0}function J(A,I,g,C){var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;for(B=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g+4>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+8>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+12>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+16>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+20>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+24>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+28>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+32>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+36>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+40>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+44>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+48>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+52>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+56>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,I=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+60>>2]=I<<24|(65280&I)<<8|I>>>8&65280|I>>>24,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I,I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I;_=i[C+28>>2],B=(I=n<<2)+g|0,E=i[C+16>>2],c=i[B>>2]+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0,r=(_=((Q=i[I+35264>>2]+c|0)+(E&((c=i[C+24>>2])^(e=i[C+20>>2]))^c)|0)+_|0)+i[C+12>>2]|0,i[C+12>>2]=r,_=(s=_+(Lg(t=i[C>>2],30)^Lg(t,19)^Lg(t,10))|0)+(t&((Q=i[C+8>>2])|(a=i[C+4>>2]))|Q&a)|0,i[C+28>>2]=_,Q=(s=Q)+(c=(i[(D=(Q=4|I)+g|0)>>2]+((c+(e^r&(E^e))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)|0)+i[Q+35264>>2]|0)|0,i[C+8>>2]=Q,c=(c+(_&(a|t)|a&t)|0)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0,i[C+24>>2]=c,e=(s=a)+(a=(((e+i[(w=(a=8|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(E^Q&(E^r))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)|0,i[C+4>>2]=e,a=a+((c&(_|t)|_&t)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+20>>2]=a,E=(s=t)+(t=(((E+i[(k=(t=12|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(r^e&(Q^r))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)|0,i[C>>2]=E,t=t+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+16>>2]=t,r=(y=((((s=r)+i[(F=(r=16|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+12>>2]=r,y=_+y|0,i[C+28>>2]=y,_=(Q=(((Q+i[(S=(_=20|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+8>>2]=_,Q=Q+c|0,i[C+24>>2]=Q,c=(e=(((e+i[(N=(c=24|I)+g|0)>>2]|0)+i[c+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+4>>2]=c,e=a+e|0,i[C+20>>2]=e,a=(E=(((E+i[(G=(a=28|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C>>2]=a,E=E+t|0,i[C+16>>2]=E,t=(y=(((y+i[(M=(t=32|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+28>>2]=t,y=r+y|0,i[C+12>>2]=y,r=(Q=(((Q+i[(K=(r=36|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+24>>2]=r,Q=Q+_|0,i[C+8>>2]=Q,_=(e=(((e+i[(U=(_=40|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+20>>2]=_,e=c+e|0,i[C+4>>2]=e,s=(c=44|I)+g|0,c=(E=((E+(i[c+35264>>2]+i[s>>2]|0)|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+16>>2]=c,a=a+E|0,i[C>>2]=a,p=(E=48|I)+g|0,E=(y=((y+(i[E+35264>>2]+i[p>>2]|0)|0)+(Q^a&(Q^e))|0)+(Lg(a,26)^Lg(a,21)^Lg(a,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+12>>2]=E,t=t+y|0,i[C+28>>2]=t,f=(y=52|I)+g|0,Q=(y=(((i[y+35264>>2]+i[f>>2]|0)+Q|0)+(e^t&(a^e))|0)+(Lg(t,26)^Lg(t,21)^Lg(t,7))|0)+((E&(_|c)|_&c)+(Lg(E,30)^Lg(E,19)^Lg(E,10))|0)|0,i[C+8>>2]=Q,r=r+y|0,i[C+24>>2]=r,y=(h=56|I)+g|0,e=(h=(((i[h+35264>>2]+i[y>>2]|0)+e|0)+(a^r&(a^t))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)+((Q&(c|E)|c&E)+(Lg(Q,30)^Lg(Q,19)^Lg(Q,10))|0)|0,i[C+4>>2]=e,_=_+h|0,i[C+20>>2]=_,h=(I|=60)+g|0,_=(I=((a+(i[I+35264>>2]+i[h>>2]|0)|0)+(t^_&(t^r))|0)+(Lg(_,26)^Lg(_,21)^Lg(_,7))|0)+((e&(Q|E)|Q&E)+(Lg(e,30)^Lg(e,19)^Lg(e,10))|0)|0,i[C>>2]=_,i[C+16>>2]=I+c,48!=(0|n);)a=i[K>>2],n=n+16|0,I=i[y>>2],_=(Q=i[B>>2]+(a+(Lg(I,15)^Lg(I,13)^I>>>10)|0)|0)+(Lg(c=i[D>>2],25)^Lg(c,14)^c>>>3)|0,i[(n<<2)+g>>2]=_,r=(E=(Q=(t=i[U>>2])+c|0)+(Lg(c=i[h>>2],15)^Lg(c,13)^c>>>10)|0)+(Lg(Q=i[w>>2],25)^Lg(Q,14)^Q>>>3)|0,i[B+68>>2]=r,e=(s=((E=Q)+(Q=i[s>>2])|0)+(Lg(_,15)^Lg(_,13)^_>>>10)|0)+(Lg(E=i[k>>2],25)^Lg(E,14)^E>>>3)|0,i[B+72>>2]=e,y=(h=((s=E)+(E=i[p>>2])|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0)+(Lg(s=i[F>>2],25)^Lg(s,14)^s>>>3)|0,i[B+76>>2]=y,p=(h=((h=s)+(s=i[f>>2])|0)+(Lg(e,15)^Lg(e,13)^e>>>10)|0)+(Lg(f=i[S>>2],25)^Lg(f,14)^f>>>3)|0,i[B+80>>2]=p,f=(D=(I+f|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0)+(Lg(h=i[N>>2],25)^Lg(h,14)^h>>>3)|0,i[B+84>>2]=f,h=((c+h|0)+(Lg(w=i[G>>2],25)^Lg(w,14)^w>>>3)|0)+(Lg(p,15)^Lg(p,13)^p>>>10)|0,i[B+88>>2]=h,r=((D=i[M>>2])+(r+(Lg(a,25)^Lg(a,14)^a>>>3)|0)|0)+(Lg(h,15)^Lg(h,13)^h>>>10)|0,i[B+96>>2]=r,D=((_+w|0)+(Lg(D,25)^Lg(D,14)^D>>>3)|0)+(Lg(f,15)^Lg(f,13)^f>>>10)|0,i[B+92>>2]=D,y=(y+(t+(Lg(Q,25)^Lg(Q,14)^Q>>>3)|0)|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0,i[B+104>>2]=y,a=(e+(a+(Lg(t,25)^Lg(t,14)^t>>>3)|0)|0)+(Lg(D,15)^Lg(D,13)^D>>>10)|0,i[B+100>>2]=a,t=(f+(E+(Lg(s,25)^Lg(s,14)^s>>>3)|0)|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0,i[B+112>>2]=t,a=(p+(Q+(Lg(E,25)^Lg(E,14)^E>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+108>>2]=a,b=B,H=(D+(I+(Lg(c,25)^Lg(c,14)^c>>>3)|0)|0)+(Lg(t,15)^Lg(t,13)^t>>>10)|0,i[b+120>>2]=H,I=(h+(s+(Lg(I,25)^Lg(I,14)^I>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+116>>2]=I,b=B,H=(r+(c+(Lg(_,25)^Lg(_,14)^_>>>3)|0)|0)+(Lg(I,15)^Lg(I,13)^I>>>10)|0,i[b+124>>2]=H;i[A>>2]=_+i[A>>2],i[A+4>>2]=i[A+4>>2]+i[C+4>>2],i[A+8>>2]=i[A+8>>2]+i[C+8>>2],i[A+12>>2]=i[A+12>>2]+i[C+12>>2],i[A+16>>2]=i[A+16>>2]+i[C+16>>2],i[A+20>>2]=i[A+20>>2]+i[C+20>>2],i[A+24>>2]=i[A+24>>2]+i[C+24>>2],i[A+28>>2]=i[A+28>>2]+i[C+28>>2]}function d(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0;s=B=s-288|0,t=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,e=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,f=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,J=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,n=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,b=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,d=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,k=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,F=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,U=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,H=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,m=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,S=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,N=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,E=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,Y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,l=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,G=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,M=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,a=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,K=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,Q=(_=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(c=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,l=Y^a&M^l^G,C[A+24|0]=l,C[A+25|0]=l>>>8,C[A+26|0]=l>>>16,C[A+27|0]=l>>>24,m=H^E&N^m^S,C[A+20|0]=m,C[A+21|0]=m>>>8,C[A+22|0]=m>>>16,C[A+23|0]=m>>>24,d=b^U&F^d^k,C[A+16|0]=d,C[A+17|0]=d>>>8,C[A+18|0]=d>>>16,C[A+19|0]=d>>>24,J=n&_^J^w^c,C[A+12|0]=J,C[A+13|0]=J>>>8,C[A+14|0]=J>>>16,C[A+15|0]=J>>>24,Y=Y&p^D^f^a,C[A+8|0]=Y,C[A+9|0]=Y>>>8,C[A+10|0]=Y>>>16,C[A+11|0]=Y>>>24,H=H&h^e^y^E,C[A+4|0]=H,C[A+5|0]=H>>>8,C[A+6|0]=H>>>16,C[A+7|0]=H>>>24,b=U^b&r^t^K,C[0|A]=b,C[A+1|0]=b>>>8,C[A+2|0]=b>>>16,C[A+3|0]=b>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,U=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=U,U=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=U,U=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=U,AI(I,B+176|0,B+160|0),U=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=U,U=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=U,U=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=U,U=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=U,U=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=U,U=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=U,AI(I,B+144|0,B+128|0),U=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=U,U=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=U,U=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=U,U=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=U,U=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=U,U=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=U,AI(I,B+112|0,B+96|0),U=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=U,U=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=U,U=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=U,U=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=U,U=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=U,U=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=U,AI(I,B+80|0,B- -64|0),U=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=U,U=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=U,U=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=U,U=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=U,U=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=U,U=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=U,AI(I,B+48|0,B+32|0),U=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=U,U=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=U,U=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=U,U=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=U,U=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=U,U=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=U,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=J^(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24),i[g+8>>2]=Y^(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24),i[g+4>>2]=H^(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24),i[g>>2]=b^(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24),i[A>>2]=d^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[g+68>>2]=m^(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24),i[g+72>>2]=l^(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24),i[g+76>>2]=Q^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function m(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0;s=B=s-288|0,k=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,F=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,M=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,K=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,U=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,l=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,_=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,b=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,H=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,c=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,t=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,r=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,Y=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,J=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,e=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,h=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,d=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,m=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,D=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(p=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(w=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^(n=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24),C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=D&m^d^h^y,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=e&J^Y^r^t,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=l^c&H^b^_,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=U&p^K^a^n,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=y&M^G^E^D,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=t&N^S^Q^e,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=l&F^k^f^c,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,l=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=l,l=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=l,l=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=l,AI(I,B+176|0,B+160|0),l=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=l,l=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=l,l=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=l,l=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=l,l=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=l,l=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=l,AI(I,B+144|0,B+128|0),l=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=l,l=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=l,l=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=l,l=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=l,l=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=l,l=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=l,AI(I,B+112|0,B+96|0),l=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=l,l=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=l,l=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=l,l=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=l,l=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=l,l=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=l,AI(I,B+80|0,B- -64|0),l=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=l,l=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=l,l=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=l,l=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=l,l=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=l,l=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=l,AI(I,B+48|0,B+32|0),l=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=l,l=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=l,l=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=l,l=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=l,l=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=l,l=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=l,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^a,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^E,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^Q,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^_,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^r,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^h,i[g+76>>2]=w^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function l(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=E=s-224|0,f=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^B>>>29,p=(o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24)^B<<3,e=(o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24)^g>>>29,h=(o[0|(a=Q+48|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24)^g<<3,_=Q+16|0,c=Q+32|0,t=Q- -64|0,r=Q+80|0;g=i[r+12>>2],i[E+216>>2]=i[r+8>>2],i[E+220>>2]=g,g=i[r+4>>2],i[E+208>>2]=i[r>>2],i[E+212>>2]=g,g=i[t+12>>2],i[E+184>>2]=i[t+8>>2],i[E+188>>2]=g,g=i[t+4>>2],i[E+176>>2]=i[t>>2],i[E+180>>2]=g,g=i[r+12>>2],i[E+168>>2]=i[r+8>>2],i[E+172>>2]=g,g=i[r+4>>2],i[E+160>>2]=i[r>>2],i[E+164>>2]=g,AI(B=E+192|0,E+176|0,E+160|0),g=i[E+204>>2],i[r+8>>2]=i[E+200>>2],i[r+12>>2]=g,g=i[E+196>>2],i[r>>2]=i[E+192>>2],i[r+4>>2]=g,g=i[a+12>>2],i[E+152>>2]=i[a+8>>2],i[E+156>>2]=g,g=i[a+4>>2],i[E+144>>2]=i[a>>2],i[E+148>>2]=g,g=i[t+12>>2],i[E+136>>2]=i[t+8>>2],i[E+140>>2]=g,g=i[t+4>>2],i[E+128>>2]=i[t>>2],i[E+132>>2]=g,AI(B,E+144|0,E+128|0),g=i[E+204>>2],i[t+8>>2]=i[E+200>>2],i[t+12>>2]=g,g=i[E+196>>2],i[t>>2]=i[E+192>>2],i[t+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[a+12>>2],i[E+104>>2]=i[a+8>>2],i[E+108>>2]=g,g=i[a+4>>2],i[E+96>>2]=i[a>>2],i[E+100>>2]=g,AI(B,E+112|0,E+96|0),g=i[E+204>>2],i[a+8>>2]=i[E+200>>2],i[a+12>>2]=g,g=i[E+196>>2],i[a>>2]=i[E+192>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+88>>2]=i[_+8>>2],i[E+92>>2]=g,g=i[_+4>>2],i[E+80>>2]=i[_>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(B,E+80|0,E- -64|0),g=i[E+204>>2],i[c+8>>2]=i[E+200>>2],i[c+12>>2]=g,g=i[E+196>>2],i[c>>2]=i[E+192>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[_+12>>2],i[E+40>>2]=i[_+8>>2],i[E+44>>2]=g,g=i[_+4>>2],i[E+32>>2]=i[_>>2],i[E+36>>2]=g,AI(B,E+48|0,E+32|0),g=i[E+204>>2],i[_+8>>2]=i[E+200>>2],i[_+12>>2]=g,g=i[E+196>>2],i[_>>2]=i[E+192>>2],i[_+4>>2]=g,g=i[E+220>>2],i[E+24>>2]=i[E+216>>2],i[E+28>>2]=g,g=i[E+212>>2],i[E+16>>2]=i[E+208>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(B,E+16|0,E),D=i[E+192>>2],B=i[E+196>>2],g=i[E+200>>2],w=f^i[E+204>>2],i[Q+12>>2]=w,n=g^p,i[Q+8>>2]=n,k=B^e,i[Q+4>>2]=k,F=h^D,i[Q>>2]=F,7!=(0|(y=y+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}S=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,a=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,_=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,c=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,t=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,r=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,f=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,p=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,e=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,h=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,D=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,y=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=w^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=n^D^I^g^B^y,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^r^f^p^e^h,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^S^a^_^c^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}h=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,D=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,y=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,g=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,e=w^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24),C[A+12|0]=e,C[A+13|0]=e>>>8,C[A+14|0]=e>>>16,C[A+15|0]=e>>>24,I=n^I^g,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^B^y,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^h^D,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,f=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,p=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,h=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,D=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,y=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,B=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^y,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f^e^p,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+224|0}function u(A,I,g){var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=B=s-4032|0,$A(B+160|0,g),_=i[g+36>>2],i[(a=B+3840|0)>>2]=i[g+32>>2],i[a+4>>2]=_,c=i[g+28>>2],i[(_=B+3832|0)>>2]=i[g+24>>2],i[_+4>>2]=c,r=i[g+20>>2],i[(c=B+3824|0)>>2]=i[g+16>>2],i[c+4>>2]=r,e=i[g+12>>2],i[(r=B+3816|0)>>2]=i[g+8>>2],i[r+4>>2]=e,e=i[g+4>>2],i[B+3808>>2]=i[g>>2],i[B+3812>>2]=e,D=i[g+52>>2],i[(e=B+3856|0)>>2]=i[g+48>>2],i[e+4>>2]=D,w=i[g+60>>2],i[(D=B+3864|0)>>2]=i[g+56>>2],i[D+4>>2]=w,y=i[4+(f=g- -64|0)>>2],i[(w=B+3872|0)>>2]=i[f>>2],i[w+4>>2]=y,y=i[g+76>>2],i[(f=B+3880|0)>>2]=i[g+72>>2],i[f+4>>2]=y,y=i[g+44>>2],i[B+3848>>2]=i[g+40>>2],i[B+3852>>2]=y,n=i[g+92>>2],i[(y=B+3896|0)>>2]=i[g+88>>2],i[y+4>>2]=n,k=i[g+100>>2],i[(n=B+3904|0)>>2]=i[g+96>>2],i[n+4>>2]=k,F=i[g+108>>2],i[(k=B+3912|0)>>2]=i[g+104>>2],i[k+4>>2]=F,S=i[g+116>>2],i[(F=B+3920|0)>>2]=i[g+112>>2],i[F+4>>2]=S,S=i[g+84>>2],i[B+3888>>2]=i[g+80>>2],i[B+3892>>2]=S,KA(Q=B+3528|0,S=B+3808|0),b(E=B+2408|0,Q,t=B+3648|0),b(B+2448|0,h=B+3568|0,p=B+3608|0),b(B+2488|0,p,t),b(B+2528|0,Q,h),$A(t=B+320|0,E),sA(Q=B+3368|0,g,t),b(E=B+2248|0,Q,t=B+3488|0),b(B+2288|0,h=B+3408|0,p=B+3448|0),b(B+2328|0,p,t),b(B+2368|0,Q,h),$A(B+480|0,E),E=i[4+(Q=B+2440|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2432|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2424|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2416|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2456|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2464|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2472|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2480|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2412>>2],i[B+3808>>2]=i[B+2408>>2],i[B+3812>>2]=Q,Q=i[B+2452>>2],i[B+3848>>2]=i[B+2448>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2520|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2512|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2504|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2496|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2492>>2],i[B+3888>>2]=i[B+2488>>2],i[B+3892>>2]=Q,KA(Q=B+3208|0,S),b(E=B+2088|0,Q,t=B+3328|0),b(B+2128|0,h=B+3248|0,p=B+3288|0),b(B+2168|0,p,t),b(B+2208|0,Q,h),$A(t=B+640|0,E),sA(Q=B+3048|0,g,t),b(E=B+1928|0,Q,t=B+3168|0),b(B+1968|0,h=B+3088|0,p=B+3128|0),b(B+2008|0,p,t),b(B+2048|0,Q,h),$A(B+800|0,E),E=i[4+(Q=B+2280|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2272|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2264|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2256|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2296|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2304|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2312|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2320|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2252>>2],i[B+3808>>2]=i[B+2248>>2],i[B+3812>>2]=Q,Q=i[B+2292>>2],i[B+3848>>2]=i[B+2288>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2360|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2352|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2344|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2336|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2332>>2],i[B+3888>>2]=i[B+2328>>2],i[B+3892>>2]=Q,KA(Q=B+2888|0,S),b(E=B+1768|0,Q,t=B+3008|0),b(B+1808|0,h=B+2928|0,p=B+2968|0),b(B+1848|0,p,t),b(B+1888|0,Q,h),$A(t=B+960|0,E),sA(Q=B+2728|0,g,t),b(g=B+1608|0,Q,E=B+2848|0),b(B+1648|0,t=B+2768|0,h=B+2808|0),b(B+1688|0,h,E),b(B+1728|0,Q,t),$A(B+1120|0,g),Q=i[4+(g=B+2120|0)>>2],i[a>>2]=i[g>>2],i[a+4>>2]=Q,a=i[4+(g=B+2112|0)>>2],i[_>>2]=i[g>>2],i[_+4>>2]=a,a=i[4+(g=B+2104|0)>>2],i[c>>2]=i[g>>2],i[c+4>>2]=a,a=i[4+(g=B+2096|0)>>2],i[r>>2]=i[g>>2],i[r+4>>2]=a,a=i[4+(g=B+2136|0)>>2],i[e>>2]=i[g>>2],i[e+4>>2]=a,a=i[4+(g=B+2144|0)>>2],i[D>>2]=i[g>>2],i[D+4>>2]=a,a=i[4+(g=B+2152|0)>>2],i[w>>2]=i[g>>2],i[w+4>>2]=a,a=i[4+(g=B+2160|0)>>2],i[f>>2]=i[g>>2],i[f+4>>2]=a,g=i[B+2092>>2],i[B+3808>>2]=i[B+2088>>2],i[B+3812>>2]=g,g=i[B+2132>>2],i[B+3848>>2]=i[B+2128>>2],i[B+3852>>2]=g,a=i[4+(g=B+2200|0)>>2],i[F>>2]=i[g>>2],i[F+4>>2]=a,a=i[4+(g=B+2192|0)>>2],i[k>>2]=i[g>>2],i[k+4>>2]=a,a=i[4+(g=B+2184|0)>>2],i[n>>2]=i[g>>2],i[n+4>>2]=a,a=i[4+(g=B+2176|0)>>2],i[y>>2]=i[g>>2],i[y+4>>2]=a,g=i[B+2172>>2],i[B+3888>>2]=i[B+2168>>2],i[B+3892>>2]=g,KA(g=B+2568|0,S),b(a=B+1448|0,g,_=B+2688|0),b(B+1488|0,c=B+2608|0,r=B+2648|0),b(B+1528|0,r,_),b(B+1568|0,g,c),$A(B+1280|0,a),a=0,g=0;c=(_=B+3968|0)+(g<<1)|0,r=o[I+g|0],C[c+1|0]=r>>>4,C[0|c]=15&r,_=_+((c=1|g)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(g=g+2|0)););for(I=0;g=8+(_=(g=I)+o[0|(I=(B+3968|0)+a|0)]|0)|0,C[0|I]=_-(240&g),g=8+(_=o[I+1|0]+(g<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&g),g=8+(_=o[I+2|0]+(g<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&g),I=g<<24>>24>>4,63!=(0|(a=a+3|0)););for(C[B+4031|0]=o[B+4031|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),w=A+120|0,f=A+80|0,y=A+40|0,r=B+3768|0,g=B+3888|0,_=B+3848|0,e=B+3728|0,a=B+3928|0,D=63;HA(B,n=B+160|0,C[(B+3968|0)+D|0]),sA(I=B+3808|0,A,B),b(c=B+3688|0,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),D=D-1|0;);HA(B,n,C[B+3968|0]),sA(I,A,B),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),s=B+4032|0}function x(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0;s=B=s-320|0,i[B+280>>2]=0,i[B+284>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+256>>2]=0,i[B+260>>2]=0,Ng(U=B+256|0,I,g),m=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,K=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,c=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,t=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,r=o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24,e=o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24,I=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,y=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,h=o[C+116|0]|o[C+117|0]<<8|o[C+118|0]<<16|o[C+119|0]<<24,b=o[C+100|0]|o[C+101|0]<<8|o[C+102|0]<<16|o[C+103|0]<<24,H=o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24,D=o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24,f=o[C+124|0]|o[C+125|0]<<8|o[C+126|0]<<16|o[C+127|0]<<24,Y=o[C+108|0]|o[C+109|0]<<8|o[C+110|0]<<16|o[C+111|0]<<24,J=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,p=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,w=o[C+112|0]|o[C+113|0]<<8|o[C+114|0]<<16|o[C+115|0]<<24,d=o[C+96|0]|o[C+97|0]<<8|o[C+98|0]<<16|o[C+99|0]<<24,n=i[B+272>>2],k=i[B+256>>2],F=i[B+260>>2],S=i[B+264>>2],N=i[B+268>>2],G=i[B+276>>2],M=i[B+284>>2],Q=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,E=o[C+104|0]|o[C+105|0]<<8|o[C+106|0]<<16|o[C+107|0]<<24,i[B+280>>2]=Q^E&(o[C+120|0]|o[C+121|0]<<8|o[C+122|0]<<16|o[C+123|0]<<24)^i[B+280>>2]^(o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24),i[B+272>>2]=J^d&w^p^n,i[B+284>>2]=H^Y&f^D^M,i[B+276>>2]=I^b&h^y^G,i[B+268>>2]=Y^H&e^r^N,i[B+264>>2]=t&Q^c^S^E,i[B+260>>2]=b^I&_^a^F,i[B+256>>2]=d^K&J^m^k,bg(g+U|0,0,32-g|0),Ng(A,U,g),g=i[B+280>>2],U=i[B+272>>2],b=i[B+284>>2],H=i[B+276>>2],Y=i[B+256>>2],J=i[B+260>>2],d=i[B+264>>2],m=i[B+268>>2],A=i[C+124>>2],i[B+312>>2]=i[C+120>>2],i[B+316>>2]=A,A=i[C+116>>2],i[B+304>>2]=i[C+112>>2],i[B+308>>2]=A,A=i[C+108>>2],i[B+248>>2]=i[C+104>>2],i[B+252>>2]=A,A=i[C+100>>2],i[B+240>>2]=i[C+96>>2],i[B+244>>2]=A,A=i[C+124>>2],i[B+232>>2]=i[C+120>>2],i[B+236>>2]=A,A=i[C+116>>2],i[B+224>>2]=i[C+112>>2],i[B+228>>2]=A,AI(I=B+288|0,B+240|0,B+224|0),A=i[B+300>>2],i[C+120>>2]=i[B+296>>2],i[C+124>>2]=A,A=i[B+292>>2],i[C+112>>2]=i[B+288>>2],i[C+116>>2]=A,A=i[C+92>>2],i[B+216>>2]=i[C+88>>2],i[B+220>>2]=A,A=i[C+84>>2],i[B+208>>2]=i[C+80>>2],i[B+212>>2]=A,A=i[C+108>>2],i[B+200>>2]=i[C+104>>2],i[B+204>>2]=A,A=i[C+100>>2],i[B+192>>2]=i[C+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+300>>2],i[C+104>>2]=i[B+296>>2],i[C+108>>2]=A,A=i[B+292>>2],i[C+96>>2]=i[B+288>>2],i[C+100>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,K=i[4+(A=C- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=K,K=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=K,K=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=K,AI(I,B+176|0,B+160|0),K=i[B+300>>2],i[C+88>>2]=i[B+296>>2],i[C+92>>2]=K,K=i[B+292>>2],i[C+80>>2]=i[B+288>>2],i[C+84>>2]=K,K=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=K,K=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=K,K=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=K,K=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=K,AI(I,B+144|0,B+128|0),K=i[B+300>>2],i[C+72>>2]=i[B+296>>2],i[C+76>>2]=K,K=i[B+292>>2],i[A>>2]=i[B+288>>2],i[A+4>>2]=K,K=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=K,K=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=K,K=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=K,K=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=K,AI(I,B+112|0,B+96|0),K=i[B+300>>2],i[C+56>>2]=i[B+296>>2],i[C+60>>2]=K,K=i[B+292>>2],i[C+48>>2]=i[B+288>>2],i[C+52>>2]=K,K=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=K,K=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=K,K=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=K,K=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=K,AI(I,B+80|0,B- -64|0),K=i[B+300>>2],i[C+40>>2]=i[B+296>>2],i[C+44>>2]=K,K=i[B+292>>2],i[C+32>>2]=i[B+288>>2],i[C+36>>2]=K,K=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=K,K=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=K,K=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=K,K=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=K,AI(I,B+48|0,B+32|0),K=i[B+300>>2],i[C+24>>2]=i[B+296>>2],i[C+28>>2]=K,K=i[B+292>>2],i[C+16>>2]=i[B+288>>2],i[C+20>>2]=K,K=i[B+316>>2],i[B+24>>2]=i[B+312>>2],i[B+28>>2]=K,K=i[B+308>>2],i[B+16>>2]=i[B+304>>2],i[B+20>>2]=K,K=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=K,K=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=K,AI(I,B+16|0,B),I=i[B+300>>2],i[C+8>>2]=i[B+296>>2],i[C+12>>2]=I,I=i[B+292>>2],i[C>>2]=i[B+288>>2],i[C+4>>2]=I,i[C+12>>2]=m^(o[C+12|0]|o[C+13|0]<<8|o[C+14|0]<<16|o[C+15|0]<<24),i[C+8>>2]=d^(o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24),i[C+4>>2]=J^(o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24),i[C>>2]=Y^(o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24),i[A>>2]=U^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[C+68>>2]=H^(o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24),i[C+72>>2]=g^(o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24),i[C+76>>2]=b^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24),s=B+320|0}function v(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0;R=Ig(C=(D=i[I+12>>2])<<1,E=C>>31,$=(q=i[I+4>>2])<<1,B=$>>31),P=f,F=V=i[I+8>>2],L=(Z=Ig(V,p=V>>31,V,p))+R|0,R=f+P|0,R=L>>>0>>0?R+1|0:R,P=Ig(j=i[I+16>>2],_=j>>31,Z=(z=i[I>>2])<<1,Q=Z>>31),R=f+R|0,R=(L=P+L|0)>>>0

>>0?R+1|0:R,e=i[I+28>>2],P=Ig(BA=a(e,38),w=BA>>31,e,S=e>>31),R=f+R|0,R=(L=P+L|0)>>>0

>>0?R+1|0:R,P=L,y=i[I+32>>2],X=Ig(O=a(y,19),c=O>>31,L=(g=i[I+24>>2])<<1,L>>31),L=f+R|0,L=(P=P+X|0)>>>0>>0?L+1|0:L,H=i[I+36>>2],R=Ig(X=a(H,38),o=X>>31,AA=(t=i[I+20>>2])<<1,s=AA>>31),I=f+L|0,J=R=(R>>>0>(P=R+P|0)>>>0?I+1:I)<<1|P>>>31,d=L=33554432+(N=P<<1)|0,m=R=L>>>0<33554432?R+1|0:R,I=R>>26,T=(67108863&R)<<6|L>>>26,R=Ig($,B,j,_),P=f,L=(IA=Ig(V<<=1,h=V>>31,D,G=D>>31))+R|0,R=f+P|0,R=L>>>0>>0?R+1|0:R,P=(IA=Ig(t,n=t>>31,Z,Q))+L|0,L=f+R|0,L=P>>>0>>0?L+1|0:L,iA=Ig(O,c,IA=e<<1,M=IA>>31),R=f+L|0,R=(P=iA+P|0)>>>0>>0?R+1|0:R,L=Ig(X,o,g,r=g>>31),R=f+R|0,I=I+(L=(L>>>0>(P=L+P|0)>>>0?R+1:R)<<1|P>>>31)|0,iA=P=(R=P<<1)+T|0,R=I=R>>>0>P>>>0?I+1|0:I,l=P=P+16777216|0,T=(33554431&(R=P>>>0<16777216?R+1|0:R))<<7|P>>>25,P=R>>25,I=Ig(C,E,D,G),R=f,L=Ig(j,_,V,h),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig($,B,AA,s),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(gA=Ig(Z,Q,g,r))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,gA=Ig(O,c,y,k=y>>31),R=f+I|0,R=(L=gA+L|0)>>>0>>0?R+1|0:R,I=(gA=Ig(X,o,IA,M))+L|0,L=f+R|0,I=((R=I)>>>0>>0?L+1:L)<<1|R>>>31,L=T,T=R<<1,R=I+P|0,R=(L=L+T|0)>>>0>>0?R+1|0:R,gA=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+24>>2]=L-(-67108864&I),L=Ig(I=a(t,38),I>>31,t,n),T=f,I=(R=Ig(I=z,R=I>>31,I,R))+L|0,L=f+T|0,L=I>>>0>>0?L+1|0:L,CA=Ig(z=a(g,19),K=z>>31,T=j<<1,U=T>>31),R=f+L|0,R=(I=CA+I|0)>>>0>>0?R+1|0:R,L=Ig(C,E,BA,w),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(CA=Ig(O,c,V,h))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,CA=Ig($,B,X,o),R=f+I|0,CA=R=((L=CA+L|0)>>>0>>0?R+1:R)<<1|L>>>31,u=I=33554432+(b=L<<1)|0,x=L=I>>>0<33554432?R+1|0:R,QA=(67108863&L)<<6|I>>>26,oA=L>>26,I=Ig(z,K,AA,s),R=f,L=Ig(Z,Q,q,Y=q>>31),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(W=Ig(j,_,BA,w))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,W=Ig(O,c,C,E),R=f+I|0,R=(L=W+L|0)>>>0>>0?R+1|0:R,W=(I=Ig(X,o,F,p))+L|0,L=f+R|0,R=(I=(I>>>0>W>>>0?L+1:L)<<1|W>>>31)+oA|0,R=(L=(W<<=1)+QA|0)>>>0>>0?R+1|0:R,oA=L,W=L=L+16777216|0,v=(33554431&(R=L>>>0<16777216?R+1|0:R))<<7|L>>>25,QA=R>>25,I=Ig(Z,Q,F,p),R=f,L=Ig($,B,q,Y),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,q=Ig(z,K,g,r),L=f+R|0,L=(I=q+I|0)>>>0>>0?L+1|0:L,q=Ig(AA,s,BA,w),R=f+L|0,R=(I=q+I|0)>>>0>>0?R+1|0:R,L=Ig(O,c,T,U),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(q=Ig(X,o,C,E))+I|0,I=f+R|0,R=(R=(L>>>0>>0?I+1:I)<<1|L>>>31)+QA|0,z=I=(L<<=1)+v|0,R=I>>>0>>0?R+1|0:R,QA=I=I+33554432|0,q=L=I>>>0<33554432?R+1|0:R,i[A+8>>2]=z-(-67108864&I),I=Ig(V,h,t,n),L=f,R=(z=Ig(j,_,C,E))+I|0,I=f+L|0,I=R>>>0>>0?I+1|0:I,L=(z=Ig($,B,g,r))+R|0,R=f+I|0,R=L>>>0>>0?R+1|0:R,I=(z=Ig(Z,Q,e,S))+L|0,L=f+R|0,L=I>>>0>>0?L+1|0:L,z=Ig(X,o,y,k),R=f+L|0,R=(R=((I=z+I|0)>>>0>>0?R+1:R)<<1|I>>>31)+(L=P>>26)|0,I=(L=P=(z=I<<1)+(I=(67108863&P)<<6|gA>>>26)|0)>>>0>>0?R+1|0:R,z=R=L+16777216|0,P=I=R>>>0<16777216?I+1|0:I,i[A+28>>2]=L-(-33554432&R),I=Ig(Z,Q,D,G),R=f,L=Ig($,B,F,p),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig(g,r,BA,w),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(O=Ig(O,c,AA,s))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,R=(O=Ig(X,o,j,_))+L|0,L=f+I|0,I=R,R=(R>>>0>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=q>>26)+R|0,R=(L=L+(q=(67108863&q)<<6|QA>>>26)|0)>>>0>>0?R+1|0:R,O=I=L+16777216|0,q=R=I>>>0<16777216?R+1|0:R,i[A+12>>2]=L-(-33554432&I),I=Ig(g,r,V,h),R=f,L=Ig(j,_,j,_),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig(C,E,AA,s),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=Ig($,B,IA,M),R=f+R|0,R=(I=L+I|0)>>>0>>0?R+1|0:R,L=(j=Ig(Z,Q,y,k))+I|0,I=f+R|0,I=L>>>0>>0?I+1|0:I,R=(j=Ig(R=X,o,X=H,AA=X>>31))+L|0,L=f+I|0,I=R,R=(R>>>0>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=P>>25)+R|0,R=(L=L+(P=(33554431&P)<<7|z>>>25)|0)>>>0

>>0?R+1|0:R,j=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+32>>2]=L-(-67108864&I),R=q>>25,L=(q=(33554431&q)<<7|O>>>25)+(N-(I=-67108864&d)|0)|0,I=R+(J-((I>>>0>N>>>0)+m|0)|0)|0,I=L>>>0>>0?I+1|0:I,q=L,R=I,I=((67108863&(R=(L=L+33554432|0)>>>0<33554432?R+1|0:R))<<6|L>>>26)+(BA=iA-(-33554432&l)|0)|0,i[A+20>>2]=I,i[A+16>>2]=q-(-67108864&L),I=Ig(C,E,g,r),L=f,R=(q=Ig(t,n,T,U))+I|0,I=f+L|0,I=R>>>0>>0?I+1|0:I,L=(q=Ig(V,h,e,S))+R|0,R=f+I|0,R=L>>>0>>0?R+1|0:R,I=(q=Ig($,B,y,k))+L|0,L=f+R|0,L=I>>>0>>0?L+1|0:L,q=Ig(Z,Q,X,AA),R=f+L|0,R=((I=q+I|0)>>>0>>0?R+1:R)<<1|I>>>31,q=I<<1,R=R+(L=P>>26)|0,I=(I=(67108863&P)<<6|j>>>26)>>>0>(P=q+I|0)>>>0?R+1|0:R,I=(R=P+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=P-(-33554432&R),q=oA-(-33554432&W)|0,P=b-(L=-67108864&u)|0,$=CA-((L>>>0>b>>>0)+x|0)|0,I=Ig((33554431&I)<<7|R>>>25,I>>25,19,0),L=f+$|0,P=R=I+P|0,I=I>>>0>R>>>0?L+1|0:L,I=((67108863&(I=(R=R+33554432|0)>>>0<33554432?I+1|0:I))<<6|R>>>26)+q|0,i[A+4>>2]=I,i[A>>2]=P-(-67108864&R)}function R(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0;l=Ig(C=(p=i[I+12>>2])<<1,E=C>>31,p,S=p>>31),x=f,u=(z=Ig(R=i[I+16>>2],_=R>>31,c=(v=i[I+8>>2])<<1,y=c>>31))+l|0,l=f+x|0,l=u>>>0>>0?l+1|0:l,x=(j=Ig(W=(t=i[I+20>>2])<<1,s=W>>31,z=(L=i[I+4>>2])<<1,B=z>>31))+u|0,u=f+l|0,u=x>>>0>>0?u+1|0:u,P=Ig(g=i[I+24>>2],r=g>>31,j=(T=i[I>>2])<<1,Q=j>>31),l=f+u|0,l=(x=P+x|0)>>>0

>>0?l+1|0:l,u=x,h=i[I+32>>2],x=Ig(X=a(h,19),e=X>>31,h,n=h>>31),l=f+l|0,l=(u=u+x|0)>>>0>>0?l+1|0:l,U=i[I+36>>2],x=Ig(P=a(U,38),o=P>>31,k=(D=i[I+28>>2])<<1,N=k>>31),I=f+l|0,Z=u=x+u|0,x=u>>>0>>0?I+1|0:I,I=Ig(z,B,R,_),l=f,u=Ig(c,y,p,S),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,q=Ig(t,F=t>>31,j,Q),u=f+l|0,u=(I=q+I|0)>>>0>>0?u+1|0:u,q=Ig(X,e,k,N),l=f+u|0,l=(I=q+I|0)>>>0>>0?l+1|0:l,u=Ig(P,o,g,r),l=f+l|0,CA=I=u+I|0,O=I>>>0>>0?l+1|0:l,l=Ig(z,B,C,E),u=f,G=I=v,v=Ig(I,V=I>>31,I,V),I=f+u|0,I=(l=v+l|0)>>>0>>0?I+1|0:I,u=(v=Ig(j,Q,R,_))+l|0,l=f+I|0,l=u>>>0>>0?l+1|0:l,I=(v=Ig(q=a(D,38),w=q>>31,D,M=D>>31))+u|0,u=f+l|0,u=I>>>0>>0?u+1|0:u,I=(l=I)+(v=Ig(X,e,I=g<<1,I>>31))|0,l=f+u|0,l=I>>>0>>0?l+1|0:l,u=I,I=Ig(P,o,W,s),l=f+l|0,b=u=u+I|0,H=l=I>>>0>u>>>0?l+1|0:l,I=l,Y=u=u+33554432|0,J=I=u>>>0<33554432?I+1|0:I,l=(l=I>>26)+O|0,CA=I=(u=(67108863&I)<<6|u>>>26)+CA|0,l=I>>>0>>0?l+1|0:l,d=I=I+16777216|0,l=(l=(u=I>>>0<16777216?l+1|0:l)>>25)+x|0,I=(I=(33554431&u)<<7|I>>>25)>>>0>(u=I+Z|0)>>>0?l+1|0:l,Z=l=u+33554432|0,v=I=l>>>0<33554432?I+1|0:I,i[A+24>>2]=u-(-67108864&l),I=Ig(j,Q,G,V),l=f,x=Ig(z,B,L,$=L>>31),u=f+l|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,O=Ig(x=a(g,19),gA=x>>31,g,r),l=f+u|0,l=(I=O+I|0)>>>0>>0?l+1|0:l,u=(O=Ig(W,s,q,w))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,AA=Ig(X,e,O=R<<1,K=O>>31),l=f+I|0,l=(u=AA+u|0)>>>0>>0?l+1|0:l,I=u,u=Ig(P,o,C,E),l=f+l|0,IA=I=I+u|0,AA=I>>>0>>0?l+1|0:l,I=Ig(W,s,x,gA),l=f,L=Ig(j,Q,L,$),u=f+l|0,u=(I=L+I|0)>>>0>>0?u+1|0:u,L=Ig(R,_,q,w),l=f+u|0,l=(I=L+I|0)>>>0>>0?l+1|0:l,u=(L=Ig(X,e,C,E))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,L=Ig(P,o,G,V),l=f+I|0,BA=u=L+u|0,$=u>>>0>>0?l+1|0:l,u=Ig(I=a(t,38),I>>31,t,F),L=f,I=T,T=u,u=Ig(I,l=I>>31,I,l),l=f+L|0,l=(I=T+u|0)>>>0>>0?l+1|0:l,x=Ig(x,gA,O,K),u=f+l|0,u=(I=x+I|0)>>>0>>0?u+1|0:u,x=Ig(C,E,q,w),l=f+u|0,l=(I=x+I|0)>>>0>>0?l+1|0:l,u=(x=Ig(X,e,c,y))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,x=Ig(z,B,P,o),l=f+I|0,L=u=x+u|0,T=l=u>>>0>>0?l+1|0:l,gA=u=u+33554432|0,m=l=u>>>0<33554432?l+1|0:l,I=l>>26,l=(67108863&l)<<6|u>>>26,u=I+$|0,$=x=l+BA|0,l=l>>>0>x>>>0?u+1|0:u,BA=u=x+16777216|0,x=(33554431&(l=u>>>0<16777216?l+1|0:l))<<7|u>>>25,l=(l>>25)+AA|0,l=(u=x+IA|0)>>>0>>0?l+1|0:l,AA=I=u+33554432|0,x=l=I>>>0<33554432?l+1|0:l,i[A+8>>2]=u-(-67108864&I),I=Ig(c,y,t,F),l=f,u=Ig(R,_,C,E),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(z,B,g,r),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(j,Q,D,M),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,IA=(u=Ig(P,o,h,n))+I|0,I=f+l|0,u=(l=v>>26)+(u=u>>>0>IA>>>0?I+1|0:I)|0,Z=I=(v=(67108863&v)<<6|Z>>>26)+IA|0,l=I>>>0>>0?u+1|0:u,IA=I=I+16777216|0,v=l=I>>>0<16777216?l+1|0:l,i[A+28>>2]=Z-(-33554432&I),I=Ig(j,Q,p,S),u=f,l=(V=Ig(z,B,G,V))+I|0,I=f+u|0,I=l>>>0>>0?I+1|0:I,l=(q=Ig(g,r,q,w))+l|0,u=f+I|0,I=(X=Ig(X,e,W,s))+l|0,l=f+(l>>>0>>0?u+1|0:u)|0,l=I>>>0>>0?l+1|0:l,u=Ig(P,o,R,_),l=f+l|0,l=(l=(I=u+I|0)>>>0>>0?l+1|0:l)+(u=x>>26)|0,I=(u=x=(Z=I)+(I=(67108863&x)<<6|AA>>>26)|0)>>>0>>0?l+1|0:l,X=l=u+16777216|0,x=I=l>>>0<16777216?I+1|0:I,i[A+12>>2]=u-(-33554432&l),I=Ig(g,r,c,y),l=f,u=Ig(R,_,R,_),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=Ig(C,E,W,s),l=f+l|0,l=(I=u+I|0)>>>0>>0?l+1|0:l,u=(R=Ig(z,B,k,N))+I|0,I=f+l|0,I=u>>>0>>0?I+1|0:I,l=(R=Ig(j,Q,h,n))+u|0,u=f+I|0,u=l>>>0>>0?u+1|0:u,I=(R=Ig(I=P,o,P=U,W=P>>31))+l|0,l=f+u|0,l=I>>>0>>0?l+1|0:l,u=I,l=(I=v>>25)+l|0,l=(u=u+(v=(33554431&v)<<7|IA>>>25)|0)>>>0>>0?l+1|0:l,R=I=u+33554432|0,v=l=I>>>0<33554432?l+1|0:l,i[A+32>>2]=u-(-67108864&I),l=x>>25,u=(x=(33554431&x)<<7|X>>>25)+(b-(I=-67108864&Y)|0)|0,I=l+(H-((I>>>0>b>>>0)+J|0)|0)|0,I=u>>>0>>0?I+1|0:I,x=u,I=((67108863&(l=(u=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|u>>>26)+(q=CA-(-33554432&d)|0)|0,i[A+20>>2]=I,i[A+16>>2]=x-(-67108864&u),I=Ig(C,E,g,r),u=f,l=(x=Ig(t,F,O,K))+I|0,I=f+u|0,I=l>>>0>>0?I+1|0:I,u=(x=Ig(c,y,D,M))+l|0,l=f+I|0,l=u>>>0>>0?l+1|0:l,I=(x=Ig(z,B,h,n))+u|0,u=f+l|0,u=I>>>0>>0?u+1|0:u,x=(l=I)+(I=Ig(j,Q,P,W))|0,l=f+u|0,l=(I=I>>>0>x>>>0?l+1|0:l)+(l=v>>26)|0,I=(u=(v=(67108863&v)<<6|R>>>26)+x|0)>>>0>>0?l+1|0:l,I=(l=u+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=u-(-33554432&l),v=$-(-33554432&BA)|0,x=L-(u=-67108864&gA)|0,z=T-((u>>>0>L>>>0)+m|0)|0,I=Ig((33554431&I)<<7|l>>>25,I>>25,19,0),l=f+z|0,I=I>>>0>(u=I+x|0)>>>0?l+1|0:l,I=((67108863&(I=(l=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|l>>>26)+v|0,i[A+4>>2]=I,i[A>>2]=u-(-67108864&l)}function L(A,I){var g,C,B,Q,E,a,_,c,t,r,e=0,y=0,h=0;s=g=s-416|0,C=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,B=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,Q=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,a=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,_=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,c=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=A,A=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=A,A=i[I+76>>2],i[g+376>>2]=i[I+72>>2],i[g+380>>2]=A,e=i[4+(A=y=I- -64|0)>>2],i[g+368>>2]=i[A>>2],i[g+372>>2]=e,A=i[I+92>>2],i[g+360>>2]=i[I+88>>2],i[g+364>>2]=A,A=i[I+84>>2],i[g+352>>2]=i[I+80>>2],i[g+356>>2]=A,AI(A=g+384|0,g+368|0,g+352|0),e=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=e,e=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=e,e=i[I+60>>2],i[g+344>>2]=i[I+56>>2],i[g+348>>2]=e,e=i[I+52>>2],i[g+336>>2]=i[I+48>>2],i[g+340>>2]=e,e=i[I+76>>2],i[g+328>>2]=i[I+72>>2],i[g+332>>2]=e,e=i[y+4>>2],i[g+320>>2]=i[y>>2],i[g+324>>2]=e,AI(A,g+336|0,g+320|0),e=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=e,e=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=e,e=i[I+44>>2],i[g+312>>2]=i[I+40>>2],i[g+316>>2]=e,e=i[I+36>>2],i[g+304>>2]=i[I+32>>2],i[g+308>>2]=e,e=i[I+60>>2],i[g+296>>2]=i[I+56>>2],i[g+300>>2]=e,e=i[I+52>>2],i[g+288>>2]=i[I+48>>2],i[g+292>>2]=e,AI(A,g+304|0,g+288|0),e=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=e,e=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=e,e=i[I+28>>2],i[g+280>>2]=i[I+24>>2],i[g+284>>2]=e,e=i[I+20>>2],i[g+272>>2]=i[I+16>>2],i[g+276>>2]=e,e=i[I+44>>2],i[g+264>>2]=i[I+40>>2],i[g+268>>2]=e,e=i[I+36>>2],i[g+256>>2]=i[I+32>>2],i[g+260>>2]=e,AI(A,g+272|0,g+256|0),e=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=e,e=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=e,e=i[I+12>>2],i[g+248>>2]=i[I+8>>2],i[g+252>>2]=e,e=i[I+4>>2],i[g+240>>2]=i[I>>2],i[g+244>>2]=e,e=i[I+28>>2],i[g+232>>2]=i[I+24>>2],i[g+236>>2]=e,e=i[I+20>>2],i[g+224>>2]=i[I+16>>2],i[g+228>>2]=e,AI(A,g+240|0,g+224|0),e=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=e,e=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=e,e=i[g+412>>2],i[g+216>>2]=i[g+408>>2],i[g+220>>2]=e,e=i[g+404>>2],i[g+208>>2]=i[g+400>>2],i[g+212>>2]=e,e=i[I+12>>2],i[g+200>>2]=i[I+8>>2],i[g+204>>2]=e,e=i[I+4>>2],i[g+192>>2]=i[I>>2],i[g+196>>2]=e,AI(A,g+208|0,g+192|0),e=i[g+384>>2],t=i[g+388>>2],r=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^_,i[I+8>>2]=a^r,i[I+4>>2]=h^t,i[I>>2]=e^c,h=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=h,h=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=h,h=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=h,h=i[y+4>>2],i[g+176>>2]=i[y>>2],i[g+180>>2]=h,h=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=h,h=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=h,AI(A,g+176|0,g+160|0),h=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=h,h=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=h,h=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=h,h=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=h,h=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=h,h=i[y+4>>2],i[g+128>>2]=i[y>>2],i[g+132>>2]=h,AI(A,g+144|0,g+128|0),h=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=h,h=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=h,y=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=y,y=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=y,y=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=y,y=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=y,AI(A,g+112|0,g+96|0),y=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=y,y=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=y,y=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=y,y=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=y,y=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=y,y=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=y,AI(A,g+80|0,g- -64|0),y=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=y,y=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=y,y=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=y,y=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=y,y=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=y,y=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=y,AI(A,g+48|0,g+32|0),y=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=y,y=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=y,y=i[g+412>>2],i[g+24>>2]=i[g+408>>2],i[g+28>>2]=y,y=i[g+404>>2],i[g+16>>2]=i[g+400>>2],i[g+20>>2]=y,y=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=y,y=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=y,AI(A,g+16|0,g),A=i[g+384>>2],y=i[g+388>>2],h=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^E,i[I+8>>2]=h^Q,i[I+4>>2]=y^B,i[I>>2]=A^C,s=g+416|0}function P(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0;for(s=C=s-288|0,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,D=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,c=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,t=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,r=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g+112|0,A=33620224^(e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[I>>2]=A,i[(a=g+96|0)>>2]=1427652059^e,i[(_=g+80|0)>>2]=A,w=e^f,i[(A=g- -64|0)>>2]=w,i[g+56>>2]=1110511904,i[g+60>>2]=-584534669,i[(B=g+48|0)>>2]=1427652059,i[B+4>>2]=-248528275,i[g+40>>2]=1496785429,i[g+44>>2]=1652156816,i[(Q=g+32|0)>>2]=33620224,i[Q+4>>2]=218629379,i[g+24>>2]=1110511904,i[g+28>>2]=-584534669,i[(E=g+16|0)>>2]=1427652059,i[E+4>>2]=-248528275,i[g>>2]=w,w=1652156816^r,i[g+124>>2]=w,n=1496785429^t,i[g+120>>2]=n,p=218629379^c,i[g+116>>2]=p,i[g+108>>2]=-584534669^r,i[g+104>>2]=1110511904^t,i[g+100>>2]=-248528275^c,i[g+92>>2]=w,i[g+88>>2]=n,i[g+84>>2]=p,w=r^D,i[g+76>>2]=w,n=t^h,i[g+72>>2]=n,p=c^y,i[g+68>>2]=p,i[g+12>>2]=w,i[g+8>>2]=n,i[g+4>>2]=p,n=0;w=i[I+12>>2],i[C+280>>2]=i[I+8>>2],i[C+284>>2]=w,w=i[I+4>>2],i[C+272>>2]=i[I>>2],i[C+276>>2]=w,w=i[a+12>>2],i[C+248>>2]=i[a+8>>2],i[C+252>>2]=w,w=i[a+4>>2],i[C+240>>2]=i[a>>2],i[C+244>>2]=w,w=i[I+12>>2],i[C+232>>2]=i[I+8>>2],i[C+236>>2]=w,w=i[I+4>>2],i[C+224>>2]=i[I>>2],i[C+228>>2]=w,AI(w=C+256|0,C+240|0,C+224|0),p=i[C+268>>2],i[I+8>>2]=i[C+264>>2],i[I+12>>2]=p,p=i[C+260>>2],i[I>>2]=i[C+256>>2],i[I+4>>2]=p,p=i[_+12>>2],i[C+216>>2]=i[_+8>>2],i[C+220>>2]=p,p=i[_+4>>2],i[C+208>>2]=i[_>>2],i[C+212>>2]=p,p=i[a+12>>2],i[C+200>>2]=i[a+8>>2],i[C+204>>2]=p,p=i[a+4>>2],i[C+192>>2]=i[a>>2],i[C+196>>2]=p,AI(w,C+208|0,C+192|0),p=i[C+268>>2],i[a+8>>2]=i[C+264>>2],i[a+12>>2]=p,p=i[C+260>>2],i[a>>2]=i[C+256>>2],i[a+4>>2]=p,p=i[A+12>>2],i[C+184>>2]=i[A+8>>2],i[C+188>>2]=p,p=i[A+4>>2],i[C+176>>2]=i[A>>2],i[C+180>>2]=p,p=i[_+12>>2],i[C+168>>2]=i[_+8>>2],i[C+172>>2]=p,p=i[_+4>>2],i[C+160>>2]=i[_>>2],i[C+164>>2]=p,AI(w,C+176|0,C+160|0),p=i[C+268>>2],i[_+8>>2]=i[C+264>>2],i[_+12>>2]=p,p=i[C+260>>2],i[_>>2]=i[C+256>>2],i[_+4>>2]=p,p=i[B+12>>2],i[C+152>>2]=i[B+8>>2],i[C+156>>2]=p,p=i[B+4>>2],i[C+144>>2]=i[B>>2],i[C+148>>2]=p,p=i[A+12>>2],i[C+136>>2]=i[A+8>>2],i[C+140>>2]=p,p=i[A+4>>2],i[C+128>>2]=i[A>>2],i[C+132>>2]=p,AI(w,C+144|0,C+128|0),p=i[C+268>>2],i[A+8>>2]=i[C+264>>2],i[A+12>>2]=p,p=i[C+260>>2],i[A>>2]=i[C+256>>2],i[A+4>>2]=p,p=i[Q+12>>2],i[C+120>>2]=i[Q+8>>2],i[C+124>>2]=p,p=i[Q+4>>2],i[C+112>>2]=i[Q>>2],i[C+116>>2]=p,p=i[B+12>>2],i[C+104>>2]=i[B+8>>2],i[C+108>>2]=p,p=i[B+4>>2],i[C+96>>2]=i[B>>2],i[C+100>>2]=p,AI(w,C+112|0,C+96|0),p=i[C+268>>2],i[B+8>>2]=i[C+264>>2],i[B+12>>2]=p,p=i[C+260>>2],i[B>>2]=i[C+256>>2],i[B+4>>2]=p,p=i[E+12>>2],i[C+88>>2]=i[E+8>>2],i[C+92>>2]=p,p=i[E+4>>2],i[C+80>>2]=i[E>>2],i[C+84>>2]=p,p=i[Q+12>>2],i[C+72>>2]=i[Q+8>>2],i[C+76>>2]=p,p=i[Q+4>>2],i[C+64>>2]=i[Q>>2],i[C+68>>2]=p,AI(w,C+80|0,C- -64|0),p=i[C+268>>2],i[Q+8>>2]=i[C+264>>2],i[Q+12>>2]=p,p=i[C+260>>2],i[Q>>2]=i[C+256>>2],i[Q+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[E+12>>2],i[C+40>>2]=i[E+8>>2],i[C+44>>2]=p,p=i[E+4>>2],i[C+32>>2]=i[E>>2],i[C+36>>2]=p,AI(w,C+48|0,C+32|0),p=i[C+268>>2],i[E+8>>2]=i[C+264>>2],i[E+12>>2]=p,p=i[C+260>>2],i[E>>2]=i[C+256>>2],i[E+4>>2]=p,p=i[C+284>>2],i[C+24>>2]=i[C+280>>2],i[C+28>>2]=p,p=i[C+276>>2],i[C+16>>2]=i[C+272>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(w,C+16|0,C),w=i[C+268>>2],i[g+8>>2]=i[C+264>>2],i[g+12>>2]=w,w=i[C+260>>2],i[g>>2]=i[C+256>>2],i[g+4>>2]=w,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^D,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^h,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^y,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^e,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^c,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^t,i[g+76>>2]=(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^r,10!=(0|(n=n+1|0)););s=C+288|0}function q(A,I){var g,B=0,Q=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0;if(s=g=s-48|0,!((B=nI(A))||(B=-26,I-3>>>0<4294967294))){_=i[A+44>>2],B=i[A+48>>2],i[g+4>>2]=0,Q=i[A+40>>2],i[g+32>>2]=B,i[g+16>>2]=-1,i[g+12>>2]=Q,B=((e=(Q=B<<3)>>>0<_>>>0?_:Q)>>>0)/((_=B<<2)>>>0)|0,i[g+24>>2]=B,i[g+28>>2]=B<<2,i[g+20>>2]=a(B,_),B=i[A+52>>2],i[g+40>>2]=I,i[g+36>>2]=B,h=I=s,s=B=I-1152&-64,I=-25;A:{if(!(!(_=g+4|0)|!A)&&(Q=K(i[_+20>>2]<<3),i[_+4>>2]=Q,I=-22,Q)){I:{if((I=i[_+16>>2])&&1024==(((Q=I<<10)>>>0)/(I>>>0)|0)&&(I=K(12),i[_>>2]=I,I)){if(i[I>>2]=0,i[I+4>>2]=0,I=tI(B+128|0,Q),i[9404]=I,I)i[B+128>>2]=0;else if(I=i[B+128>>2])break I;BA(i[_>>2]),i[_>>2]=0}WI(_,i[A+56>>2]),s=h,I=-22;break A}if(i[i[_>>2]>>2]=I,i[i[_>>2]+4>>2]=I,i[i[_>>2]+8>>2]=Q,D=i[_+36>>2],eA(I=B+128|0,0,0,64),i[B+124>>2]=i[A+48>>2],WA(I,Q=B+124|0,4,0),i[B+124>>2]=i[A+4>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+44>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+40>>2],WA(I,Q,4,0),i[B+124>>2]=19,WA(I,Q,4,0),i[B+124>>2]=D,WA(I,Q,4,0),i[B+124>>2]=i[A+12>>2],WA(I,Q,4,0),(Q=i[A+8>>2])&&(WA(I,Q,i[A+12>>2],0),1&C[A+56|0]&&(XC(i[A+8>>2],i[A+12>>2]),i[A+12>>2]=0)),i[B+124>>2]=i[A+20>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+16>>2])&&WA(I,Q,i[A+20>>2],0),i[B+124>>2]=i[A+28>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+24>>2])&&(WA(I,Q,i[A+28>>2],0),2&o[A+56|0]&&(XC(i[A+24>>2],i[A+28>>2]),i[A+28>>2]=0)),i[B+124>>2]=i[A+36>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+32>>2])&&WA(I,Q,i[A+36>>2],0),Hg(B+128|0,B+48|0,64),XC(B+112|0,8),i[_+28>>2])for(Q=0;;){for(i[B+112>>2]=0,i[B+116>>2]=Q,aA(B+128|0,1024,B+48|0,72),D=i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,y=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=y,128!=(0|(I=I+4|0)););for(i[B+112>>2]=1,aA(e,1024,B+48|0,72),D=1024+(i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,e=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=e,128!=(0|(I=I+4|0)););if(!((Q=Q+1|0)>>>0>2]))break}XC(B+128|0,1024),XC(B+48|0,72),I=0}s=h}if(B=I,!I){if(i[g+12>>2])for(;;){if(s=I=s-80|0,!(!(_=g+4|0)|!i[_+28>>2])){for(C[I+72|0]=0,i[I+64>>2]=p,B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+56>>2]=i[I+72>>2],i[I+60>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+48>>2]=i[I+64>>2],i[I+52>>2]=Q,F(_,I+48|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=1,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+40>>2]=i[I+72>>2],i[I+44>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+32>>2]=i[I+64>>2],i[I+36>>2]=Q,F(_,I+32|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=2,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+24>>2]=i[I+72>>2],i[I+28>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+16>>2]=i[I+64>>2],i[I+20>>2]=Q,F(_,I+16|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=3,Q)for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+8>>2]=i[I+72>>2],i[I+12>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I>>2]=i[I+64>>2],i[I+4>>2]=Q,F(_,I),(B=B+1|0)>>>0>2];);}}}if(s=I+80|0,!((p=p+1|0)>>>0>2]))break}if(s=I=s-2048|0,!(!A|!(B=g+4|0))){if(p=i[B+24>>2],Ng(I+1024|0,c=(i[i[B>>2]+4>>2]+(p<<10)|0)-1024|0,1024),(y=i[B+28>>2])>>>0>=2)for(D=1;;){for(_=c+(a(D,p)<<10)|0,r=0;t=i[(h=(Q=r<<3)+(e=I+1024|0)|0)>>2],w=i[(f=Q+_|0)>>2],f=i[h+4>>2]^i[f+4>>2],i[h>>2]=t^w,i[h+4>>2]=f,f=i[(h=(t=8|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,f=i[(h=(t=16|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,h=i[(Q=(h=e)+(e=24|Q)|0)>>2],t=i[(e=_+e|0)>>2],e=i[Q+4>>2]^i[e+4>>2],i[Q>>2]=t^h,i[Q+4>>2]=e,128!=(0|(r=r+4|0)););if((0|y)==(0|(D=D+1|0)))break}_=Ng(I,I+1024|0,1024),aA(i[A>>2],i[A+4>>2],_,1024),XC(_+1024|0,1024),XC(_,1024),WI(B,i[A+56>>2])}s=I+2048|0,B=0}}return s=g+48|0,B}function z(A,I,g,B,Q){var E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0;for(E=s+-64|0,a=i[A+60>>2],_=i[A+56>>2],P=i[A+52>>2],L=i[A+48>>2],c=i[A+44>>2],t=i[A+40>>2],r=i[A+36>>2],e=i[A+32>>2],y=i[A+28>>2],h=i[A+24>>2],D=i[A+20>>2],f=i[A+16>>2],p=i[A+12>>2],w=i[A+8>>2],n=i[A+4>>2],k=i[A>>2];;){if(!Q&B>>>0>63|Q)F=g;else{if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=0,i[E+4>>2]=0,N=0,B|Q)for(;C[N+E|0]=o[I+N|0],!Q&(N=N+1|0)>>>0>>0|Q;);I=F=E,O=g}for(q=20,S=k,Y=n,J=w,l=p,N=f,g=D,M=h,K=y,U=e,x=r,d=t,G=a,v=_,u=P,m=L,b=c;H=N,S=Lg((N=S+N|0)^m,16),H=m=Lg(H^(U=S+U|0),12),m=Lg((R=N+m|0)^S,8),N=Lg(H^(U=m+U|0),7),G=Lg((S=K+l|0)^G,16),K=Lg((b=G+b|0)^K,12),l=Lg((J=M+J|0)^v,16),M=Lg((d=l+d|0)^M,12),v=(z=S+K|0)+N|0,j=Lg((J=M+J|0)^l,8),S=Lg(v^j,16),l=Lg((Y=g+Y|0)^u,16),g=Lg((x=l+x|0)^g,12),H=N,u=Lg((Y=g+Y|0)^l,8),H=Lg(H^(N=(X=u+x|0)+S|0),12),v=Lg(S^(l=H+v|0),8),N=Lg((x=v+N|0)^H,7),H=U,U=J,S=Lg(G^z,8),J=Lg((G=S+b|0)^K,7),u=Lg((U=U+J|0)^u,16),b=Lg((K=H+u|0)^J,12),u=Lg(u^(J=b+U|0),8),K=Lg((U=K+u|0)^b,7),b=G,G=Y,Y=Lg((d=d+j|0)^M,7),M=b+(m=Lg((G=G+Y|0)^m,16))|0,b=G,G=Lg(M^Y,12),m=Lg(m^(Y=b+G|0),8),M=Lg((b=M+m|0)^G,7),H=d,G=S,S=Lg(g^X,7),G=Lg(G^(d=S+R|0),16),R=Lg((g=H+G|0)^S,12),G=Lg(G^(S=R+d|0),8),g=Lg((d=g+G|0)^R,7),q=q-2|0;);if(q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,R=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,z=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,j=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,X=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,W=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,V=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,Z=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,T=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,$=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,AA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,IA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,gA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,CA=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,S=S+k^(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),C[0|F]=S,C[F+1|0]=S>>>8,C[F+2|0]=S>>>16,C[F+3|0]=S>>>24,S=G+a^CA,C[F+60|0]=S,C[F+61|0]=S>>>8,C[F+62|0]=S>>>16,C[F+63|0]=S>>>24,S=v+_^gA,C[F+56|0]=S,C[F+57|0]=S>>>8,C[F+58|0]=S>>>16,C[F+59|0]=S>>>24,S=u+P^IA,C[F+52|0]=S,C[F+53|0]=S>>>8,C[F+54|0]=S>>>16,C[F+55|0]=S>>>24,S=m+L^AA,C[F+48|0]=S,C[F+49|0]=S>>>8,C[F+50|0]=S>>>16,C[F+51|0]=S>>>24,S=b+c^$,C[F+44|0]=S,C[F+45|0]=S>>>8,C[F+46|0]=S>>>16,C[F+47|0]=S>>>24,S=d+t^T,C[F+40|0]=S,C[F+41|0]=S>>>8,C[F+42|0]=S>>>16,C[F+43|0]=S>>>24,S=x+r^Z,C[F+36|0]=S,C[F+37|0]=S>>>8,C[F+38|0]=S>>>16,C[F+39|0]=S>>>24,S=U+e^V,C[F+32|0]=S,C[F+33|0]=S>>>8,C[F+34|0]=S>>>16,C[F+35|0]=S>>>24,K=K+y^W,C[F+28|0]=K,C[F+29|0]=K>>>8,C[F+30|0]=K>>>16,C[F+31|0]=K>>>24,M=H^M+h,C[F+24|0]=M,C[F+25|0]=M>>>8,C[F+26|0]=M>>>16,C[F+27|0]=M>>>24,g=X^g+D,C[F+20|0]=g,C[F+21|0]=g>>>8,C[F+22|0]=g>>>16,C[F+23|0]=g>>>24,g=j^N+f,C[F+16|0]=g,C[F+17|0]=g>>>8,C[F+18|0]=g>>>16,C[F+19|0]=g>>>24,g=z^l+p,C[F+12|0]=g,C[F+13|0]=g>>>8,C[F+14|0]=g>>>16,C[F+15|0]=g>>>24,g=R^J+w,C[F+8|0]=g,C[F+9|0]=g>>>8,C[F+10|0]=g>>>16,C[F+11|0]=g>>>24,g=q^Y+n,C[F+4|0]=g,C[F+5|0]=g>>>8,C[F+6|0]=g>>>16,C[F+7|0]=g>>>24,P=!(L=L+1|0)+P|0,!Q&B>>>0<=64){if(!(!(B|Q)|!Q&B>>>0>63|!!(0|Q)))for(N=0;C[N+O|0]=o[F+N|0],B>>>0>(N=N+1|0)>>>0;);i[A+52>>2]=P,i[A+48>>2]=L;break}I=I- -64|0,g=F- -64|0,Q=Q-1|0,Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q}}function j(A,I){I|=0;var g,B=0,Q=0,o=0,E=0,a=0,_=0,c=0;return s=g=s-704|0,B=80+((Q=i[72+(A|=0)>>2]>>>3&127)+A|0)|0,Q>>>0>=112?(Ng(B,35056,128-Q|0),k(A,Q=A+80|0,g,g+640|0),bg(Q,0,112)):Ng(B,35056,112-Q|0),_=(o=i[A+64>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+68>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+192|0]=B,C[A+193|0]=B>>>8,C[A+194|0]=B>>>16,C[A+195|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+196|0]=Q,C[A+197|0]=Q>>>8,C[A+198|0]=Q>>>16,C[A+199|0]=Q>>>24,_=(o=i[A+72>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+76>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+200|0]=B,C[A+201|0]=B>>>8,C[A+202|0]=B>>>16,C[A+203|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+204|0]=Q,C[A+205|0]=Q>>>8,C[A+206|0]=Q>>>16,C[A+207|0]=Q>>>24,k(A,A+80|0,g,g+640|0),_=(o=i[A>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+4>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[0|I]=B,C[I+1|0]=B>>>8,C[I+2|0]=B>>>16,C[I+3|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,_=(o=i[A+8>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+12>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+8|0]=B,C[I+9|0]=B>>>8,C[I+10|0]=B>>>16,C[I+11|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,_=(o=i[A+16>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+20>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+16|0]=B,C[I+17|0]=B>>>8,C[I+18|0]=B>>>16,C[I+19|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,_=(o=i[A+24>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+28>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+24|0]=B,C[I+25|0]=B>>>8,C[I+26|0]=B>>>16,C[I+27|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,_=(o=i[A+32>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+32|0]=B,C[I+33|0]=B>>>8,C[I+34|0]=B>>>16,C[I+35|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+36|0]=Q,C[I+37|0]=Q>>>8,C[I+38|0]=Q>>>16,C[I+39|0]=Q>>>24,_=(o=i[A+40>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+44>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,_=(o=i[A+48>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+52>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+48|0]=B,C[I+49|0]=B>>>8,C[I+50|0]=B>>>16,C[I+51|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+52|0]=Q,C[I+53|0]=Q>>>8,C[I+54|0]=Q>>>16,C[I+55|0]=Q>>>24,_=(o=i[A+56>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,B=I,c=E<<24,E=(a=-16777216&o)>>>24|0,I=c|a<<8|-16777216&((255&(I=i[A+60>>2]))<<24|o>>>8)|16711680&((16777215&I)<<8|o>>>24)|I>>>8&65280|I>>>24,C[B+56|0]=I,C[B+57|0]=I>>>8,C[B+58|0]=I>>>16,C[B+59|0]=I>>>24,I=Q|E|_,I|=Q=0,C[B+60|0]=I,C[B+61|0]=I>>>8,C[B+62|0]=I>>>16,C[B+63|0]=I>>>24,XC(g,704),XC(A,208),s=g+704|0,0}function X(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G=0;s=B=s-224|0,c=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,t=o[0|(G=g- -64|0)]|o[G+1|0]<<8|o[G+2|0]<<16|o[G+3|0]<<24,r=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,e=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,y=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,D=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,f=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,p=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,w=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,k=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,F=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,S=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,N=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(_=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=S&N^k^F^n^E,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=p&w^D^f^h^Q,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=e&y^c^t^r^a,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[G+4>>2],i[B+176>>2]=i[G>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),I=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=I,I=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=I,I=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=I,I=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=I,I=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=I,I=i[G+4>>2],i[B+128>>2]=i[G>>2],i[B+132>>2]=I,AI(A,B+144|0,B+128|0),I=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=I,I=i[B+196>>2],i[G>>2]=i[B+192>>2],i[G+4>>2]=I,I=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=I,I=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=I,I=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=I,I=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=I,I=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=I,I=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=I,I=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=I,I=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=I,I=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=I,I=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=I,I=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=I,I=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=I,I=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=I,I=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=I,I=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=I,I=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=I,I=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=I,I=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=I,I=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+192>>2],I=i[B+196>>2],G=i[B+200>>2],i[g+12>>2]=_^i[B+204>>2],i[g+8>>2]=G^E,i[g+4>>2]=I^Q,i[g>>2]=A^a,s=B+224|0}function O(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n=0,k=0,F=0,S=0,N=0;s=B=s-224|0,F=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,k=o[0|(n=g- -64|0)]|o[n+1|0]<<8|o[n+2|0]<<16|o[n+3|0]<<24,Q=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,E=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,a=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,_=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,c=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,t=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,r=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,e=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,N=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,y=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,h=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,D=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,f=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,N=f&p^N^h^D^y,C[A+8|0]=N,C[A+9|0]=N>>>8,C[A+10|0]=N>>>16,C[A+11|0]=N>>>24,S=r&e^S^c^t^_,C[A+4|0]=S,C[A+5|0]=S>>>8,C[A+6|0]=S>>>16,C[A+7|0]=S>>>24,F=E&a^F^k^Q^w,C[0|A]=F,C[A+1|0]=F>>>8,C[A+2|0]=F>>>16,C[A+3|0]=F>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[n+4>>2],i[B+176>>2]=i[n>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),k=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=k,k=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=k,k=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=k,k=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=k,k=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=k,k=i[n+4>>2],i[B+128>>2]=i[n>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=k,k=i[B+196>>2],i[n>>2]=i[B+192>>2],i[n+4>>2]=k,n=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=n,n=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=n,n=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=n,n=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=n,AI(A,B+112|0,B+96|0),n=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=n,n=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=n,n=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=n,n=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=n,n=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=n,n=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=n,AI(A,B+80|0,B- -64|0),n=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=n,n=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=n,n=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=n,n=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=n,n=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=n,n=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=n,AI(A,B+48|0,B+32|0),n=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=n,n=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=n,n=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=n,n=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=n,n=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=n,n=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=n,AI(A,B+16|0,B),A=i[B+192>>2],n=i[B+196>>2],k=i[B+200>>2],i[g+12>>2]=I^i[B+204>>2],i[g+8>>2]=k^N,i[g+4>>2]=n^S,i[g>>2]=A^F,s=B+224|0}function W(A,I){var g,B,Q,E,a,_,c,t,r,e,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;s=g=s-800|0,y=i[I+44>>2],D=i[I+84>>2],f=i[I+48>>2],p=i[I+88>>2],w=i[I+52>>2],h=i[I+92>>2],S=i[I+56>>2],n=i[I+96>>2],K=i[I+60>>2],N=i[I+100>>2],H=i[(U=I- -64|0)>>2],Y=i[I+104>>2],J=i[I+68>>2],d=i[I+108>>2],m=i[I+72>>2],l=i[I+112>>2],u=i[I+40>>2],x=i[I+80>>2],k=i[I+76>>2],F=i[I+116>>2],i[g+324>>2]=k+F,i[g+320>>2]=m+l,i[g+316>>2]=J+d,i[g+312>>2]=H+Y,i[g+308>>2]=N+K,i[g+304>>2]=n+S,i[g+300>>2]=h+w,i[g+296>>2]=f+p,i[g+292>>2]=y+D,i[g+288>>2]=u+x,i[g+36>>2]=F-k,i[g+32>>2]=l-m,i[g+28>>2]=d-J,i[g+24>>2]=Y-H,i[g+20>>2]=N-K,i[g+16>>2]=n-S,i[g+12>>2]=h-w,i[g+8>>2]=p-f,i[g+4>>2]=D-y,i[g>>2]=x-u,b(y=g+288|0,y,g),b(f=g+240|0,I,w=I+40|0),R(D=g+192|0,f),b(D,y,D),i[g+452>>2]=0,i[g+456>>2]=0,i[g+460>>2]=0,i[g+464>>2]=0,i[g+468>>2]=0,i[g+436>>2]=0,i[g+440>>2]=0,i[g+444>>2]=0,i[g+448>>2]=0,i[g+432>>2]=1,GA(p=g+576|0,g+432|0,D),b(D=g+720|0,p,y),b(K=g+672|0,p,f),b(n=g+48|0,D,K),b(n,n,y=I+120|0),b(g+528|0,I,1632),b(g+480|0,w,1632),b(g+624|0,D,2944),b(D=g+336|0,y,n),QI(S=g+384|0,D),h=o[g+384|0],D=i[I+36>>2],y=i[I+32>>2],i[g+176>>2]=y,i[g+180>>2]=D,f=i[I+28>>2],D=i[I+24>>2],i[g+168>>2]=D,i[g+172>>2]=f,p=i[I+20>>2],f=i[I+16>>2],i[g+160>>2]=f,i[g+164>>2]=p,w=i[I+12>>2],p=i[I+8>>2],i[g+152>>2]=p,i[g+156>>2]=w,N=i[I+4>>2],w=i[I>>2],i[g+144>>2]=w,i[g+148>>2]=N,N=i[I+44>>2],H=i[I+48>>2],Y=i[I+52>>2],J=i[I+56>>2],d=i[I+60>>2],m=i[U>>2],l=i[I+68>>2],u=i[I+72>>2],x=i[I+76>>2],U=i[I+40>>2],P=i[g+484>>2],k=i[g+148>>2],q=i[g+492>>2],F=i[g+156>>2],z=i[g+500>>2],G=i[g+164>>2],j=i[g+508>>2],M=i[g+172>>2],X=i[g+516>>2],v=i[g+180>>2],O=i[g+480>>2],W=i[g+488>>2],V=i[g+496>>2],Z=i[g+504>>2],h=0-(1&h)|0,i[g+176>>2]=y^h&(y^i[g+512>>2]),i[g+168>>2]=D^h&(D^Z),i[g+160>>2]=f^h&(f^V),i[g+152>>2]=p^h&(p^W),i[g+144>>2]=w^h&(w^O),i[g+180>>2]=v^h&(v^X),i[g+172>>2]=M^h&(M^j),i[g+164>>2]=G^h&(G^z),i[g+156>>2]=F^h&(F^q),i[g+148>>2]=k^h&(k^P),v=i[g+528>>2],P=i[g+532>>2],q=i[g+536>>2],z=i[g+540>>2],j=i[g+544>>2],X=i[g+548>>2],O=i[g+552>>2],W=i[g+556>>2],V=i[g+560>>2],Z=i[g+564>>2],y=i[g+672>>2],B=i[g+624>>2],D=i[g+676>>2],Q=i[g+628>>2],f=i[g+680>>2],E=i[g+632>>2],p=i[g+684>>2],a=i[g+636>>2],w=i[g+688>>2],_=i[g+640>>2],k=i[g+692>>2],c=i[g+644>>2],F=i[g+696>>2],t=i[g+648>>2],G=i[g+700>>2],r=i[g+652>>2],M=i[g+704>>2],e=i[g+656>>2],L=i[g+708>>2],i[g+708>>2]=L^h&(i[g+660>>2]^L),i[g+704>>2]=M^h&(M^e),i[g+700>>2]=G^h&(G^r),i[g+696>>2]=F^h&(F^t),i[g+692>>2]=k^h&(k^c),i[g+688>>2]=w^h&(w^_),i[g+684>>2]=p^h&(p^a),i[g+680>>2]=f^h&(f^E),i[g+676>>2]=D^h&(D^Q),i[g+672>>2]=y^h&(y^B),b(y=g+96|0,g+144|0,n),QI(S,y),D=i[I+84>>2],f=i[I+88>>2],p=i[I+92>>2],w=i[I+96>>2],n=i[I+100>>2],k=i[I+104>>2],F=i[I+108>>2],G=i[I+112>>2],M=i[I+80>>2],L=i[I+116>>2],I=0-(1&C[g+384|0])|0,y=x^h&(x^Z),i[g+420>>2]=L-(I&(0-y^y)^y),y=u^h&(u^V),i[g+416>>2]=G-(I&(0-y^y)^y),y=l^h&(l^W),i[g+412>>2]=F-(I&(0-y^y)^y),y=m^h&(m^O),i[g+408>>2]=k-(I&(0-y^y)^y),y=d^h&(d^X),i[g+404>>2]=n-(I&(0-y^y)^y),y=J^h&(J^j),i[g+400>>2]=w-(I&(0-y^y)^y),y=Y^h&(Y^z),i[g+396>>2]=p-(I&(0-y^y)^y),y=H^h&(H^q),i[g+392>>2]=f-(I&(0-y^y)^y),y=N^h&(N^P),i[g+388>>2]=D-(I&(0-y^y)^y),y=I,I=U^h&(U^v),i[g+384>>2]=M-(y&(0-I^I)^I),b(S,K,S),QI(g+768|0,S),I=0-(1&C[g+768|0])|0,y=i[g+384>>2],i[g+384>>2]=I&(0-y^y)^y,y=i[g+388>>2],i[g+388>>2]=I&(0-y^y)^y,y=i[g+392>>2],i[g+392>>2]=I&(0-y^y)^y,y=i[g+396>>2],i[g+396>>2]=I&(0-y^y)^y,y=i[g+400>>2],i[g+400>>2]=I&(0-y^y)^y,y=i[g+404>>2],i[g+404>>2]=I&(0-y^y)^y,y=i[g+408>>2],i[g+408>>2]=I&(0-y^y)^y,y=i[g+412>>2],i[g+412>>2]=I&(0-y^y)^y,y=i[g+416>>2],i[g+416>>2]=I&(0-y^y)^y,y=I,I=i[g+420>>2],i[g+420>>2]=y&(0-I^I)^I,QI(A,S),s=g+800|0}function V(A,I){var g,C,B,Q,E,a,_,c,t,r=0,e=0;s=g=s-288|0,C=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,B=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,Q=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,E=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,a=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,_=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,c=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,t=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+280>>2]=i[I+120>>2],i[g+284>>2]=A,A=i[I+116>>2],i[g+272>>2]=i[I+112>>2],i[g+276>>2]=A,A=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=A,A=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=A,A=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=A,A=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=A,AI(e=g+256|0,g+240|0,g+224|0),A=i[g+268>>2],i[I+120>>2]=i[g+264>>2],i[I+124>>2]=A,A=i[g+260>>2],i[I+112>>2]=i[g+256>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=A,A=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=A,A=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=A,A=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=A,AI(e,g+208|0,g+192|0),A=i[g+268>>2],i[I+104>>2]=i[g+264>>2],i[I+108>>2]=A,A=i[g+260>>2],i[I+96>>2]=i[g+256>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=A,r=i[4+(A=I- -64|0)>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=r,r=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=r,r=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=r,AI(e,g+176|0,g+160|0),r=i[g+268>>2],i[I+88>>2]=i[g+264>>2],i[I+92>>2]=r,r=i[g+260>>2],i[I+80>>2]=i[g+256>>2],i[I+84>>2]=r,r=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=r,r=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=r,r=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=r,r=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=r,AI(e,g+144|0,g+128|0),r=i[g+268>>2],i[I+72>>2]=i[g+264>>2],i[I+76>>2]=r,r=i[g+260>>2],i[A>>2]=i[g+256>>2],i[A+4>>2]=r,r=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=r,r=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=r,r=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=r,r=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=r,AI(e,g+112|0,g+96|0),r=i[g+268>>2],i[I+56>>2]=i[g+264>>2],i[I+60>>2]=r,r=i[g+260>>2],i[I+48>>2]=i[g+256>>2],i[I+52>>2]=r,r=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=r,r=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=r,r=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=r,r=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=r,AI(e,g+80|0,g- -64|0),r=i[g+268>>2],i[I+40>>2]=i[g+264>>2],i[I+44>>2]=r,r=i[g+260>>2],i[I+32>>2]=i[g+256>>2],i[I+36>>2]=r,r=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=r,r=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=r,r=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=r,r=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=r,AI(e,g+48|0,g+32|0),r=i[g+268>>2],i[I+24>>2]=i[g+264>>2],i[I+28>>2]=r,r=i[g+260>>2],i[I+16>>2]=i[g+256>>2],i[I+20>>2]=r,r=i[g+284>>2],i[g+24>>2]=i[g+280>>2],i[g+28>>2]=r,r=i[g+276>>2],i[g+16>>2]=i[g+272>>2],i[g+20>>2]=r,r=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=r,r=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=r,AI(e,g+16|0,g),e=i[g+268>>2],i[I+8>>2]=i[g+264>>2],i[I+12>>2]=e,e=i[g+260>>2],i[I>>2]=i[g+256>>2],i[I+4>>2]=e,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^c,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^_,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^a,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^t,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+288|0}function Z(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k=0,F=0,S=0,N=0;s=B=s-240|0,i[B+200>>2]=0,i[B+204>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,Ng(F=B+192|0,I,g),S=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,N=o[0|(I=C- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,Q=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,E=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24,c=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,t=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,r=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,e=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,y=o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24,h=o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24,D=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,f=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,p=i[B+192>>2],w=i[B+196>>2],n=i[B+200>>2],i[B+204>>2]=(o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24)&(o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24)^(o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24)^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24)^i[B+204>>2]^(o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24),i[B+200>>2]=D&f^h^n^y^e,i[B+196>>2]=t&r^c^w^_^a,i[B+192>>2]=Q&E^S^N^k^p,bg(g+F|0,0,16-g|0),Ng(A,F,g),g=i[B+192>>2],F=i[B+196>>2],S=i[B+200>>2],N=i[B+204>>2],A=i[C+92>>2],i[B+232>>2]=i[C+88>>2],i[B+236>>2]=A,A=i[C+84>>2],i[B+224>>2]=i[C+80>>2],i[B+228>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,A=i[I+4>>2],i[B+176>>2]=i[I>>2],i[B+180>>2]=A,A=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=A,A=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=A,AI(A=B+208|0,B+176|0,B+160|0),k=i[B+220>>2],i[C+88>>2]=i[B+216>>2],i[C+92>>2]=k,k=i[B+212>>2],i[C+80>>2]=i[B+208>>2],i[C+84>>2]=k,k=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=k,k=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=k,k=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=k,k=i[I+4>>2],i[B+128>>2]=i[I>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+220>>2],i[C+72>>2]=i[B+216>>2],i[C+76>>2]=k,k=i[B+212>>2],i[I>>2]=i[B+208>>2],i[I+4>>2]=k,I=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=I,I=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=I,I=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=I,I=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+220>>2],i[C+56>>2]=i[B+216>>2],i[C+60>>2]=I,I=i[B+212>>2],i[C+48>>2]=i[B+208>>2],i[C+52>>2]=I,I=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=I,I=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=I,I=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=I,I=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+220>>2],i[C+40>>2]=i[B+216>>2],i[C+44>>2]=I,I=i[B+212>>2],i[C+32>>2]=i[B+208>>2],i[C+36>>2]=I,I=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=I,I=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=I,I=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=I,I=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+220>>2],i[C+24>>2]=i[B+216>>2],i[C+28>>2]=I,I=i[B+212>>2],i[C+16>>2]=i[B+208>>2],i[C+20>>2]=I,I=i[B+236>>2],i[B+24>>2]=i[B+232>>2],i[B+28>>2]=I,I=i[B+228>>2],i[B+16>>2]=i[B+224>>2],i[B+20>>2]=I,I=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=I,I=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+208>>2],I=i[B+212>>2],k=i[B+216>>2],i[C+12>>2]=N^i[B+220>>2],i[C+8>>2]=k^S,i[C+4>>2]=I^F,i[C>>2]=A^g,s=B+240|0}function T(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(a=1886610805^(B=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),E=1936682341^(i=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),c=1852142177^B,_=1819895653^i,i=1852075885^(B=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),Q=1685025377^(r=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^B,r^=1952801890,(0|(h=(I+g|0)-(y=7&g)|0))!=(0|I))for(;t=c=c+(B=t^(w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,_=_+(r^=n=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)|0,_=B>>>0>c>>>0?_+1|0:_,E=Q+E|0,E=(s=a)>>>0>(a=i+a|0)>>>0?E+1|0:E,Q=c+(i=UI(i,Q,13)^a)|0,c=_+(e=f^E)|0,e=UI(i,e,17)^Q,D=UI(e,c=(s=Q>>>0>>0?c+1|0:c)^f,13),p=f,B=UI(B,r,16),i=_^f,_=B^t,a=UI(a,E,32),t=c,c=f+i|0,t=1+(a=t+(E=(B=_+a|0)>>>0>>0?c+1|0:c)|0)|0,c=a,c=(a=B+e|0)>>>0>>0?t:c,D=UI(t=a^D,r=c^p,17),p=f,i=UI(_,i,21),E^=f,k=B^i,Q=UI(Q,s,32),i=f+E|0,Q=r+(s=(B=k+Q|0)>>>0>>0?i+1|0:i)|0,i=(_=B+t|0)^D,Q=(e=_>>>0>>0?Q+1|0:Q)^p,E=UI(k,E,16),r=t=s^f,E=UI(B^=E,t,21),s=f,t=(B=(a=UI(a,c,32))+B|0)^E,c=f+r|0,r=(E=B>>>0>>0?c+1|0:c)^s,c=UI(_,e,32),_=f,a=B^w,E^=n,(0|h)!=(0|(I=I+8|0)););switch(g<<=24,B=0,y-1|0){case 6:g|=o[I+6|0]<<16;case 5:g|=o[I+5|0]<<8;case 4:g|=o[I+4|0];case 3:e=(B=o[I+3|0])>>>8|0,B<<=24,g|=e;case 2:B|=(e=o[I+2|0])<<16,g|=y=e>>>16|0;case 1:B|=(e=o[I+1|0])<<8,g|=y=e>>>24|0;case 0:B=o[0|I]|B}return r=UI(I=B^t,t=g^r,16),_=_+t|0,c=(I=I+c|0)>>>0>>0?_+1|0:_,r=UI(_=I^r,t=c^f,21),e=f,s=1+(E=Q+E|0)|0,y=E,y=a=a>>>0>(E=i+a|0)>>>0?s:y,h=UI(E,a,32),t=f+t|0,e=UI(_=r^(a=_+h|0),r=e^(t=a>>>0>>0?t+1|0:t),16),h=f,Q=UI(i,Q,13)^E,i=(i=c)+(c=f^y)|0,y=UI(I=I+Q|0,E=I>>>0>>0?i+1|0:i,32),r=f+r|0,y=UI(_=e^(i=_+y|0),e=(r=i>>>0>>0?r+1|0:r)^h,21),h=f,I=a+(Q=c=UI(Q,c,17)^I)|0,a=(E^=f)+t|0,t=Q=I>>>0>>0?a+1|0:a,s=y,a=_+(y=UI(I,Q,32))|0,_=f+e|0,y=UI(Q=s^a,e=(_=a>>>0>>0?_+1|0:_)^h,16),h=f,s=i,E=UI(c,E,13)^I,c=(t^=f)+r|0,r=i=(I=s+(i=E)|0)>>>0>>0?c+1|0:c,i=UI(I,i,32),c=e+f|0,e=(s=Q)>>>0>(Q=Q+(255^i)|0)>>>0?c+1|0:c,y=UI(c=Q^y,i=h^e,21),h=f,E=UI(E,t,17)^I,g=(t=r^f)+(g^_)|0,_=g=(I=E+(B^=a)|0)>>>0>>0?g+1|0:g,g=UI(I,g,32),B=i+f|0,c=UI(a=(g=g+c|0)^y,B=(i=g>>>0>>0?B+1|0:B)^h,16),r=f,E=UI(E,t,13)^I,t=e+(_^=f)|0,t=Q=(I=Q+E|0)>>>0>>0?t+1|0:t,Q=UI(I,Q,32),y=r,s=1+(B=B+f|0)|0,r=B,r=(B=Q+a|0)>>>0>>0?s:r,c=UI(a=B^c,Q=y^r,21),e=f,E=UI(E,_,17),s=1+(i=i+(_=t^f)|0)|0,t=i,E=I=(y=g)>>>0>(g=g+(i=I^E)|0)>>>0?s:t,I=UI(g,I,32),Q=Q+f|0,t=(I=I+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,i=UI(i,_,13),_=r+(E^=f)|0,_=g=(r=B)>>>0>(B=B+(i^=g)|0)>>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,r=(g=g+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=g^c,Q=r^e,21),e=f,i=UI(i,E,17),y=1+(_=t+(E=_^f)|0)|0,t=_,I=UI(B=I+(_=B^i)|0,i=B>>>0>>0?y:t,32),Q=Q+f|0,t=(I=I+a|0)>>>0>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,E=UI(_,E,13),_=r+(i^=f)|0,_=g=(B=g+(E^=B)|0)>>>0>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,a=UI((g=g+a|0)^c,(Q=g>>>0>>0?Q+1|0:Q)^e,21),c=f,B=UI(E,i,17)^B,E=UI(B,i=_^f,13),i=i+t|0,I=f^(I>>>0>(B=I+B|0)>>>0?i+1:i),a=UI(B^=E,I,17)^a,i=f^c,_=1+(I=I+Q|0)|0,Q=I,I=UI(I=g+B|0,g=g>>>0>I>>>0?_:Q,32)^a^I,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,I=g^f^i,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0}function $(A,I){var g,C,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0;s=g=s-624|0,R(a=g+480|0,I),b(a,1632,a),c=i[g+516>>2],i[g+276>>2]=c,t=i[g+512>>2],i[g+272>>2]=t,r=i[g+508>>2],i[g+268>>2]=r,e=i[g+504>>2],i[g+264>>2]=e,y=i[g+500>>2],i[g+260>>2]=y,h=i[g+496>>2],i[g+256>>2]=h,D=i[g+492>>2],i[g+252>>2]=D,f=i[g+488>>2],i[g+248>>2]=f,p=i[g+484>>2],i[g+244>>2]=p,n=i[g+480>>2],i[g+240>>2]=n+1,b(_=g+240|0,_,33968),i[g+468>>2]=c-12055116,i[g+464>>2]=t-18696448,i[g+460>>2]=r-3247719,i[g+456>>2]=e-6275908,i[g+452>>2]=y-8787816,i[g+448>>2]=h+114729,i[g+444>>2]=D+6949391,i[g+440>>2]=f-15372611,i[g+436>>2]=p+13857413,i[g+432>>2]=n-10913610,b(w=g+192|0,a,1584),i[g+228>>2]=0-i[g+228>>2],i[g+224>>2]=0-i[g+224>>2],i[g+220>>2]=0-i[g+220>>2],i[g+216>>2]=0-i[g+216>>2],i[g+212>>2]=0-i[g+212>>2],i[g+208>>2]=0-i[g+208>>2],i[g+204>>2]=0-i[g+204>>2],i[g+200>>2]=0-i[g+200>>2],i[g+196>>2]=0-i[g+196>>2],i[g+192>>2]=~i[g+192>>2],b(w,w,g+432|0),a=GA(C=g+384|0,_,w),b(_=g+336|0,C,I),QI(B=g+576|0,_),E=o[g+576|0],Y=i[g+420>>2],_=i[g+372>>2],J=i[g+416>>2],k=i[g+368>>2],d=i[g+412>>2],F=i[g+364>>2],m=i[g+408>>2],S=i[g+360>>2],l=i[g+404>>2],N=i[g+356>>2],u=i[g+400>>2],G=i[g+352>>2],x=i[g+396>>2],M=i[g+348>>2],v=i[g+392>>2],K=i[g+344>>2],L=i[g+388>>2],U=i[g+340>>2],Q=i[g+384>>2],H=i[g+336>>2],I=a-1|0,i[g+612>>2]=I&c,i[g+608>>2]=I&t,i[g+604>>2]=I&r,i[g+600>>2]=I&e,i[g+596>>2]=I&y,i[g+592>>2]=I&h,i[g+588>>2]=I&D,i[g+584>>2]=I&f,i[g+580>>2]=I&p,i[g+576>>2]=n|0-a,H=I&(0-(H^(a=0-(1&E)|0)&(H^0-H))^Q)^Q,i[g+384>>2]=H,U=L^I&(L^0-(U^a&(U^0-U))),i[g+388>>2]=U,K=v^I&(v^0-(K^a&(K^0-K))),i[g+392>>2]=K,M=x^I&(x^0-(M^a&(M^0-M))),i[g+396>>2]=M,G=u^I&(u^0-(G^a&(G^0-G))),i[g+400>>2]=G,N=l^I&(l^0-(N^a&(N^0-N))),i[g+404>>2]=N,S=m^I&(m^0-(S^a&(S^0-S))),i[g+408>>2]=S,F=d^I&(d^0-(F^a&(F^0-F))),i[g+412>>2]=F,k=J^I&(J^0-(k^a&(k^0-k))),i[g+416>>2]=k,a=Y^I&(Y^0-(_^a&(_^0-_))),i[g+420>>2]=a,i[g+564>>2]=c,i[g+560>>2]=t,i[g+556>>2]=r,i[g+552>>2]=e,i[g+548>>2]=y,i[g+544>>2]=h,i[g+540>>2]=D,i[g+536>>2]=f,i[g+532>>2]=p,i[g+528>>2]=n-1,b(I=g+528|0,I,B),b(I,I,34016),c=i[g+192>>2],t=i[g+528>>2],r=i[g+196>>2],e=i[g+532>>2],y=i[g+200>>2],h=i[g+536>>2],D=i[g+204>>2],f=i[g+540>>2],p=i[g+208>>2],n=i[g+544>>2],_=i[g+212>>2],Y=i[g+548>>2],J=i[g+216>>2],d=i[g+552>>2],m=i[g+220>>2],l=i[g+556>>2],u=i[g+224>>2],x=i[g+560>>2],v=i[g+228>>2],L=i[g+564>>2],i[g+180>>2]=a<<1,i[g+176>>2]=k<<1,i[g+172>>2]=F<<1,i[g+168>>2]=S<<1,i[g+164>>2]=N<<1,i[g+160>>2]=G<<1,i[g+156>>2]=M<<1,i[g+152>>2]=K<<1,i[g+148>>2]=U<<1,i[g+144>>2]=H<<1,i[g+564>>2]=L-v,i[g+560>>2]=x-u,i[g+556>>2]=l-m,i[g+552>>2]=d-J,i[g+548>>2]=Y-_,i[g+544>>2]=n-p,i[g+540>>2]=f-D,i[g+536>>2]=h-y,i[g+532>>2]=e-r,i[g+528>>2]=t-c,b(a=g+144|0,a,w),b(w=g+96|0,I,34064),R(g+288|0,C),I=i[g+324>>2],i[g+84>>2]=0-I,c=i[g+320>>2],i[g+80>>2]=0-c,t=i[g+316>>2],i[g+76>>2]=0-t,r=i[g+312>>2],i[g+72>>2]=0-r,e=i[g+308>>2],i[g+68>>2]=0-e,y=i[g+304>>2],i[g+64>>2]=0-y,h=i[g+300>>2],i[g+60>>2]=0-h,D=i[g+296>>2],i[g+56>>2]=0-D,f=i[g+292>>2],i[g+52>>2]=0-f,p=i[g+288>>2],i[g+48>>2]=1-p,i[g+36>>2]=I,i[g+32>>2]=c,i[g+28>>2]=t,i[g+24>>2]=r,i[g+20>>2]=e,i[g+16>>2]=y,i[g+12>>2]=h,i[g+8>>2]=D,i[g+4>>2]=f,i[g>>2]=p+1,b(A,a,g),b(A+40|0,I=g+48|0,w),b(A+80|0,w,g),b(A+120|0,a,I),s=g+624|0}function AA(A,I,g){var B,E=0,a=0,_=0,c=0,t=0;s=B=s+-64|0;A:{if((g-65&255)>>>0>191){if(a=-1,!(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24|o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)){if((_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)>>>0>=129){if(c=E=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,E=(_=128+(a=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?E+1|0:E,C[A+64|0]=_,C[A+65|0]=_>>>8,C[A+66|0]=_>>>16,C[A+67|0]=_>>>24,C[A+68|0]=E,C[A+69|0]=E>>>8,C[A+70|0]=E>>>16,C[A+71|0]=E>>>24,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a=-1==(0|c)&a>>>0>4294967167)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,p(A,E=A+96|0),a=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=a,C[A+353|0]=a>>>8,C[A+354|0]=a>>>16,C[A+355|0]=a>>>24,a>>>0>=129)break A;Ng(E,A+224|0,a),_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24}a=t=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,a=(c=_+(E=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<_>>>0?a+1|0:a,C[A+64|0]=c,C[A+65|0]=c>>>8,C[A+66|0]=c>>>16,C[A+67|0]=c>>>24,C[A+68|0]=a,C[A+69|0]=a>>>8,C[A+70|0]=a>>>16,C[A+71|0]=a>>>24,a=(0|a)==(0|t)&E>>>0>c>>>0|a>>>0>>0,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,o[A+356|0]&&(C[A+88|0]=255,C[A+89|0]=255,C[A+90|0]=255,C[A+91|0]=255,C[A+92|0]=255,C[A+93|0]=255,C[A+94|0]=255,C[A+95|0]=255),C[A+80|0]=255,C[A+81|0]=255,C[A+82|0]=255,C[A+83|0]=255,C[A+84|0]=255,C[A+85|0]=255,C[A+86|0]=255,C[A+87|0]=255,bg((a=A+96|0)+_|0,0,256-_|0),p(A,a),E=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[B+4>>2]=E,E=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[B+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[B+12>>2]=E,E=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[B+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[B+20>>2]=E,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[B+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[B+28>>2]=E,E=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[B+32>>2]=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,i[B+36>>2]=E,E=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,i[B+40>>2]=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[B+44>>2]=E,E=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,i[B+48>>2]=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,i[B+52>>2]=E,E=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,i[B+56>>2]=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,i[B+60>>2]=E,Ng(I,B,g),XC(A,64),XC(a,256),a=0}return s=B- -64|0,a}rC(),Q()}r(1386,1234,306,1142),Q()}function IA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0,_=0;s=B=s-192|0,i[B+144>>2]=0,i[B+148>>2]=0,i[B+152>>2]=0,i[B+156>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=i[8799],i[B+168>>2]=i[8798],i[B+172>>2]=a,a=i[8801],i[B+176>>2]=i[8800],i[B+180>>2]=a,a=i[8803],i[B+184>>2]=i[8802],i[B+188>>2]=a,i[B+128>>2]=0,i[B+132>>2]=0,i[B+136>>2]=0,i[B+140>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,a=i[8797],i[B+160>>2]=i[8796],i[B+164>>2]=a,a=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+80>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+84>>2]=a,a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+88>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+92>>2]=a,a=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B+64>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+68>>2]=a,a=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+72>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+76>>2]=a,Eg(g=B+128|0,a=B- -64|0),S(g),_=i[B+156>>2],i[B+24>>2]=i[B+152>>2],i[B+28>>2]=_,_=i[B+148>>2],i[B+16>>2]=i[B+144>>2],i[B+20>>2]=_,_=i[B+140>>2],i[B+8>>2]=i[B+136>>2],i[B+12>>2]=_,_=i[B+132>>2],i[B>>2]=i[B+128>>2],i[B+4>>2]=_,i[B+120>>2]=0,i[B+124>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,_=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=_,_=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=_,_=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,Q=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,E=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+56>>2]=0,i[B+60>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+40>>2]=0,i[B+44>>2]=0,i[B+64>>2]=E,i[B+68>>2]=I,i[B+72>>2]=_,i[B+76>>2]=Q,i[B+32>>2]=0,i[B+36>>2]=0,og(a,B),I=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=I,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(g),I=i[B+156>>2],a=i[B+152>>2],C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[B+148>>2],a=i[B+144>>2],C[A+16|0]=a,C[A+17|0]=a>>>8,C[A+18|0]=a>>>16,C[A+19|0]=a>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[B+140>>2],a=i[B+136>>2],C[A+8|0]=a,C[A+9|0]=a>>>8,C[A+10|0]=a>>>16,C[A+11|0]=a>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[B+132>>2],a=i[B+128>>2],C[0|A]=a,C[A+1|0]=a>>>8,C[A+2|0]=a>>>16,C[A+3|0]=a>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=B+192|0}function gA(A){var I,g,B,Q,o,E,_,c,t,r,e=0,y=0,h=0,D=0,f=0;for(s=I=s-2048|0,$A(D=I+640|0,A),e=i[A+36>>2],i[I+352>>2]=i[A+32>>2],i[I+356>>2]=e,e=i[A+28>>2],i[I+344>>2]=i[A+24>>2],i[I+348>>2]=e,e=i[A+20>>2],i[I+336>>2]=i[A+16>>2],i[I+340>>2]=e,e=i[A+12>>2],i[I+328>>2]=i[A+8>>2],i[I+332>>2]=e,e=i[A+4>>2],i[I+320>>2]=i[A>>2],i[I+324>>2]=e,e=i[A+52>>2],i[I+368>>2]=i[A+48>>2],i[I+372>>2]=e,e=i[A+60>>2],i[I+376>>2]=i[A+56>>2],i[I+380>>2]=e,e=i[4+(h=A- -64|0)>>2],i[I+384>>2]=i[h>>2],i[I+388>>2]=e,e=i[A+76>>2],i[I+392>>2]=i[A+72>>2],i[I+396>>2]=e,e=i[A+44>>2],i[I+360>>2]=i[A+40>>2],i[I+364>>2]=e,e=i[A+92>>2],i[I+408>>2]=i[A+88>>2],i[I+412>>2]=e,e=i[A+100>>2],i[I+416>>2]=i[A+96>>2],i[I+420>>2]=e,e=i[A+108>>2],i[I+424>>2]=i[A+104>>2],i[I+428>>2]=e,e=i[A+116>>2],i[I+432>>2]=i[A+112>>2],i[I+436>>2]=e,e=i[A+84>>2],i[I+400>>2]=i[A+80>>2],i[I+404>>2]=e,KA(y=I+480|0,h=I+320|0),b(e=I+160|0,y,g=I+600|0),b(I+200|0,B=I+520|0,Q=I+560|0),b(I+240|0,Q,g),b(I+280|0,y,B),sA(y,e,D),b(h,y,g),b(_=I+360|0,B,Q),b(c=I+400|0,Q,g),b(t=I+440|0,y,B),$A(A=I+800|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+960|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1120|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1280|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1440|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1600|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(I+1760|0,h),i[I+32>>2]=0,i[I+36>>2]=0,i[I+24>>2]=0,i[I+28>>2]=0,i[I+16>>2]=0,i[I+20>>2]=0,i[I+8>>2]=0,i[I+12>>2]=0,i[I+52>>2]=0,i[I+56>>2]=0,i[I+60>>2]=0,i[I+64>>2]=0,i[I+68>>2]=0,i[I+72>>2]=0,i[I+76>>2]=0,i[I+80>>2]=1,i[I>>2]=0,i[I+4>>2]=0,i[I+44>>2]=0,i[I+48>>2]=0,i[I+40>>2]=1,bg(I+84|0,0,76),r=I+120|0,o=I+2008|0,E=I+1968|0,D=I+80|0,h=I+40|0,A=252;e=i[I+36>>2],i[(y=I+1960|0)>>2]=i[I+32>>2],i[y+4>>2]=e,e=i[I+28>>2],i[(y=I+1952|0)>>2]=i[I+24>>2],i[y+4>>2]=e,e=i[I+20>>2],i[(y=I+1944|0)>>2]=i[I+16>>2],i[y+4>>2]=e,e=i[I+12>>2],i[(y=I+1936|0)>>2]=i[I+8>>2],i[y+4>>2]=e,e=i[I+4>>2],i[I+1928>>2]=i[I>>2],i[I+1932>>2]=e,e=i[h+36>>2],i[E+32>>2]=i[h+32>>2],i[E+36>>2]=e,e=i[h+28>>2],i[E+24>>2]=i[h+24>>2],i[E+28>>2]=e,e=i[h+20>>2],i[E+16>>2]=i[h+16>>2],i[E+20>>2]=e,e=i[h+12>>2],i[E+8>>2]=i[h+8>>2],i[E+12>>2]=e,e=i[h+4>>2],i[E>>2]=i[h>>2],i[E+4>>2]=e,e=i[D+36>>2],i[o+32>>2]=i[D+32>>2],i[o+36>>2]=e,e=i[D+28>>2],i[o+24>>2]=i[D+24>>2],i[o+28>>2]=e,e=i[D+20>>2],i[o+16>>2]=i[D+16>>2],i[o+20>>2]=e,e=i[D+12>>2],i[o+8>>2]=i[D+8>>2],i[o+12>>2]=e,e=i[D+4>>2],i[o>>2]=i[D>>2],i[o+4>>2]=e,e=A,f=C[A+33712|0],KA(y=I+480|0,I+1928|0),(0|f)>0?(b(A=I+320|0,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),sA(y,A,(I+640|0)+a((254&f)>>>1|0,160)|0)):(0|f)>=0||(b(A=I+320|0,y=I+480|0,g),b(_,B,Q),b(c,Q,g),b(t,y,B),hA(y,A,(I+640|0)+a((0-f&254)>>>1|0,160)|0)),b(I,A=I+480|0,g),b(h,B,Q),b(D,Q,g),b(r,A,B),A=e-1|0,e;);return QI(A=I+640|0,I),A=GI(A,32),s=I+2048|0,A}function CA(A,I,g,B,Q){var i,E,a,_,c,t,r,e,y,s,h,D,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0;if(B?(d=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,l=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,m=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,u=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24):(d=1797285236,m=1634760805,l=2036477234,u=857760878),B=i=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=E=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,U=a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=d,S=_=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,G=l,b=c=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=t=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=r=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,I=e=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,K=u,f=y=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,p=s=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,k=h=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,g=D=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,F=m,(0|Q)>0)for(;H=Lg(g+K|0,7)^b,x=Lg(H+K|0,9)^N,Y=Lg(B+F|0,7)^f,v=Lg(Y+F|0,9)^M,R=Lg(Y+v|0,13)^B,J=Lg(w+S|0,7)^p,n=Lg(J+w|0,9)^n,p=Lg(n+J|0,13)^S,w=Lg(n+p|0,18)^w,f=Lg(I+G|0,7)^U,B=R^Lg(w+f|0,7),N=Lg(B+w|0,9)^x,U=Lg(B+N|0,13)^f,w=Lg(N+U|0,18)^w,k=Lg(f+G|0,9)^k,f=Lg(k+f|0,13)^I,I=Lg(f+k|0,18)^G,S=Lg(I+H|0,7)^p,M=Lg(S+I|0,9)^v,b=Lg(S+M|0,13)^H,G=Lg(M+b|0,18)^I,g=Lg(H+x|0,13)^g,p=Lg(g+x|0,18)^K,I=Lg(p+Y|0,7)^f,n=Lg(I+p|0,9)^n,f=Lg(I+n|0,13)^Y,K=Lg(n+f|0,18)^p,F=Lg(v+R|0,18)^F,g=Lg(F+J|0,7)^g,k=Lg(g+F|0,9)^k,p=Lg(g+k|0,13)^J,F=Lg(k+p|0,18)^F,(0|(L=L+2|0))<(0|Q););Q=w+d|0,C[A+60|0]=Q,C[A+61|0]=Q>>>8,C[A+62|0]=Q>>>16,C[A+63|0]=Q>>>24,Q=U+a|0,C[A+56|0]=Q,C[A+57|0]=Q>>>8,C[A+58|0]=Q>>>16,C[A+59|0]=Q>>>24,Q=N+E|0,C[A+52|0]=Q,C[A+53|0]=Q>>>8,C[A+54|0]=Q>>>16,C[A+55|0]=Q>>>24,B=B+i|0,C[A+48|0]=B,C[A+49|0]=B>>>8,C[A+50|0]=B>>>16,C[A+51|0]=B>>>24,B=S+_|0,C[A+44|0]=B,C[A+45|0]=B>>>8,C[A+46|0]=B>>>16,C[A+47|0]=B>>>24,B=G+l|0,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,B=b+c|0,C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,B=M+t|0,C[A+32|0]=B,C[A+33|0]=B>>>8,C[A+34|0]=B>>>16,C[A+35|0]=B>>>24,B=n+r|0,C[A+28|0]=B,C[A+29|0]=B>>>8,C[A+30|0]=B>>>16,C[A+31|0]=B>>>24,I=I+e|0,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=K+u|0,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f+y|0,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=p+s|0,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=k+h|0,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g+D|0,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F+m|0,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24}function BA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,a=0,c=0,t=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(2&I))break A;if((C=C-(I=i[C>>2])|0)>>>0>2],I>>>0<=255){if((0|(B=i[C+8>>2]))!=(0|g))break B;c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break I}if(a=i[C+24>>2],(0|g)!=(0|C)){I=i[C+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break g}if(B=i[C+20>>2])I=C+20|0;else{if(!(B=i[C+16>>2]))break C;I=C+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break g}if(3&~(I=i[Q+4>>2]))break I;return i[9407]=A,i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,void(i[Q>>2]=A)}i[B+12>>2]=g,i[g+8>>2]=B;break I}g=0}if(a){I=i[C+28>>2];g:{if(i[(B=37924+(I<<2)|0)>>2]==(0|C)){if(i[B>>2]=g,g)break g;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break I}if(i[a+(i[a+16>>2]==(0|C)?16:20)>>2]=g,!g)break I}i[g+24>>2]=a,(I=i[C+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[C+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(!(C>>>0>=Q>>>0)&&1&(I=i[Q+4>>2])){I:{g:{C:{B:{if(!(2&I)){if((0|Q)==i[9411]){if(i[9411]=C,A=i[9408]+A|0,i[9408]=A,i[C+4>>2]=1|A,i[9410]!=(0|C))break A;return i[9407]=0,void(i[9410]=0)}if((0|Q)==i[9410])return i[9410]=C,A=i[9407]+A|0,i[9407]=A,i[C+4>>2]=1|A,void(i[A+C>>2]=A);if(A=(-8&I)+A|0,g=i[Q+12>>2],I>>>0<=255){if((0|(B=i[Q+8>>2]))==(0|g)){c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break g}i[B+12>>2]=g,i[g+8>>2]=B;break g}if(a=i[Q+24>>2],(0|g)!=(0|Q)){I=i[Q+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break C}if(B=i[Q+20>>2])I=Q+20|0;else{if(!(B=i[Q+16>>2]))break B;I=Q+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break C}i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,i[A+C>>2]=A;break I}g=0}if(a){I=i[Q+28>>2];C:{if((0|Q)==i[(B=37924+(I<<2)|0)>>2]){if(i[B>>2]=g,g)break C;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break g}if(i[a+((0|Q)==i[a+16>>2]?16:20)>>2]=g,!g)break g}i[g+24>>2]=a,(I=i[Q+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[Q+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(i[C+4>>2]=1|A,i[A+C>>2]=A,i[9410]==(0|C))return void(i[9407]=A)}if(A>>>0<=255)return I=37660+(-8&A)|0,(B=i[9405])&(A=1<<(A>>>3))?A=i[I+8>>2]:(i[9405]=A|B,A=I),i[I+8>>2]=C,i[A+12>>2]=C,i[C+12>>2]=I,void(i[C+8>>2]=A);g=31,A>>>0<=16777215&&(g=62+((A>>>38-(I=_(A>>>8|0))&1)-(I<<1)|0)|0),i[C+28>>2]=g,i[C+16>>2]=0,i[C+20>>2]=0,o=37924+(g<<2)|0;I:{g:{if((I=i[9406])&(B=1<>>1|0):0),I=i[o>>2];;){if(B=I,(-8&i[I+4>>2])==(0|A))break g;if(I=g>>>29|0,g<<=1,!(I=i[(o=16+((4&I)+B|0)|0)>>2]))break}g=24,I=B}else i[9406]=I|B,g=24,I=o;B=C,Q=C,A=8;break I}I=i[B+8>>2],i[I+12>>2]=C,g=8,o=B+8|0,Q=0,A=24}i[o>>2]=C,i[g+C>>2]=I,i[C+12>>2]=B,i[A+C>>2]=Q,A=i[9413]-1|0,i[9413]=A||-1}}}function QA(A,I,g,C,B,E,a,_,c){var t=0,r=0,e=0,y=0,h=0,D=0,f=0,w=0;if(I-65>>>0<4294967232|a>>>0>64)A=-1;else{w=t=s,s=t=t-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((D=255&I)-65&255)>>>0<=191|!(!(I=255&a)||E)|I>>>0>=65)){if(I){if(!E)break I;_?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),a=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),_=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24)):(r=725511199,e=-1694144372,a=-1377402159,_=1359893119),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),f=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24),c=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24)):(y=327033209,h=1541459225,f=-79577749,c=528734635),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=f,i[t+52>>2]=c,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=a,i[t+36>>2]=_,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^(I<<8|D),i[t+4>>2]=I>>>24^1779033703,bg((a=t+384|0)+I|0,0,128-I|0),Ng(a,E,I),Ng(t+96|0,a,128),i[t+352>>2]=128,XC(a,128),I=128}else _?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),E=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24),I=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24)):(r=725511199,e=-1694144372,E=1359893119,I=-1377402159),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),_=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24),a=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)):(y=327033209,h=1541459225,_=528734635,a=-79577749),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=a,i[t+52>>2]=_,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=I,i[t+36>>2]=E,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^D,i[t+4>>2]=1779033703,I=0;g:if(C|B)for(c=t+224|0,_=t+96|0;;){if(a=I+_|0,!B&C>>>0<=(E=256-I|0)>>>0){Ng(a,g,C),i[t+352>>2]=C+i[t+352>>2];break g}if(Ng(a,g,E),i[t+352>>2]=E+i[t+352>>2],r=I=i[t+68>>2],I=(e=(a=i[t+64>>2])+128|0)>>>0<128?I+1|0:I,i[t+64>>2]=e,i[t+68>>2]=I,I=i[t+76>>2],I=(r=a=-1==(0|r)&a>>>0>4294967167)>>>0>(a=a+i[t+72>>2]|0)>>>0?I+1|0:I,i[t+72>>2]=a,i[t+76>>2]=I,p(t,_),Ng(_,c,128),I=i[t+352>>2]-128|0,i[t+352>>2]=I,g=g+E|0,!((B=B-(C>>>0>>0)|0)|(C=C-E|0)))break}AA(t,A,D),s=w;break A}rC(),Q()}A=0}return A}function iA(A,I,g,B,Q,E,_){var c,t,r=0,e=0,y=0;if(s=c=s+-64|0,t=K(32)){i[c+36>>2]=0,i[c+40>>2]=0,i[c+28>>2]=0,i[c+32>>2]=0,i[c+24>>2]=16,i[c+20>>2]=Q,i[c+16>>2]=B,i[c+12>>2]=g,i[c+8>>2]=32,i[c+4>>2]=t,i[c+60>>2]=0,i[c+56>>2]=1,i[c+52>>2]=1,i[c+48>>2]=I,i[c+44>>2]=A;A:if(A=q(c+4|0,_))XC(t,32);else{if(E){r=c+4|0,s=Q=s-32|0,A=-31;I:{g:{C:switch(_-1|0){case 1:A=o[1434]|o[1435]<<8|o[1436]<<16|o[1437]<<24,I=o[1430]|o[1431]<<8|o[1432]<<16|o[1433]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1439]|o[1440]<<8|o[1441]<<16|o[1442]<<24,I=o[1435]|o[1436]<<8|o[1437]<<16|o[1438]<<24,C[E+5|0]=I,C[E+6|0]=I>>>8,C[E+7|0]=I>>>16,C[E+8|0]=I>>>24,C[E+9|0]=A,C[E+10|0]=A>>>8,C[E+11|0]=A>>>16,C[E+12|0]=A>>>24,g=-12,I=12;break g;case 0:break C;default:break I}A=o[1422]|o[1423]<<8|o[1424]<<16|o[1425]<<24,I=o[1418]|o[1419]<<8|o[1420]<<16|o[1421]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1426]|o[1427]<<8|o[1428]<<16|o[1429]<<24,C[E+8|0]=A,C[E+9|0]=A>>>8,C[E+10|0]=A>>>16,C[E+11|0]=A>>>24,g=-11,I=11}if(!(A=nI(r)))if(C[Q+13|0]=0,C[Q+11|0]=49,C[Q+12|0]=57,(g=g+128|0)>>>0<=(A=RI(Q+11|0))>>>0)A=-31;else if(I=Ng(I+E|0,Q+11|0,A+1|0),(e=g-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+I|0)]=36,C[_+1|0]=109,C[_+2|0]=61,C[_+3|0]=0,A=i[r+44>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=116,C[_+2|0]=61,C[_+3|0]=0,A=i[r+40>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=112,C[_+2|0]=61,C[_+3|0]=0,A=i[r+48>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0?A=-31:(g=Ng(_+3|0,Q+11|0,A+1|0),(B=I-A|0)>>>0<2?A=-31:(C[0|(A=A+g|0)]=36,C[A+1|0]=0,XA(I=A+1|0,g=B-1|0,i[r+16>>2],i[r+20>>2],3)?(A=-31,(B=(B=g)-(g=RI(I))|0)>>>0<2||(C[0|(A=I+g|0)]=36,C[A+1|0]=0,A=XA(A+1|0,B-1|0,i[r>>2],i[r+4>>2],3)?0:-31)):A=-31))}}}}if(s=Q+32|0,A){XC(t,32),XC(E,128),A=-31;break A}}XC(t,32),A=0}BA(t)}else A=-22;return s=c- -64|0,A}function oA(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,c=0;g=A+I|0;A:{I:if(!(1&(C=i[A+4>>2]))){if(!(2&C))break A;I=(C=i[A>>2])+I|0;g:{C:{B:{if((0|(A=A-C|0))!=i[9410]){if(B=i[A+12>>2],C>>>0<=255){if((0|(Q=i[A+8>>2]))!=(0|B))break B;a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break I}if(o=i[A+24>>2],(0|A)!=(0|B)){C=i[A+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break g}if(Q=i[A+20>>2])C=A+20|0;else{if(!(Q=i[A+16>>2]))break C;C=A+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break g}if(3&~(C=i[g+4>>2]))break I;return i[9407]=I,i[g+4>>2]=-2&C,i[A+4>>2]=1|I,void(i[g>>2]=I)}i[Q+12>>2]=B,i[B+8>>2]=Q;break I}B=0}if(o){C=i[A+28>>2];g:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|A)){if(i[Q>>2]=B,B)break g;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break I}if(i[o+(i[o+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}i[B+24>>2]=o,(C=i[A+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[A+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}I:{g:{C:{B:{if(!(2&(C=i[g+4>>2]))){if(i[9411]==(0|g)){if(i[9411]=A,I=i[9408]+I|0,i[9408]=I,i[A+4>>2]=1|I,i[9410]!=(0|A))break A;return i[9407]=0,void(i[9410]=0)}if(i[9410]==(0|g))return i[9410]=A,I=i[9407]+I|0,i[9407]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);if(I=(-8&C)+I|0,B=i[g+12>>2],C>>>0<=255){if((0|(Q=i[g+8>>2]))==(0|B)){a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break g}i[Q+12>>2]=B,i[B+8>>2]=Q;break g}if(o=i[g+24>>2],(0|B)!=(0|g)){C=i[g+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break C}if(Q=i[g+20>>2])C=g+20|0;else{if(!(Q=i[g+16>>2]))break B;C=g+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break C}i[g+4>>2]=-2&C,i[A+4>>2]=1|I,i[A+I>>2]=I;break I}B=0}if(o){C=i[g+28>>2];C:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|g)){if(i[Q>>2]=B,B)break C;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break g}if(i[o+(i[o+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=o,(C=i[g+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[g+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[9410]==(0|A))return void(i[9407]=I)}if(I>>>0<=255)return C=37660+(-8&I)|0,(B=i[9405])&(I=1<<(I>>>3))?I=i[C+8>>2]:(i[9405]=I|B,I=C),i[C+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=C,void(i[A+8>>2]=I);B=31,I>>>0<=16777215&&(B=62+((I>>>38-(C=_(I>>>8|0))&1)-(C<<1)|0)|0),i[A+28>>2]=B,i[A+16>>2]=0,i[A+20>>2]=0,C=37924+(B<<2)|0;I:{if((Q=i[9406])&(E=1<>>1|0):0),C=i[C>>2];;){if(Q=C,(-8&i[C+4>>2])==(0|I))break I;if(C=B>>>29|0,B<<=1,!(C=i[16+(E=Q+(4&C)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=Q}else i[9406]=Q|E,i[C>>2]=A,i[A+24>>2]=C;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[Q+8>>2],i[I+12>>2]=A,i[Q+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=Q,i[A+8>>2]=I}}function EA(A,I){var g,B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0;return s=g=s-512|0,B=-1,E=o[I+31|0],Q=o[0|I],1&(((255&(127&~E|~(o[I+1|0]&o[I+2|0]&o[I+3|0]&o[I+4|0]&o[I+5|0]&o[I+6|0]&o[I+7|0]&o[I+8|0]&o[I+9|0]&o[I+10|0]&o[I+11|0]&o[I+12|0]&o[I+13|0]&o[I+14|0]&o[I+15|0]&o[I+16|0]&o[I+17|0]&o[I+18|0]&o[I+19|0]&o[I+20|0]&o[I+21|0]&o[I+22|0]&o[I+23|0]&o[I+24|0]&o[I+25|0]&o[I+26|0]&o[I+27|0]&o[I+28|0]&o[I+29|0]&o[I+30|0])))-1&236-Q)>>>8|Q|E>>>7)||(fA(E=g+336|0,I),R(g+288|0,E),I=i[g+324>>2],i[g+276>>2]=0-I,B=i[g+320>>2],i[g+272>>2]=0-B,Q=i[g+316>>2],i[g+268>>2]=0-Q,a=i[g+312>>2],i[g+264>>2]=0-a,_=i[g+308>>2],i[g+260>>2]=0-_,c=i[g+304>>2],i[g+256>>2]=0-c,t=i[g+300>>2],i[g+252>>2]=0-t,r=i[g+296>>2],i[g+248>>2]=0-r,e=i[g+292>>2],i[g+244>>2]=0-e,y=i[g+288>>2],i[g+240>>2]=1-y,R(h=g+144|0,p=g+240|0),i[g+228>>2]=I,i[g+224>>2]=B,i[g+220>>2]=Q,i[g+216>>2]=a,i[g+212>>2]=_,i[g+208>>2]=c,i[g+204>>2]=t,i[g+200>>2]=r,i[g+196>>2]=e,i[g+192>>2]=y+1,R(B=g+96|0,a=g+192|0),b(I=g+48|0,1584,h),Q=i[g+96>>2],_=i[g+48>>2],c=i[g+100>>2],t=i[g+52>>2],r=i[g+104>>2],e=i[g+56>>2],y=i[g+108>>2],h=i[g+60>>2],D=i[g+112>>2],f=i[g+64>>2],w=i[g+116>>2],n=i[g+68>>2],k=i[g+120>>2],F=i[g+72>>2],S=i[g+124>>2],N=i[g+76>>2],G=i[g+128>>2],M=i[g+80>>2],i[g+84>>2]=0-(i[g+84>>2]+i[g+132>>2]|0),i[g+80>>2]=0-(G+M|0),i[g+76>>2]=0-(S+N|0),i[g+72>>2]=0-(k+F|0),i[g+68>>2]=0-(w+n|0),i[g+64>>2]=0-(D+f|0),i[g+60>>2]=0-(y+h|0),i[g+56>>2]=0-(r+e|0),i[g+52>>2]=0-(c+t|0),i[g+48>>2]=0-(Q+_|0),b(g,I,B),i[g+404>>2]=0,i[g+408>>2]=0,i[g+412>>2]=0,i[g+416>>2]=0,i[g+420>>2]=0,i[g+388>>2]=0,i[g+392>>2]=0,i[g+384>>2]=1,i[g+396>>2]=0,i[g+400>>2]=0,f=GA(Q=g+432|0,g+384|0,g),b(A,Q,a),b(B=A+40|0,Q,A),b(B,B,I),b(A,A,E),E=i[A+36>>2]<<1,i[A+36>>2]=E,Q=i[A+32>>2]<<1,i[A+32>>2]=Q,a=i[A+28>>2]<<1,i[A+28>>2]=a,_=i[A+24>>2]<<1,i[A+24>>2]=_,c=i[A+20>>2]<<1,i[A+20>>2]=c,t=i[A+16>>2]<<1,i[A+16>>2]=t,r=i[A+12>>2]<<1,i[A+12>>2]=r,e=i[A+8>>2]<<1,i[A+8>>2]=e,y=i[A+4>>2]<<1,i[A+4>>2]=y,h=i[A>>2]<<1,i[A>>2]=h,QI(D=g+480|0,A),I=0-(1&C[g+480|0])|0,i[A+36>>2]=E^I&(E^0-E),i[A+32>>2]=Q^I&(Q^0-Q),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=h^I&(h^0-h),b(B,p,B),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,b(I=A+120|0,A,B),QI(D,I),A=o[g+480|0],QI(D,B),B=0-(GI(D,32)|1-f|1&A)|0),s=g+512|0,B}function aA(A,I,g,B){var Q,o=0,E=0;Q=o=s,s=o=o-576&-64,i[o+188>>2]=I;A:if(I>>>0<=64){if((0|eA(E=o+192|0,0,0,I))<0)break A;if((0|WA(E,o+188|0,4,0))<0)break A;if((0|WA(E,g,B,0))<0)break A;Hg(E,A,I)}else if(!((0|eA(E=o+192|0,0,0,64))<0||(0|WA(E,o+188|0,4,0))<0||(0|WA(E,g,B,0))<0||(0|Hg(E,o+112|0,64))<0)){if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(o+112|0,64,o+48|0,64,0,0,0))<0)break A;if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(g=o+112|0,I,o+48|0,64,0,0,0))<0||Ng(A,g,I)}XC(o+192|0,384),s=Q}function _A(A,I,g,B,Q,_,c,t,r,e,y){var h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;if(h=Ig(r,0,t,0),!(n=f)&h>>>0>=1073741824|n)return i[9404]=22,-1;if(1==(0|c)|c>>>0>1)return i[9404]=22,-1;if(h=c,!(!(_&(n=_-1|0)|c&(h=-1!=(0|n)?h+1|0:h))&(!c&_>>>0>=2|!!(0|c))))return i[9404]=28,-1;if(!r||!t)return i[9404]=28,-1;if(!(33554431/(r>>>0)>>>0>>0|t>>>0>16777215)&&!c&33554431/(t>>>0)>>>0>=_>>>0&&!((M=a(G=t<<7,r))>>>0>(h=(k=a(_,G))+M|0)>>>0||(D=h)>>>0>(h=((F=t<<8)+h|0)- -64|0)>>>0)){A:{if(h>>>0>E[A+8>>2]){if(w=-1,Rg(A))break A;if(s=n=s-16|0,D=tI(n+12|0,h),i[9404]=D,D=D?0:i[n+12>>2],i[A+4>>2]=D,i[A>>2]=D,i[A+8>>2]=D?h:0,s=n+16|0,!D)break A}for(DI(I,g,B,Q,U=i[A+4>>2],M),Y=((k=(D=(K=M+U|0)+k|0)+(t<<7)|0)+G|0)-64|0,Q=_-1|0,N=t<<5,b=D+F|0,J=(D+G|0)-64|0;;){for(F=a(G,H)+U|0,w=0;B=(A=w<<2)+F|0,i[A+D>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=4|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=8|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=(A|=12)+D|0,A=A+F|0,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,n=0,h=0,(0|N)!=(0|(w=w+4|0)););for(B=0,A=0;Ng(K+(a(B,N)<<2)|0,D,G),tA(D,k,b,t),Ng(K+(a(N,1|B)<<2)|0,k,G),tA(k,D,b,t),(0|c)==(0|(A=(B=B+2|0)>>>0<2?A+1|0:A))&B>>>0<_>>>0|A>>>0>>0;);for(;;){for(A=K+(a(N,Q&i[J>>2])<<2)|0,w=0;i[(p=(B=w<<2)+D|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+D|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););for(tA(D,k,b,t),A=K+(a(N,Q&i[Y>>2])<<2)|0,w=0;i[(p=(B=w<<2)+k|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+k|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););if(tA(k,D,b,t),w=0,!((0|c)==(0|(h=(n=n+2|0)>>>0<2?h+1|0:h))&_>>>0>n>>>0|c>>>0>h>>>0))break}for(;B=(A=w<<2)+F|0,h=i[A+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=4|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=8|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,A=(B=12|A)+F|0,B=i[B+D>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,(0|N)!=(0|(w=w+4|0)););if((0|(H=H+1|0))==(0|r))break}DI(I,g,U,M,e,y),w=0}return w}return i[9404]=48,-1}function cA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0;s=B=s-192|0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=a,a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=a,Q=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+40>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=a,i[B+68>>2]=I,i[B+72>>2]=Q,i[B+76>>2]=E,i[B+32>>2]=0,i[B+36>>2]=0,I=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+16>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+20>>2]=I,I=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+24>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+28>>2]=I,I=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+4>>2]=I,I=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+8>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+12>>2]=I,og(B- -64|0,B),g=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=g,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(I=B+128|0),a=i[B+156>>2],g=i[B+152>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,a=i[B+148>>2],g=i[B+144>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=a,C[A+21|0]=a>>>8,C[A+22|0]=a>>>16,C[A+23|0]=a>>>24,a=i[B+140>>2],g=i[B+136>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,a=i[B+132>>2],g=i[B+128>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=a,C[A+5|0]=a>>>8,C[A+6|0]=a>>>16,C[A+7|0]=a>>>24,XC(I,64),s=B+192|0}function tA(A,I,g,C){var B=0,Q=0,o=0,E=0,a=0;if(Q=i[4+(B=((C<<7)+A|0)-64|0)>>2],i[g>>2]=i[B>>2],i[g+4>>2]=Q,Q=i[B+60>>2],i[g+56>>2]=i[B+56>>2],i[g+60>>2]=Q,Q=i[B+52>>2],i[g+48>>2]=i[B+48>>2],i[g+52>>2]=Q,Q=i[B+44>>2],i[g+40>>2]=i[B+40>>2],i[g+44>>2]=Q,Q=i[B+36>>2],i[g+32>>2]=i[B+32>>2],i[g+36>>2]=Q,Q=i[B+28>>2],i[g+24>>2]=i[B+24>>2],i[g+28>>2]=Q,Q=i[B+20>>2],i[g+16>>2]=i[B+16>>2],i[g+20>>2]=Q,Q=i[B+12>>2],i[g+8>>2]=i[B+8>>2],i[g+12>>2]=Q,C)for(Q=C<<1,a=C<<6;C=(E<<6)+A|0,i[g>>2]=i[g>>2]^i[C>>2],i[g+4>>2]=i[g+4>>2]^i[C+4>>2],i[g+8>>2]=i[g+8>>2]^i[C+8>>2],i[g+12>>2]=i[g+12>>2]^i[C+12>>2],i[g+16>>2]=i[g+16>>2]^i[C+16>>2],i[g+20>>2]=i[g+20>>2]^i[C+20>>2],i[g+24>>2]=i[g+24>>2]^i[C+24>>2],i[g+28>>2]=i[g+28>>2]^i[C+28>>2],i[g+32>>2]=i[g+32>>2]^i[C+32>>2],i[g+36>>2]=i[g+36>>2]^i[C+36>>2],i[g+40>>2]=i[g+40>>2]^i[C+40>>2],i[g+44>>2]=i[g+44>>2]^i[C+44>>2],i[g+48>>2]=i[g+48>>2]^i[C+48>>2],i[g+52>>2]=i[g+52>>2]^i[C+52>>2],i[g+56>>2]=i[g+56>>2]^i[C+56>>2],i[g+60>>2]=i[g+60>>2]^i[C+60>>2],VA(g),o=i[g+60>>2],i[56+(B=(E<<5)+I|0)>>2]=i[g+56>>2],i[B+60>>2]=o,o=i[g+52>>2],i[B+48>>2]=i[g+48>>2],i[B+52>>2]=o,o=i[g+44>>2],i[B+40>>2]=i[g+40>>2],i[B+44>>2]=o,o=i[g+36>>2],i[B+32>>2]=i[g+32>>2],i[B+36>>2]=o,o=i[g+28>>2],i[B+24>>2]=i[g+24>>2],i[B+28>>2]=o,o=i[g+20>>2],i[B+16>>2]=i[g+16>>2],i[B+20>>2]=o,o=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=o,o=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=o,i[g>>2]=i[g>>2]^i[C- -64>>2],i[g+4>>2]=i[g+4>>2]^i[C+68>>2],i[g+8>>2]=i[g+8>>2]^i[C+72>>2],i[g+12>>2]=i[g+12>>2]^i[C+76>>2],i[g+16>>2]=i[g+16>>2]^i[C+80>>2],i[g+20>>2]=i[g+20>>2]^i[C+84>>2],i[g+24>>2]=i[g+24>>2]^i[C+88>>2],i[g+28>>2]=i[g+28>>2]^i[C+92>>2],i[g+32>>2]=i[g+32>>2]^i[C+96>>2],i[g+36>>2]=i[g+36>>2]^i[C+100>>2],i[g+40>>2]=i[g+40>>2]^i[C+104>>2],i[g+44>>2]=i[g+44>>2]^i[C+108>>2],i[g+48>>2]=i[g+48>>2]^i[C+112>>2],i[g+52>>2]=i[g+52>>2]^i[C+116>>2],i[g+56>>2]=i[g+56>>2]^i[C+120>>2],i[g+60>>2]=i[g+60>>2]^i[C+124>>2],VA(g),C=B+a|0,B=i[g+60>>2],i[C+56>>2]=i[g+56>>2],i[C+60>>2]=B,B=i[g+52>>2],i[C+48>>2]=i[g+48>>2],i[C+52>>2]=B,B=i[g+44>>2],i[C+40>>2]=i[g+40>>2],i[C+44>>2]=B,B=i[g+36>>2],i[C+32>>2]=i[g+32>>2],i[C+36>>2]=B,B=i[g+28>>2],i[C+24>>2]=i[g+24>>2],i[C+28>>2]=B,B=i[g+20>>2],i[C+16>>2]=i[g+16>>2],i[C+20>>2]=B,B=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=B,B=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=B,Q>>>0>(E=E+2|0)>>>0;);}function rA(A,I,g,C){var B=0,Q=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;if(h=i[A+36>>2],y=i[A+32>>2],s=i[A+28>>2],r=i[A+24>>2],e=i[A+20>>2],!C&g>>>0>=16|C)for(M=!o[A+80|0]<<24,p=i[A+4>>2],K=a(p,5),n=i[A+8>>2],N=a(n,5),F=i[A+12>>2],S=a(F,5),G=i[A+16>>2],k=a(G,5),w=i[A>>2];B=Ig(E=((o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108863)+r|0,0,F,0),c=f,e=(_=Ig(r=(67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))+e|0,0,G,0))+B|0,B=f+c|0,B=_>>>0>e>>>0?B+1|0:B,c=Ig(s=((o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67108863)+s|0,0,n,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(y=((o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6|0)+y|0,0,p,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(h=h+M+((o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)>>>8)|0,0,w,0),B=f+B|0,U=e=c+e|0,e=c>>>0>e>>>0?B+1|0:B,B=Ig(E,0,n,0),c=f,_=Ig(r,0,F,0),Q=f+c|0,Q=(B=_+B|0)>>>0<_>>>0?Q+1|0:Q,c=(_=Ig(s,0,p,0))+B|0,B=f+Q|0,B=_>>>0>c>>>0?B+1|0:B,_=Ig(y,0,w,0),B=f+B|0,B=_>>>0>(c=_+c|0)>>>0?B+1|0:B,_=Ig(h,0,k,0),B=f+B|0,b=c=_+c|0,c=_>>>0>c>>>0?B+1|0:B,B=Ig(E,0,p,0),t=f,_=(Q=Ig(r,0,n,0))+B|0,B=f+t|0,B=Q>>>0>_>>>0?B+1|0:B,t=Ig(s,0,w,0),Q=f+B|0,Q=(_=t+_|0)>>>0>>0?Q+1|0:Q,t=Ig(y,0,k,0),B=f+Q|0,B=(_=t+_|0)>>>0>>0?B+1|0:B,t=Ig(h,0,S,0),B=f+B|0,H=_=t+_|0,_=_>>>0>>0?B+1|0:B,B=Ig(E,0,w,0),Q=f,t=(D=Ig(r,0,p,0))+B|0,B=f+Q|0,B=t>>>0>>0?B+1|0:B,Q=Ig(s,0,k,0),B=f+B|0,B=Q>>>0>(t=Q+t|0)>>>0?B+1|0:B,D=Ig(y,0,S,0),Q=f+B|0,Q=(t=D+t|0)>>>0>>0?Q+1|0:Q,D=Ig(h,0,N,0),B=f+Q|0,B=(t=D+t|0)>>>0>>0?B+1|0:B,D=t,t=B,B=Ig(E,0,k,0),Q=f,E=(r=Ig(r,0,w,0))+B|0,B=f+Q|0,B=E>>>0>>0?B+1|0:B,r=Ig(s,0,S,0),B=f+B|0,B=(E=r+E|0)>>>0>>0?B+1|0:B,r=Ig(y,0,N,0),B=f+B|0,B=(E=r+E|0)>>>0>>0?B+1|0:B,r=Ig(h,0,K,0),Q=f+B|0,Q=(E=r+E|0)>>>0>>0?Q+1|0:Q,r=E,B=t,B=(E=(s=(67108863&Q)<<6|E>>>26)+D|0)>>>0>>0?B+1|0:B,s=E,y=(67108863&B)<<6|E>>>26,B=_,B=(E=y+H|0)>>>0>>0?B+1|0:B,y=E,Q=c,h=B=(E=(67108863&B)<<6|E>>>26)+b|0,c=(67108863&(Q=B>>>0>>0?Q+1|0:Q))<<6|B>>>26,B=e,r=(67108863&s)+((B=a((67108863&((E=c+U|0)>>>0>>0?B+1:B))<<6|E>>>26,5)+(67108863&r)|0)>>>26|0)|0,s=67108863&y,y=67108863&h,h=67108863&E,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);i[A+20>>2]=e,i[A+36>>2]=h,i[A+32>>2]=y,i[A+28>>2]=s,i[A+24>>2]=r}function eA(A,I,g,B){A|=0,I|=0;var i=0;return i=-1,(B|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(s=i=s-128|0,!I|((B&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(rC(),Q()):(bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,B=-222443256^(g<<8|B),C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,B=g>>>24^1779033703,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,g=Ng(bg(i,0,128),I,g),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)):(((I=255&B)-65&255)>>>0<=191&&(rC(),Q()),bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I^=-222443256,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106),i=0),0|i}function yA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(i=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,E=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,t=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24):(i=2036477234,E=857760878,Q=1634760805,t=1797285236),a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,e=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,_=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,y=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,c=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,w=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,s=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,B=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,h=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,D=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;r=g,g=Lg((f=I)^(I=g+Q|0),16),r=s=Lg(r^(Q=g+s|0),12),p=Lg((f=I+s|0)^g,8),I=Lg(r^(s=p+Q|0),7),a=Lg((g=B+t|0)^a,16),B=Lg((y=a+y|0)^B,12),r=h,i=Lg((t=i+h|0)^e,16),Q=Lg(r^(h=i+c|0),12),c=Lg((c=i)^(i=Q+t|0),8),g=Lg(c^(t=(n=g+B|0)+I|0),16),e=Lg((E=E+D|0)^_,16),D=Lg((_=e+w|0)^D,12),r=I,I=Lg((E=D+E|0)^e,8),r=Lg(r^(_=(k=I+_|0)+g|0),12),e=Lg(g^(t=r+t|0),8),g=Lg((w=e+_|0)^r,7),a=Lg(a^n,8),B=Lg((y=a+y|0)^B,7),_=Lg((i=B+i|0)^I,16),B=Lg((I=_+s|0)^B,12),_=Lg(_^(i=B+i|0),8),B=Lg((s=I+_|0)^B,7),I=Lg((c=c+h|0)^Q,7),h=Lg((E=I+E|0)^p,16),p=Lg(I^(Q=h+y|0),12),I=Lg(h^(E=p+E|0),8),h=Lg((y=Q+I|0)^p,7),r=c,c=a,Q=Lg(D^k,7),c=Lg(c^(a=Q+f|0),16),f=Lg(Q^(D=r+c|0),12),a=Lg(c^(Q=f+a|0),8),D=Lg((c=D+a|0)^f,7),10!=(0|(F=F+1|0)););return C[0|A]=Q,C[A+1|0]=Q>>>8,C[A+2|0]=Q>>>16,C[A+3|0]=Q>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+24|0]=e,C[A+25|0]=e>>>8,C[A+26|0]=e>>>16,C[A+27|0]=e>>>24,C[A+20|0]=_,C[A+21|0]=_>>>8,C[A+22|0]=_>>>16,C[A+23|0]=_>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=t,C[A+13|0]=t>>>8,C[A+14|0]=t>>>16,C[A+15|0]=t>>>24,C[A+8|0]=i,C[A+9|0]=i>>>8,C[A+10|0]=i>>>16,C[A+11|0]=i>>>24,C[A+4|0]=E,C[A+5|0]=E>>>8,C[A+6|0]=E>>>16,C[A+7|0]=E>>>24,0}function sA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function hA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g+40|0),b(e=A+40|0,e,g),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=i[A+156>>2],g=t<<1,i[A+156>>2]=I+g,y=i[A+152>>2],e=c<<1,i[A+152>>2]=y+e,h=i[A+148>>2],D=_<<1,i[A+148>>2]=h+D,f=i[A+144>>2],p=a<<1,i[A+144>>2]=f+p,w=i[A+140>>2],n=E<<1,i[A+140>>2]=w+n,k=i[A+136>>2],F=o<<1,i[A+136>>2]=k+F,S=i[A+132>>2],s=Q<<1,i[A+132>>2]=S+s,N=i[A+128>>2],G=Y<<1,i[A+128>>2]=N+G,M=i[A+124>>2],K=H<<1,i[A+124>>2]=M+K,U=i[A+120>>2],H=r<<1,i[A+120>>2]=U+H,i[A+112>>2]=e-y,i[A+108>>2]=D-h,i[A+104>>2]=p-f,i[A+100>>2]=n-w,i[A+96>>2]=F-k,i[A+92>>2]=s-S,i[A+88>>2]=G-N,i[A+84>>2]=K-M,i[A+80>>2]=H-U,i[A+116>>2]=g-I}function DA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+80|0,I+120|0),H=i[I+84>>2],Y=i[I+88>>2],Q=i[I+92>>2],o=i[I+96>>2],E=i[I+100>>2],a=i[I+104>>2],_=i[I+108>>2],c=i[I+112>>2],t=i[I+116>>2],g=i[A+44>>2],e=i[A+84>>2],h=i[A+48>>2],D=i[A+88>>2],f=i[A+52>>2],p=i[A+92>>2],w=i[A+56>>2],n=i[A+96>>2],k=i[A+60>>2],F=i[A+100>>2],S=i[y>>2],s=i[A+104>>2],N=i[A+68>>2],G=i[A+108>>2],M=i[A+72>>2],K=i[A+112>>2],r=i[I+80>>2],I=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=M+K,i[A+68>>2]=N+G,i[y>>2]=S+s,i[A+60>>2]=k+F,i[A+56>>2]=w+n,i[A+52>>2]=f+p,i[A+48>>2]=h+D,i[A+44>>2]=g+e,i[A+40>>2]=I+U,i[A+36>>2]=B-C,i[A+32>>2]=K-M,i[A+28>>2]=G-N,i[A+24>>2]=s-S,i[A+20>>2]=F-k,i[A+16>>2]=n-w,i[A+12>>2]=p-f,i[A+8>>2]=D-h,i[A+4>>2]=e-g,i[A>>2]=U-I,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function fA(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,s,h,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0;s=o[I+31|0],g=o[I+30|0],C=o[I+29|0],B=o[I+6|0],Q=o[I+5|0],E=o[I+4|0],a=o[I+9|0],_=o[I+8|0],c=o[I+7|0],t=o[I+12|0],K=o[I+11|0],U=o[I+10|0],r=o[I+15|0],b=o[I+14|0],e=o[I+13|0],S=o[I+28|0],M=o[I+27|0],N=o[I+26|0],F=o[I+25|0],n=o[I+24|0],w=o[I+23|0],h=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=(p=o[I+21|0])<<15,p=D=p>>>17|0,G=k,G|=(k=o[I+20|0])<<7,k=(D=k>>>25|0)|p,p=(D=o[I+22|0])>>>9|0,D=D<<23|G,p|=k,y=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=0,k=D,D=(33554431&(I=(G=y+16777216|0)>>>0<16777216?1:I))<<7|G>>>25,I=(I>>>25|0)+p|0,D=(p=k=k+D|0)>>>0>>0?I+1|0:I,I=(k=p+33554432|0)>>>0<33554432?D+1|0:D,i[A+24>>2]=p-(-67108864&k),D=(p=w>>>27|0)|n>>>19|F>>>11,p=w=(n=F<<21|(w=n<<13|w<<5))+(p=(67108863&(p=I))<<6|k>>>26)|0,I=D,D=(w=n+16777216|0)>>>0<16777216?I+1|0:I,i[A+28>>2]=p-(1040187392&w),p=(D=(I=D)>>>25|0)+(p=M>>>20|N>>>28|S>>>12)|0,I=p=(D=w=(I=(33554431&I)<<7|w>>>25)+(M<<12|N<<4|S<<20)|0)>>>0>>0?p+1|0:p,w=(S=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+32>>2]=D-(-67108864&S),p=t>>>13|(D=K>>>21|U>>>29),I=(p=(M=16777216+(K=K<<11|U<<3|t<<19)|0)>>>0<16777216?p+1|0:p)>>>25|0,p=(D=n=b<<10|e<<2|r<<18)+(n=(33554431&p)<<7|M>>>25)|0,D=I+(F=b>>>22|e>>>30|r>>>14)|0,I=D=p>>>0>>0?D+1|0:D,n=((67108863&(I=(n=p+33554432|0)>>>0<33554432?I+1|0:I))<<6|(D=n)>>>26)+(N=y-(-33554432&G)|0)|0,i[A+20>>2]=n,i[A+16>>2]=p-(-67108864&D),D=Q>>>18|E>>>26|B>>>10,p=(D=(N=16777216+(U=Q<<14|E<<6|B<<22)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(I=n=_<<13|c<<5|a<<21)+(n=(33554431&D)<<7|N>>>25)|0,I=p+(F=_>>>19|c>>>27|a>>>11)|0,I=D>>>0>>0?I+1|0:I,p=(F=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+8>>2]=D-(-67108864&F),S=(w=(67108863&w)<<6|S>>>26)+(b=s<<18&33292288|g<<10|C<<2)|0,I=D=g>>>22|C>>>30,D=(w=b+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=S-(33554432&w),p=K+((67108863&p)<<6|F>>>26)|0,i[A+12>>2]=p-(234881024&M),n=U-(2113929216&N)|0,p=Ig((33554431&(I=D))<<7|w>>>25,D=I>>>25|0,19,0),I=f,p=(D=p+h|0)>>>0

>>0?I+1|0:I,w=((67108863&(p=(I=D+33554432|0)>>>0<33554432?p+1|0:p))<<6|I>>>26)+n|0,i[A+4>>2]=w,i[A>>2]=D-(-67108864&I)}function pA(A,I,g,B,E,a,_,c){A|=0,I|=0,g|=0,B|=0,E|=0,a|=0,_|=0;var t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;if(1==(-7&(c|=0))){A:{I:{g:{C:{B:{Q:{i:{if(B){o:{E:{if(c>>>0<=3){for(;;){y=r;a:{_:{c:{t:{for(;;){if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16336^e))>>>8&63|~(1+(16340^e))>>>8&62,255!=(0|(t|=(t-1&1+(65470^e))>>>8&255)))break t;if(t=0,!E)break o;if(!kI(E,e))break;if((y=y+1|0)>>>0>=B>>>0)break c}r=y;break o}if(D=t+(D<<6)|0,s>>>0>1)break _;s=s+6|0;break a}r=(A=r+1|0)>>>0>>0?B:A;break o}if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,!((r=y+1|0)>>>0>>0))break}break o}for(;;){a:{if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16288^e))>>>8&63|~(1+(16338^e))>>>8&62,255==(0|(t|=(t-1&1+(65470^e))>>>8&255))){if(t=0,!E)break o;if(kI(E,e)){if((y=y+1|0)>>>0>=B>>>0)break a;continue}r=y;break o}if(D=t+(D<<6)|0,s>>>0<2)s=s+6|0;else{if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,(r=y+1|0)>>>0>=B>>>0)break o;y=r;continue}break}r=(A=r+1|0)>>>0>>0?B:A;break o}r=y,i[9404]=68,t=1}if(s>>>0>4)break i;A=r}else A=0;if(I=-1,t){r=A;break A}if(~(-1<>>0<2){c=A;break B}if(r=A>>>0>B>>>0?A:B,y=s>>>1|0,!E)break Q;for(c=A;;){if((0|c)==(0|r)){t=68;break C}if(61!=(0|(A=C[g+c|0]))){if(!kI(E,A)){t=28,r=c;break C}}else y=y-1|0;if(c=c+1|0,!y)break}break B}I=-1;break A}if(t=68,A>>>0>=B>>>0)break C;if(61!=o[A+g|0]){r=A,t=28;break C}if(c=A+y|0,1!=(0|y)){if((0|(s=A+1|0))==(0|r))break C;if(61!=o[g+s|0]){r=s,t=28;break C}if(2!=(0|y)){if((0|(A=A+2|0))==(0|r))break C;if(t=28,r=A,61!=o[A+g|0])break C}}}if(I=0,E)break g;break I}i[9404]=t;break A}if(!(B>>>0<=c>>>0)){for(;;){if(!kI(E,C[g+c|0]))break I;if((0|(c=c+1|0))==(0|B))break}c=B}}r=c,f=h}return _?i[_>>2]=g+r:(0|B)!=(0|r)&&(i[9404]=28,I=-1),a&&(i[a>>2]=f),0|I}rC(),Q()}function wA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(Q=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,_=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,c=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,B=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24):(Q=1797285236,_=2036477234,c=857760878,B=1634760805),i=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,f=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,p=20,s=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,h=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,e=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,y=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;t=Lg(g+c|0,7)^i,w=Lg(t+c|0,9)^D,r=Lg(B+s|0,7)^r,n=Lg(r+B|0,9)^a,k=Lg(n+r|0,13)^s,e=Lg(Q+h|0,7)^e,E=Lg(e+Q|0,9)^E,a=Lg(E+e|0,13)^h,Q=Lg(E+a|0,18)^Q,i=Lg(I+_|0,7)^f,s=k^Lg(Q+i|0,7),D=w^Lg(s+Q|0,9),f=Lg(s+D|0,13)^i,Q=Lg(D+f|0,18)^Q,y=Lg(i+_|0,9)^y,F=Lg(y+i|0,13)^I,I=Lg(F+y|0,18)^_,h=Lg(I+t|0,7)^a,a=Lg(h+I|0,9)^n,i=Lg(a+h|0,13)^t,_=Lg(i+a|0,18)^I,t=Lg(t+w|0,13)^g,g=Lg(t+w|0,18)^c,I=Lg(g+r|0,7)^F,E=Lg(I+g|0,9)^E,r=Lg(I+E|0,13)^r,c=Lg(E+r|0,18)^g,B=Lg(n+k|0,18)^B,g=Lg(B+e|0,7)^t,y=Lg(g+B|0,9)^y,e=Lg(g+y|0,13)^e,B=Lg(y+e|0,18)^B,t=p>>>0>2,p=p-2|0,t;);return C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+28|0]=i,C[A+29|0]=i>>>8,C[A+30|0]=i>>>16,C[A+31|0]=i>>>24,C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+20|0]=E,C[A+21|0]=E>>>8,C[A+22|0]=E>>>16,C[A+23|0]=E>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,C[A+8|0]=_,C[A+9|0]=_>>>8,C[A+10|0]=_>>>16,C[A+11|0]=_>>>24,C[A+4|0]=c,C[A+5|0]=c>>>8,C[A+6|0]=c>>>16,C[A+7|0]=c>>>24,0}function nA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0;for(s=g=s-480|0;c=(_=g+288|0)+(a<<1)|0,t=o[I+a|0],C[c+1|0]=t>>>4,C[0|c]=15&t,_=_+((c=1|a)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(a=a+2|0)););for(I=0;a=8+(_=(a=I)+o[0|(I=(g+288|0)+r|0)]|0)|0,C[0|I]=_-(240&a),a=8+(_=o[I+1|0]+(a<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&a),a=8+(_=o[I+2|0]+(a<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&a),I=a<<24>>24>>4,63!=(0|(r=r+3|0)););for(C[g+351|0]=o[g+351|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),Q=A+120|0,r=A+80|0,I=A+40|0,_=g+208|0,B=g+168|0,c=g+248|0,a=1;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),e=a>>>0<62,a=a+2|0,e;);for(a=i[A+36>>2],i[g+392>>2]=i[A+32>>2],i[g+396>>2]=a,a=i[A+28>>2],i[g+384>>2]=i[A+24>>2],i[g+388>>2]=a,a=i[A+20>>2],i[g+376>>2]=i[A+16>>2],i[g+380>>2]=a,a=i[A+12>>2],i[g+368>>2]=i[A+8>>2],i[g+372>>2]=a,a=i[A+4>>2],i[g+360>>2]=i[A>>2],i[g+364>>2]=a,a=i[I+12>>2],i[g+408>>2]=i[I+8>>2],i[g+412>>2]=a,a=i[I+20>>2],i[g+416>>2]=i[I+16>>2],i[g+420>>2]=a,a=i[I+28>>2],i[g+424>>2]=i[I+24>>2],i[g+428>>2]=a,a=i[I+36>>2],i[g+432>>2]=i[I+32>>2],i[g+436>>2]=a,a=i[I+4>>2],i[g+400>>2]=i[I>>2],i[g+404>>2]=a,a=i[r+12>>2],i[g+448>>2]=i[r+8>>2],i[g+452>>2]=a,a=i[r+20>>2],i[g+456>>2]=i[r+16>>2],i[g+460>>2]=a,a=i[r+28>>2],i[g+464>>2]=i[r+24>>2],i[g+468>>2]=a,a=i[r+36>>2],i[g+472>>2]=i[r+32>>2],i[g+476>>2]=a,a=i[r+4>>2],i[g+440>>2]=i[r>>2],i[g+444>>2]=a,KA(t,a=g+360|0),b(a,t,c),b(e=g+400|0,B,_),b(E=g+440|0,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),a=0;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),t=a>>>0<62,a=a+2|0,t;);s=g+480|0}function kA(A,I){A|=0;var g,C,B,Q,i,o=0,E=0,a=0,_=0,c=0,t=0;for(s=g=s-736|0,n(c=g+704|0,I|=0,I),n(E=g+224|0,I,c),n(_=g+672|0,I,E),n(a=g+640|0,_,_),n(C=g+416|0,c,a),n(c=g+320|0,I,C),n(o=g+608|0,a,a),n(a=g+288|0,c,c),n(t=g+576|0,C,a),n(i=g+448|0,o,a),n(B=g+544|0,t,t),n(t=g+384|0,o,B),n(Q=g+352|0,E,t),n(E=g+192|0,o,Q),n(o=g+160|0,_,E),n(g+96|0,_,o),n(E=g+512|0,B,Q),n(o=g+480|0,_,E),n(E=g+256|0,i,o),n(g+128|0,a,E),n(a=g- -64|0,t,o),n(o=g+32|0,_,a),n(g,C,o),n(A,c,g),_=0;n(A,A,A),126!=(0|(_=_+1|0)););return n(A,A,g+352|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+704|0),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+160|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+256|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g- -64|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+96|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+320|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+512|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+192|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+480|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+128|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+32|0),s=g+736|0,0-GI(I,32)|0}function FA(A,I,g){A|=0;var B,Q,i,E,a=0,_=0,c=0,t=0,r=0;return s=i=s-160|0,FI(I|=0,g|=0,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(i,I),tg(A,i),_=o[(Q=g)+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,c=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,t=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,r=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,g=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,E=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,B=I,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,C[B+24|0]=I,C[B+25|0]=I>>>8,C[B+26|0]=I>>>16,C[B+27|0]=I>>>24,C[B+28|0]=E,C[B+29|0]=E>>>8,C[B+30|0]=E>>>16,C[B+31|0]=E>>>24,C[B+16|0]=c,C[B+17|0]=c>>>8,C[B+18|0]=c>>>16,C[B+19|0]=c>>>24,C[B+20|0]=t,C[B+21|0]=t>>>8,C[B+22|0]=t>>>16,C[B+23|0]=t>>>24,C[B+8|0]=_,C[B+9|0]=_>>>8,C[B+10|0]=_>>>16,C[B+11|0]=_>>>24,C[B+12|0]=a,C[B+13|0]=a>>>8,C[B+14|0]=a>>>16,C[B+15|0]=a>>>24,C[0|B]=r,C[B+1|0]=r>>>8,C[B+2|0]=r>>>16,C[B+3|0]=r>>>24,C[B+4|0]=g,C[B+5|0]=g>>>8,C[B+6|0]=g>>>16,C[B+7|0]=g>>>24,c=o[(a=A)+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,t=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,r=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,g=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,I=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,A=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,_=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,a=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,C[B+56|0]=a,C[B+57|0]=a>>>8,C[B+58|0]=a>>>16,C[B+59|0]=a>>>24,C[B+60|0]=_,C[B+61|0]=_>>>8,C[B+62|0]=_>>>16,C[B+63|0]=_>>>24,C[B+48|0]=r,C[B+49|0]=r>>>8,C[B+50|0]=r>>>16,C[B+51|0]=r>>>24,C[B+52|0]=g,C[B+53|0]=g>>>8,C[B+54|0]=g>>>16,C[B+55|0]=g>>>24,C[B+40|0]=c,C[B+41|0]=c>>>8,C[B+42|0]=c>>>16,C[B+43|0]=c>>>24,C[B+44|0]=t,C[B+45|0]=t>>>8,C[B+46|0]=t>>>16,C[B+47|0]=t>>>24,C[B+32|0]=I,C[B+33|0]=I>>>8,C[B+34|0]=I>>>16,C[B+35|0]=I>>>24,C[B+36|0]=A,C[B+37|0]=A>>>8,C[B+38|0]=A>>>16,C[B+39|0]=A>>>24,s=i+160|0,0}function SA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-704|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+76>>2])|0,_=(r=i[A+72>>2])+(t=g<<3)|0,i[A+72>>2]=_,E=_>>>0>>0?E+1|0:E,i[A+76>>2]=E,c=i[A+68>>2],E=(E=_=(0|E)==(0|a)&_>>>0>>0|E>>>0>>0)>>>0>(_=_+i[A+64>>2]|0)>>>0?c+1|0:c,_=(t=B>>>29|0)+_|0,i[A+64>>2]=_,i[A+68>>2]=_>>>0>>0?E+1|0:E,_=A+80|0,(0|B)==(0|(c=f=0-((E=0)+((t=127&((7&a)<<29|r>>>3))>>>0>128)|0)|0))&g>>>0>=(r=128-t|0)>>>0|B>>>0>c>>>0){if(a=0,c=0,!E&(127^t)>>>0>=3|E)for(p=252&r;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(t+(E=1|a)|0)|0]=o[I+E|0],C[_+(t+(E=2|a)|0)|0]=o[I+E|0],C[_+(t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&r))for(;C[(E=a+t|0)+_|0]=o[I+a|0],E=c,c=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(k(A,_,Q,a=Q+640|0),I=I+r|0,!(B=B-((g>>>0>>0)+f|0)|0)&(g=g-r|0)>>>0>127|B)for(;k(A,I,Q,a),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,c=0,!B&g>>>0>=4|B)for(e=124&g,r=0,g=0,B=0;C[a+_|0]=o[I+a|0],C[(E=1|a)+_|0]=o[I+E|0],C[(E=2|a)+_|0]=o[I+E|0],C[(E=3|a)+_|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|r)!=(0|E););if(A|h)for(;C[a+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,704)}else{if(a=0,c=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(r=t+(E=1|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=2|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+t|0)+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+704|0,0}function NA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],y=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,e=i[A>>2],i[A>>2]=g&(e^i[I>>2])^e,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^y),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(y=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],e=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[y>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^e),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],y=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],e=i[A+116>>2],i[A+116>>2]=g&(e^i[I+116>>2])^e,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^y),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k),B=i[A+124>>2],s=i[I+124>>2],Q=i[A+128>>2],h=i[I+128>>2],o=i[A+132>>2],D=i[I+132>>2],E=i[A+136>>2],f=i[I+136>>2],a=i[A+140>>2],p=i[I+140>>2],_=i[A+144>>2],y=i[I+144>>2],c=i[A+148>>2],w=i[I+148>>2],t=i[A+152>>2],n=i[I+152>>2],r=i[A+120>>2],k=i[I+120>>2],e=i[I+156>>2],I=i[A+156>>2],i[A+156>>2]=g&(e^I)^I,i[A+152>>2]=t^g&(t^n),i[A+148>>2]=c^g&(c^w),i[A+144>>2]=_^g&(_^y),i[A+140>>2]=a^g&(a^p),i[A+136>>2]=E^g&(E^f),i[A+132>>2]=o^g&(o^D),i[A+128>>2]=Q^g&(Q^h),i[A+124>>2]=B^g&(B^s),i[A+120>>2]=r^g&(r^k)}function GA(A,I,g){var B,Q,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0;return s=B=s-320|0,R(o=B+240|0,g),b(o,o,g),R(A,o),b(A,A,g),b(A,A,I),PA(A,A),b(A,A,o),b(A,A,I),R(o=B+192|0,A),b(o,o,g),E=i[I+4>>2],h=i[I+8>>2],f=i[I+12>>2],p=i[I+16>>2],w=i[I+20>>2],n=i[I+24>>2],k=i[I+28>>2],F=i[I+32>>2],S=i[I>>2],g=i[B+192>>2],o=i[B+196>>2],a=i[B+200>>2],_=i[B+204>>2],c=i[B+208>>2],t=i[B+212>>2],r=i[B+216>>2],e=i[B+220>>2],y=i[B+224>>2],D=i[B+228>>2],N=i[I+36>>2],i[B+180>>2]=D-N,i[B+176>>2]=y-F,i[B+172>>2]=e-k,i[B+168>>2]=r-n,i[B+164>>2]=t-w,i[B+160>>2]=c-p,i[B+156>>2]=_-f,i[B+152>>2]=a-h,i[B+148>>2]=o-E,i[B+144>>2]=g-S,i[B+132>>2]=D+N,i[B+128>>2]=y+F,i[B+124>>2]=e+k,i[B+120>>2]=r+n,i[B+116>>2]=t+w,i[B+112>>2]=c+p,i[B+108>>2]=_+f,i[B+104>>2]=a+h,i[B+100>>2]=o+E,i[B+96>>2]=g+S,b(E=B+48|0,I,1632),i[B+84>>2]=D+i[B+84>>2],i[B+80>>2]=y+i[B+80>>2],i[B+76>>2]=e+i[B+76>>2],i[B+72>>2]=r+i[B+72>>2],i[B+68>>2]=t+i[B+68>>2],i[B+64>>2]=c+i[B+64>>2],i[B+60>>2]=_+i[B+60>>2],i[B+56>>2]=a+i[B+56>>2],i[B+52>>2]=o+i[B+52>>2],i[B+48>>2]=g+i[B+48>>2],QI(B,B+144|0),f=GI(B,32),QI(B,B+96|0),h=GI(B,32),QI(B,E),I=GI(B,32),b(B,A,1632),y=i[A+4>>2],e=i[A+8>>2],r=i[A+12>>2],t=i[A+16>>2],c=i[A+20>>2],_=i[A+24>>2],a=i[A+28>>2],o=i[A+32>>2],E=i[A>>2],p=i[B>>2],w=i[B+4>>2],n=i[B+8>>2],k=i[B+12>>2],F=i[B+16>>2],S=i[B+20>>2],D=i[B+24>>2],N=i[B+28>>2],Q=i[B+32>>2],g=(I=0-(I|h)|0)&((g=i[A+36>>2])^i[B+36>>2])^g,i[A+36>>2]=g,o^=I&(o^Q),i[A+32>>2]=o,a^=I&(a^N),i[A+28>>2]=a,_^=I&(_^D),i[A+24>>2]=_,c^=I&(c^S),i[A+20>>2]=c,t^=I&(t^F),i[A+16>>2]=t,r^=I&(r^k),i[A+12>>2]=r,e^=I&(e^n),i[A+8>>2]=e,y^=I&(y^w),i[A+4>>2]=y,E^=I&(E^p),i[A>>2]=E,QI(B+288|0,A),I=0-(1&C[B+288|0])|0,i[A+36>>2]=g^I&(g^0-g),i[A+32>>2]=o^I&(o^0-o),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=E^I&(E^0-E),s=B+320|0,h|f}function MA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;return s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(a=g+240|0,B),b(_=g+192|0,a,1584),i[g+192>>2]=i[g+192>>2]+1,c=i[g+240>>2]-1|0,i[g+240>>2]=c,t=i[g+244>>2],r=i[g+248>>2],e=i[g+252>>2],y=i[g+256>>2],h=i[g+260>>2],D=i[g+264>>2],f=i[g+268>>2],p=i[g+272>>2],w=i[g+276>>2],b(A,a,_),PA(A,A),b(A,a,A),R(a=g+144|0,A),b(a,a,_),a=i[g+180>>2],i[g+132>>2]=a-w,_=i[g+176>>2],i[g+128>>2]=_-p,n=i[g+172>>2],i[g+124>>2]=n-f,k=i[g+168>>2],i[g+120>>2]=k-D,F=i[g+164>>2],i[g+116>>2]=F-h,S=i[g+160>>2],i[g+112>>2]=S-y,N=i[g+156>>2],i[g+108>>2]=N-e,G=i[g+152>>2],i[g+104>>2]=G-r,M=i[g+148>>2],i[g+100>>2]=M-t,K=i[g+144>>2],i[g+96>>2]=K-c,i[g+84>>2]=a+w,i[g+80>>2]=_+p,i[g+76>>2]=f+n,i[g+72>>2]=D+k,i[g+68>>2]=h+F,i[g+64>>2]=y+S,i[g+60>>2]=e+N,i[g+56>>2]=r+G,i[g+52>>2]=t+M,i[g+48>>2]=c+K,QI(g,g+96|0),p=GI(g,32),QI(g,g+48|0),n=GI(g,32),b(g,A,1632),f=i[A+4>>2],D=i[A+8>>2],h=i[A+12>>2],y=i[A+16>>2],e=i[A+20>>2],r=i[A+24>>2],t=i[A+28>>2],c=i[A+32>>2],w=i[A>>2],k=i[g>>2],F=i[g+4>>2],S=i[g+8>>2],N=i[g+12>>2],G=i[g+16>>2],M=i[g+20>>2],K=i[g+24>>2],Q=i[g+28>>2],E=i[g+32>>2],_=(a=p-1|0)&((_=i[A+36>>2])^i[g+36>>2])^_,i[A+36>>2]=_,c^=a&(c^E),i[A+32>>2]=c,t^=a&(t^Q),i[A+28>>2]=t,r^=a&(r^K),i[A+24>>2]=r,e^=a&(e^M),i[A+20>>2]=e,y^=a&(y^G),i[A+16>>2]=y,h^=a&(h^N),i[A+12>>2]=h,D^=a&(D^S),i[A+8>>2]=D,f^=a&(f^F),i[A+4>>2]=f,a=w^a&(w^k),i[A>>2]=a,QI(g+288|0,A),I=0-(1&C[g+288|0]^o[I+31|0]>>>7^o[38144]>>>2)|0,i[A+36>>2]=_^I&(_^0-_),i[A+32>>2]=c^I&(c^0-c),i[A+28>>2]=t^I&(t^0-t),i[A+24>>2]=r^I&(r^0-r),i[A+20>>2]=e^I&(e^0-e),i[A+16>>2]=y^I&(y^0-y),i[A+12>>2]=h^I&(h^0-h),i[A+8>>2]=D^I&(D^0-D),i[A+4>>2]=f^I&(f^0-f),i[A>>2]=a^I&(a^0-a),b(A+120|0,A,B),s=g+320|0,(p|n)-1|0}function KA(A,I){var g,C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;s=g=s-48|0,R(A,I),R(A+80|0,I+40|0),v(A+120|0,I+80|0),h=i[I+44>>2],D=i[I+4>>2],n=i[I+48>>2],f=i[I+8>>2],k=i[I+52>>2],p=i[I+12>>2],F=i[I+56>>2],w=i[I+16>>2],K=i[I+60>>2],S=i[I+20>>2],U=i[I- -64>>2],N=i[I+24>>2],b=i[I+68>>2],G=i[I+28>>2],H=i[I+72>>2],Y=i[I+32>>2],J=i[I+40>>2],M=i[I>>2],i[A+76>>2]=i[I+76>>2]+i[I+36>>2],i[A+72>>2]=H+Y,i[A+68>>2]=b+G,i[(C=A- -64|0)>>2]=U+N,i[A+60>>2]=K+S,i[A+56>>2]=F+w,i[A+52>>2]=k+p,i[A+48>>2]=n+f,i[A+44>>2]=h+D,i[A+40>>2]=J+M,R(g,A+40|0),I=i[A+4>>2],h=i[A+84>>2],D=i[A+8>>2],n=i[A+88>>2],f=i[A+12>>2],k=i[A+92>>2],p=i[A+16>>2],F=i[A+96>>2],w=i[A+20>>2],K=i[A+100>>2],S=i[A+24>>2],U=i[A+104>>2],N=i[A+28>>2],b=i[A+108>>2],G=i[A+32>>2],H=i[A+112>>2],Y=i[A>>2],J=i[A+80>>2],Q=(M=i[A+116>>2])-(B=i[A+36>>2])|0,i[A+116>>2]=Q,o=H-G|0,i[A+112>>2]=o,E=b-N|0,i[A+108>>2]=E,a=U-S|0,i[A+104>>2]=a,_=K-w|0,i[A+100>>2]=_,c=F-p|0,i[A+96>>2]=c,t=k-f|0,i[A+92>>2]=t,r=n-D|0,i[A+88>>2]=r,e=h-I|0,i[A+84>>2]=e,y=J-Y|0,i[A+80>>2]=y,M=M+B|0,i[A+76>>2]=M,G=G+H|0,i[A+72>>2]=G,N=N+b|0,i[A+68>>2]=N,S=S+U|0,i[C>>2]=S,w=w+K|0,i[A+60>>2]=w,p=p+F|0,i[A+56>>2]=p,f=f+k|0,i[A+52>>2]=f,D=D+n|0,i[A+48>>2]=D,I=I+h|0,i[A+44>>2]=I,h=Y+J|0,i[A+40>>2]=h,n=i[g>>2],k=i[g+4>>2],F=i[g+8>>2],K=i[g+12>>2],U=i[g+16>>2],b=i[g+20>>2],H=i[g+24>>2],Y=i[g+28>>2],J=i[g+32>>2],i[A+36>>2]=i[g+36>>2]-M,i[A+32>>2]=J-G,i[A+28>>2]=Y-N,i[A+24>>2]=H-S,i[A+20>>2]=b-w,i[A+16>>2]=U-p,i[A+12>>2]=K-f,i[A+8>>2]=F-D,i[A+4>>2]=k-I,i[A>>2]=n-h,I=i[A+124>>2],h=i[A+128>>2],D=i[A+132>>2],n=i[A+136>>2],f=i[A+140>>2],k=i[A+144>>2],p=i[A+148>>2],F=i[A+152>>2],w=i[A+120>>2],i[A+156>>2]=i[A+156>>2]-Q,i[A+152>>2]=F-o,i[A+148>>2]=p-E,i[A+144>>2]=k-a,i[A+140>>2]=f-_,i[A+136>>2]=n-c,i[A+132>>2]=D-t,i[A+128>>2]=h-r,i[A+124>>2]=I-e,i[A+120>>2]=w-y,s=g+48|0}function UA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-288|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+36>>2])|0,_=(t=i[A+32>>2])+(r=g<<3)|0,i[A+32>>2]=_,i[A+36>>2]=_>>>0>>0?E+1|0:E,c=A+40|0,(0|B)==(0|(_=f=0-((E=0)+((r=63&((7&a)<<29|t>>>3))>>>0>64)|0)|0))&g>>>0>=(t=64-r|0)>>>0|B>>>0>_>>>0){if(a=0,_=0,!E&(63^r)>>>0>=3|E)for(p=124&t;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(r+(E=1|a)|0)|0]=o[I+E|0],C[c+(r+(E=2|a)|0)|0]=o[I+E|0],C[c+(r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&t))for(;C[(E=a+r|0)+c|0]=o[I+a|0],E=_,_=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(J(A,c,Q,a=Q+256|0),I=I+t|0,!(B=B-((g>>>0>>0)+f|0)|0)&(g=g-t|0)>>>0>63|B)for(;J(A,I,Q,a),I=I- -64|0,E=B-1|0,!(B=(g=g+-64|0)>>>0<4294967232?E+1|0:E)&g>>>0>63|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,_=0,!B&g>>>0>=4|B)for(e=60&g,t=0,g=0,B=0;C[a+c|0]=o[I+a|0],C[(E=1|a)+c|0]=o[I+E|0],C[(E=2|a)+c|0]=o[I+E|0],C[(E=3|a)+c|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|t)!=(0|E););if(A|h)for(;C[a+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,288)}else{if(a=0,_=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(t=r+(E=1|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=2|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+r|0)+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+288|0,0}function bA(A,I,g,C,B,Q){var o=0;i[Q>>2]=8;A:{I:{o=A,o=(A=!I&A>>>0<=32768)?32768:o;g:{C:{if(!(A=A?0:I)&g>>>5>>>0<=o>>>0|A){if(g>>>0>=4096)break C;I=1;break g}if(i[B>>2]=1,A=1,(I=(o>>>0)/(i[Q>>2]<<2>>>0)|0)>>>0<4)break A;if(A=2,I>>>0<8)break A;if(I>>>0<16)return void(i[C>>2]=3);if(I>>>0<32)return void(i[C>>2]=4);if(I>>>0<64)return void(i[C>>2]=5);if(I>>>0<128)return void(i[C>>2]=6);if(I>>>0<256)return void(i[C>>2]=7);if(I>>>0<512)return void(i[C>>2]=8);if(I>>>0<1024)return void(i[C>>2]=9);if(I>>>0<2048)return void(i[C>>2]=10);if(I>>>0<4096)return void(i[C>>2]=11);if(I>>>0<8192)return void(i[C>>2]=12);if(I>>>0<16384)return void(i[C>>2]=13);if(I>>>0<32768)return void(i[C>>2]=14);if(I>>>0<65536)return void(i[C>>2]=15);if(I>>>0<131072)return void(i[C>>2]=16);if(I>>>0<262144)return void(i[C>>2]=17);if(I>>>0<524288)return void(i[C>>2]=18);if(I>>>0<1048576)return void(i[C>>2]=19);if(I>>>0<2097152)return void(i[C>>2]=20);if(I>>>0<4194304)return void(i[C>>2]=21);if(I>>>0<8388608)return void(i[C>>2]=22);if(I>>>0<16777216)return void(i[C>>2]=23);if(I>>>0>=33554432)break I;return void(i[C>>2]=24)}I=2,g>>>0<8192||(I=3,g>>>0<16384||(I=4,g>>>0<32768||(I=5,g>>>0<65536||(I=6,g>>>0<131072||(I=7,g>>>0<262144||(I=8,g>>>0<524288||(I=9,g>>>0<1048576||(I=10,g>>>0<2097152||(I=11,g>>>0<4194304||(I=12,g>>>0<8388608||(I=13,g>>>0<16777216||(I=14,g>>>0<33554432||(I=15,g>>>0<67108864||(I=16,g>>>0<134217728||(I=17,g>>>0<268435456||(I=18,g>>>0<536870912||(I=19,g>>>0<1073741824||(I=(0|g)>=0?20:21))))))))))))))))))}return g=I,i[C>>2]=g,A=(I=A)>>>2|0,I=(3&I)<<30|o>>>2,C=31&g,(63&g)>>>0>=32?(g=0,A=A>>>C|0):(g=A>>>C|0,A=((1<>>C),void(i[B>>2]=((!g&A>>>0>=1073741823|g?1073741823:A)>>>0)/E[Q>>2])}A=I>>>0<67108864?25:26}i[C>>2]=A}function HA(A,I,g){var C,B,Q,o,E,a,_,c,t=0;s=C=s-160|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),NA(A,I,(255&(1^(t=g-((g>>31&g)<<1)|0)))-1>>>31|0),NA(A,I+160|0,(255&(2^t))-1>>>31|0),NA(A,I+320|0,(255&(3^t))-1>>>31|0),NA(A,I+480|0,(255&(4^t))-1>>>31|0),NA(A,I+640|0,(255&(5^t))-1>>>31|0),NA(A,I+800|0,(255&(6^t))-1>>>31|0),NA(A,I+960|0,(255&(7^t))-1>>>31|0),NA(A,I+1120|0,(255&(8^t))-1>>>31|0),I=i[A+76>>2],i[C+32>>2]=i[A+72>>2],i[C+36>>2]=I,t=i[4+(I=A- -64|0)>>2],i[C+24>>2]=i[I>>2],i[C+28>>2]=t,I=i[A+60>>2],i[C+16>>2]=i[A+56>>2],i[C+20>>2]=I,I=i[A+52>>2],i[C+8>>2]=i[A+48>>2],i[C+12>>2]=I,I=i[A+44>>2],i[C>>2]=i[A+40>>2],i[C+4>>2]=I,I=i[A+36>>2],i[C+72>>2]=i[A+32>>2],i[C+76>>2]=I,t=i[A+28>>2],i[(I=C- -64|0)>>2]=i[A+24>>2],i[I+4>>2]=t,I=i[A+20>>2],i[C+56>>2]=i[A+16>>2],i[C+60>>2]=I,I=i[A+12>>2],i[C+48>>2]=i[A+8>>2],i[C+52>>2]=I,I=i[A+4>>2],i[C+40>>2]=i[A>>2],i[C+44>>2]=I,I=i[A+92>>2],i[C+88>>2]=i[A+88>>2],i[C+92>>2]=I,I=i[A+100>>2],i[C+96>>2]=i[A+96>>2],i[C+100>>2]=I,I=i[A+108>>2],i[C+104>>2]=i[A+104>>2],i[C+108>>2]=I,I=i[A+116>>2],i[C+112>>2]=i[A+112>>2],i[C+116>>2]=I,I=i[A+84>>2],i[C+80>>2]=i[A+80>>2],i[C+84>>2]=I,I=i[A+124>>2],t=i[A+128>>2],B=i[A+132>>2],Q=i[A+136>>2],o=i[A+140>>2],E=i[A+144>>2],a=i[A+148>>2],_=i[A+152>>2],c=i[A+120>>2],i[C+156>>2]=0-i[A+156>>2],i[C+152>>2]=0-_,i[C+148>>2]=0-a,i[C+144>>2]=0-E,i[C+140>>2]=0-o,i[C+136>>2]=0-Q,i[C+132>>2]=0-B,i[C+128>>2]=0-t,i[C+124>>2]=0-I,i[C+120>>2]=0-c,NA(A,C,(128&g)>>>7|0),s=C+160|0}function YA(A,I){A|=0,I|=0;var g,B,Q,E,a,_=0,c=0,t=0;return s=c=s-192|0,ag(c,32),FI(I,c,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(t=c+32|0,I),tg(A,t),g=c,t=i[c+28>>2],c=i[c+24>>2],C[I+24|0]=c,C[I+25|0]=c>>>8,C[I+26|0]=c>>>16,C[I+27|0]=c>>>24,C[I+28|0]=t,C[I+29|0]=t>>>8,C[I+30|0]=t>>>16,C[I+31|0]=t>>>24,t=i[g+20>>2],c=i[g+16>>2],C[I+16|0]=c,C[I+17|0]=c>>>8,C[I+18|0]=c>>>16,C[I+19|0]=c>>>24,C[I+20|0]=t,C[I+21|0]=t>>>8,C[I+22|0]=t>>>16,C[I+23|0]=t>>>24,t=i[g+12>>2],c=i[g+8>>2],C[I+8|0]=c,C[I+9|0]=c>>>8,C[I+10|0]=c>>>16,C[I+11|0]=c>>>24,C[I+12|0]=t,C[I+13|0]=t>>>8,C[I+14|0]=t>>>16,C[I+15|0]=t>>>24,t=i[g+4>>2],c=i[g>>2],C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,C[I+4|0]=t,C[I+5|0]=t>>>8,C[I+6|0]=t>>>16,C[I+7|0]=t>>>24,B=o[(_=A)+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,Q=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,E=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,c=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,A=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[I+56|0]=_,C[I+57|0]=_>>>8,C[I+58|0]=_>>>16,C[I+59|0]=_>>>24,C[I+60|0]=a,C[I+61|0]=a>>>8,C[I+62|0]=a>>>16,C[I+63|0]=a>>>24,C[I+48|0]=E,C[I+49|0]=E>>>8,C[I+50|0]=E>>>16,C[I+51|0]=E>>>24,C[I+52|0]=t,C[I+53|0]=t>>>8,C[I+54|0]=t>>>16,C[I+55|0]=t>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,C[I+32|0]=c,C[I+33|0]=c>>>8,C[I+34|0]=c>>>16,C[I+35|0]=c>>>24,C[I+36|0]=A,C[I+37|0]=A>>>8,C[I+38|0]=A>>>16,C[I+39|0]=A>>>24,XC(g,32),s=g+192|0,0}function JA(A,I){I|=0;var g,B,Q=0,o=0,E=0,a=0;return s=g=s-288|0,o=40+((Q=i[32+(A|=0)>>2]>>>3&63)+A|0)|0,Q>>>0>=56?(Ng(o,35520,64-Q|0),J(A,A+40|0,g,g+256|0),i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[(Q=A- -64|0)>>2]=0,i[Q+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0):Ng(o,35520,56-Q|0),E=(Q=16711680&(o=i[A+32>>2]))>>>8|0,a=Q<<24,B=(Q=-16777216&o)>>>24|0,Q=(a|=Q<<8)|-16777216&((255&(Q=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&Q)<<8|o>>>24)|Q>>>8&65280|Q>>>24,C[A+96|0]=Q,C[A+97|0]=Q>>>8,C[A+98|0]=Q>>>16,C[A+99|0]=Q>>>24,Q=E|B|o<<24|(65280&o)<<8,Q|=E=0,C[A+100|0]=Q,C[A+101|0]=Q>>>8,C[A+102|0]=Q>>>16,C[A+103|0]=Q>>>24,J(A,A+40|0,g,g+256|0),Q=(Q=i[A>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,Q=(Q=i[A+4>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,Q=(Q=i[A+8>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,Q=(Q=i[A+12>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,Q=(Q=i[A+16>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,Q=(Q=i[A+20>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,Q=(Q=i[A+24>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,Q=(Q=i[A+28>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,XC(g,288),XC(A,104),s=g+288|0,0}function dA(A,I){A|=0;var g,B=0;s=g=s+-64|0,B=o[60+(I|=0)|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+56>>2]=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+60>>2]=B,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+48>>2]=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+52>>2]=B,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+40>>2]=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+44>>2]=B,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+32>>2]=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+36>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,S(g),I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=g- -64|0}function mA(A,I,g){A|=0,I|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0;if(s=B=s-96|0,(g|=0)>>>0>=65&&($I(A),UA(A,I,g,0),JA(A,B),g=32,I=B),$I(A),i[B+88>>2]=909522486,i[B+92>>2]=909522486,i[B+80>>2]=909522486,i[B+84>>2]=909522486,i[B+72>>2]=909522486,i[B+76>>2]=909522486,i[(a=r=B- -64|0)>>2]=909522486,i[a+4>>2]=909522486,i[B+56>>2]=909522486,i[B+60>>2]=909522486,i[B+48>>2]=909522486,i[B+52>>2]=909522486,i[B+40>>2]=909522486,i[B+44>>2]=909522486,i[B+32>>2]=909522486,i[B+36>>2]=909522486,g){if(g>>>0>=4)for(_=124&g;C[0|(E=(a=B+32|0)+Q|0)]=o[0|E]^o[I+Q|0],C[0|(e=(E=1|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(e=(E=2|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(E=(E=a)+(a=3|Q)|0)]=o[0|E]^o[I+a|0],Q=Q+4|0,(0|_)!=(0|(c=c+4|0)););if(c=3&g)for(;C[0|(a=(B+32|0)+Q|0)]=o[0|a]^o[I+Q|0],Q=Q+1|0,(0|c)!=(0|(t=t+1|0)););}if(UA(A,B+32|0,64,0),$I(a=A+104|0),i[B+88>>2]=1549556828,i[B+92>>2]=1549556828,i[B+80>>2]=1549556828,i[B+84>>2]=1549556828,i[B+72>>2]=1549556828,i[B+76>>2]=1549556828,i[r>>2]=1549556828,i[r+4>>2]=1549556828,i[B+56>>2]=1549556828,i[B+60>>2]=1549556828,i[B+48>>2]=1549556828,i[B+52>>2]=1549556828,i[B+40>>2]=1549556828,i[B+44>>2]=1549556828,i[B+32>>2]=1549556828,i[B+36>>2]=1549556828,g){if(t=0,Q=0,g>>>0>=4)for(r=124&g,c=0;C[0|(_=(A=B+32|0)+Q|0)]=o[0|_]^o[I+Q|0],C[0|(E=(_=1|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(E=(_=2|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(_=(E=A)+(A=3|Q)|0)]=o[0|_]^o[A+I|0],Q=Q+4|0,(0|r)!=(0|(c=c+4|0)););if(A=3&g)for(;C[0|(g=(B+32|0)+Q|0)]=o[0|g]^o[I+Q|0],Q=Q+1|0,(0|A)!=(0|(t=t+1|0)););}return UA(a,A=B+32|0,64,0),XC(A,64),XC(B,32),s=B+96|0,0}function lA(A,I,g,C,B,o,E){var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(I-65>>>0<4294967232|E>>>0>64)A=-1;else{e=a=s,s=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((_=255&I)-65&255)>>>0<=191|!(!(I=255&E)||o)|I>>>0>=65)){if(I){if(!o)break I;bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^(I<<8|_),i[a+4>>2]=I>>>24^1779033703,bg((E=a+384|0)+I|0,0,128-I|0),Ng(E,o,I),Ng(a+96|0,E,128),i[a+352>>2]=128,XC(E,128),I=128}else bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^_,i[a+4>>2]=1779033703,I=0;g:if(C|B)for(y=a+224|0,c=a+96|0;;){if(E=I+c|0,!B&C>>>0<=(o=256-I|0)>>>0){Ng(E,g,C),i[a+352>>2]=C+i[a+352>>2];break g}if(Ng(E,g,o),i[a+352>>2]=o+i[a+352>>2],t=I=i[a+68>>2],I=(r=(E=i[a+64>>2])+128|0)>>>0<128?I+1|0:I,i[a+64>>2]=r,i[a+68>>2]=I,I=i[a+76>>2],I=(t=E=-1==(0|t)&E>>>0>4294967167)>>>0>(E=E+i[a+72>>2]|0)>>>0?I+1|0:I,i[a+72>>2]=E,i[a+76>>2]=I,p(a,c),Ng(c,y,128),I=i[a+352>>2]-128|0,i[a+352>>2]=I,g=g+o|0,!((B=B-(C>>>0>>0)|0)|(C=C-o|0)))break}AA(a,A,_),s=e;break A}rC(),Q()}A=0}return A}function uA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,C[g+64|0]=1,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function xA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function vA(A,I,g,B){var Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{if((E=i[A+56>>2])|(Q=i[A+60>>2])){if(e=_=16-E|0,t=(_=(0|(a=0-((E>>>0>16)+Q|0)|0))==(0|B)&g>>>0>_>>>0|B>>>0>a>>>0)?e:g,e=_=_?a:B,_|t){if(_=A- -64|0,a=0,E=0,!e&t>>>0>=4|e)for(r=-4&t;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(y=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=E,E=(a=a+4|0)>>>0<4?Q+1|0:Q,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|c)!=(0|r)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&t))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=i[A+56>>2],Q=i[A+60>>2]}if(Q=Q+e|0,Q=(E=E+t|0)>>>0>>0?Q+1|0:Q,i[A+56>>2]=E,i[A+60>>2]=Q,!Q&E>>>0<16)break A;rA(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(E=g)-t|0,B=B-((E>>>0>>0)+e|0)|0,I=I+t|0}if(!B&g>>>0>=16|B&&(rA(A,I,E=-16&g,B),g&=15,B=0,I=I+E|0),g|B){if(_=A- -64|0,s=0,D=0,a=0,E=0,!B&g>>>0>=4|B)for(t=12&g,e=0,c=0;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(r=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],E=(a=a+4|0)>>>0<4?E+1|0:E,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|t)!=(0|c)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&g))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=B+i[A+60>>2]|0,E=(I=g+i[A+56>>2]|0)>>>0>>0?E+1|0:E,i[A+56>>2]=I,i[A+60>>2]=E}}}function RA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],e=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,y=i[A>>2],i[A>>2]=g&(y^i[I>>2])^y,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^e),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(e=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],y=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[e>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^y),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],e=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],y=i[I+116>>2],I=i[A+116>>2],i[A+116>>2]=g&(y^I)^I,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^e),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k)}function LA(A,I){var g,C,B=0;for(s=g=s-192|0,R(C=g+144|0,I),R(B=g+96|0,C),R(B,B),b(B,I,B),b(C,C,B),R(I=g+48|0,C),b(B,B,I),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(I,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),I=1;R(g,g),100!=(0|(I=I+1|0)););b(I=g+48|0,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B=g+96|0,I,B),R(B,B),R(B,B),R(B,B),R(B,B),R(B,B),b(A,B,g+144|0),s=g+192|0}function PA(A,I){var g,C=0,B=0;for(s=g=s-144|0,R(B=g+96|0,I),R(C=g+48|0,B),R(C,C),b(C,I,C),b(B,B,C),R(B,B),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(C,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),C=1;R(g,g),100!=(0|(C=C+1|0)););b(C=g+48|0,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B=g+96|0,C,B),R(B,B),R(B,B),b(A,B,I),s=g+144|0}function qA(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S=0,N=0,G=0,M=0;s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(G=g+240|0,B),b(N=g+192|0,G,1584),M=-1,Q=i[g+240>>2]-1|0,i[g+240>>2]=Q,i[g+192>>2]=i[g+192>>2]+1,E=i[g+244>>2],a=i[g+248>>2],_=i[g+252>>2],c=i[g+256>>2],t=i[g+260>>2],r=i[g+264>>2],e=i[g+268>>2],y=i[g+272>>2],h=i[g+276>>2],R(S=g+144|0,N),b(S,S,N),R(A,S),b(A,A,N),b(A,A,G),PA(A,A),b(A,A,S),b(A,A,G),R(S=g+96|0,A),b(S,S,N),N=i[g+132>>2],i[g+84>>2]=N-h,S=i[g+128>>2],i[g+80>>2]=S-y,G=i[g+124>>2],i[g+76>>2]=G-e,D=i[g+120>>2],i[g+72>>2]=D-r,f=i[g+116>>2],i[g+68>>2]=f-t,p=i[g+112>>2],i[g+64>>2]=p-c,w=i[g+108>>2],i[g+60>>2]=w-_,n=i[g+104>>2],i[g+56>>2]=n-a,k=i[g+100>>2],i[g+52>>2]=k-E,F=i[g+96>>2],i[g+48>>2]=F-Q,QI(g,g+48|0);A:{if(!GI(g,32)){if(i[g+36>>2]=N+h,i[g+32>>2]=S+y,i[g+28>>2]=G+e,i[g+24>>2]=r+D,i[g+20>>2]=t+f,i[g+16>>2]=c+p,i[g+12>>2]=_+w,i[g+8>>2]=a+n,i[g+4>>2]=E+k,i[g>>2]=Q+F,QI(N=g+288|0,g),!GI(N,32))break A;b(A,A,1632)}QI(g+288|0,A),(1&C[g+288|0])==(o[I+31|0]>>>7|0)&&(i[A>>2]=0-i[A>>2],i[A+36>>2]=0-i[A+36>>2],i[A+32>>2]=0-i[A+32>>2],i[A+28>>2]=0-i[A+28>>2],i[A+24>>2]=0-i[A+24>>2],i[A+20>>2]=0-i[A+20>>2],i[A+16>>2]=0-i[A+16>>2],i[A+12>>2]=0-i[A+12>>2],i[A+8>>2]=0-i[A+8>>2],i[A+4>>2]=0-i[A+4>>2]),b(A+120|0,A,B),M=0}return s=g+320|0,M}function zA(A,I,g){var C,B,Q,o,E,_,c,t,r=0;s=C=s-128|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,bg(A+44|0,0,76),RA(A,I=a(I,960)+2992|0,(255&(1^(r=g-((g>>31&g)<<1)|0)))-1>>>31|0),RA(A,I+120|0,(255&(2^r))-1>>>31|0),RA(A,I+240|0,(255&(3^r))-1>>>31|0),RA(A,I+360|0,(255&(4^r))-1>>>31|0),RA(A,I+480|0,(255&(5^r))-1>>>31|0),RA(A,I+600|0,(255&(6^r))-1>>>31|0),RA(A,I+720|0,(255&(7^r))-1>>>31|0),RA(A,I+840|0,(255&(8^r))-1>>>31|0),I=i[A+76>>2],i[C+40>>2]=i[A+72>>2],i[C+44>>2]=I,r=i[4+(I=A- -64|0)>>2],i[C+32>>2]=i[I>>2],i[C+36>>2]=r,I=i[A+60>>2],i[C+24>>2]=i[A+56>>2],i[C+28>>2]=I,I=i[A+52>>2],i[C+16>>2]=i[A+48>>2],i[C+20>>2]=I,I=i[A+44>>2],i[C+8>>2]=i[A+40>>2],i[C+12>>2]=I,I=i[A+12>>2],i[C+56>>2]=i[A+8>>2],i[C+60>>2]=I,r=i[A+20>>2],i[(I=C- -64|0)>>2]=i[A+16>>2],i[I+4>>2]=r,I=i[A+28>>2],i[C+72>>2]=i[A+24>>2],i[C+76>>2]=I,I=i[A+36>>2],i[C+80>>2]=i[A+32>>2],i[C+84>>2]=I,I=i[A+4>>2],i[C+48>>2]=i[A>>2],i[C+52>>2]=I,I=i[A+84>>2],r=i[A+88>>2],B=i[A+92>>2],Q=i[A+96>>2],o=i[A+100>>2],E=i[A+104>>2],_=i[A+108>>2],c=i[A+112>>2],t=i[A+80>>2],i[C+124>>2]=0-i[A+116>>2],i[C+120>>2]=0-c,i[C+116>>2]=0-_,i[C+112>>2]=0-E,i[C+108>>2]=0-o,i[C+104>>2]=0-Q,i[C+100>>2]=0-B,i[C+96>>2]=0-r,i[C+92>>2]=0-I,i[C+88>>2]=0-t,RA(A,C+8|0,(128&g)>>>7|0),s=C+128|0}function jA(A){var I,g,C,B,Q,o,E,a,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;return s=I=s-320|0,R(c=I+240|0,A),R(t=I+192|0,A+40|0),R(_=I+144|0,A+80|0),A=i[I+240>>2],r=i[I+192>>2],e=i[I+244>>2],y=i[I+196>>2],h=i[I+248>>2],D=i[I+200>>2],f=i[I+252>>2],p=i[I+204>>2],w=i[I+256>>2],n=i[I+208>>2],k=i[I+260>>2],F=i[I+212>>2],S=i[I+264>>2],N=i[I+216>>2],G=i[I+268>>2],M=i[I+220>>2],K=i[I+272>>2],U=i[I+224>>2],i[I+84>>2]=i[I+228>>2]-i[I+276>>2],i[I+80>>2]=U-K,i[I+76>>2]=M-G,i[I+72>>2]=N-S,i[I+68>>2]=F-k,i[I+64>>2]=n-w,i[I+60>>2]=p-f,i[I+56>>2]=D-h,i[I+52>>2]=y-e,i[I+48>>2]=r-A,b(A=I+48|0,A,_),b(I,c,t),b(I,I,1584),R(I+96|0,_),_=i[I+48>>2],c=i[I+96>>2],t=i[I>>2],r=i[I+52>>2],e=i[I+100>>2],y=i[I+4>>2],h=i[I+56>>2],D=i[I+104>>2],f=i[I+8>>2],p=i[I+60>>2],w=i[I+108>>2],n=i[I+12>>2],k=i[I+64>>2],F=i[I+112>>2],S=i[I+16>>2],N=i[I+68>>2],G=i[I+116>>2],M=i[I+20>>2],K=i[I+72>>2],U=i[I+120>>2],g=i[I+24>>2],C=i[I+76>>2],B=i[I+124>>2],Q=i[I+28>>2],o=i[I+80>>2],E=i[I+128>>2],a=i[I+32>>2],i[I+84>>2]=i[I+84>>2]-(i[I+132>>2]+i[I+36>>2]|0),i[I+80>>2]=o-(E+a|0),i[I+76>>2]=C-(B+Q|0),i[I+72>>2]=K-(U+g|0),i[I+68>>2]=N-(G+M|0),i[I+64>>2]=k-(F+S|0),i[I+60>>2]=p-(w+n|0),i[I+56>>2]=h-(D+f|0),i[I+52>>2]=r-(e+y|0),i[I+48>>2]=_-(c+t|0),QI(_=I+288|0,A),A=GI(_,32),s=I+320|0,A}function XA(A,I,g,B,i){A|=0,I|=0,g|=0,B|=0;var E=0,_=0,c=0,t=0,e=0,y=0,s=0;A:{I:{g:{C:{B:{Q:{i:{if(1==(-7&(i|=0))&&(c=(E=(B>>>0)/3|0)<<2,(E=a(E,-3)+B|0)&&(c=2&i?2+((E>>>1|0)+c|0)|0:c+4|0),!(I>>>0<=c>>>0))){if(!(i>>>0>=4)){if(!B){i=0;break C}E=0,i=0;break i}if(!B){i=0;break C}for(E=0,i=0;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&45|_+252&_+65474>>>8&~s|~(_+32705)>>>8&95|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=45,_=32705,B=95;break Q}rC(),Q()}for(;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&43|_+252&_+65474>>>8&~s|~(_+16321)>>>8&47|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=43,_=16321,B=47}_=~((g=e<<6-E&63)+_)>>>8&B|(E=g+65510>>>8|0)&g+65,B=g+65484>>>8|0,C[A+i|0]=~(1+(16321^g))>>>8&t|_|g+252&g+65474>>>8&~B|B&g+71&~E,i=i+1|0}if(i>>>0>c>>>0)break g}if(i>>>0>>0)break I;c=i;break A}r(1104,1218,231,1503),Q()}bg(A+i|0,61,c-i|0)}return bg(A+c|0,0,(I>>>0>(g=c+1|0)>>>0?I:g)-c|0),0|A}function OA(A,I,g){var C,B,Q,E=0,_=0,c=0,t=0,r=0;s=C=s-16|0,B=i[A+20>>2],i[A+20>>2]=0,Q=i[A+4>>2],i[A+4>>2]=0,c=-26;A:{I:{g:{C:switch(g-1|0){case 1:if(gg(I,1182,9))break I;I=I+9|0;break g;case 0:break C;default:break A}if(gg(I,1173,8))break I;I=I+8|0}if(36!=o[0|I]|118!=o[I+1|0]||(E=61==o[I+2|0]),E&&!(((t=o[0|(g=I+3|0)])-58&255)>>>0<246)){for(r=E?g:I,I=0,E=t;;){if(_=g,I>>>0>429496729)break I;if((g=(255&E)-48|0)>>>0>~(I=a(I,10))>>>0)break I;if(I=I+g|0,!(((E=o[0|(g=_+1|0)])-58&255)>>>0>245))break}if(!(48==(0|t)&(0|_)!=(0|r)|(0|g)==(0|r))){if(19!=(0|I))break A;if(!(36!=(255&E)|109!=o[_+2|0]|61!=o[_+3|0])&&(g=lI(_+4|0,I=C+12|0))&&(i[A+44>>2]=i[C+12>>2],!(44!=o[0|g]|116!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(i[A+40>>2]=i[C+12>>2],!(44!=o[0|g]|112!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(E=i[C+12>>2],i[A+48>>2]=E,i[A+52>>2]=E,36==o[0|g]&&(i[C+12>>2]=B,!pA(_=i[A+16>>2],B,E=g=g+1|0,t=RI(g),0,I,g=C+8|0,3)&&(i[A+20>>2]=i[C+12>>2],E=i[C+8>>2],36==o[0|E]&&(i[C+12>>2]=Q,E=E+1|0,!pA(i[A>>2],Q,E,RI(E),0,I,g,3)))))))){if(i[A+4>>2]=i[C+12>>2],I=i[C+8>>2],c=nI(A))break A;c=o[0|I]?-32:0;break A}}}}c=-32}return s=C+16|0,c}function WA(A,I,g,B){var Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(g|B)A:for(t=A+224|0,_=A+96|0,i=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24;;){if(Q=i+_|0,!B&g>>>0<=(E=256-i|0)>>>0){Ng(Q,I,g),I=g+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24;break A}if(Ng(Q,I,E),Q=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)+E|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,c=i=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,i=(a=128+(Q=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?i+1|0:i,C[A+64|0]=a,C[A+65|0]=a>>>8,C[A+66|0]=a>>>16,C[A+67|0]=a>>>24,C[A+68|0]=i,C[A+69|0]=i>>>8,C[A+70|0]=i>>>16,C[A+71|0]=i>>>24,i=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,i=(c=Q=-1==(0|c)&Q>>>0>4294967167)>>>0>(Q=Q+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?i+1|0:i,C[A+72|0]=Q,C[A+73|0]=Q>>>8,C[A+74|0]=Q>>>16,C[A+75|0]=Q>>>24,C[A+76|0]=i,C[A+77|0]=i>>>8,C[A+78|0]=i>>>16,C[A+79|0]=i>>>24,p(A,_),Ng(_,t,128),Q=i=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,I=I+E|0,!((B=B-(g>>>0>>0)|0)|(g=g-E|0)))break}return 0}function VA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0;for(g=i[A+60>>2],h=i[A+56>>2],s=i[A+52>>2],e=i[A+48>>2],I=i[A+44>>2],C=i[A+40>>2],D=i[A+36>>2],r=i[A+32>>2],B=i[A+28>>2],Q=i[A+24>>2],o=i[A+20>>2],E=i[A+16>>2],a=i[A+12>>2],_=i[A+8>>2],c=i[A+4>>2],t=i[A>>2];y=Lg(o+c|0,7)^D,f=Lg(y+o|0,9)^s,E=Lg(t+e|0,7)^E,p=Lg(E+t|0,9)^r,w=Lg(p+E|0,13)^e,a=Lg(I+g|0,7)^a,B=Lg(a+g|0,9)^B,r=Lg(B+a|0,13)^I,g=Lg(B+r|0,18)^g,I=Lg(C+Q|0,7)^h,e=w^Lg(g+I|0,7),s=f^Lg(e+g|0,9),h=Lg(e+s|0,13)^I,g=Lg(s+h|0,18)^g,_=Lg(I+C|0,9)^_,Q=Lg(_+I|0,13)^Q,C=Lg(Q+_|0,18)^C,I=Lg(C+y|0,7)^r,r=Lg(I+C|0,9)^p,D=Lg(I+r|0,13)^y,C=Lg(r+D|0,18)^C,c=Lg(y+f|0,13)^c,o=Lg(c+f|0,18)^o,Q=Lg(o+E|0,7)^Q,B=Lg(Q+o|0,9)^B,E=Lg(B+Q|0,13)^E,o=Lg(E+B|0,18)^o,t=Lg(p+w|0,18)^t,c=Lg(t+a|0,7)^c,_=Lg(c+t|0,9)^_,a=Lg(_+c|0,13)^a,t=Lg(a+_|0,18)^t,y=n>>>0<6,n=n+2|0,y;);i[A>>2]=i[A>>2]+t,i[A+4>>2]=i[A+4>>2]+c,i[A+8>>2]=i[A+8>>2]+_,i[A+12>>2]=i[A+12>>2]+a,i[A+16>>2]=i[A+16>>2]+E,i[A+20>>2]=i[A+20>>2]+o,i[A+24>>2]=i[A+24>>2]+Q,i[A+28>>2]=i[A+28>>2]+B,i[A+32>>2]=i[A+32>>2]+r,i[A+36>>2]=i[A+36>>2]+D,i[A+40>>2]=i[A+40>>2]+C,i[A+44>>2]=i[A+44>>2]+I,i[A+48>>2]=i[A+48>>2]+e,i[A+52>>2]=i[A+52>>2]+s,i[A+56>>2]=i[A+56>>2]+h,i[A+60>>2]=i[A+60>>2]+g}function ZA(A,I,g,B){var Q,i=0;return s=Q=s-320|0,i=-1,NI(g)&&(KI(g)||MA(Q,g)||gA(Q)&&(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],g=o[I+31|0],B&&(C[0|A]=248&o[0|A],g|=64),C[A+31|0]=127&g,u(g=Q+160|0,A,Q),tg(A,g),(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(i=GI(I,32)?-1:0))),s=Q+320|0,i}function TA(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0;if(s=E=s-48|0,Q&&ag(Q,102),!(36!=o[0|B]|55!=o[B+1|0]|36!=o[B+2|0])&&(r=uI(o[B+3|0]))&&(a=PI(E+12|0,B+4|0))&&(t=PI(E+8|0,a))){for(_=RI(t)+1|0;a=0,_&&36!=o[0|(a=t+(_=_-1|0)|0)];);if(c=a-t|0,a||(c=RI(t)),!((c=45+(_=(a=c)+(t-B|0)|0)|0)>>>0>102|a>>>0>c>>>0||(c=A,y=I,h=g,A=31&(r=r-1024|0),(63&r)>>>0>=32?(I=1<>>32-A,_A(c,y,h,t,a,g,I,i[E+12>>2],i[E+8>>2],E+16|0,32)))){for(a=Ng(Q,B,_),C[0|(A=a+_|0)]=36,e=(c=a+102|0)-(Q=A+1|0)|0,g=0;;){A:if((I=g)>>>0>31)B=Q;else if(A=Q,g=(_=I+1|0)+(y=(g=31-I|0)>>>0>=2?2:g)|0,B=0,t=0,Q=o[(r=E+16|0)+I|0],y&&(Q=o[_+r|0]<<8|Q,(0|(I=I+2|0))!=(0|g)&&(t=1,Q=o[I+r|0]<<16|Q)),e&&(C[0|A]=o[1024+(63&Q)|0],1!=(0|e))){if(C[A+1|0]=o[1024+(Q>>>6&63)|0],y=A+e|0,I=A+2|0,(0|g)!=(0|_)){if(2==(0|e))break A;if(C[A+2|0]=o[1024+(Q>>>12&63)|0],I=A+3|0,t){if(3==(0|e))break A;C[A+3|0]=o[1024+(Q>>>18|0)|0],I=A+4|0}}if(e=y-(Q=I)|0,Q)continue}break}XC(E+16|0,32),e=0,!B|B>>>0>=c>>>0||(C[0|B]=0,e=a)}}return s=E+48|0,e}function $A(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0;C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],s=i[(B=I- -64|0)>>2],h=i[I+28>>2],D=i[I+68>>2],f=i[I+32>>2],p=i[I+72>>2],w=i[I+36>>2],g=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=w+g,i[A+32>>2]=f+p,i[A+28>>2]=h+D,i[A+24>>2]=y+s,i[A+20>>2]=r+e,i[A+16>>2]=c+t,i[A+12>>2]=a+_,i[A+8>>2]=o+E,i[A+4>>2]=C+Q,C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],B=i[B>>2],s=i[I+28>>2],h=i[I+68>>2],D=i[I+32>>2],f=i[I+72>>2],p=i[I>>2],w=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=f-D,i[A+68>>2]=h-s,i[A- -64>>2]=B-y,i[A+60>>2]=e-r,i[A+56>>2]=t-c,i[A+52>>2]=_-a,i[A+48>>2]=E-o,i[A+44>>2]=Q-C,i[A+40>>2]=w-p,C=i[I+84>>2],i[A+80>>2]=i[I+80>>2],i[A+84>>2]=C,C=i[I+92>>2],i[A+88>>2]=i[I+88>>2],i[A+92>>2]=C,C=i[I+100>>2],i[A+96>>2]=i[I+96>>2],i[A+100>>2]=C,C=i[I+108>>2],i[A+104>>2]=i[I+104>>2],i[A+108>>2]=C,C=i[I+116>>2],i[A+112>>2]=i[I+112>>2],i[A+116>>2]=C,b(A+120|0,I+120|0,1680)}function AI(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0;h=i[I+12>>2],D=i[I+8>>2],f=i[I+4>>2],C=s+-64&-64,I=i[I>>2],i[C>>2]=i[35744+((255&I)<<2)>>2],i[C+4>>2]=i[35744+(f>>>6&1020)>>2],i[C+8>>2]=i[35744+(D>>>14&1020)>>2],i[C+12>>2]=i[35744+(h>>>22&1020)>>2],i[C+16>>2]=i[35744+((255&f)<<2)>>2],i[C+20>>2]=i[35744+(D>>>6&1020)>>2],i[C+24>>2]=i[35744+(h>>>14&1020)>>2],i[C+28>>2]=i[35744+(I>>>22&1020)>>2],i[C+32>>2]=i[35744+((255&D)<<2)>>2],i[C+36>>2]=i[35744+(h>>>6&1020)>>2],i[C+40>>2]=i[35744+(I>>>14&1020)>>2],i[C+44>>2]=i[35744+(f>>>22&1020)>>2],i[C+48>>2]=i[35744+((255&h)<<2)>>2],i[C+52>>2]=i[35744+(I>>>6&1020)>>2],i[C+56>>2]=i[35744+(f>>>14&1020)>>2],i[C+60>>2]=i[35744+(D>>>22&1020)>>2],I=i[C+12>>2],h=i[C>>2],D=i[C+4>>2],f=i[C+8>>2],B=i[C+28>>2],Q=i[C+16>>2],o=i[C+20>>2],E=i[C+24>>2],a=i[C+44>>2],_=i[C+32>>2],c=i[C+36>>2],t=i[C+40>>2],r=i[g>>2],e=i[g+4>>2],y=i[g+8>>2],p=A,w=i[g+12>>2]^i[C+48>>2]^Lg(i[C+52>>2],8)^Lg(i[C+56>>2],16)^Lg(i[C+60>>2],24),i[p+12>>2]=w,p=A,w=Lg(c,8)^_^Lg(t,16)^Lg(a,24)^y,i[p+8>>2]=w,p=A,w=Lg(o,8)^Q^Lg(E,16)^Lg(B,24)^e,i[p+4>>2]=w,p=A,w=Lg(D,8)^h^Lg(f,16)^Lg(I,24)^r,i[p>>2]=w}function II(A,I,g){var B,Q=0;return s=B=s-160|0,C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],Q=o[I+31|0],g&&(C[0|A]=248&o[0|A],Q|=64),C[A+31|0]=127&Q,nA(B,A),tg(A,B),g=-1,(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(g=GI(I,32)?-1:0),s=B+160|0,g}function gI(A,I){var g,B,Q,o,E,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;(_=i[A+56>>2])|(c=i[A+60>>2])&&(C[(r=A- -64|0)+_|0]=1,!((f=_+1|0)?c:c+1|0)&f>>>0<=15&&bg(65+(A+_|0)|0,0,15-_|0),C[A+80|0]=1,rA(A,r,16,0)),f=i[A+52>>2],h=i[A+48>>2],r=i[A+44>>2],_=i[A+24>>2],e=i[A+28>>2]+(_>>>26|0)|0,t=i[A+32>>2]+(e>>>26|0)|0,g=i[A+36>>2]+(t>>>26|0)|0,c=(s=(_=(_=(67108863&_)+((y=i[A+20>>2]+a(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(E=(67108863&g)+((o=(B=67108863&t)+((Q=(D=67108863&e)+((y=_+((c=5+(s=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|y&(t=67108863&(y=(t>>>31|0)-1|0)))<<26|c&t|e&s)+i[A+40>>2]|0,C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,s=c>>>0>>0,c=0,c=(_=(D=e&D|t&Q)<<20|_>>>6)>>>0>(_=_+r|0)>>>0?1:c,c=(r=_)>>>0>(_=_+s|0)>>>0?c+1|0:c,C[I+4|0]=_,C[I+5|0]=_>>>8,C[I+6|0]=_>>>16,C[I+7|0]=_>>>24,_=0,r=(r=(t=e&B|t&o)<<14|D>>>12)>>>0>(h=r+h|0)>>>0?1:_,_=h,h=c,_=_+c|0,c=r,c=_>>>0>>0?c+1|0:c,C[I+8|0]=_,C[I+9|0]=_>>>8,C[I+10|0]=_>>>16,C[I+11|0]=_>>>24,c=(_=(_=(y&E|e&g)<<8|t>>>18)+f|0)+c|0,C[I+12|0]=c,C[I+13|0]=c>>>8,C[I+14|0]=c>>>16,C[I+15|0]=c>>>24,XC(A,88)}function CI(A,I,g){A|=0,I|=0,g|=0;var B,Q=0;return s=B=s-16|0,C[B+15|0]=0,Q=-1,0|pB[i[8930]](A,I,g)||(C[B+15|0]=o[0|A]|o[B+15|0],C[B+15|0]=o[A+1|0]|o[B+15|0],C[B+15|0]=o[A+2|0]|o[B+15|0],C[B+15|0]=o[A+3|0]|o[B+15|0],C[B+15|0]=o[A+4|0]|o[B+15|0],C[B+15|0]=o[A+5|0]|o[B+15|0],C[B+15|0]=o[A+6|0]|o[B+15|0],C[B+15|0]=o[A+7|0]|o[B+15|0],C[B+15|0]=o[A+8|0]|o[B+15|0],C[B+15|0]=o[A+9|0]|o[B+15|0],C[B+15|0]=o[A+10|0]|o[B+15|0],C[B+15|0]=o[A+11|0]|o[B+15|0],C[B+15|0]=o[A+12|0]|o[B+15|0],C[B+15|0]=o[A+13|0]|o[B+15|0],C[B+15|0]=o[A+14|0]|o[B+15|0],C[B+15|0]=o[A+15|0]|o[B+15|0],C[B+15|0]=o[A+16|0]|o[B+15|0],C[B+15|0]=o[A+17|0]|o[B+15|0],C[B+15|0]=o[A+18|0]|o[B+15|0],C[B+15|0]=o[A+19|0]|o[B+15|0],C[B+15|0]=o[A+20|0]|o[B+15|0],C[B+15|0]=o[A+21|0]|o[B+15|0],C[B+15|0]=o[A+22|0]|o[B+15|0],C[B+15|0]=o[A+23|0]|o[B+15|0],C[B+15|0]=o[A+24|0]|o[B+15|0],C[B+15|0]=o[A+25|0]|o[B+15|0],C[B+15|0]=o[A+26|0]|o[B+15|0],C[B+15|0]=o[A+27|0]|o[B+15|0],C[B+15|0]=o[A+28|0]|o[B+15|0],C[B+15|0]=o[A+29|0]|o[B+15|0],C[B+15|0]=o[A+30|0]|o[B+15|0],C[B+15|0]=o[A+31|0]|o[B+15|0],Q=(o[B+15|0]<<23)-8388608>>31),s=B+16|0,0|Q}function BI(A,I,g,C,B){var Q=0,o=0,E=0,a=0,_=0,c=0,t=0;A:{if(1==(0|C)|C>>>0>1)i[9404]=22;else{s=C=s-128|0,i[C- -64>>2]=0,i[C+56>>2]=0,i[C+60>>2]=0,i[C+48>>2]=0,i[C+52>>2]=0,i[C+40>>2]=0,i[C+44>>2]=0,i[C+32>>2]=0,i[C+36>>2]=0,i[C+24>>2]=0,i[C+28>>2]=0,i[C+16>>2]=0,i[C+20>>2]=0,Q=RI(A),i[C+28>>2]=Q,i[C+44>>2]=Q,i[C+12>>2]=Q,o=K(Q),i[C+40>>2]=o,E=K(Q),i[C+24>>2]=E,a=K(Q),i[C+8>>2]=a;I:if(!a|!o|!E||!(Q=K(Q)))BA(o),BA(E),BA(a),A=-22;else{if(A=OA(C+8|0,A,B)){BA(i[C+40>>2]),BA(i[C+24>>2]),BA(i[C+8>>2]),BA(Q);break I}a=i[C+28>>2],_=i[C+24>>2],A=i[C+60>>2],c=i[C+52>>2],t=i[C+48>>2],ag(Q,o=i[C+12>>2]),(E=K(o))?(i[C+100>>2]=0,i[C+104>>2]=0,i[C+92>>2]=0,i[C+96>>2]=0,i[C+88>>2]=a,i[C+84>>2]=_,i[C+80>>2]=g,i[C+76>>2]=I,i[C+72>>2]=o,i[C+68>>2]=E,i[C+124>>2]=0,i[C+120>>2]=A,i[C+116>>2]=A,i[C+112>>2]=c,i[C+108>>2]=t,(A=q(C+68|0,B))||Ng(Q,E,o),XC(E,o),BA(E)):A=-22,BA(i[C+40>>2]),BA(i[C+24>>2]),A||(A=MI(Q,i[C+8>>2],i[C+12>>2])?-35:0),BA(Q),BA(i[C+8>>2])}if(s=C+128|0,I=A,!A)break A;-35==(0|A)&&(i[9404]=28)}I=-1}return I}function QI(A,I){var g,B,Q,o,E,_,c,t=0,r=0;B=i[I+32>>2],Q=i[I+28>>2],o=i[I+24>>2],E=i[I+20>>2],_=i[I+16>>2],c=i[I+12>>2],t=i[I+4>>2],r=i[I>>2],g=i[I+36>>2],I=i[I+8>>2],r=a((B+(Q+(o+(E+(_+(c+((t+(r+(a(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+r|0,C[0|A]=r,C[A+2|0]=r>>>16,C[A+1|0]=r>>>8,t=t+(r>>26)|0,C[A+5|0]=t>>>14,C[A+4|0]=t>>>6,C[A+3|0]=r>>>24&3|t<<2,I=I+(t>>25)|0,C[A+8|0]=I>>>13,C[A+7|0]=I>>>5,C[A+6|0]=I<<3|(29360128&t)>>>22,r=(I>>26)+c|0,C[A+11|0]=r>>>11,C[A+10|0]=r>>>3,C[A+9|0]=r<<5|(65011712&I)>>>21,t=(r>>25)+_|0,C[A+15|0]=t>>>18,C[A+14|0]=t>>>10,C[A+13|0]=t>>>2,I=(t>>26)+E|0,C[A+16|0]=I,C[A+12|0]=t<<6|(33030144&r)>>>19,C[A+18|0]=I>>>16,C[A+17|0]=I>>>8,t=(I>>25)+o|0,C[A+21|0]=t>>>15,C[A+20|0]=t>>>7,C[A+19|0]=I>>>24&1|t<<1,I=(t>>26)+Q|0,C[A+24|0]=I>>>13,C[A+23|0]=I>>>5,C[A+22|0]=I<<3|(58720256&t)>>>23,t=(I>>25)+B|0,C[A+27|0]=t>>>12,C[A+26|0]=t>>>4,C[A+25|0]=t<<4|(31457280&I)>>>21,I=g+(t>>26)|0,C[A+30|0]=I>>>10,C[A+29|0]=I>>>2,C[A+31|0]=(33292288&I)>>>18,C[A+28|0]=I<<6|(66060288&t)>>>20}function iI(A,I,g){A|=0,I|=0;var B,Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(s=B=s-192|0,(g|=0)>>>0>=129&&(SI(A),SA(A,I,g,0),j(A,B),g=64,I=B),SI(A),bg(B- -64|0,54,128),g){if(g>>>0>=4)for(t=252&g;C[0|(Q=(E=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=E)+(E=3|i)|0)]=o[0|Q]^o[I+E|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(_=3&g)for(;C[0|(E=(B- -64|0)+i|0)]=o[0|E]^o[I+i|0],i=i+1|0,(0|_)!=(0|(c=c+1|0)););}if(SA(A,i=B- -64|0,128,0),SI(E=A+208|0),bg(i,92,128),g){if(c=0,i=0,g>>>0>=4)for(t=252&g,_=0;C[0|(Q=(A=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=A)+(A=3|i)|0)]=o[0|Q]^o[A+I|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(A=3&g)for(;C[0|(g=(B- -64|0)+i|0)]=o[0|g]^o[I+i|0],i=i+1|0,(0|A)!=(0|(c=c+1|0)););}return SA(E,A=B- -64|0,128,0),XC(A,128),XC(B,64),s=B+192|0,0}function oI(A,I){var g;return A|=0,I|=0,i[12+(g=s-16|0)>>2]=A,i[g+8>>2]=I,i[g+4>>2]=0,i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]]^o[i[g+8>>2]],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+1|0]^o[i[g+8>>2]+1|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+2|0]^o[i[g+8>>2]+2|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+3|0]^o[i[g+8>>2]+3|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+4|0]^o[i[g+8>>2]+4|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+5|0]^o[i[g+8>>2]+5|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+6|0]^o[i[g+8>>2]+6|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+7|0]^o[i[g+8>>2]+7|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+8|0]^o[i[g+8>>2]+8|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+9|0]^o[i[g+8>>2]+9|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+10|0]^o[i[g+8>>2]+10|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+11|0]^o[i[g+8>>2]+11|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+12|0]^o[i[g+8>>2]+12|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+13|0]^o[i[g+8>>2]+13|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+14|0]^o[i[g+8>>2]+14|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+15|0]^o[i[g+8>>2]+15|0],(i[g+4>>2]-1>>>8&1)-1|0}function EI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,yA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,ug(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&mg(A+t|0,g+t|0,C-t|0,B-((C>>>0>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function aI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,wA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,aC(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&oC(A+t|0,g+t|0,C-t|0,B-((C>>>0>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function _I(A,I,g,B,Q){var o;return A|=0,I|=0,g|=0,B|=0,s=o=s-480|0,iI(o,Q|=0,32),dC(o,I,g,B),wg(o,o+416|0),I=i[o+444>>2],g=i[o+440>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+436>>2],g=i[o+432>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+428>>2],g=i[o+424>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+420>>2],g=i[o+416>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=o+480|0,0}function cI(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s+-64|0,FI(B,g|=0,32,0),g=i[B+28>>2],Q=i[B+24>>2],C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,C[I+28|0]=g,C[I+29|0]=g>>>8,C[I+30|0]=g>>>16,C[I+31|0]=g>>>24,g=i[B+20>>2],Q=i[B+16>>2],C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,C[I+20|0]=g,C[I+21|0]=g>>>8,C[I+22|0]=g>>>16,C[I+23|0]=g>>>24,g=i[B+12>>2],Q=i[B+8>>2],C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,C[I+12|0]=g,C[I+13|0]=g>>>8,C[I+14|0]=g>>>16,C[I+15|0]=g>>>24,g=i[B+4>>2],Q=i[B>>2],C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,C[I+4|0]=g,C[I+5|0]=g>>>8,C[I+6|0]=g>>>16,C[I+7|0]=g>>>24,XC(B,64),A=pC(A,I),s=B- -64|0,0|A}function tI(A,I){var g=0,C=0,B=0,Q=0,o=0,E=0;return I>>>0>4294967168?48:(I>>>0>=4294967168?(i[9404]=48,g=0):(g=0,(I=K(76+(Q=I>>>0<11?16:I+11&-8)|0))&&(g=I-8|0,63&I?(B=(-8&(E=i[(o=I-4|0)>>2]))-(C=(I=((I=(I+63&-64)-8|0)-g>>>0<=15?64:0)+I|0)-g|0)|0,3&E?(i[I+4>>2]=B|1&i[I+4>>2]|2,i[4+(B=I+B|0)>>2]=1|i[B+4>>2],i[o>>2]=C|1&i[o>>2]|2,i[4+(B=g+C|0)>>2]=1|i[B+4>>2],oA(g,C)):(g=i[g>>2],i[I+4>>2]=B,i[I>>2]=g+C)):I=g,3&(g=i[I+4>>2])&&((C=-8&g)>>>0<=Q+16>>>0||(i[I+4>>2]=Q|1&g|2,g=I+Q|0,Q=C-Q|0,i[g+4>>2]=3|Q,i[4+(C=I+C|0)>>2]=1|i[C+4>>2],oA(g,Q))),g=I+8|0)),g?(i[A>>2]=g,0):48)}function rI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!((!a&E>>>0>=3|!!(0|a))&_>>>0>8191)|(0|C)==(0|t)))return 1==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,1))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function eI(A,I,g,C,B,Q,i){var o,E,a=0,_=0,c=0;s=o=s-96|0,wA(o,Q,i,0),DC(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,a=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,a=Q?0:B;if(Q=a,c=Ng(o- -64|0,I,g),aC(i=o+32|0,i,_=g+32|0,Q=_>>>0<32?Q+1|0:Q,E,o),A=Ng(A,c,g),XC(i,64),Q=0,!B&C>>>0<33)break I;oC(A+g|0,I+g|0,C-g|0,B-(a+(g>>>0>C>>>0)|0)|0,E,1,0,o);break I}aC(A=o+32|0,A,32,0,E,o),XC(A,64)}XC(o,32)}return s=o+96|0,Q}function yI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!(!!(E|a)&_>>>0>8191)|(0|C)==(0|t)))return 2==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,2))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function sI(A,I,g,C,B,Q,i){var o,E,a=0,_=0;s=o=s-96|0,yA(o,Q,i,0),Xg(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,i=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,i=Q?0:B;if(a=g,_=Ng(o- -64|0,I,g),ug(g=o+32|0,g,Q=a+32|0,Q>>>0<32?i+1|0:i,E,o),g=Ng(A,_,a),Q=0,!B&C>>>0<33)break I;mg(g+a|0,I+a|0,C-a|0,B-(i+(C>>>0>>0)|0)|0,E,1,0,o);break I}ug(A=o+32|0,A,32,0,E,o)}XC(o,32)}return s=o+96|0,Q}function hI(A,I,g,C,B,Q,E,a,_,c){var t,r;return s=t=s-400|0,i[t+4>>2]=0,yA(r=t+16|0,_,c,0),c=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[t+8>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[t+12>>2]=c,jg(c=t+80|0,64,0,t+4|0,r),wC(_=t+144|0,c),XC(c,64),SC(_,Q,E,a),SC(_,35680,0-E&15,0),SC(_,I,g,C),SC(_,35680,0-g&15,0),i[t+72>>2]=E,i[t+76>>2]=a,SC(_,Q=t+72|0,8,0),i[t+72>>2]=g,i[t+76>>2]=C,SC(_,Q,8,0),nC(_,Q=t+48|0),XC(_,256),_=oI(Q,B),XC(Q,16),A&&(_?(bg(A,0,g),_=-1):(Og(A,I,g,C,t+4|0,t+16|0),_=0)),XC(t+16|0,32),s=t+400|0,_}function DI(A,I,g,B,Q,o){var E,a;if(s=E=s-496|0,mA(a=E+288|0,A,I),mC(a,g,B,0),o)for(A=0,I=0;g=(I=I+1|0)<<24|(65280&I)<<8|I>>>8&65280|I>>>24,C[E+76|0]=g,C[E+77|0]=g>>>8,C[E+78|0]=g>>>16,C[E+79|0]=g>>>24,Ng(g=E+80|0,E+288|0,208),mC(g,E+76|0,4,0),Sg(g,E+32|0),g=i[E+60>>2],i[E+24>>2]=i[E+56>>2],i[E+28>>2]=g,g=i[E+52>>2],i[E+16>>2]=i[E+48>>2],i[E+20>>2]=g,g=i[E+44>>2],i[E+8>>2]=i[E+40>>2],i[E+12>>2]=g,g=i[E+36>>2],i[E>>2]=i[E+32>>2],i[E+4>>2]=g,Ng(g=A+Q|0,E,(A=o-A|0)>>>0>=32?32:A),o>>>0>(A=I<<5)>>>0;);XC(E+288|0,208),s=E+496|0}function fI(A,I,g,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<32)&!B||(Ug(o,32,0,Q,i),fC(I+16|0,I+32|0,g-32|0,B-E|0,o)||(Gg(A,I,g,B,Q,i),C[A+24|0]=0,C[A+25|0]=0,C[A+26|0]=0,C[A+27|0]=0,C[A+28|0]=0,C[A+29|0]=0,C[A+30|0]=0,C[A+31|0]=0,C[A+16|0]=0,C[A+17|0]=0,C[A+18|0]=0,C[A+19|0]=0,C[A+20|0]=0,C[A+21|0]=0,C[A+22|0]=0,C[A+23|0]=0,C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,a=0)),s=o+32|0,a}function pI(A,I,g,C,B,Q,E,a,_,c,t){var r,e,y;return s=r=s-384|0,i[r+4>>2]=0,yA(e=r+16|0,c,t,0),t=o[c+20|0]|o[c+21|0]<<8|o[c+22|0]<<16|o[c+23|0]<<24,i[r+8>>2]=o[c+16|0]|o[c+17|0]<<8|o[c+18|0]<<16|o[c+19|0]<<24,i[r+12>>2]=t,jg(t=r- -64|0,64,0,y=r+4|0,e),wC(c=r+128|0,t),XC(t,64),SC(c,E,a,_),SC(c,35680,0-a&15,0),Og(A,C,B,Q,y,e),SC(c,A,B,Q),SC(c,35680,0-B&15,0),i[r+56>>2]=a,i[r+60>>2]=_,SC(c,A=r+56|0,8,0),i[r+56>>2]=B,i[r+60>>2]=Q,SC(c,A,8,0),nC(c,I),XC(c,256),g&&(i[g>>2]=16,i[g+4>>2]=0),XC(r+16|0,32),s=r+384|0,0}function wI(A,I,g,C,B){var Q,E,a=0;return s=Q=s+-64|0,!g&(E=RI(A))>>>0<128?(i[Q+60>>2]=0,i[Q+52>>2]=0,i[Q+56>>2]=0,i[Q+44>>2]=0,i[Q+48>>2]=0,g=0,E&&(g=E,(1|E)>>>0<65536||(g=E)),!(a=K(g))|!(3&o[a-4|0])||bg(a,0,g),a?(i[Q+36>>2]=0,i[Q+40>>2]=0,i[Q+12>>2]=a,i[Q+20>>2]=a,i[Q+24>>2]=E,i[Q+4>>2]=a,i[Q+16>>2]=E,i[Q+28>>2]=0,i[Q+32>>2]=0,i[Q+8>>2]=E,OA(Q+4|0,A,B)?(i[9404]=28,A=-1):A=i[Q+44>>2]!=(0|I)|i[Q+48>>2]!=(C>>>10|0),BA(a)):A=-1):(i[9404]=28,A=-1),s=Q- -64|0,A}function nI(A){var I,g=0,C=0;if(!A)return-25;if(!i[A>>2])return-1;if(E[A+4>>2]<16)return-2;if(!(i[A+8>>2]|!i[A+12>>2]))return-18;if(g=i[A+20>>2],!i[A+16>>2])return g?-19:-6;if(g>>>0<8)return-6;if(!(i[A+24>>2]|!i[A+28>>2]))return-20;if(!(i[A+32>>2]|!i[A+36>>2]))return-21;if(!(g=i[A+48>>2]))return-16;if(g>>>0>16777215)return-17;if(C=-14,!((I=i[A+44>>2])>>>0<8)){if(I>>>0>2097152)return-15;if(!(g<<3>>>0>I>>>0)){if(!i[A+40>>2])return-12;if(!(A=i[A+52>>2]))return-28;C=A>>>0>16777215?-29:0}}return C}function kI(A,I){var g,C=0,B=0;g=I;A:{I:{g:{if(I&=255){if(3&A)for(;;){if(!(C=o[0|A])|(0|I)==(0|C))break A;if(!(3&(A=A+1|0)))break}if(-2139062144!=(-2139062144&((C=i[A>>2])|16843008-C)))break g;for(B=a(I,16843009);;){if(-2139062144!=(-2139062144&(16843008-(I=C^B)|I)))break g;if(C=i[A+4>>2],A=I=A+4|0,-2139062144!=(-2139062144&(16843008-C|C)))break}break I}A=RI(A)+A|0;break A}I=A}for(;;){if(!(C=o[0|(A=I)]))break A;if(I=A+1|0,(0|C)==(255&g))break}}return o[0|A]==(255&g)?A:0}function FI(A,I,g,C){var B,Q=0;return s=B=s-208|0,i[B+72>>2]=0,i[B+76>>2]=0,Q=i[8591],i[B+8>>2]=i[8590],i[B+12>>2]=Q,Q=i[8593],i[B+16>>2]=i[8592],i[B+20>>2]=Q,Q=i[8595],i[B+24>>2]=i[8594],i[B+28>>2]=Q,Q=i[8597],i[B+32>>2]=i[8596],i[B+36>>2]=Q,Q=i[8599],i[B+40>>2]=i[8598],i[B+44>>2]=Q,Q=i[8601],i[B+48>>2]=i[8600],i[B+52>>2]=Q,Q=i[8603],i[B+56>>2]=i[8602],i[B+60>>2]=Q,i[B+64>>2]=0,i[B+68>>2]=0,Q=i[8589],i[B>>2]=i[8588],i[B+4>>2]=Q,SA(B,I,g,C),j(B,A),s=B+208|0,0}function SI(A){var I=0;return i[64+(A|=0)>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,I=i[8589],i[A>>2]=i[8588],i[A+4>>2]=I,I=i[8591],i[A+8>>2]=i[8590],i[A+12>>2]=I,I=i[8593],i[A+16>>2]=i[8592],i[A+20>>2]=I,I=i[8595],i[A+24>>2]=i[8594],i[A+28>>2]=I,I=i[8597],i[A+32>>2]=i[8596],i[A+36>>2]=I,I=i[8599],i[A+40>>2]=i[8598],i[A+44>>2]=I,I=i[8601],i[A+48>>2]=i[8600],i[A+52>>2]=I,I=i[8603],i[A+56>>2]=i[8602],i[A+60>>2]=I,0}function NI(A){return~((127&~o[A+31|0]|o[A+1|0]&o[A+2|0]&o[A+3|0]&o[A+4|0]&o[A+5|0]&o[A+6|0]&o[A+7|0]&o[A+8|0]&o[A+9|0]&o[A+10|0]&o[A+11|0]&o[A+12|0]&o[A+13|0]&o[A+14|0]&o[A+15|0]&o[A+16|0]&o[A+17|0]&o[A+18|0]&o[A+19|0]&o[A+20|0]&o[A+21|0]&o[A+22|0]&o[A+23|0]&o[A+24|0]&o[A+25|0]&o[A+26|0]&o[A+27|0]&o[A+28|0]&o[A+30|0]&o[A+29|0]^255)-1&236-o[0|A])>>>8&1}function GI(A,I){var g,B=0,Q=0,i=0,E=0;if(C[15+(g=s-16|0)|0]=0,I){if(I>>>0>=4)for(E=-4&I;B=A+Q|0,C[g+15|0]=o[0|B]|o[g+15|0],C[g+15|0]=o[B+1|0]|o[g+15|0],C[g+15|0]=o[B+2|0]|o[g+15|0],C[g+15|0]=o[B+3|0]|o[g+15|0],Q=Q+4|0,(0|E)!=(0|(i=i+4|0)););if(B=3&I)for(I=0;C[g+15|0]=o[A+Q|0]|o[g+15|0],Q=Q+1|0,(0|B)!=(0|(I=I+1|0)););}return o[g+15|0]-1>>>8&1}function MI(A,I,g){var B,Q=0,E=0;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,A=0,C[B+7|0]=0,g){if(I=1&g,1!=(0|g))for(E=-2&g,g=0;C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0],Q=1|A,C[B+7|0]=o[B+7|0]|o[Q+i[B+12>>2]|0]^o[i[B+8>>2]+Q|0],A=A+2|0,(0|E)!=(0|(g=g+2|0)););I&&(C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0])}return(o[B+7|0]-1>>>8&1)-1|0}function KI(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0,_=0,c=0;B=(g=o[A+C|0])^o[0|(I=C+2688|0)]|B,Q=g^o[I+192|0]|Q,i=g^o[I+160|0]|i,E=g^o[I+128|0]|E,a=g^o[I+96|0]|a,_=g^o[I- -64|0]|_,c=g^o[I+32|0]|c,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&o[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|E))-1|(255&(122^A|a))-1|(255&(5^A|_))-1|(255&(A|c))-1|(255&(A|B))-1)>>>8&1}function UI(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<>>0>=32?(C=Q<>>32-B|C<>>0>=32?(C=-1<>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<>>C),f=g|Q,A|i}function bI(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var o=0,E=0;A:I:{g:{if(!(!(B|=0)&(C|=0)>>>0<64||(E=1+(B=B-1|0)|0,o=B,!(C=(B=C+-64|0)>>>0<4294967232?E:o)&B>>>0>4294967231|C))){if(!U(o=g,g=g- -64|0,B,C,Q|=0,0))break g;A&&bg(A,0,B)}if(C=-1,!I)break I;i[I>>2]=0,i[I+4>>2]=0,C=-1;break A}I&&(i[I>>2]=B,i[I+4>>2]=C),C=0,A&&yg(A,g,B)}return 0|C}function HI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,jg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),SC(t,35648,0-o&15,0),SC(t,I,g,C),SC(t,35648,0-g&15,0),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(Cg(A,I,g,C,a,1,_),Q=0)),s=c+352|0,Q}function YI(A,I,g,C,B,Q){var E,a;return A|=0,I|=0,g|=0,C|=0,Q|=0,s=E=s-32|0,a=o[0|(B|=0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=a,i[E+20>>2]=B,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=g,i[E+4>>2]=C,I-65>>>0<=4294967246?(i[9404]=28,A=-1):A=QA(A,I,0,0,0,Q,32,E,E+16|0),s=E+32|0,0|A}function JI(A,I,g,C,B){var Q,o;return A|=0,I|=0,g|=0,C|=0,s=Q=s-512|0,iI(o=Q+32|0,B|=0,32),dC(o,I,g,C),wg(o,Q+448|0),I=i[Q+476>>2],i[Q+24>>2]=i[Q+472>>2],i[Q+28>>2]=I,I=i[Q+468>>2],i[Q+16>>2]=i[Q+464>>2],i[Q+20>>2]=I,I=i[Q+460>>2],i[Q+8>>2]=i[Q+456>>2],i[Q+12>>2]=I,I=i[Q+452>>2],i[Q>>2]=i[Q+448>>2],i[Q+4>>2]=I,I=NC(A,Q),g=MI(Q,A,32),s=Q+512|0,((0|A)==(0|Q)?-1:I)|g}function dI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,Xg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),SC(t,I,g,C),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(mg(A,I,g,C,a,1,0,_),Q=0)),s=c+352|0,Q}function mI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,jg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),SC(r,35648,0-E&15,0),Cg(A,C,B,Q,_,1,c),SC(r,A,B,Q),SC(r,35648,0-B&15,0),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,A=t+8|0,8,0),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,A,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function lI(A,I){var g,C=0,B=0,Q=0,E=0,_=0;A:if(!(((g=o[0|A])-58&255)>>>0<246)){for(C=g,B=A;;){if(E=B,Q>>>0>429496729)break A;if((C=(255&C)-48|0)>>>0>~(Q=a(Q,10))>>>0)break A;if(Q=Q+C|0,!(((C=o[0|(B=B+1|0)])-58&255)>>>0>245))break}48==(0|g)&(0|A)!=(0|E)|(0|A)==(0|B)||(i[I>>2]=Q,_=B)}return _}function uI(A){var I=0,g=0,C=0,B=0;I=65,g=1024;A:{I:{if((0|(C=255&A))!=o[1024])for(C=a(C,16843009);;){if(-2139062144!=(-2139062144&((B=C^i[g>>2])|16843008-B)))break I;if(g=g+4|0,!((I=I-4|0)>>>0>3))break}if(!I)break A}for(A&=255;;){if((0|A)==o[0|g])return g;if(g=g+1|0,!(I=I-1|0))break}}return 0}function xI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,Xg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,o=t+8|0,8,0),mg(A,C,B,Q,_,1,0,c),SC(r,A,B,Q),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,o,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function vI(A,I,g,B,Q,i){return!B&g>>>0>=32|B?(Gg(A,I,g,B,Q,i),hC(A+16|0,A+32|0,g-32|0,B-(g>>>0<32)|0,A),C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,A=0):A=-1,A}function RI(A){var I=0,g=0,C=0;A:{I:if(3&(I=A)){if(!o[0|I])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!o[0|I])break}break A}for(;g=I,I=I+4|0,-2139062144==(-2139062144&((C=i[g>>2])|16843008-C)););for(;g=(I=g)+1|0,o[0|I];);}return I-A|0}function LI(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var o,E=0;return s=o=s-16|0,w(A|=0,o+8|0,yg(A- -64|0,g|=0,C|=0),C,B,Q,0),i[o+12>>2]|64!=i[o+8>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),bg(A,0,C- -64|0),E=-1):I&&(i[I>>2]=C- -64,i[I+4>>2]=B-((C>>>0<4294967232)-1|0)),s=o+16|0,0|E}function PI(A,I){var g,C=0,B=0,Q=0,E=0;return(g=uI(o[0|I]))&&(C=uI(o[I+1|0]))&&(B=uI(o[I+2|0]))&&(Q=uI(o[I+3|0]))&&(E=uI(o[I+4|0]))?(i[A>>2]=g-1024|C-1024<<6|B-1024<<12|Q-1024<<18|E-1024<<24,I+5|0):(i[A>>2]=0,0)}function qI(A,I,g){var C;for(i[12+(C=s-16|0)>>2]=A,i[C+8>>2]=I,A=0,i[C+4>>2]=0;i[C+4>>2]=i[C+4>>2]|o[i[C+12>>2]+A|0]^o[i[C+8>>2]+A|0],I=1|A,i[C+4>>2]=i[C+4>>2]|o[I+i[C+12>>2]|0]^o[I+i[C+8>>2]|0],(0|g)!=(0|(A=A+2|0)););return(i[C+4>>2]-1>>>8&1)-1|0}function zI(A,I,g,C,B,Q,o,E,a,_,c){var t=0,r=0,e=0;return r=-1,(t=C>>>0<32)&!B||!(t=B-t|0)&(e=C-32|0)>>>0>4294967263|t|!E&o>>>0>4294967263|E||(r=0|pB[i[c>>2]](A,g,e,(g+C|0)-32|0,32,Q,o,a,_)),I&&(i[I>>2]=r?0:C-32|0,i[I+4>>2]=r?0:B-(C>>>0<32)|0),r}function jI(A,I){var g,C=0,B=0,Q=0;s=g=s-896|0,fA(C=g+848|0,I),fA(B=g+800|0,I+32|0),$(Q=g+320|0,C),$(I=g+160|0,B),$A(C=g+640|0,I),sA(I=g+480|0,Q,C),b(g,I,C=g+600|0),b(g+40|0,B=g+520|0,Q=g+560|0),b(g+80|0,Q,C),b(g+120|0,I,B),W(A,g),s=g+896|0}function XI(A){var I=0,g=0,B=0,Q=0,i=0;for(I=1;g=(B=I)+o[0|(I=A+Q|0)]|0,C[0|I]=g,g=o[I+1|0]+(g>>>8|0)|0,C[I+1|0]=g,g=o[I+2|0]+(g>>>8|0)|0,C[I+2|0]=g,B=I,I=o[I+3|0]+(g>>>8|0)|0,C[B+3|0]=I,I=I>>>8|0,Q=Q+4|0,4!=(0|(i=i+4|0)););}function OI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?(!Q&B>>>0>=3|!!(0|Q))&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,1)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function WI(A,I){var g=0;4&I&&((I=i[A>>2])&&XC(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&XC(I,i[A+20>>2]<<3)),BA(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&BA(g),BA(I),i[A>>2]=0}function VI(A,I,g,C,B,o,E,a,_,c,t){return!B&C>>>0>4294967263|!!(0|B)|!a&E>>>0>=4294967264|!!(0|a)?(rC(),Q()):(A=0|pB[i[t>>2]](A,A+C|0,32,g,C,o,E,_,c),I&&(C=(g=C+32|0)>>>0<32?B+1|0:B,i[I>>2]=A?0:g,i[I+4>>2]=A?0:C)),A}function ZI(A){var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0;for(I=32,g=1;a|=(B=o[(C=I-2|0)+A|0])-(Q=o[C+2912|0])>>8&(I=((i=o[2912+(I=I-1|0)|0])^(E=o[A+I|0]))-1>>8&g)|E-i>>8&g,g=I&(B^Q)-1>>8,I=C;);return!!(255&a)}function TI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?!!(B|Q)&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,2)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function $I(A){var I=0;return i[32+(A|=0)>>2]=0,i[A+36>>2]=0,I=i[8809],i[A>>2]=i[8808],i[A+4>>2]=I,I=i[8811],i[A+8>>2]=i[8810],i[A+12>>2]=I,I=i[8813],i[A+16>>2]=i[8812],i[A+20>>2]=I,I=i[8815],i[A+24>>2]=i[8814],i[A+28>>2]=I,0}function Ag(A,I,g,C,B,Q,i){var o,E,a=0,_=0;return s=o=s+-64|0,a=-1,(E=g>>>0<16)&!C||CI(_=o+32|0,i,Q)||yA(o,35584,_,0)||(a=sI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o- -64|0,a}function Ig(A,I,g,C){var B,Q,i,o,E=0,_=0;return o=a(E=g>>>16|0,_=A>>>16|0),E=(65535&(_=((i=a(B=65535&g,Q=65535&A))>>>16|0)+a(_,B)|0))+a(E,Q)|0,f=(a(I,g)+o|0)+a(A,C)+(_>>>16)+(E>>>16)|0,65535&i|E<<16}function gg(A,I,g){var C=0,B=0;if(!g)return 0;if(C=o[0|A])A:{for(;;){if((0|(B=o[0|I]))!=(0|C)|!B)break A;if(!(g=g-1|0))break A;if(I=I+1|0,C=o[A+1|0],A=A+1|0,!C)break}C=0}else C=0;return C-o[0|I]|0}function Cg(A,I,g,C,B,o,E){var a=0,_=0;if(a=C,!(1==(((a=(_=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+!!(0|(a=(63&a)<<26|_>>>6))|0)&o>>>0>(_=0-a|0)>>>0|1==(0|C)|C>>>0>1))return 0|pB[i[9199]](A,I,g,C,B,o,E);rC(),Q()}function Bg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=vI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function Qg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=fI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function ig(A,I,g,C,B,i,o){var E;if(s=E=s+-64|0,!C&g>>>0<4294967280)return CI(E+32|0,o,i)?o=-1:(o=-1,yA(E,35584,E+32|0,0)||(o=EI(A+16|0,A,I,g,C,B,E),XC(E,32))),s=E- -64|0,o;rC(),Q()}function og(A,I){for(var g=0,B=0,Q=0,i=0,E=0;B=A+Q|0,g=o[I+Q|0]+(o[0|B]+g|0)|0,C[0|B]=g,i=(B=1|Q)+A|0,g=o[I+B|0]+(o[0|i]+(g>>>8|0)|0)|0,C[0|i]=g,g=g>>>8|0,Q=Q+2|0,32!=(0|(E=E+2|0)););}function Eg(A,I){for(var g=0,B=0,Q=0,i=0,E=0;g=(o[0|(B=A+Q|0)]-o[I+Q|0]|0)+g|0,C[0|B]=g,g=(o[0|(i=(B=1|Q)+A|0)]-o[I+B|0]|0)+(g>>8)|0,C[0|i]=g,g>>=8,Q=Q+2|0,64!=(0|(E=E+2|0)););}function ag(A,I){A|=0;var g,B=0,Q=0,i=0;if(s=g=s-16|0,I|=0)for(;C[g+15|0]=0,Q=A+B|0,i=0|t(36800,g+15|0,0),C[0|Q]=i,(0|(B=B+1|0))!=(0|I););s=g+16|0}function _g(A,I,g,C,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<16)&!C||cC(o,Q,i)||(a=eI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o+32|0,a}function cg(A){var I,g;A:{if(!((A=(I=i[8924])+(g=A+7&-8)|0)>>>0<=I>>>0&&g)){if(A>>>0<=wB()<<16>>>0)break A;if(0|y(0|A))break A}return i[9404]=48,-1}return i[8924]=A,I}function tg(A,I){var g,B,Q;s=g=s-176|0,LA(B=g+96|0,I+80|0),b(Q=g+48|0,I,B),b(g,I+40|0,B),QI(A,g),QI(g+144|0,Q),C[A+31|0]=o[A+31|0]^o[g+144|0]<<7,s=g+176|0}function rg(A,I,g,C,B,Q,i,o,E,a){var _,c,t=0,r=0,e=0;return s=_=s-16|0,t=-1,_C(c=_+4|0)||(r=-1,e=_A(c,A,I,g,C,B,Q,i,o,E,a),t=Rg(c)?r:e),s=_+16|0,t}function eg(A,I,g,C,B,o,E,a,_,c,t,r){return g&&(i[g>>2]=32,i[g+4>>2]=0),!_&a>>>0<4294967264&!o&B>>>0<=4294967263||(rC(),Q()),0|pB[i[r>>2]](A,I,32,C,B,E,a,c,t)}function yg(A,I,g){var B=0;if(A>>>0>>0)return Ng(A,I,g);if(g)for(B=A+g|0,I=I+g|0;I=I-1|0,C[0|(B=B-1|0)]=o[0|I],g=g-1|0;);return A}function sg(A,I,g,C,B,i,o){var E,a=0;if(s=E=s-32|0,!C&g>>>0<4294967280)return a=-1,cC(E,i,o)||(a=aI(A+16|0,A,I,g,C,B,E),XC(E,32)),s=E+32|0,a;rC(),Q()}function hg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?eI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function Dg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?sI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function fg(A,I,g,C,B,Q,o,E,a,_,c){return!C&g>>>0>4294967263|C|!E&o>>>0>4294967263|E?-1:0|pB[i[c>>2]](A,I,g,B,32,Q,o,a,_)}function pg(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=wA(A,35664,C,0)),s=C+32|0,0|B}function wg(A,I){var g;return I|=0,s=g=s+-64|0,j(A|=0,g),SA(A=A+208|0,g,64,0),j(A,I),XC(g,64),s=g- -64|0,0}function ng(A,I,g,C){var B;return I|=0,g|=0,C|=0,s=B=s+-64|0,j(A|=0,B),A=w(I,g,B,64,0,C,1),s=B- -64|0,0|A}function kg(A,I){var g,C,B;b(A,I,g=I+120|0),b(A+40|0,C=I+40|0,B=I+80|0),b(A+80|0,B,g),b(A+120|0,I,C)}function Fg(A,I,g,C,B,Q,i){return 0|TI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)}function Sg(A,I){var g;return I|=0,s=g=s-32|0,JA(A|=0,g),UA(A=A+104|0,g,32,0),JA(A,I),XC(g,32),s=g+32|0,0}function Ng(A,I,g){var B=0;if(g)for(B=A;C[0|B]=o[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);return A}function Gg(A,I,g,C,B,Q){var i;return s=i=s-32|0,wA(i,B,Q,0),A=oC(A,I,g,C,B+16|0,0,0,i),XC(i,32),s=i+32|0,A}function Mg(A){for(A|=0;ag(A,32),C[A+31|0]=31&o[A+31|0],!ZI(A)||GI(A,32););}function Kg(A,I,g){var C;return I|=0,g|=0,s=C=s+-64|0,j(A|=0,C),A=U(I,C,64,0,g,1),s=C- -64|0,0|A}function Ug(A,I,g,C,B){var Q;return s=Q=s-32|0,wA(Q,C,B,0),A=DC(A,I,g,C+16|0,Q),XC(Q,32),s=Q+32|0,A}function bg(A,I,g){var B=0;if(g)for(B=A;C[0|B]=I,B=B+1|0,g=g-1|0;);return A}function Hg(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(r(1366,1279,107,1123),Q()),0|AA(A,I,255&g)}function Yg(A,I,g,C,B,Q,i){return 0|aI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function Jg(A,I,g,C,B,Q,i){return 0|eI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function dg(A,I,g,C,B,Q,i){return 0|EI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function mg(A,I,g,C,B,o,E,a){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,o,E,a)}function lg(A,I,g,C,B,Q,i){return 0|sI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function ug(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,0,0,o)}function xg(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9199]](A,I,g,C,B,0,o)}function vg(A,I,g,C,B,Q){return w(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0}function Rg(A){var I;return(I=i[A>>2])&&BA(I),i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function Lg(A,I){var g=0;return(-1>>>(g=31&I)&A)<>>A}function Pg(A,I,g,C,B,Q){return 0|vI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function qg(A,I,g,C,B,Q){return 0|fI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function zg(A,I,g,C,B,Q){return 0|Gg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function jg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9197]](A,I,g,C,B)}function Xg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9196]](A,I,g,C,B)}function Og(A,I,g,C,B,o){1==(0|C)|C>>>0>1&&(rC(),Q()),pB[i[9199]](A,I,g,C,B,1,o)}function Wg(A,I,g,C,B){return 0|U(A|=0,I|=0,g|=0,C|=0,B|=0,0)}function Vg(A,I,g,C,B){return 0|hC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Zg(A,I,g,C,B){return 0|fC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Tg(A,I,g,C,B){return 0|Ug(A|=0,I|=0,g|=0,C|=0,B|=0)}function $g(){var A;s=A=s-16|0,C[A+15|0]=0,t(36836,A+15|0,0),s=A+16|0}function AC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,20),0}function IC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,12),0}function gC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,8),0}function CC(A,I,g,C){return 0|FI(A|=0,I|=0,g|=0,C|=0)}function BC(A,I,g,C){return 0|SC(A|=0,I|=0,g|=0,C|=0)}function QC(A,I,g,C){return 0|SA(A|=0,I|=0,g|=0,C|=0)}function iC(A,I,g,C){return 0|eA(A|=0,I|=0,g|=0,C|=0)}function oC(A,I,g,C,B,Q,o,E){return 0|pB[i[8933]](A,I,g,C,B,Q,o,E)}function EC(A,I,g,C){return 0|dC(A|=0,I|=0,g|=0,C|=0)}function aC(A,I,g,C,B,Q){return 0|pB[i[8933]](A,I,g,C,B,0,0,Q)}function _C(A){return i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function cC(A,I,g){return 0|pg(A|=0,I|=0,g|=0)}function tC(A,I,g){return 0|CI(A|=0,I|=0,g|=0)}function rC(){var A;(A=i[9538])&&pB[0|A](),DB(),Q()}function eC(A,I,g){return 0|Hg(A|=0,I|=0,g|=0)}function yC(A,I,g){return 0|iI(A|=0,I|=0,g|=0)}function sC(A,I){return A|=0,ag(I|=0,32),0|pC(A,I)}function hC(A,I,g,C,B){return 0|pB[i[8925]](A,I,g,C,B)}function DC(A,I,g,C,B){return 0|pB[i[8932]](A,I,g,C,B)}function fC(A,I,g,C,B){return 0|pB[i[8926]](A,I,g,C,B)}function pC(A,I){return A|=0,I|=0,0|pB[i[8931]](A,I)}function wC(A,I){return A|=0,I|=0,0|pB[i[8927]](A,I)}function nC(A,I){return A|=0,I|=0,0|pB[i[8929]](A,I)}function kC(A,I,g,C,B,Q,i){return lA(A,I,g,C,B,Q,i)}function FC(A){return A?31-_(A-1^A)|0:32}function SC(A,I,g,C){return 0|pB[i[8928]](A,I,g,C)}function NC(A,I){return 0|qI(A|=0,I|=0,32)}function GC(A,I){return 0|qI(A|=0,I|=0,64)}function MC(A,I,g){n(A|=0,I|=0,g|=0)}function KC(A,I){return 0|pC(A|=0,I|=0)}function UC(A,I){return 0|sC(A|=0,I|=0)}function bC(A,I,g,C){return BI(A,I,g,C,1)}function HC(A,I,g,C){return wI(A,I,g,C,1)}function YC(A,I,g,C){return wI(A,I,g,C,2)}function JC(A,I,g,C){return BI(A,I,g,C,2)}function dC(A,I,g,C){return SA(A,I,g,C),0}function mC(A,I,g,C){return UA(A,I,g,C),0}function lC(A,I,g,C){return WA(A,I,g,C)}function uC(A){return SI(A|=0),0}function xC(){return-2147483648}function vC(){return 1073741824}function RC(){return 268435456}function LC(){return 33554432}function PC(A){ag(A|=0,32)}function qC(){return 67108864}function zC(A){ag(A|=0,16)}function jC(){return 16777216}function XC(A,I){bg(A,0,I)}function OC(){return 1564}function WC(){return 1338}function VC(){return 8192}function ZC(){return 384}function TC(){return 256}function $C(){return 416}function AB(){return 128}function IB(){return 208}function gB(){return 64}function CB(){return 16}function BB(){return 32}function QB(){return-65}function iB(){return-33}function oB(){return 48}function EB(){return-17}function aB(){return 12}function _B(){return 24}function cB(){return-1}function tB(){return 2}function rB(){return 3}function eB(){return 8}function yB(){return 1}function sB(){return 4}function hB(){return 0}function DB(){e(),Q()}B(I=o,1024,"Li8wMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egBqcwByYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAYXJnb24yaWQsYXJnb24yaQAkYXJnb24yaQAkYXJnb24yaWQAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwBzb2RpdW0vY29kZWNzLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2JsYWtlMmItcmVmLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2dlbmVyaWNoYXNoX2JsYWtlMmIuYwB4MjU1MTlibGFrZTJiAGJ1Zl9sZW4gPD0gU0laRV9NQVgAb3V0bGVuIDw9IFVJTlQ4X01BWABTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTACRhcmdvbjJpJHY9ACRhcmdvbjJpZCR2PQBjdXJ2ZTI1NTE5AGVkMjU1MTkAaG1hY3NoYTUxMjI1NgBjdXJ2ZTI1NTE5eHNhbHNhMjBwb2x5MTMwNQBzb2RpdW1fYmluMmJhc2U2NABzaXBoYXNoMjQAc2hhNTEyAHhzYWxzYTIwADEuMC4yMAAkYXJnb24yaSQAJGFyZ29uMmlkJAAkNyQAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4="),B(I,1680,"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"),B(I,1728,"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/"),B(I,2720,"AQ=="),B(I,2752,"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="),B(I,2943,"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"),B(I,33964,"AQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCg=="),B(I,34016,"M03tAJGqVv82JjP/8YBl/yl5Sv/sTpsAqZdp/pwpSADCZq//zqJl/wAAAAAAAAAAGy57ARKo/f/Tr5f+w9tgADh2vv7+0fX/mWR+/uiBFf81uPL/x6Td"),B(I,34144,"AQ=="),B(I,34176,"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4KZykpFPwv0kaFCrcnJskmXDghGy7tKsRa/G0sTd+zlZ0TDThT3mOvi1RzCmWosnc8uwpqduau7UcuycKBOzWCFIUscpJkA/FMoei/ogEwQrxLZhqokZf40HCLS8IwvlQGo1FsxxhS79YZ6JLREKllVSQGmdYqIHFXhTUO9LjRuzJwoGoQyNDSuBbBpBlTq0FRCGw3Hpnrjt9Md0gnqEib4bW8sDRjWsnFswwcOcuKQeNKqthOc+Njd0/KnFujuLLW828uaPyy713ugo90YC8XQ29jpXhyq/ChFHjIhOw5ZBoIAseMKB5jI/r/vpDpvYLe62xQpBV5xrL3o/m+K1Ny4/J4ccacYSbqzj4nygfCwCHHuIbRHuvgzdZ92up40W7uf0999bpvF3KqZ/AGppjIosV9YwquDfm+BJg/ERtHHBM1C3EbhH0EI/V32yiTJMdAe6vKMry+yRUKvp48TA0QnMRnHUO2Qj7LvtTFTCp+ZfycKX9Z7PrWOqtvy18XWEdKjBlEbIA="),B(I,35184,"7dP1XBpjEljWnPei3vneFA=="),B(I,35215,"EA=="),B(I,35232,"Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgA=="),B(I,35600,"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB"),B(I,35696,"EJUBAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQ=="),B(I,35744,"xmNjpfh8fITud3eZ9nt7jf/y8g3Wa2u93m9vsZHFxVRgMDBQAgEBA85nZ6lWKyt95/7+GbXX12JNq6vm7HZ2mo/KykUfgoKdicnJQPp9fYfv+voVsllZ645HR8n78PALQa2t7LPU1GdfoqL9Ra+v6iOcnL9TpKT35HJylpvAwFt1t7fC4f39HD2Tk65MJiZqbDY2Wn4/P0H19/cCg8zMT2g0NFxRpaX00eXlNPnx8QjicXGTq9jYc2IxMVMqFRU/CAQEDJXHx1JGIyNlncPDXjAYGCg3lpahCgUFDy+amrUOBwcJJBISNhuAgJvf4uI9zevrJk4nJ2l/srLN6nV1nxIJCRsdg4OeWCwsdDQaGi42Gxst3G5usrRaWu5boKD7pFJS9nY7O0231tZhfbOzzlIpKXvd4+M+Xi8vcROEhJemU1P1udHRaAAAAADB7e0sQCAgYOP8/B95sbHItltb7dRqar6Ny8tGZ76+2XI5OUuUSkremExM1LBYWOiFz89Ku9DQa8Xv7ypPqqrl7fv7FoZDQ8WaTU3XZjMzVRGFhZSKRUXP6fn5EAQCAgb+f3+BoFBQ8Hg8PEQln5+6S6io46JRUfNdo6P+gEBAwAWPj4o/kpKtIZ2dvHA4OEjx9fUEY7y833e2tsGv2tp1QiEhYyAQEDDl//8a/fPzDr/S0m2Bzc1MGAwMFCYTEzXD7Owvvl9f4TWXl6KIRETMLhcXOZPExFdVp6fy/H5+gno9PUfIZGSsul1d5zIZGSvmc3OVwGBgoBmBgZieT0/Ro9zcf0QiImZUKip+O5CQqwuIiIOMRkbKx+7uKWu4uNMoFBQ8p97eebxeXuIWCwsdrdvbdtvg4DtkMjJWdDo6ThQKCh6SSUnbDAYGCkgkJGy4XFzkn8LCXb3T025DrKzvxGJipjmRkagxlZWk0+TkN/J5eYvV5+cyi8jIQ243N1nabW23AY2NjLHV1WScTk7SSamp4NhsbLSsVlb68/T0B8/q6iXKZWWv9Hp6jkeurukQCAgYb7q61fB4eIhKJSVvXC4ucjgcHCRXpqbxc7S0x5fGxlHL6Ogjod3dfOh0dJw+Hx8hlktL3WG9vdwNi4uGD4qKheBwcJB8Pj5CcbW1xMxmZqqQSEjYBgMDBff29gEcDg4SwmFho2o1NV+uV1f5abm50BeGhpGZwcFYOh0dJyeenrnZ4eE46/j4EyuYmLMiEREz0mlpu6nZ2XAHjo6JM5SUpy2bm7Y8Hh4iFYeHksnp6SCHzs5JqlVV/1AoKHil3996A4yMj1mhofgJiYmAGg0NF2W/v9rX5uYxhEJCxtBoaLiCQUHDKZmZsFotLXceDw8Re7Cwy6hUVPxtu7vWLBYWOgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAAR");var fB,pB=(fB=[null,function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-128&-64,i[E>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+4>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+8>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+12>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=_>>>8&1048575,i[E+40>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+44>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+48>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+80|0]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+52>>2]=Q,vA(E,I,g,B),gI(E,A),s=a,0},function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-192&-64,i[E+64>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+68>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+72>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+76>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+84>>2]=0,i[E+88>>2]=0,i[E+92>>2]=0,i[E+96>>2]=0,i[E+100>>2]=0,i[E+80>>2]=_>>>8&1048575,i[E+104>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+108>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+112>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+144|0]=0,i[E+120>>2]=0,i[E+124>>2]=0,i[E+116>>2]=Q,vA(Q=E- -64|0,I,g,B),gI(Q,I=E+48|0),A=oI(A,I),s=a,0|A},function(A,I){var g;return I|=0,i[(A|=0)>>2]=67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),i[A+4>>2]=(o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6&66076671,g=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[A+44>>2]=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[A+48>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,C[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I,0},function(A,I,g,C){return vA(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return gI(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,nA=0,kA=0;for(s=B=s-368|0;D=(a=o[g+Q|0])^o[0|(c=Q+34112|0)]|D,h=a^o[c+192|0]|h,y=a^o[c+160|0]|y,e=a^o[c+128|0]|e,_=a^o[c+96|0]|_,t=a^o[c- -64|0]|t,E=a^o[c+32|0]|E,31!=(0|(Q=Q+1|0)););if(Q=-1,!(256&((255&((a=127^(c=127&o[g+31|0]))|h))-1|(255&(a|y))-1|(255&(a|e))-1|(255&(87^c|_))-1|(255&(t|c))-1|(255&(E|c))-1|(255&(c|D))-1))){for(Q=I,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+360>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[B+364>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[B+352>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[B+356>>2]=I,E=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,I=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[B+336>>2]=I,i[B+340>>2]=E,E=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[B+344>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[B+348>>2]=E,C[B+336|0]=248&I,C[B+367|0]=63&o[B+367|0]|64,fA(B+288|0,g),i[B+260>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+208>>2]=0,i[B+212>>2]=0,i[B+216>>2]=0,i[B+220>>2]=0,i[B+224>>2]=0,i[B+228>>2]=0,I=i[B+308>>2],i[B+160>>2]=i[B+304>>2],i[B+164>>2]=I,I=i[B+316>>2],i[B+168>>2]=i[B+312>>2],i[B+172>>2]=I,I=i[B+324>>2],i[B+176>>2]=i[B+320>>2],i[B+180>>2]=I,i[B+244>>2]=0,i[B+248>>2]=0,i[B+240>>2]=1,i[B+252>>2]=0,i[B+256>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,i[B+200>>2]=0,i[B+204>>2]=0,I=i[B+292>>2],i[B+144>>2]=i[B+288>>2],i[B+148>>2]=I,I=i[B+300>>2],i[B+152>>2]=i[B+296>>2],i[B+156>>2]=I,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,i[B+128>>2]=0,i[B+132>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+96>>2]=1,i[B+108>>2]=0,i[B+112>>2]=0,g=254;Z=i[B+276>>2],a=i[B+180>>2],T=i[B+96>>2],$=i[B+192>>2],AA=i[B+144>>2],IA=i[B+240>>2],gA=i[B+100>>2],CA=i[B+196>>2],BA=i[B+148>>2],QA=i[B+244>>2],U=i[B+104>>2],iA=i[B+200>>2],H=i[B+152>>2],oA=i[B+248>>2],d=i[B+108>>2],EA=i[B+204>>2],m=i[B+156>>2],aA=i[B+252>>2],Y=i[B+112>>2],_A=i[B+208>>2],M=i[B+160>>2],cA=i[B+256>>2],D=i[B+116>>2],tA=i[B+212>>2],r=i[B+164>>2],rA=i[B+260>>2],h=i[B+120>>2],eA=i[B+216>>2],y=i[B+168>>2],yA=i[B+264>>2],e=i[B+124>>2],sA=i[B+220>>2],_=i[B+172>>2],hA=i[B+268>>2],t=i[B+128>>2],DA=i[B+224>>2],E=i[B+176>>2],G=i[B+272>>2],pA=g,K=(F=(I=0-((I=V)^(V=o[(wA=B+336|0)+(g>>>3|0)|0]>>>(7&g)&1))|0)&((Q=i[B+132>>2])^(j=i[B+228>>2])))^Q,i[B+132>>2]=K,X=a^(S=I&(a^Z)),i[B+84>>2]=X-K,J=t^(w=I&(t^DA)),i[B+128>>2]=J,O=(N=I&(E^G))^E,i[B+80>>2]=O-J,u=e^(n=I&(e^sA)),i[B+124>>2]=u,nA=_^(k=I&(_^hA)),i[B+76>>2]=nA-u,x=h^(p=I&(h^eA)),i[B+120>>2]=x,kA=y^(c=I&(y^yA)),i[B+72>>2]=kA-x,v=D^(a=I&(D^tA)),i[B+116>>2]=v,L=r^(D=I&(r^rA)),i[B+68>>2]=L-v,P=Y^(h=I&(Y^_A)),i[B+112>>2]=P,l=M^(y=I&(M^cA)),i[B+64>>2]=l-P,q=d^(e=I&(d^EA)),i[B+108>>2]=q,W=m^(_=I&(m^aA)),i[B+60>>2]=W-q,z=U^(t=I&(U^iA)),i[B+104>>2]=z,d=H^(E=I&(H^oA)),i[B+56>>2]=d-z,U=gA^(Q=I&(gA^CA)),i[B+100>>2]=U,m=BA^(g=I&(BA^QA)),i[B+52>>2]=m-U,H=T^(Y=I&(T^$)),i[B+96>>2]=H,M=(I&=AA^IA)^AA,i[B+48>>2]=M-H,r=S^Z,F^=j,i[B+36>>2]=r-F,S=N^G,w^=DA,i[B+32>>2]=S-w,N=k^hA,n^=sA,i[B+28>>2]=N-n,k=c^yA,p^=eA,i[B+24>>2]=k-p,c=D^rA,a^=tA,i[B+20>>2]=c-a,D=y^cA,h^=_A,i[B+16>>2]=D-h,y=_^aA,e^=EA,i[B+12>>2]=y-e,_=E^oA,t^=iA,i[B+8>>2]=_-t,E=g^QA,Q^=CA,i[B+4>>2]=E-Q,g=I^IA,I=Y^$,i[B>>2]=g-I,i[B+276>>2]=r+F,i[B+272>>2]=S+w,i[B+268>>2]=n+N,i[B+264>>2]=p+k,i[B+260>>2]=a+c,i[B+256>>2]=h+D,i[B+248>>2]=_+t,i[B+244>>2]=Q+E,i[B+240>>2]=I+g,i[B+252>>2]=e+y,i[B+228>>2]=K+X,i[B+224>>2]=J+O,i[B+220>>2]=u+nA,i[B+216>>2]=x+kA,i[B+212>>2]=v+L,i[B+208>>2]=l+P,i[B+204>>2]=q+W,i[B+200>>2]=d+z,i[B+196>>2]=U+m,i[B+192>>2]=M+H,b(X=B+96|0,J=B+48|0,K=B+240|0),b(G=B+192|0,G,B),R(J,B),R(B,K),r=i[B+192>>2],F=i[B+96>>2],S=i[B+196>>2],w=i[B+100>>2],N=i[B+200>>2],n=i[B+104>>2],k=i[B+204>>2],p=i[B+108>>2],c=i[B+208>>2],a=i[B+112>>2],D=i[B+212>>2],h=i[B+116>>2],y=i[B+216>>2],e=i[B+120>>2],_=i[B+220>>2],t=i[B+124>>2],E=i[B+224>>2],Q=i[B+128>>2],g=i[B+228>>2],I=i[B+132>>2],i[B+180>>2]=g+I,i[B+176>>2]=Q+E,i[B+172>>2]=_+t,i[B+168>>2]=e+y,i[B+164>>2]=h+D,i[B+160>>2]=a+c,i[B+156>>2]=p+k,i[B+152>>2]=n+N,i[B+148>>2]=S+w,i[B+144>>2]=r+F,i[B+228>>2]=I-g,i[B+224>>2]=Q-E,i[B+220>>2]=t-_,i[B+216>>2]=e-y,i[B+212>>2]=h-D,i[B+208>>2]=a-c,i[B+204>>2]=p-k,i[B+200>>2]=n-N,i[B+196>>2]=w-S,i[B+192>>2]=F-r,b(K,B,J),u=i[B+52>>2],p=i[B+4>>2],x=i[B+56>>2],c=i[B+8>>2],v=i[B+64>>2],y=i[B+16>>2],P=i[B+60>>2],e=i[B+12>>2],q=i[B+72>>2],_=i[B+24>>2],z=i[B+68>>2],t=i[B+20>>2],U=i[B+80>>2],E=i[B+32>>2],H=i[B+76>>2],Q=i[B+28>>2],j=i[B+84>>2],I=i[B+36>>2],O=i[B+48>>2],g=i[B>>2]-O|0,i[B>>2]=g,I=I-j|0,i[B+36>>2]=I,Y=Q-H|0,i[B+28>>2]=Y,M=E-U|0,i[B+32>>2]=M,a=t-z|0,i[B+20>>2]=a,D=_-q|0,i[B+24>>2]=D,h=e-P|0,i[B+12>>2]=h,y=y-v|0,i[B+16>>2]=y,e=c-x|0,i[B+8>>2]=e,E=p-u|0,i[B+4>>2]=E,R(G,G),I=Ig(I,I>>31,121666,0),Q=f,W=I,I=Ig((33554431&(Q=(r=I+16777216|0)>>>0<16777216?Q+1|0:Q))<<7|r>>>25,Q>>25,19,0),t=f,Q=I,I=Ig(g,g>>31,121666,0),l=f+t|0,I=I>>>0>(Q=Q+I|0)>>>0?l+1|0:l,g=(_=Q+33554432|0)>>>0<33554432?I+1|0:I,F=Q-(-67108864&_)|0,i[B+96>>2]=F,t=Ig(E,E>>31,121666,0),Q=f,Q=(E=t+16777216|0)>>>0<16777216?Q+1|0:Q,S=(t-(-33554432&E)|0)+((67108863&g)<<6|_>>>26)|0,i[B+100>>2]=S,l=(I=Q)>>25,Q=(33554431&I)<<7|E>>>25,g=Ig(e,e>>31,121666,0)+Q|0,I=l+f|0,I=g>>>0>>0?I+1|0:I,t=(w=g+33554432|0)>>>0<33554432?I+1|0:I,N=g-(-67108864&w)|0,i[B+104>>2]=N,Q=Ig(y,y>>31,121666,0),E=f,g=Ig(h,h>>31,121666,0),I=f,L=Q,d=g,Q=(33554431&(I=(n=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|n>>>25,I=(I>>25)+E|0,I=(g=L+Q|0)>>>0>>0?I+1|0:I,E=(k=g+33554432|0)>>>0<33554432?I+1|0:I,p=g-(-67108864&k)|0,i[B+112>>2]=p,Q=Ig(D,D>>31,121666,0),_=f,g=Ig(a,a>>31,121666,0),I=f,L=Q,m=g,Q=(33554431&(I=(c=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+_|0,I=(g=L+Q|0)>>>0>>0?I+1|0:I,Q=(a=g+33554432|0)>>>0<33554432?I+1|0:I,D=g-(-67108864&a)|0,i[B+120>>2]=D,_=Ig(M,M>>31,121666,0),e=f,g=Ig(Y,Y>>31,121666,0),I=f,M=g,g=(33554431&(I=(h=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|h>>>25,I=(I>>25)+e|0,I=g>>>0>(_=g+_|0)>>>0?I+1|0:I,g=(y=_+33554432|0)>>>0<33554432?I+1|0:I,e=_-(-67108864&y)|0,i[B+128>>2]=e,_=(t=d+((67108863&t)<<6|w>>>26)|0)-(-33554432&n)|0,i[B+108>>2]=_,t=(E=m+((67108863&E)<<6|k>>>26)|0)-(-33554432&c)|0,i[B+116>>2]=t,E=(I=M+((67108863&Q)<<6|a>>>26)|0)-(-33554432&h)|0,i[B+124>>2]=E,g=(g=W+((67108863&g)<<6|y>>>26)|0)-(-33554432&r)|0,i[B+132>>2]=g,R(I=B+144|0,I),i[B+84>>2]=g+j,i[B+80>>2]=e+U,i[B+76>>2]=E+H,i[B+72>>2]=D+q,i[B+68>>2]=t+z,i[B+64>>2]=p+v,i[B+60>>2]=_+P,i[B+56>>2]=N+x,i[B+52>>2]=S+u,i[B+48>>2]=F+O,g=pA-1|0,b(X,B+288|0,G),b(G,B,J),pA;);D=i[B+144>>2],F=i[B+240>>2],h=i[B+148>>2],S=i[B+244>>2],y=i[B+152>>2],w=i[B+248>>2],e=i[B+156>>2],N=i[B+252>>2],_=i[B+160>>2],n=i[B+256>>2],t=i[B+164>>2],k=i[B+260>>2],E=i[B+168>>2],p=i[B+264>>2],Q=i[B+172>>2],c=i[B+268>>2],g=i[B+176>>2],a=i[B+272>>2],r=0-V|0,I=i[B+276>>2],i[B+276>>2]=r&(I^i[B+180>>2])^I,i[B+272>>2]=a^r&(g^a),i[B+268>>2]=c^r&(Q^c),i[B+264>>2]=p^r&(E^p),i[B+260>>2]=k^r&(t^k),i[B+256>>2]=n^r&(_^n),i[B+252>>2]=N^r&(e^N),i[B+248>>2]=w^r&(y^w),i[B+244>>2]=S^r&(h^S),i[B+240>>2]=F^r&(D^F),F=i[B+192>>2],D=i[B+96>>2],S=i[B+196>>2],h=i[B+100>>2],w=i[B+200>>2],y=i[B+104>>2],N=i[B+204>>2],e=i[B+108>>2],n=i[B+208>>2],_=i[B+112>>2],k=i[B+212>>2],t=i[B+116>>2],p=i[B+216>>2],E=i[B+120>>2],c=i[B+220>>2],Q=i[B+124>>2],a=i[B+224>>2],g=i[B+128>>2],I=i[B+228>>2],i[B+228>>2]=r&(I^i[B+132>>2])^I,i[B+224>>2]=a^r&(g^a),i[B+220>>2]=c^r&(Q^c),i[B+216>>2]=p^r&(E^p),i[B+212>>2]=k^r&(t^k),i[B+208>>2]=n^r&(_^n),i[B+204>>2]=N^r&(e^N),i[B+200>>2]=w^r&(y^w),i[B+196>>2]=S^r&(h^S),i[B+192>>2]=F^r&(D^F),LA(G,G),b(K,K,G),QI(A,K),XC(wA,32),Q=0}return s=B+368|0,0|Q},function(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S;return I|=0,s=g=s-304|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],I=o[I+31|0],C[0|A]=248&o[0|A],C[A+31|0]=63&I|64,nA(g+48|0,A),I=i[g+128>>2],B=i[g+88>>2],Q=i[g+132>>2],E=i[g+92>>2],a=i[g+136>>2],_=i[g+96>>2],c=i[g+140>>2],t=i[g+100>>2],r=i[g+144>>2],e=i[g+104>>2],y=i[g+148>>2],h=i[g+108>>2],D=i[g+152>>2],f=i[g+112>>2],p=i[g+156>>2],w=i[g+116>>2],n=i[g+160>>2],k=i[g+120>>2],F=i[g+124>>2],S=i[g+164>>2],i[g+292>>2]=F+S,i[g+288>>2]=n+k,i[g+284>>2]=p+w,i[g+280>>2]=D+f,i[g+276>>2]=y+h,i[g+272>>2]=r+e,i[g+268>>2]=c+t,i[g+264>>2]=a+_,i[g+260>>2]=Q+E,i[g+256>>2]=I+B,i[g+244>>2]=S-F,i[g+240>>2]=n-k,i[g+236>>2]=p-w,i[g+232>>2]=D-f,i[g+228>>2]=y-h,i[g+224>>2]=r-e,i[g+220>>2]=c-t,i[g+216>>2]=a-_,i[g+212>>2]=Q-E,i[g+208>>2]=I-B,LA(I=g+208|0,I),b(g,g+256|0,I),QI(A,g),s=g+304|0,0},function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,(I|=0)|(g|=0)){a=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=a,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=a,a=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=a,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=a,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=Q,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;AC(A,E+96|0,E,0),B=o[E+104|0]+1|0,C[E+104|0]=B,B=o[E+105|0]+(B>>>8|0)|0,C[E+105|0]=B,B=o[E+106|0]+(B>>>8|0)|0,C[E+106|0]=B,B=o[E+107|0]+(B>>>8|0)|0,C[E+107|0]=B,B=o[E+108|0]+(B>>>8|0)|0,C[E+108|0]=B,B=o[E+109|0]+(B>>>8|0)|0,C[E+109|0]=B,B=o[E+110|0]+(B>>>8|0)|0,C[E+110|0]=B,C[E+111|0]=o[E+111|0]+(B>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(B=0,AC(E+32|0,E+96|0,E,0),a=3&I,Q=0,!g&I>>>0>=4|g)for(g=60&I,I=0;_=c=E+32|0,C[A+Q|0]=o[_+Q|0],C[(t=1|Q)+A|0]=o[_+t|0],C[(_=2|Q)+A|0]=o[_+c|0],C[(_=3|Q)+A|0]=o[_+(E+32|0)|0],Q=Q+4|0,(0|g)!=(0|(I=I+4|0)););if(a)for(;C[A+Q|0]=o[(E+32|0)+Q|0],Q=Q+1|0,(0|a)!=(0|(B=B+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},function(A,I,g,B,Q,E,a,_){A|=0,I|=0,Q|=0,E|=0,a|=0,_|=0;var c,t=0;if(s=c=s-112|0,(g|=0)|(B|=0)){t=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,i[c+24>>2]=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,i[c+28>>2]=t,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[c+16>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[c+20>>2]=t,t=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,i[c>>2]=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,i[c+4>>2]=t,t=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,i[c+8>>2]=o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,i[c+12>>2]=t,_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[c+96>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[c+100>>2]=_,C[c+104|0]=E,C[c+111|0]=a>>>24,C[c+110|0]=a>>>16,C[c+109|0]=a>>>8,C[c+108|0]=a,C[c+107|0]=(16777215&a)<<8|E>>>24,C[c+106|0]=(65535&a)<<16|E>>>16,C[c+105|0]=(255&a)<<24|E>>>8;A:{if(!B&g>>>0>=64|B){for(;;){for(_=0,AC(c+32|0,c+96|0,c,0);E=c+32|0,C[A+_|0]=o[E+_|0]^o[I+_|0],C[(Q=1|_)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(_=_+2|0)););if(Q=o[c+104|0]+1|0,C[c+104|0]=Q,Q=o[c+105|0]+(Q>>>8|0)|0,C[c+105|0]=Q,Q=o[c+106|0]+(Q>>>8|0)|0,C[c+106|0]=Q,Q=o[c+107|0]+(Q>>>8|0)|0,C[c+107|0]=Q,Q=o[c+108|0]+(Q>>>8|0)|0,C[c+108|0]=Q,Q=o[c+109|0]+(Q>>>8|0)|0,C[c+109|0]=Q,Q=o[c+110|0]+(Q>>>8|0)|0,C[c+110|0]=Q,C[c+111|0]=o[c+111|0]+(Q>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(!(g|B))break A}if(_=0,AC(c+32|0,c+96|0,c,0),E=1&g,1!=(0|g)|B)for(B=62&g,Q=0;a=c+32|0,C[A+_|0]=o[a+_|0]^o[I+_|0],C[(g=1|_)+A|0]=o[g+a|0]^o[I+g|0],_=_+2|0,(0|B)!=(0|(Q=Q+2|0)););E&&(C[A+_|0]=o[(c+32|0)+_|0]^o[I+_|0])}XC(c+32|0,64),XC(c,32)}return s=c+112|0,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-192&-32,P(E|=0,o|=0,a- -64|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a- -64|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a- -64|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);if((o=31&i)&&(bg((c=a+32|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a- -64|0)),E=32,o=0,B>>>0<32)Q=0;else for(;m(A+o|0,C+o|0,a- -64|0),Q=E,(E=(o=E)+32|0)>>>0<=B>>>0;);return(o=31&B)&&(bg((E=a+32|0)|o,0,32-o|0),Ng(E,C+Q|0,o),m(a,E,a- -64|0),Ng(A+Q|0,a,o)),Y(I,g,i,B,a- -64|0),s=_,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-224&-32,P(E|=0,o|=0,a+96|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a+96|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a+96|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);(o=31&i)&&(bg((c=a- -64|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a+96|0));A:{I:{g:{C:{B:{if(A){if(E=32,g>>>0<32)break B;for(Q=0;d(A+Q|0,I+Q|0,a+96|0),Q=o=E,(E=o+32|0)>>>0<=g>>>0;);}else{if(Q=32,g>>>0<32)break g;for(E=0;d(a+32|0,I+E|0,a+96|0),E=o=Q,(Q=o+32|0)>>>0<=g>>>0;);}if(!(Q=31&g))break A;if(A)break C;break I}if(o=0,Q=g,!g)break A}x(A+o|0,I+o|0,Q,a+96|0);break A}if(o=0,Q=g,!g)break A}x(a+32|0,I+o|0,Q,a+96|0)}Y(a,B,i,g,a+96|0),o=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}o=oI(a,C);break A}o=NC(a,C)}return!A|!o||bg(A,0,g),s=_,0|o},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-528|0,G(_|=0,a|=0,c+400|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+400|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+416|0,y=c+432|0,h=c+448|0,e=c+464|0,D=c+480|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+520>>2]=i[D+8>>2],i[c+524>>2]=a,a=i[D+4>>2],i[c+512>>2]=i[D>>2],i[c+516>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+496|0,c+368|0,c+352|0),t=i[c+508>>2],i[D+8>>2]=i[c+504>>2],i[D+12>>2]=t,t=i[c+500>>2],i[D>>2]=i[c+496>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+508>>2],i[e+8>>2]=i[c+504>>2],i[e+12>>2]=t,t=i[c+500>>2],i[e>>2]=i[c+496>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+508>>2],i[h+8>>2]=i[c+504>>2],i[h+12>>2]=t,t=i[c+500>>2],i[h>>2]=i[c+496>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+508>>2],i[y+8>>2]=i[c+504>>2],i[y+12>>2]=t,t=i[c+500>>2],i[y>>2]=i[c+496>>2],i[y+4>>2]=t,t=i[c+412>>2],i[c+248>>2]=i[c+408>>2],i[c+252>>2]=t,t=i[c+404>>2],i[c+240>>2]=i[c+400>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+508>>2],i[r+8>>2]=i[c+504>>2],i[r+12>>2]=t,t=i[c+500>>2],i[r>>2]=i[c+496>>2],i[r+4>>2]=t,t=i[c+524>>2],i[c+216>>2]=i[c+520>>2],i[c+220>>2]=t,t=i[c+412>>2],i[c+200>>2]=i[c+408>>2],i[c+204>>2]=t,t=i[c+516>>2],i[c+208>>2]=i[c+512>>2],i[c+212>>2]=t,t=i[c+404>>2],i[c+192>>2]=i[c+400>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+412>>2]=n^i[c+508>>2],i[c+408>>2]=i[c+504>>2]^w,i[c+404>>2]=i[c+500>>2]^p,i[c+400>>2]=i[c+496>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);if((_=15&E)&&(bg((r=c+384|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+384>>2],r=i[c+388>>2],y=i[c+392>>2],h=i[c+396>>2],a=i[c+492>>2],Q=i[c+488>>2],i[c+520>>2]=Q,i[c+524>>2]=a,e=i[c+476>>2],i[c+184>>2]=i[c+472>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+484>>2],Q=i[c+480>>2],i[c+512>>2]=Q,i[c+516>>2]=a,e=i[c+468>>2],i[c+176>>2]=i[c+464>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+496|0,c+176|0,c+160|0),a=i[c+508>>2],i[c+488>>2]=i[c+504>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+152>>2]=i[c+456>>2],i[c+156>>2]=a,a=i[c+476>>2],i[c+136>>2]=i[c+472>>2],i[c+140>>2]=a,a=i[c+500>>2],i[c+480>>2]=i[c+496>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+144>>2]=i[c+448>>2],i[c+148>>2]=a,a=i[c+468>>2],i[c+128>>2]=i[c+464>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+508>>2],i[c+472>>2]=i[c+504>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+120>>2]=i[c+440>>2],i[c+124>>2]=a,a=i[c+460>>2],i[c+104>>2]=i[c+456>>2],i[c+108>>2]=a,a=i[c+500>>2],i[c+464>>2]=i[c+496>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+112>>2]=i[c+432>>2],i[c+116>>2]=a,a=i[c+452>>2],i[c+96>>2]=i[c+448>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+508>>2],i[c+456>>2]=i[c+504>>2],i[c+460>>2]=a,a=i[c+428>>2],i[c+88>>2]=i[c+424>>2],i[c+92>>2]=a,a=i[c+444>>2],i[c+72>>2]=i[c+440>>2],i[c+76>>2]=a,a=i[c+500>>2],i[c+448>>2]=i[c+496>>2],i[c+452>>2]=a,a=i[c+420>>2],i[c+80>>2]=i[c+416>>2],i[c+84>>2]=a,a=i[c+436>>2],i[c+64>>2]=i[c+432>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+508>>2],i[c+440>>2]=i[c+504>>2],i[c+444>>2]=a,a=i[c+412>>2],i[c+56>>2]=i[c+408>>2],i[c+60>>2]=a,a=i[c+428>>2],i[c+40>>2]=i[c+424>>2],i[c+44>>2]=a,a=i[c+500>>2],i[c+432>>2]=i[c+496>>2],i[c+436>>2]=a,a=i[c+404>>2],i[c+48>>2]=i[c+400>>2],i[c+52>>2]=a,a=i[c+420>>2],i[c+32>>2]=i[c+416>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+508>>2],i[c+424>>2]=i[c+504>>2],i[c+428>>2]=a,a=i[c+524>>2],i[c+24>>2]=i[c+520>>2],i[c+28>>2]=a,a=i[c+412>>2],i[c+8>>2]=i[c+408>>2],i[c+12>>2]=a,a=i[c+500>>2],i[c+416>>2]=i[c+496>>2],i[c+420>>2]=a,a=i[c+516>>2],i[c+16>>2]=i[c+512>>2],i[c+20>>2]=a,a=i[c+404>>2],i[c>>2]=i[c+400>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+412>>2]=h^i[c+508>>2],i[c+408>>2]=y^i[c+504>>2],i[c+404>>2]=r^i[c+500>>2],i[c+400>>2]=_^i[c+496>>2]),r=16,a=0,B>>>0<16)_=0;else for(;X(A+a|0,C+a|0,c+400|0),_=r,(r=(a=r)+16|0)>>>0<=B>>>0;);return(Q=15&B)&&(bg((a=c+384|0)|Q,0,16-Q|0),Ng(a,C+_|0,Q),X(C=c+512|0,a,c+400|0),Ng(A+_|0,C,Q)),l(I,g,E,B,c+400|0),s=c+528|0,0},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-544|0,G(_|=0,a|=0,c+432|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+432|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+448|0,y=c+464|0,h=c+480|0,e=c+496|0,D=c+512|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+392>>2]=i[D+8>>2],i[c+396>>2]=a,a=i[D+4>>2],i[c+384>>2]=i[D>>2],i[c+388>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+528|0,c+368|0,c+352|0),t=i[c+540>>2],i[D+8>>2]=i[c+536>>2],i[D+12>>2]=t,t=i[c+532>>2],i[D>>2]=i[c+528>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+540>>2],i[e+8>>2]=i[c+536>>2],i[e+12>>2]=t,t=i[c+532>>2],i[e>>2]=i[c+528>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+540>>2],i[h+8>>2]=i[c+536>>2],i[h+12>>2]=t,t=i[c+532>>2],i[h>>2]=i[c+528>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+540>>2],i[y+8>>2]=i[c+536>>2],i[y+12>>2]=t,t=i[c+532>>2],i[y>>2]=i[c+528>>2],i[y+4>>2]=t,t=i[c+444>>2],i[c+248>>2]=i[c+440>>2],i[c+252>>2]=t,t=i[c+436>>2],i[c+240>>2]=i[c+432>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+540>>2],i[r+8>>2]=i[c+536>>2],i[r+12>>2]=t,t=i[c+532>>2],i[r>>2]=i[c+528>>2],i[r+4>>2]=t,t=i[c+396>>2],i[c+216>>2]=i[c+392>>2],i[c+220>>2]=t,t=i[c+444>>2],i[c+200>>2]=i[c+440>>2],i[c+204>>2]=t,t=i[c+388>>2],i[c+208>>2]=i[c+384>>2],i[c+212>>2]=t,t=i[c+436>>2],i[c+192>>2]=i[c+432>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+444>>2]=n^i[c+540>>2],i[c+440>>2]=i[c+536>>2]^w,i[c+436>>2]=i[c+532>>2]^p,i[c+432>>2]=i[c+528>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);(_=15&E)&&(bg((r=c+416|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+416>>2],r=i[c+420>>2],y=i[c+424>>2],h=i[c+428>>2],a=i[c+524>>2],Q=i[c+520>>2],i[c+392>>2]=Q,i[c+396>>2]=a,e=i[c+508>>2],i[c+184>>2]=i[c+504>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+516>>2],Q=i[c+512>>2],i[c+384>>2]=Q,i[c+388>>2]=a,e=i[c+500>>2],i[c+176>>2]=i[c+496>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+528|0,c+176|0,c+160|0),a=i[c+540>>2],i[c+520>>2]=i[c+536>>2],i[c+524>>2]=a,a=i[c+492>>2],i[c+152>>2]=i[c+488>>2],i[c+156>>2]=a,a=i[c+508>>2],i[c+136>>2]=i[c+504>>2],i[c+140>>2]=a,a=i[c+532>>2],i[c+512>>2]=i[c+528>>2],i[c+516>>2]=a,a=i[c+484>>2],i[c+144>>2]=i[c+480>>2],i[c+148>>2]=a,a=i[c+500>>2],i[c+128>>2]=i[c+496>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+540>>2],i[c+504>>2]=i[c+536>>2],i[c+508>>2]=a,a=i[c+476>>2],i[c+120>>2]=i[c+472>>2],i[c+124>>2]=a,a=i[c+492>>2],i[c+104>>2]=i[c+488>>2],i[c+108>>2]=a,a=i[c+532>>2],i[c+496>>2]=i[c+528>>2],i[c+500>>2]=a,a=i[c+468>>2],i[c+112>>2]=i[c+464>>2],i[c+116>>2]=a,a=i[c+484>>2],i[c+96>>2]=i[c+480>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+540>>2],i[c+488>>2]=i[c+536>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+88>>2]=i[c+456>>2],i[c+92>>2]=a,a=i[c+476>>2],i[c+72>>2]=i[c+472>>2],i[c+76>>2]=a,a=i[c+532>>2],i[c+480>>2]=i[c+528>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+80>>2]=i[c+448>>2],i[c+84>>2]=a,a=i[c+468>>2],i[c+64>>2]=i[c+464>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+540>>2],i[c+472>>2]=i[c+536>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+56>>2]=i[c+440>>2],i[c+60>>2]=a,a=i[c+460>>2],i[c+40>>2]=i[c+456>>2],i[c+44>>2]=a,a=i[c+532>>2],i[c+464>>2]=i[c+528>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+48>>2]=i[c+432>>2],i[c+52>>2]=a,a=i[c+452>>2],i[c+32>>2]=i[c+448>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+540>>2],i[c+456>>2]=i[c+536>>2],i[c+460>>2]=a,a=i[c+396>>2],i[c+24>>2]=i[c+392>>2],i[c+28>>2]=a,a=i[c+444>>2],i[c+8>>2]=i[c+440>>2],i[c+12>>2]=a,a=i[c+532>>2],i[c+448>>2]=i[c+528>>2],i[c+452>>2]=a,a=i[c+388>>2],i[c+16>>2]=i[c+384>>2],i[c+20>>2]=a,a=i[c+436>>2],i[c>>2]=i[c+432>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+444>>2]=h^i[c+540>>2],i[c+440>>2]=y^i[c+536>>2],i[c+436>>2]=r^i[c+532>>2],i[c+432>>2]=_^i[c+528>>2]);A:{I:{g:{C:{B:{if(A){if(r=16,g>>>0<16)break B;for(_=0;O(A+_|0,I+_|0,c+432|0),_=a=r,(r=a+16|0)>>>0<=g>>>0;);}else{if(_=16,g>>>0<16)break g;for(r=0;O(c+528|0,I+r|0,c+432|0),r=a=_,(_=a+16|0)>>>0<=g>>>0;);}if(!(_=15&g))break A;if(A)break C;break I}if(a=0,!(_=g))break A}Z(A+a|0,I+a|0,_,c+432|0);break A}if(a=0,!(_=g))break A}Z(c+528|0,I+a|0,_,c+432|0)}l(c+384|0,B,E,g,c+432|0),a=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}a=oI(c+384|0,C);break A}a=NC(c+384|0,C)}return!A|!a||bg(A,0,g),s=c+544|0,0|a},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+52>>2]=0,i[Q+44>>2]=B,i[Q+56>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+60>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+44>>2]=B,i[Q+52>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+56>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,i[Q+60>>2]=o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B,Q,E,a){var _;return A|=0,I|=0,B|=0,Q|=0,E|=0,a|=0,s=_=s+-64|0,(g|=0)|(C|=0)&&(i[_+8>>2]=2036477234,i[_+12>>2]=1797285236,i[_>>2]=1634760805,i[_+4>>2]=857760878,i[_+16>>2]=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,i[_+20>>2]=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,i[_+24>>2]=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,i[_+28>>2]=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,i[_+32>>2]=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,i[_+36>>2]=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,i[_+40>>2]=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,i[_+44>>2]=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,i[_+48>>2]=Q,i[_+52>>2]=E,i[_+56>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[_+60>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,z(_,I,A,g,C),XC(_,64)),s=_- -64|0,0},function(A,I,g,C,B,Q,E){var a;return A|=0,I|=0,B|=0,Q|=0,E|=0,s=a=s+-64|0,(g|=0)|(C|=0)&&(i[a+8>>2]=2036477234,i[a+12>>2]=1797285236,i[a>>2]=1634760805,i[a+4>>2]=857760878,i[a+16>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+20>>2]=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a+24>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+28>>2]=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+32>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+36>>2]=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+40>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,E=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+48>>2]=Q,i[a+44>>2]=E,i[a+52>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[a+56>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[a+60>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,z(a,I,A,g,C),XC(a,64)),s=a- -64|0,0}],fB.grow=function(A){var I=this.length;return this.length=this.length+A,I},fB.set=function(A,I){this[A]=I},fB.get=function(A){return this[A]},fB);function wB(){return g.byteLength/65536|0}return{e:Object.create(Object.prototype,{grow:{value:function(A){A|=0;var B=0|wB(),Q=B+A|0;if(B>>0<4294967280?(xI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},D:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|mI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},E:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(mI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},F:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|dI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},G:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=dI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},H:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|HI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},I:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=HI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},J:BB,K:aB,L:hB,M:CB,N:EB,O:PC,P:BB,Q:eB,R:hB,S:CB,T:EB,U:PC,V:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|pI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},W:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(pI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},X:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|hI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Y:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=hI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},Z:BB,_:_B,$:hB,aa:CB,ba:EB,ca:PC,da:BB,ea:BB,fa:function(){return 1462},ga:_I,ha:JI,ia:PC,ja:BB,ka:BB,la:IB,ma:PC,na:mA,oa:function(A,I,g,C){return 0|mC(A|=0,I|=0,g|=0,C|=0)},pa:Sg,qa:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-240|0,mA(Q,B|=0,32),UA(Q,I,g,C),JA(Q,I=Q+208|0),UA(g=Q+104|0,I,32,0),JA(g,A),XC(I,32),s=Q+240|0,0},ra:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-272|0,mA(i=Q+32|0,B|=0,32),UA(i,I,g,C),JA(i,I=Q+240|0),UA(g=Q+136|0,I,32,0),JA(g,Q),XC(I,32),I=NC(A,Q),g=MI(Q,A,32),s=Q+272|0,((0|A)==(0|Q)?-1:I)|g},sa:gB,ta:BB,ua:$C,va:PC,wa:iI,xa:EC,ya:wg,za:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-480|0,iI(Q,B|=0,32),SA(Q,I,g,C),j(Q,I=Q+416|0),SA(g=Q+208|0,I,64,0),j(g,A),XC(I,64),s=Q+480|0,0},Aa:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-544|0,iI(i=Q- -64|0,B|=0,32),SA(i,I,g,C),j(i,I=Q+480|0),SA(g=Q+272|0,I,64,0),j(g,Q),XC(I,64),I=GC(A,Q),g=MI(Q,A,64),s=Q+544|0,((0|A)==(0|Q)?-1:I)|g},Ba:BB,Ca:BB,Da:$C,Ea:PC,Fa:yC,Ga:EC,Ha:function(A,I){I|=0;var g,B=0;return s=g=s+-64|0,wg(A|=0,g),B=i[g+28>>2],A=i[g+24>>2],C[I+24|0]=A,C[I+25|0]=A>>>8,C[I+26|0]=A>>>16,C[I+27|0]=A>>>24,C[I+28|0]=B,C[I+29|0]=B>>>8,C[I+30|0]=B>>>16,C[I+31|0]=B>>>24,B=i[g+20>>2],A=i[g+16>>2],C[I+16|0]=A,C[I+17|0]=A>>>8,C[I+18|0]=A>>>16,C[I+19|0]=A>>>24,C[I+20|0]=B,C[I+21|0]=B>>>8,C[I+22|0]=B>>>16,C[I+23|0]=B>>>24,B=i[g+12>>2],A=i[g+8>>2],C[I+8|0]=A,C[I+9|0]=A>>>8,C[I+10|0]=A>>>16,C[I+11|0]=A>>>24,C[I+12|0]=B,C[I+13|0]=B>>>8,C[I+14|0]=B>>>16,C[I+15|0]=B>>>24,B=i[g+4>>2],A=i[g>>2],C[0|I]=A,C[I+1|0]=A>>>8,C[I+2|0]=A>>>16,C[I+3|0]=A>>>24,C[I+4|0]=B,C[I+5|0]=B>>>8,C[I+6|0]=B>>>16,C[I+7|0]=B>>>24,s=g- -64|0,0},Ia:_I,Ja:JI,Ka:BB,La:BB,Ma:BB,Na:BB,Oa:_B,Pa:BB,Qa:CB,Ra:CB,Sa:EB,Ta:function(){return 1476},Ua:function(A,I,g){return 0|cI(A|=0,I|=0,g|=0)},Va:UC,Wa:cC,Xa:Pg,Ya:qg,Za:Bg,_a:Qg,$a:Yg,ab:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=aI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},bb:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|aI(A+16|0,A,I,g,C,B,i)},cb:function(A,I,g,C,B,Q,i){return 0|sg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},db:Jg,eb:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=eI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},fb:hg,gb:function(A,I,g,C,B,Q,i){return 0|_g(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},hb:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,UC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=sg(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},ib:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=_g(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},jb:oB,kb:cI,lb:sC,mb:pg,nb:Pg,ob:qg,pb:Bg,qb:Qg,rb:BB,sb:BB,tb:BB,ub:BB,vb:_B,wb:BB,xb:CB,yb:CB,zb:EB,Ab:yA,Bb:BB,Cb:CB,Db:BB,Eb:CB,Fb:wA,Gb:BB,Hb:CB,Ib:BB,Jb:CB,Kb:AC,Lb:gB,Mb:CB,Nb:BB,Ob:CB,Pb:IC,Qb:gB,Rb:CB,Sb:BB,Tb:CB,Ub:gC,Vb:gB,Wb:CB,Xb:BB,Yb:CB,Zb:CB,_b:gB,$b:BB,ac:CB,bc:gB,cc:BB,dc:WC,ec:ZC,fc:function(A,I,g,C,B,Q,i){return 0|kC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},gc:iC,hc:function(A,I,g,C){return 0|lC(A|=0,I|=0,g|=0,C|=0)},ic:eC,jc:PC,kc:CB,lc:gB,mc:BB,nc:CB,oc:gB,pc:BB,qc:CB,rc:CB,sc:ZC,tc:PC,uc:kC,vc:function(A,I,g,C,B,Q,i,o,E){return 0|QA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0)},wc:eA,xc:function(A,I,g,B,i,E){A|=0,I|=0,i|=0,E|=0;var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(a=-1,!((B|=0)-65>>>0<4294967232|(g|=0)>>>0>64)){A:{if(!g||!I){if(((t=255&B)-65&255)>>>0>191){i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),I=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,I=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),a=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,a=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=a,C[A+49|0]=a>>>8,C[A+50|0]=a>>>16,C[A+51|0]=a>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=I,C[A+33|0]=I>>>8,C[A+34|0]=I>>>16,C[A+35|0]=I>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I=-222443256^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106;break A}rC(),Q()}s=e=s-128|0,!I|((y=255&B)-65&255)>>>0<=191|((t=255&g)-65&255)>>>0<=191?(rC(),Q()):(i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),a=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,a=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),r=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,r=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=r,C[A+49|0]=r>>>8,C[A+50|0]=r>>>16,C[A+51|0]=r>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,g=-222443256^(t<<8|y),C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,g=t>>>24^1779033703,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=Ng(bg(e,0,128),I,t),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)}a=0}return 0|a},yc:lC,zc:Hg,Ac:gB,Bc:CC,Cc:function(){return 1531},Dc:BB,Ec:function(){return 104},Fc:$I,Gc:function(A,I,g,C){return 0|UA(A|=0,I|=0,g|=0,C|=0)},Hc:JA,Ic:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0;return s=B=s-112|0,Q=i[8811],i[B+16>>2]=i[8810],i[B+20>>2]=Q,Q=i[8813],i[B+24>>2]=i[8812],i[B+28>>2]=Q,Q=i[8815],i[B+32>>2]=i[8814],i[B+36>>2]=Q,i[B+40>>2]=0,i[B+44>>2]=0,Q=i[8809],i[B+8>>2]=i[8808],i[B+12>>2]=Q,UA(Q=B+8|0,I,g,C),JA(Q,A),s=B+112|0,0},Jc:gB,Kc:IB,Lc:SI,Mc:QC,Nc:j,Oc:CC,Pc:CB,Qc:gB,Rc:eB,Sc:BB,Tc:YI,Uc:WC,Vc:CB,Wc:gB,Xc:eB,Yc:BB,Zc:YI,_c:PC,$c:function(A,I,g){return 0|mA(A|=0,I|=0,g|=0)},ad:function(A,I,g){return 0|mC(A|=0,I|=0,g|=0,0)},bd:function(A,I){return Sg(A|=0,I|=0),XC(A,4),0},cd:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-208|0,mA(Q,I|=0,g|=0),mC(Q,C,B,0),Sg(Q,A),XC(Q,4),s=Q+208|0,0},dd:PC,ed:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-256|0,C[E+15|0]=1,I>>>0<=8160){if(I>>>0>=32)for(t=A-32|0,a=32;c=a,mA(a=E+48|0,Q,32),_&&mC(a,_+t|0,32,0),mC(a=E+48|0,g,B,0),mC(a,E+15|0,1,0),Sg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)+32|0)>>>0<=I>>>0;);(_=31&I)&&(mA(I=E+48|0,Q,32),c&&mC(I,(A+c|0)-32|0,32,0),mC(I=E+48|0,g,B,0),mC(I,E+15|0,1,0),Sg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,32)),XC(E+48|0,208),A=0}else i[9404]=28,A=-1;return s=E+256|0,0|A},fd:BB,gd:hB,hd:function(){return 8160},id:IB,jd:yC,kd:function(A,I,g){return 0|dC(A|=0,I|=0,g|=0,0)},ld:function(A,I){return wg(A|=0,I|=0),XC(A,4),0},md:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-416|0,iI(Q,I|=0,g|=0),dC(Q,C,B,0),wg(Q,A),XC(Q,4),s=Q+416|0,0},nd:function(A){ag(A|=0,64)},od:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-496|0,C[E+15|0]=1,I>>>0<=16320){if(I>>>0>=64)for(t=A+-64|0,a=64;c=a,iI(a=E+80|0,Q,64),_&&dC(a,_+t|0,64,0),dC(a=E+80|0,g,B,0),dC(a,E+15|0,1,0),wg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)- -64|0)>>>0<=I>>>0;);(_=63&I)&&(iI(I=E+80|0,Q,64),c&&dC(I,(A+c|0)-64|0,64,0),dC(I=E+80|0,g,B,0),dC(I,E+15|0,1,0),wg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,64)),XC(E+80|0,416),A=0}else i[9404]=28,A=-1;return s=E+496|0,0|A},pd:gB,qd:hB,rd:function(){return 16320},sd:$C,td:function(A,I,g){return A|=0,kC(I|=0,32,g|=0,32,0,0,0),0|KC(A,I)},ud:function(A,I){return A|=0,ag(I|=0,32),0|KC(A,I)},vd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,g,32,0),lC(I,i,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+E|0]=o[0|g],C[A+B|0]=o[g+32|0],C[(g=1|A)+E|0]=o[I+g|0],C[g+B|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},wd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,i,32,0),lC(I,g,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+B|0]=o[0|g],C[A+E|0]=o[g+32|0],C[(g=1|A)+B|0]=o[I+g|0],C[g+E|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},xd:BB,yd:BB,zd:BB,Ad:BB,Bd:function(){return 1332},Cd:TC,Dd:CB,Ed:BB,Fd:Vg,Gd:Zg,Hd:function(A,I){return 0|wC(A|=0,I|=0)},Id:BC,Jd:function(A,I){return 0|nC(A|=0,I|=0)},Kd:function(){return 1494},Ld:PC,Md:Vg,Nd:Zg,Od:wC,Pd:BC,Qd:nC,Rd:CB,Sd:BB,Td:TC,Ud:PC,Vd:yB,Wd:CB,Xd:cB,Yd:hB,Zd:cB,_d:CB,$d:AB,ae:function(){return 1554},be:rB,ce:cB,de:VC,ee:xC,fe:sB,ge:LC,he:function(){return 6},ie:function(){return 134217728},je:eB,ke:function(){return 536870912},le:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|rI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},me:function(A,I,g,C,B,Q,i){return 0|OI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)},ne:function(A,I,g,C){return 0|bC(A|=0,I|=0,g|=0,C|=0)},oe:function(A,I,g,C){return 0|HC(A|=0,I|=0,g|=0,C|=0)},pe:function(A,I,g,C){return 0|YC(A|=0,I|=0,g|=0,C|=0)},qe:tB,re:CB,se:cB,te:hB,ue:cB,ve:CB,we:AB,xe:OC,ye:yB,ze:cB,Ae:VC,Be:xC,Ce:tB,De:qC,Ee:rB,Fe:RC,Ge:sB,He:vC,Ie:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|yI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Je:Fg,Ke:function(A,I,g,C){return 0|JC(A|=0,I|=0,g|=0,C|=0)},Le:yB,Me:tB,Ne:tB,Oe:CB,Pe:cB,Qe:hB,Re:cB,Se:CB,Te:AB,Ue:OC,Ve:yB,We:cB,Xe:VC,Ye:xC,Ze:tB,_e:qC,$e:rB,af:RC,bf:sB,cf:vC,df:function(A,I,g,C,B,Q,o,E,a,_,c){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,E|=0,a|=0,_|=0,I|=0,B|=0,E|=0;A:{switch((c|=0)-1|0){case 0:A=rI(A,I,g,C,B,Q,o,E,a,_,1);break A;case 1:A=yI(A,I,g,C,B,Q,o,E,a,_,2);break A}i[9404]=28,A=-1}return 0|A},ef:Fg,ff:function(A,I,g,C,B,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,o|=0,g|=0,B|=0;A:{switch((E|=0)-1|0){case 1:A=TI(A,I,g,C,B,i,o);break A;default:rC(),Q();case 0:}A=OI(A,I,g,C,B,i,o)}return 0|A},gf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=bC(A,I,g,C):A=JC(A,I,g,C),0|A},hf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=HC(A,I,g,C):A=YC(A,I,g,C),0|A},jf:function(){return 1156},kf:function(){return 1443},lf:KC,mf:tC,nf:BB,of:BB,pf:CI,qf:pC,rf:BB,sf:BB,tf:BB,uf:_B,vf:BB,wf:CB,xf:CB,yf:EB,zf:function(){return 1486},Af:Pg,Bf:qg,Cf:PC,Df:Yg,Ef:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),aI(A+16|0,A,I,g,C,B,i),0},Ff:Jg,Gf:hg,Hf:Pg,If:qg,Jf:BB,Kf:_B,Lf:BB,Mf:CB,Nf:CB,Of:EB,Pf:PC,Qf:PC,Rf:function(A,I,g){return A|=0,g|=0,ag(I|=0,24),yA(A,I,g,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Sf:function(A,I,g){return yA(A|=0,I|=0,g|=0,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Tf:function(A){var I,g=0,B=0;s=I=s-48|0,g=o[28+(A|=0)|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[I+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[I+28>>2]=g,g=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[I+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[I+20>>2]=g,g=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[I>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I+4>>2]=g,g=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[I+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[I+12>>2]=g,g=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[I+32>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[I+36>>2]=g,xg(I,I,40,0,A+32|0,A),g=i[I+28>>2],B=i[I+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,B=i[I+36>>2],g=i[I+32>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,s=I+48|0},Uf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,a|=0,_|=0,t|=0,r|=0;var e,y=0,h=0,D=0;return y=E|=0,y|=E=0,e=E|(c|=0),s=E=s-384|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),!a&y>>>0<4294967279?(jg(h=E+16|0,64,0,D=A+32|0,A),wC(c=E+80|0,h),XC(h,64),SC(c,_,e,t),SC(c,35216,0-e&15,0),i[E+72>>2]=0,i[E+76>>2]=0,i[(_=E- -64|0)>>2]=0,i[_+4>>2]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,C[E+16|0]=r,Cg(h,h,64,0,D,1,A),SC(c,h,64,0),C[0|I]=o[E+16|0],Cg(I=I+1|0,B,y,a,D,2,A),SC(c,I,y,a),SC(c,35216,15&y,0),i[E+8>>2]=e,i[E+12>>2]=t,SC(c,B=E+8|0,8,0),i[E+8>>2]=y- -64,i[E+12>>2]=a-((y>>>0<4294967232)-1|0),SC(c,B,8,0),nC(c,I=I+y|0),XC(c,256),C[A+36|0]=o[A+36|0]^o[0|I],C[A+37|0]=o[A+37|0]^o[I+1|0],C[A+38|0]=o[A+38|0]^o[I+2|0],C[A+39|0]=o[A+39|0]^o[I+3|0],C[A+40|0]=o[A+40|0]^o[I+4|0],C[A+41|0]=o[A+41|0]^o[I+5|0],C[A+42|0]=o[A+42|0]^o[I+6|0],C[A+43|0]=o[A+43|0]^o[I+7|0],XI(D),(2&r||GI(D,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[E+360>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[E+364>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[E+352>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[E+356>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[E+336>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[E+340>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[E+344>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[E+348>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[E+368>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[E+372>>2]=I,xg(I=E+336|0,I,40,0,D,A),I=i[E+364>>2],B=i[E+360>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[E+356>>2],B=i[E+352>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[E+348>>2],B=i[E+344>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[E+340>>2],B=i[E+336>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[E+368>>2],B=i[E+372>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24),g&&(a=(A=y+17|0)>>>0<17?a+1|0:a,i[g>>2]=A,i[g+4>>2]=a),s=E+384|0):(rC(),Q()),0},Vf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,E|=0,c|=0,r|=0;var e,y=0,h=0,D=0,f=0,p=0,w=0;y=a|=0,a=_|=0,h=0|y,e=t|=0,s=_=s-400|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),B&&(C[0|B]=255),w=-1;A:{I:{if(!((t=h>>>0<17)&!a)){if(p=y=a-t|0,!y&(t=h-17|0)>>>0>=4294967279|y)break I;jg(D=_+32|0,64,0,f=A+32|0,A),wC(y=_+96|0,D),XC(D,64),SC(y,c,e,r),SC(y,35216,0-e&15,0),i[_+88>>2]=0,i[_+92>>2]=0,i[_+80>>2]=0,i[_+84>>2]=0,i[_+72>>2]=0,i[_+76>>2]=0,i[(c=_- -64|0)>>2]=0,i[c+4>>2]=0,i[_+56>>2]=0,i[_+60>>2]=0,i[_+48>>2]=0,i[_+52>>2]=0,i[_+40>>2]=0,i[_+44>>2]=0,i[_+32>>2]=0,i[_+36>>2]=0,C[_+32|0]=o[0|E],Cg(D,D,64,0,f,1,A),c=o[_+32|0],C[_+32|0]=o[0|E],SC(y,D,64,0),SC(y,E=E+1|0,t,p),SC(y,35216,h-1&15,0),i[_+24>>2]=e,i[_+28>>2]=r,SC(y,r=_+24|0,8,0),a=(h=h+47|0)>>>0<47?a+1|0:a,i[_+24>>2]=h,i[_+28>>2]=a,SC(y,r,8,0),nC(y,_),XC(y,256),MI(_,E+t|0,16)?XC(_,16):(Cg(I,E,t,p,f,2,A),C[A+36|0]=o[A+36|0]^o[0|_],C[A+37|0]=o[A+37|0]^o[_+1|0],C[A+38|0]=o[A+38|0]^o[_+2|0],C[A+39|0]=o[A+39|0]^o[_+3|0],C[A+40|0]=o[A+40|0]^o[_+4|0],C[A+41|0]=o[A+41|0]^o[_+5|0],C[A+42|0]=o[A+42|0]^o[_+6|0],C[A+43|0]=o[A+43|0]^o[_+7|0],XI(f),(2&c||GI(f,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[_+376>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[_+380>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[_+368>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[_+372>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[_+352>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[_+356>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[_+360>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[_+364>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[_+384>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[_+388>>2]=I,xg(I=_+352|0,I,40,0,f,A),I=i[_+380>>2],E=i[_+376>>2],C[A+24|0]=E,C[A+25|0]=E>>>8,C[A+26|0]=E>>>16,C[A+27|0]=E>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[_+372>>2],E=i[_+368>>2],C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[_+364>>2],E=i[_+360>>2],C[A+8|0]=E,C[A+9|0]=E>>>8,C[A+10|0]=E>>>16,C[A+11|0]=E>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[_+356>>2],E=i[_+352>>2],C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[_+384>>2],E=i[_+388>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=E,C[A+41|0]=E>>>8,C[A+42|0]=E>>>16,C[A+43|0]=E>>>24),g&&(i[g>>2]=t,i[g+4>>2]=p),w=0,B&&(C[0|B]=c))}s=_+400|0;break A}rC(),Q()}return 0|w},Wf:function(){return 52},Xf:function(){return 17},Yf:_B,Zf:BB,_f:function(){return-18},$f:hB,ag:yB,bg:tB,cg:rB,dg:eB,eg:CB,fg:function(){return 1521},gg:T,hg:zC,ig:eB,jg:CB,kg:T,lg:IB,mg:gB,ng:BB,og:BB,pg:gB,qg:QB,rg:function(){return 1454},sg:function(A,I,g){return 0|FA(A|=0,I|=0,g|=0)},tg:function(A,I){return 0|YA(A|=0,I|=0)},ug:LI,vg:bI,wg:vg,xg:Wg,yg:function(A){return 0|uC(A|=0)},zg:QC,Ag:function(A,I,g,C){return 0|ng(A|=0,I|=0,g|=0,C|=0)},Bg:function(A,I,g){return 0|Kg(A|=0,I|=0,g|=0)},Cg:IB,Dg:gB,Eg:BB,Fg:BB,Gg:gB,Hg:QB,Ig:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[8+(_=I|=0)|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,B=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,Q=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,E=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,I=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=Q,C[A+17|0]=Q>>>8,C[A+18|0]=Q>>>16,C[A+19|0]=Q>>>24,C[A+20|0]=i,C[A+21|0]=i>>>8,C[A+22|0]=i>>>16,C[A+23|0]=i>>>24,C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=B,C[A+13|0]=B>>>8,C[A+14|0]=B>>>16,C[A+15|0]=B>>>24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0},Jg:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[32+(_=I|=0)|0]|o[_+33|0]<<8|o[_+34|0]<<16|o[_+35|0]<<24,B=o[_+36|0]|o[_+37|0]<<8|o[_+38|0]<<16|o[_+39|0]<<24,Q=o[_+40|0]|o[_+41|0]<<8|o[_+42|0]<<16|o[_+43|0]<<24,i=o[_+44|0]|o[_+45|0]<<8|o[_+46|0]<<16|o[_+47|0]<<24,E=o[_+48|0]|o[_+49|0]<<8|o[_+50|0]<<16|o[_+51|0]<<24,I=o[_+52|0]|o[_+53|0]<<8|o[_+54|0]<<16|o[_+55|0]<<24,a=o[_+60|0]|o[_+61|0]<<8|o[_+62|0]<<16|o[_+63|0]<<24,_=o[_+56|0]|o[_+57|0]<<8|o[_+58|0]<<16|o[_+59|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,C[A+8|0]=Q,C[A+9|0]=Q>>>8,C[A+10|0]=Q>>>16,C[A+11|0]=Q>>>24,C[A+12|0]=i,C[A+13|0]=i>>>8,C[A+14|0]=i>>>16,C[A+15|0]=i>>>24,C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,0},Kg:uC,Lg:QC,Mg:ng,Ng:Kg,Og:FA,Pg:YA,Qg:function(A,I){A|=0;var g,C=0,B=0,Q=0,o=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0;return s=g=s-256|0,SA=-1,KI(I|=0)||qA(C=g+96|0,I)||gA(C)&&(SA=0,u=i[g+172>>2],i[g+36>>2]=0-u,n=i[g+168>>2],i[g+32>>2]=0-n,x=i[g+164>>2],i[g+28>>2]=0-x,k=i[g+160>>2],i[g+24>>2]=0-k,v=i[g+156>>2],i[g+20>>2]=0-v,F=i[g+152>>2],i[g+16>>2]=0-F,R=i[g+148>>2],i[g+12>>2]=0-R,S=i[g+144>>2],i[g+8>>2]=0-S,L=i[g+140>>2],i[g+4>>2]=0-L,Q=i[g+136>>2],i[g>>2]=1-Q,LA(g,g),I=Ig(N=i[g+4>>2],d=N>>31,G=v<<1,IA=G>>31),C=f,B=Ig(p=i[g>>2],M=p>>31,k,K=k>>31),C=f+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(o=Ig(U=i[g+8>>2],P=U>>31,F,b=F>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(m=i[g+12>>2],j=m>>31,W=R<<1,CA=W>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(q=i[g+16>>2],V=q>>31,S,H=S>>31),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,fA=o=i[g+20>>2],h=Ig(o,BA=o>>31,Z=L<<1,QA=Z>>31),B=f+I|0,B=(C=h+C|0)>>>0>>0?B+1|0:B,pA=r=i[g+24>>2],I=(Q=Ig(r,sA=r>>31,h=Q+1|0,Y=h>>31))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,iA=i[g+28>>2],B=(Q=Ig(w=a(iA,19),X=w>>31,T=u<<1,oA=T>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,NA=i[g+32>>2],B=Ig(_=a(NA,19),z=_>>31,n,J=n>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,GA=i[g+36>>2],B=Ig(y=a(GA,19),l=y>>31,$=x<<1,EA=$>>31),I=f+I|0,c=C=B+C|0,Q=C>>>0>>0?I+1|0:I,I=Ig(F,b,N,d),C=f,E=Ig(p,M,v,aA=v>>31),B=f+C|0,B=(I=E+I|0)>>>0>>0?B+1|0:B,E=Ig(U,P,R,_A=R>>31),C=f+B|0,C=(I=E+I|0)>>>0>>0?C+1|0:C,B=(E=Ig(S,H,m,j))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(q,V,L,cA=L>>31),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(h,Y,o,BA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,E=Ig(r=a(r,19),AA=r>>31,u,tA=u>>31),B=f+I|0,B=(C=E+C|0)>>>0>>0?B+1|0:B,I=(E=Ig(n,J,w,X))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(E=Ig(_,z,x,rA=x>>31))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(y,l,k,K),I=f+I|0,wA=C=C+B|0,O=C>>>0>>0?I+1|0:I,I=Ig(N,d,W,CA),B=f,C=(E=Ig(p,M,F,b))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,E=Ig(S,H,U,P),B=f+I|0,B=(C=E+C|0)>>>0>>0?B+1|0:B,I=(E=Ig(m,j,Z,QA))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(E=Ig(h,Y,q,V))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(E=a(o,19),eA=E>>31,T,oA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,r,AA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,o=Ig(w,X,$,EA),B=f+I|0,B=(C=o+C|0)>>>0>>0?B+1|0:B,I=(o=Ig(_,z,k,K))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(o=Ig(y,l,G,IA))+I|0,I=f+C|0,MA=B,KA=I=B>>>0>>0?I+1|0:I,UA=B=B+33554432|0,bA=I=B>>>0<33554432?I+1|0:I,B=(67108863&I)<<6|B>>>26,I=(I>>26)+O|0,wA=o=B+wA|0,I=B>>>0>o>>>0?I+1|0:I,HA=o=o+16777216|0,I=(C=(B=o>>>0<16777216?I+1|0:I)>>25)+Q|0,I=(B=(o=(33554431&B)<<7|o>>>25)+c|0)>>>0>>0?I+1|0:I,D=C=B+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+72>>2]=B-(-67108864&C),I=Ig(N,d,Z,QA),C=f,Q=Ig(p,M,S,H),B=f+C|0,B=(I=Q+I|0)>>>0>>0?B+1|0:B,C=(Q=Ig(h,Y,U,P))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(Q=a(m,19),yA=Q>>31,T,oA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(c=Ig(O=a(q,19),hA=O>>31,n,J))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,c=Ig($,EA,E,eA),I=f+C|0,I=(B=c+B|0)>>>0>>0?I+1|0:I,C=(c=Ig(k,K,r,AA))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,c=Ig(w,X,G,IA),I=f+B|0,I=(C=c+C|0)>>>0>>0?I+1|0:I,B=Ig(_,z,F,b),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(c=Ig(y,l,W,CA))+C|0,C=f+I|0,e=B,nA=B>>>0>>0?C+1|0:C,I=Ig(h,Y,N,d),C=f,B=(c=Ig(p,M,L,cA))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,c=C=a(U,19),C=(t=Ig(C,DA=C>>31,u,tA))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(n,J,Q,yA),I=f+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(O,hA,x,rA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(t=Ig(k,K,E,eA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,t=Ig(r,AA,v,aA),I=f+C|0,I=(B=t+B|0)>>>0>>0?I+1|0:I,C=(t=Ig(F,b,w,X))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,t=Ig(_,z,R,_A),I=f+B|0,I=(C=t+C|0)>>>0>>0?I+1|0:I,B=Ig(y,l,S,H),I=f+I|0,kA=C=B+C|0,t=C>>>0>>0?I+1|0:I,I=Ig(I=a(N,19),I>>31,T,oA),C=f,B=Ig(p,M,h,Y),C=f+C|0,C=(I=B+I|0)>>>0>>0?C+1|0:C,B=(c=Ig(n,J,c,DA))+I|0,I=f+C|0,C=(Q=Ig(Q,yA,$,EA))+B|0,B=f+(B>>>0>>0?I+1|0:I)|0,B=C>>>0>>0?B+1|0:B,Q=Ig(k,K,O,hA),I=f+B|0,I=(C=Q+C|0)>>>0>>0?I+1|0:I,B=Ig(G,IA,E,eA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(F,b,r,AA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,Q=Ig(w,X,W,CA),I=f+C|0,I=(B=Q+B|0)>>>0>>0?I+1|0:I,C=(Q=Ig(_,z,S,H))+B|0,B=f+I|0,B=C>>>0>>0?B+1|0:B,Q=Ig(y,l,Z,QA),I=f+B|0,c=C=Q+C|0,yA=I=C>>>0>>0?I+1|0:I,DA=C=C+33554432|0,YA=I=C>>>0<33554432?I+1|0:I,B=I>>26,I=(67108863&I)<<6|C>>>26,C=B+t|0,t=Q=I+kA|0,I=C=I>>>0>Q>>>0?C+1|0:C,kA=Q=Q+16777216|0,Q=(33554431&(I=Q>>>0<16777216?I+1|0:I))<<7|Q>>>25,I=(I>>25)+nA|0,I=(C=Q+e|0)>>>0>>0?I+1|0:I,B=C,nA=C=C+33554432|0,Q=I=C>>>0<33554432?I+1|0:I,i[g+56>>2]=B-(-67108864&C),I=Ig(k,K,N,d),B=f,C=(e=Ig(p,M,x,rA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(U,P,v,aA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(F,b,m,j),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=Ig(q,V,R,_A),B=f+I|0,B=(C=e+C|0)>>>0>>0?B+1|0:B,I=(e=Ig(S,H,fA,BA))+C|0,C=f+B|0,C=I>>>0>>0?C+1|0:C,B=(e=Ig(L,cA,pA,sA))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(iA,FA=iA>>31,h,Y),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(_,z,u,tA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,e=(B=C)+(C=Ig(y,l,n,J))|0,B=f+I|0,C=(I=o>>26)+(C=C>>>0>e>>>0?B+1|0:B)|0,D=B=(o=(67108863&o)<<6|D>>>26)+e|0,I=C=B>>>0>>0?C+1|0:C,e=B=B+16777216|0,o=I=B>>>0<16777216?I+1|0:I,i[g+76>>2]=D-(-33554432&B),I=Ig(S,H,N,d),C=f,D=Ig(p,M,R,_A),B=f+C|0,B=(I=D+I|0)>>>0>>0?B+1|0:B,D=Ig(U,P,L,cA),C=f+B|0,C=(I=D+I|0)>>>0>>0?C+1|0:C,B=(D=Ig(h,Y,m,j))+I|0,I=f+C|0,I=B>>>0>>0?I+1|0:I,C=B,B=Ig(O,hA,u,tA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=Ig(n,J,E,eA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,C=(r=Ig(r,AA,x,rA))+C|0,B=f+I|0,I=(w=Ig(k,K,w,X))+C|0,C=f+(C>>>0>>0?B+1|0:B)|0,B=(_=Ig(_,z,v,aA))+I|0,I=f+(I>>>0>>0?C+1|0:C)|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(y,l,F,b),I=f+I|0,D=C=C+B|0,I=(I=C>>>0>>0?I+1|0:I)+(C=Q>>26)|0,_=Q=D+(B=(67108863&Q)<<6|nA>>>26)|0,I=B>>>0>Q>>>0?I+1|0:I,w=C=Q+16777216|0,Q=B=C>>>0<16777216?I+1|0:I,i[g+60>>2]=_-(-33554432&C),I=Ig(N,d,$,EA),B=f,C=(_=Ig(p,M,n,J))+I|0,I=f+B|0,I=C>>>0<_>>>0?I+1|0:I,B=Ig(k,K,U,P),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,_=Ig(m,j,G,IA),B=f+I|0,B=(C=_+C|0)>>>0<_>>>0?B+1|0:B,I=(_=Ig(F,b,q,V))+C|0,C=f+B|0,C=I>>>0<_>>>0?C+1|0:C,B=(_=Ig(W,CA,fA,BA))+I|0,I=f+C|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(S,H,pA,sA),I=f+I|0,I=(C=C+B|0)>>>0>>0?I+1|0:I,B=C,C=Ig(iA,FA,Z,QA),I=f+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,_=C=NA,C=(G=Ig(C,r=C>>31,h,Y))+B|0,B=f+I|0,I=(y=Ig(y,l,T,oA))+C|0,C=f+(C>>>0>>0?B+1|0:B)|0,B=I>>>0>>0?C+1|0:C,C=I,I=(I=o>>25)+B|0,I=(C=C+(o=(33554431&o)<<7|e>>>25)|0)>>>0>>0?I+1|0:I,B=C,y=C=C+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+80>>2]=B-(-67108864&C),C=Q>>25,B=(Q=(33554431&Q)<<7|w>>>25)+(MA-(I=-67108864&UA)|0)|0,I=C+(KA-((I>>>0>MA>>>0)+bA|0)|0)|0,I=B>>>0>>0?I+1|0:I,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+(G=wA-(-33554432&HA)|0)|0,i[g+68>>2]=I,i[g+64>>2]=B-(-67108864&C),I=Ig(n,J,N,d),B=f,C=(Q=Ig(p,M,u,tA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=(Q=Ig(U,P,x,rA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,I=(Q=Ig(k,K,m,j))+B|0,B=f+C|0,B=I>>>0>>0?B+1|0:B,C=(Q=Ig(q,V,v,aA))+I|0,I=f+B|0,I=C>>>0>>0?I+1|0:I,B=Ig(F,b,fA,BA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=Ig(R,_A,pA,sA),I=f+I|0,I=(C=B+C|0)>>>0>>0?I+1|0:I,B=(Q=Ig(S,H,iA,FA))+C|0,C=f+I|0,C=B>>>0>>0?C+1|0:C,Q=(I=Ig(_,r,L,cA))+B|0,B=f+C|0,B=I>>>0>Q>>>0?B+1|0:B,C=Q,Q=Ig(I=GA,I>>31,h,Y),I=f+B|0,B=C=C+Q|0,I=(I=C>>>0>>0?I+1|0:I)+(C=o>>26)|0,I=(B=B+(o=(67108863&o)<<6|y>>>26)|0)>>>0>>0?I+1|0:I,I=(C=B+16777216|0)>>>0<16777216?I+1|0:I,i[g+84>>2]=B-(-33554432&C),o=t-(-33554432&kA)|0,Q=c-(B=-67108864&DA)|0,p=yA-((B>>>0>c>>>0)+YA|0)|0,I=Ig((33554431&(B=I))<<7|C>>>25,I>>=25,19,0),C=f+p|0,I=I>>>0>(B=I+Q|0)>>>0?C+1|0:C,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+o|0,i[g+52>>2]=I,i[g+48>>2]=B-(-67108864&C),QI(A,g+48|0)),s=g+256|0,0|SA},Rg:function(A,I){A|=0;var g,B=0;return s=g=s+-64|0,FI(g,I|=0,32,0),C[0|g]=248&o[0|g],C[g+31|0]=63&o[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,XC(g,64),s=g- -64|0,0},Sg:Wg,Tg:bI,Ug:vg,Vg:LI,Wg:BB,Xg:eB,Yg:cB,Zg:BB,_g:aB,$g:cB,ah:function(A,I,g,C,B){return 0|Xg(A|=0,I|=0,g|=0,C|=0,B|=0)},bh:function(A,I,g,C,B,Q,i,o){return 0|mg(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},ch:function(A,I,g,C,B,Q){return 0|ug(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},dh:function(A,I,g,C,B){return 0|jg(A|=0,I|=0,g|=0,C|=0,B|=0)},eh:function(A,I,g,C,B,Q,i){return 0|Cg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fh:function(A,I,g,C,B,Q){return 0|xg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},gh:PC,hh:PC,ih:BB,jh:_B,kh:cB,lh:function(){return 1538},mh:Tg,nh:zg,oh:PC,ph:BB,qh:eB,rh:cB,sh:function(A,I,g,C,B){return 0|DC(A|=0,I|=0,g|=0,C|=0,B|=0)},th:function(A,I,g,C,B,Q,i,o){return 0|oC(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},uh:function(A,I,g,C,B,Q){return 0|aC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},vh:PC,wh:Tg,xh:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,wA(E,B|=0,o|=0,0),A=oC(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),XC(E,32),s=E+32|0,0|A},yh:zg,zh:BB,Ah:_B,Bh:cB,Ch:PC,Dh:CB,Eh:BB,Fh:gB,Gh:oI,Hh:NC,Ih:GC,Jh:function(){return 1089},Kh:function(){var A,I;return s=A=s-16|0,C[A+15|0]=0,I=0|t(36800,A+15|0,0),s=A+16|0,0|I},Lh:$g,Mh:function(A){var I,g=0,B=0;if(s=I=s-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;C[I+15|0]=0,g>>>0>(B=0|t(36800,I+15|0,0))>>>0;);g=(B>>>0)%(A>>>0)|0}return s=I+16|0,0|g},Nh:ag,Oh:function(A,I,g){jg(A|=0,I|=0,0,34336,g|=0)},Ph:BB,Qh:function(){var A=0,I=0;return(A=i[9539])&&(A=i[A+20>>2])&&(I=0|pB[0|A]()),0|I},Rh:function(A,I,g){A|=0,I|=0;var B,i=0,o=0,E=0;if(s=B=s-16|0,g|=0)r(1346,1192,198,1092),Q();else{if(I|g)for(;C[B+15|0]=0,o=A+i|0,E=0|t(36800,B+15|0,0),C[0|o]=E,(0|I)!=(0|(i=i+1|0)););s=B+16|0}},Sh:function(A,I,g,B){A|=0,g|=0;var i=0,E=0,a=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;i=(I<<1)+A|0,E=15&(a=o[I+g|0]),C[i+1|0]=22272+((E<<8)+(E+65526&55552)|0)>>>8,E=i,i=a>>>4|0,C[0|E]=87+((i+65526>>>8&217)+i|0),(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return C[I+A|0]=0,0|A}rC(),Q()},Th:function(A,I,g,B,Q,E,a){A|=0,I|=0,g|=0,Q|=0,E|=0,a|=0;var _=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{if(B|=0){if(Q)break E;for(c=1,Q=0;;){if(!(255&((s=(65526+(t=(223&(e=o[g+_|0]))-55&255)^t+65520)>>>8|0)|(h=65526+(e^=48)>>>8|0))))break i;if(I>>>0<=y>>>0)break o;if(t=t&s|e&h,255&r?(C[A+y|0]=Q|t,y=y+1|0):Q=t<<4,r=~r,(0|(_=_+1|0))==(0|B))break}_=B;break i}if(A=0,!a)break A;break g}for(;;){E:{a:{_:{c:{t:{if(!(255&((e=(65526+(c=(223&(t=o[g+_|0]))-55&255)^c+65520)>>>8|0)|(h=65526+(s=48^t)>>>8|0)))){if(255&r)break Q;if(c=0,!kI(Q,t))break C;if((_=r=_+1|0)>>>0>>0)break t;break C}if(I>>>0<=y>>>0)break o;if(c=c&e|s&h,!(255&r))break c;C[A+y|0]=c|D,y=y+1|0;break E}for(;;){if(!(255&((s=(65526+(e=(223&(t=o[g+_|0]))-55&255)^e+65520)>>>8|0)|(D=65526+(h=48^t)>>>8|0)))){if(!kI(Q,t))break C;if((_=_+1|0)>>>0>>0)continue;break _}break}if(I>>>0<=y>>>0)break a;c=e&s|h&D}D=c<<4,r=0;break E}_=B>>>0>r>>>0?B:r;break C}r=0;break o}if(r=~r,c=1,!((_=_+1|0)>>>0>>0))break}break i}i[9404]=68,c=0}if(!(255&r))break B}i[9404]=28,c=-1,_=_-1|0,y=0;break C}y=c?y:0,c=c-1|0}if(!a){if((0|B)!=(0|_))break I;A=c;break A}}i[a>>2]=g+_,A=c;break A}i[9404]=28,A=-1}return E&&(i[E>>2]=y),0|A},Uh:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(rC(),Q()),1+((3&(g=(g=A)+a(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Vh:XA,Wh:pA,Xh:function(){var A=0;return i[9537]?A=1:($g(),ag(38128,16),i[9537]=1,A=0),0|A},Yh:function(A,I,g,B,E){A|=0,I|=0,g|=0,E|=0;var a,_=0,c=0,t=0;s=a=s-16|0;A:{if(B|=0){if((_=B-1|0)&B?(c=~g,_=_-((g>>>0)%(B>>>0)|0)|0):_&=c=~g,_>>>0>=c>>>0)break A;if((g=g+_|0)>>>0>=E>>>0)I=-1;else for(A&&(i[A>>2]=g+1),A=I+g|0,I=0,C[a+15|0]=0,g=0;c=E=A-g|0,t=o[0|E]&o[a+15|0],E=(g^_)-1>>>24|0,C[0|c]=t|128&E,C[a+15|0]=E|o[a+15|0],(0|B)!=(0|(g=g+1|0)););}else I=-1;return s=a+16|0,0|I}rC(),Q()},Zh:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,E=0,a=0,_=0,c=0;if(i[12+(B=s-16|0)>>2]=0,C-1>>>0>>0){for(c=(Q=g-1|0)+I|0,g=0,I=0;_=((128^(E=o[c-g|0]))-1&i[B+12>>2]-1&a-1)>>>8&1,i[B+12>>2]=i[B+12>>2]|0-_&g,I|=_,a|=E,(0|C)!=(0|(g=g+1|0)););i[A>>2]=Q-i[B+12>>2],A=(255&I)-1|0}else A=-1;return 0|A},_h:function(){return 1547},$h:function(){return 26},ai:tB,bi:hB,ci:cI,di:sC,ei:function(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=yA(A,35584,C,0)),s=C+32|0,0|B},fi:dg,gi:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=EI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},hi:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|EI(A+16|0,A,I,g,C,B,i)},ii:function(A,I,g,C,B,Q,i){return 0|ig(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ji:lg,ki:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=sI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},li:Dg,mi:function(A,I,g,C,B,Q,i){return 0|Ag(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ni:BB,oi:BB,pi:BB,qi:BB,ri:_B,si:CB,ti:EB,ui:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,sC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=ig(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},vi:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=Ag(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},wi:oB,xi:function(A){var I,g=0;return s=I=s-160|0,NI(A|=0)&&(KI(A)||MA(I,A)||jA(I)&&(g=!!(0|gA(I)))),s=I+160|0,0|g},yi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},zi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},Ai:function(A,I){return M(A|=0,I|=0),0},Bi:function(A){var I;A|=0,s=I=s-32|0,ag(I,32),M(A,I),s=I+32|0},Ci:Mg,Di:kA,Ei:xA,Fi:uA,Gi:cA,Hi:dA,Ii:IA,Ji:MC,Ki:BB,Li:gB,Mi:BB,Ni:gB,Oi:BB,Pi:function(A){var I;return s=I=s-160|0,A=EA(I,A|=0),s=I+160|0,0|!A},Qi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Ri:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Si:function(A,I){return jI(A|=0,I|=0),0},Ti:function(A){var I;A|=0,s=I=s+-64|0,ag(I,64),jI(A,I),s=I- -64|0},Ui:function(A){Mg(A|=0)},Vi:function(A,I){return 0|kA(A|=0,I|=0)},Wi:function(A,I){xA(A|=0,I|=0)},Xi:function(A,I){uA(A|=0,I|=0)},Yi:function(A,I,g){cA(A|=0,I|=0,g|=0)},Zi:function(A,I,g){IA(A|=0,I|=0,g|=0)},_i:MC,$i:function(A,I){dA(A|=0,I|=0)},aj:BB,bj:gB,cj:gB,dj:BB,ej:function(A,I,g,C,B,Q,i,o,E,a){return 0|rg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0)},fj:CB,gj:cB,hj:hB,ij:cB,jj:BB,kj:function(){return 102},lj:function(){return 1575},mj:function(){return 32768},nj:cB,oj:jC,pj:cB,qj:function(){return 524288},rj:jC,sj:LC,tj:vC,uj:function(A,I,g,C,B,Q,o,E,a,_){var c,t,r;I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,a|=0,_|=0,t=0|(E|=0),s=E=s-16|0,r=I|=0,c=bg(A|=0,0,I),A=0|B;A:if(1==(0|(B=g|Q))|B>>>0>1)i[9404]=22,A=-1;else if(!g&I>>>0>=16|g){if(bA(t,a,_,E+12|0,E+8|0,E+4|0),(0|C)==(0|c)){i[9404]=28,A=-1;break A}B=A,A=31&(I=i[E+12>>2]),(63&I)>>>0>=32?(I=1<>>32-A,A=rg(C,B,o,32,g,I,i[E+4>>2],i[E+8>>2],c,r)}else i[9404]=28,A=-1;return s=E+16|0,0|A},vj:function(A,I,g,B,Q,E,a){I|=0,g|=0,B|=0,E|=0,a|=0;var _,c,t,r=0,e=0,y=0,h=0,D=0,p=0,w=0;r=Q|=0,r|=Q=0,s=_=s-128|0,c=bg(A|=0,0,102),D=22,t=g|Q;A:{I:{if(!B){bA(r,E,a,_+16|0,_+12|0,_+8|0),ag(e=_+96|0,32),D=28,g=_+32|0,E=i[_+16>>2],a=Ig(A=i[_+12>>2],0,B=i[_+8>>2],0);g:if(!(!(r=f)&a>>>0>1073741823|r|E>>>0>63)&&(C[0|g]=36,C[g+1|0]=55,C[g+2|0]=36,C[g+4|0]=o[1024+(63&B)|0],C[g+3|0]=o[E+1024|0],C[g+8|0]=o[1024+(B>>>24&63)|0],C[g+7|0]=o[1024+(B>>>18&63)|0],C[g+6|0]=o[1024+(B>>>12&63)|0],C[g+5|0]=o[1024+(B>>>6&63)|0],(B=g+9|0)&&(0|B)!=(0|(y=g+58|0))&&(C[0|B]=o[1024+(63&A)|0],1!=(0|(B=y-B|0))&&(C[g+10|0]=o[1024+(A>>>6&63)|0],2!=(0|B)&&(C[g+11|0]=o[1024+(A>>>12&63)|0],3!=(0|B)&&(C[g+12|0]=o[1024+(A>>>18&63)|0],4!=(0|B)&&(C[g+13|0]=o[1024+(A>>>24&63)|0],E=g+14|0))))))){for(r=y-E|0,A=0;;){if(B=E,!(A>>>0>=32)){if(E=o[A+e|0],(p=(a=A+1|0)>>>0>=32)?h=0:(E=o[a+e|0]<<8|E,(a=A+2|0)>>>0>=32?h=0:(E=o[a+e|0]<<16|E,h=1,a=A+3|0)),A=a,!r)break g;if(C[0|B]=o[1024+(63&E)|0],1==(0|r))break g;if(C[B+1|0]=o[1024+(E>>>6&63)|0],w=B+r|0,a=B+2|0,!p){if(2==(0|r))break g;if(C[B+2|0]=o[1024+(E>>>12&63)|0],a=B+3|0,h){if(3==(0|r))break g;C[B+3|0]=o[1024+(E>>>18|0)|0],a=B+4|0}}if(r=w-(E=a)|0,E)continue;break g}break}B>>>0>=y>>>0||(C[0|B]=0,Q=g)}if(Q){if(_C(A=_+20|0))break I;if(I=TA(A,I,t,g,c),Rg(A),I){A=0;break A}}}i[9404]=D}A=-1}return s=_+128|0,0|A},wj:function(A,I,g,C){I|=0,C|=0;var B,Q,i=0;B=A|=0,Q=g|=0,g=0,s=C=s-128|0;A:{I:{for(;;){if(!o[g+B|0]){A=g;break I}if(!o[B+(A=g+1|0)|0])break I;if(!o[B+(A=g+2|0)|0])break I;if(102==(0|(g=g+3|0)))break}g=-1;break A}g=-1,101==(0|A)&&(_C(i=C+4|0)||(bg(A=C+16|0,0,102),I=TA(i,I,Q,B,A),Rg(i),I&&(g=MI(A,B,102),XC(A,102))))}return s=C+128|0,0|g},xj:function(A,I,g,C){var B,Q;Q=A|=0,s=B=s-32|0,bA(I|=0,g|=0,C|=0,B+28|0,B+20|0,B+12|0),A=0;A:{I:{g:{for(;;){if(o[A+Q|0]){if(o[Q+(I=A+1|0)|0]&&o[Q+(I=A+2|0)|0]){if(102!=(0|(A=A+3|0)))continue;break g}}else I=A;break}if(101==(0|I)){if(g=B+8|0,C=B+16|0,A=0,36!=o[0|Q]|55!=o[Q+1|0]|36!=o[Q+2|0]||(I=uI(o[Q+3|0]),i[B+24>>2]=I?I-1024|0:0,I&&(I=PI(g,Q+4|0))&&(A=PI(C,I))),A)break I;i[9404]=28,A=-1;break A}}i[9404]=28,A=-1;break A}A=1,i[B+28>>2]!=i[B+24>>2]|i[B+12>>2]!=i[B+8>>2]||(A=i[B+20>>2]!=i[B+16>>2])}return s=B+32|0,0|A},yj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,1)},zj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,0)},Aj:function(A,I){return 0|II(A|=0,I|=0,1)},Bj:function(A,I){return 0|II(A|=0,I|=0,0)},Cj:BB,Dj:BB,Ej:function(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s-320|0,Q=-1,EA(B,g|=0)||(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],u(I=B+160|0,A,B),W(A,I),Q=GI(A,32)?-1:0),s=B+320|0,0|Q},Fj:function(A,I){var g;return I|=0,s=g=s-160|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],nA(g,A),W(A,g),A=GI(A,32),s=g+160|0,0|(A?-1:0)},Gj:BB,Hj:BB,Ij:dg,Jj:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),EI(A+16|0,A,I,g,C,B,i),0},Kj:lg,Lj:Dg,Mj:BB,Nj:_B,Oj:CB,Pj:EB,Qj:CB,Rj:CB,Sj:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(p=1886610805^(a=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),D=1936682341^(_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),a^=1852142177,c=1819895653^_,w=1852075907^(_=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),n=1685025377^(Q=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^_,_=1952801890^Q,s=g,(0|(E=(g+I|0)-(i=7&g)|0))!=(0|I))for(;g=(e=_^(k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24))+c|0,t=B=a+(Q=t^(y=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,r=g=B>>>0>>0?g+1|0:g,a=B,B=g,g=D+n|0,g=(_=p+w|0)>>>0

>>0?g+1|0:g,h=(c=UI(w,n,13)^_)+a|0,B=(a=f^g)+B|0,a=UI(c,a,17)^h,p=UI(a,B=(c=c>>>0>h>>>0?B+1|0:B)^f,13),D=f,e=UI(Q,e,16),Q=r^f,e^=t,r=UI(_,g,32),g=f+Q|0,g=(t=B)+(B=(_=e+r|0)>>>0>>0?g+1|0:g)|0,r=g=(t=a+_|0)>>>0<_>>>0?g+1|0:g,p=UI(a=t^p,g^=D,17),D=f,e=UI(e,Q,21),Q=B^f,e^=_,_=UI(h,c,32),B=f+Q|0,g=(_=(c=e+_|0)>>>0<_>>>0?B+1|0:B)+g|0,w=(a=a+c|0)^p,B=g=a>>>0>>0?g+1|0:g,n=g^D,g=UI(e,Q,16),e=_^=f,h=UI(g^=c,_,21),c=f,r=(_=UI(t,r,32))+g|0,g=f+e|0,t=r^h,_=(g=_>>>0>r>>>0?g+1|0:g)^c,a=UI(a,B,32),c=f,p=y^r,D=g^k,(0|E)!=(0|(I=I+8|0)););switch(y=0,Q=s<<24,i-1|0){case 6:Q|=o[I+6|0]<<16;case 5:Q|=o[I+5|0]<<8;case 4:Q|=o[I+4|0];case 3:y|=(g=o[I+3|0])<<24,Q|=B=g>>>8|0;case 2:y|=(B=o[I+2|0])<<16,Q|=g=B>>>16|0;case 1:y|=(g=o[I+1|0])<<8,Q|=B=g>>>24|0;case 0:y=o[0|I]|y}return h=Q,I=Q^_,B=UI(Q=t^y,I,16),I=I+c|0,r=I=(t=Q+a|0)>>>0>>0?I+1|0:I,s=UI(Q=B^t,I^=g=f,21),_=f,g=D+n|0,B=g=(a=p+w|0)>>>0

>>0?g+1|0:g,c=Q,Q=UI(a,g,32),g=f+I|0,I=_,_=g=Q>>>0>(c=c+Q|0)>>>0?g+1|0:g,p=UI(Q=c^s,I^=g,16),D=f,g=(a=e=UI(w,n,13)^a)+t|0,B=(t=f^B)+r|0,r=Q,Q=UI(g,B=g>>>0>>0?B+1|0:B,32),I=f+I|0,k=Q=(a=Q>>>0>(s=r+Q|0)>>>0?I+1|0:I)^D,r=p^=s,D=UI(e,t,17)^g,g=(e=f^B)+_|0,I=g=(B=c=(I=D)+c|0)>>>0>>0?g+1|0:g,_=UI(B,g,32),g=f+Q|0,c=(t=_+r|0)^y,h^=r=_>>>0>t>>>0?g+1|0:g,Q=UI(D,e,13)^B,B=UI(Q,I^=f,17),I=I+a|0,Q=B^(_=Q+s|0),B=I=_>>>0>>0?I+1|0:I,g=(I^=g=f)+h|0,g=Q>>>0>(c=Q+c|0)>>>0?g+1|0:g,Q=UI(Q,I,13)^c,a=g,s=UI(Q,I=g^f,17),y=f,h=UI(p,k,21),e=r^f,r=t^h,_=238^UI(_,B,32),g=f+e|0,g=(h=I)+(I=(B=r+_|0)>>>0<_>>>0?g+1|0:g)|0,_=g=(t=B+Q|0)>>>0>>0?g+1|0:g,y=UI(Q=t^s,g^=y,13),h=f,r=UI(r,e,16),e=I^f,s=B^r,B=UI(c,a,32),I=f+e|0,B=(c=g)+(g=B>>>0>(a=s+B|0)>>>0?I+1|0:I)|0,c=B=(r=Q+a|0)>>>0>>0?B+1|0:B,y=UI(Q=y^r,I=B^h,17),h=f,B=UI(s,e,21),e=g^f,s=B^a,B=UI(t,_,32),g=f+e|0,g=(B=B>>>0>(a=s+B|0)>>>0?g+1|0:g)+I|0,_=g=(t=Q+a|0)>>>0>>0?g+1|0:g,y=UI(Q=t^y,I=g^h,13),h=f,g=UI(s,e,16),e=B^f,s=g^a,g=UI(r,c,32),B=f+e|0,g=(B=g>>>0>(a=s+g|0)>>>0?B+1|0:B)+I|0,c=g=(r=Q+a|0)>>>0>>0?g+1|0:g,y=UI(Q=y^r,I=g^h,17),h=f,g=UI(s,e,21),e=B^f,s=g^a,a=UI(t,_,32),g=f+e|0,I=(g=(B=s+a|0)>>>0>>0?g+1|0:g)+I|0,a=I=(_=B+Q|0)>>>0>>0?I+1|0:I,y=UI(Q=_^y,I^=h,13),h=f,t=UI(s,e,16),s=g^f,t^=B,c=UI(r,c,32),g=f+s|0,g=(r=I)+(I=(B=t+c|0)>>>0>>0?g+1|0:g)|0,c=g=(r=B+Q|0)>>>0>>0?g+1|0:g,y=UI(Q=y^r,g^=h,17),h=f,t=UI(t,s,21),s=I^f,t^=B,B=UI(_,a,32),I=f+s|0,B=(_=g)+(g=B>>>0>(a=t+B|0)>>>0?I+1|0:I)|0,_=Q=(B=(I=Q+a|0)>>>0>>0?B+1|0:B)^h,y^=I,t=UI(t,s,16),e=g^f,a=(t^=a)+(c=UI(r,c,32))|0,g=f+e|0,I=UI(I,B,32),s=f,B=g=a>>>0>>0?g+1|0:g,c=A,t=(r=UI(t,e,21)^a)^I^a^y,C[0|c]=t,C[c+1|0]=t>>>8,C[c+2|0]=t>>>16,C[c+3|0]=t>>>24,g=(e=s^g^Q)^(Q=g^f),C[c+4|0]=g,C[c+5|0]=g>>>8,C[c+6|0]=g>>>16,C[c+7|0]=g>>>24,g=Q+s|0,g=(c=I)>>>0>(I=I+r|0)>>>0?g+1|0:g,h=I,Q=UI(r,Q,16)^I,r=g,s=I=g^f,B=(g=_)+B|0,_=a=(c=y^=221)+a|0,a=UI(a,B=a>>>0>>0?B+1|0:B,32),I=f+I|0,I=a>>>0>(t=a+Q|0)>>>0?I+1|0:I,a=UI(Q,s,21)^t,c=I,D=UI(a,Q=I^f,16),e=f,I=UI(y,g,13),g=r+(s=B^f)|0,I=g=(B=h+(y=I^_)|0)>>>0>>0?g+1|0:g,_=a,a=UI(B,g,32),g=f+Q|0,e=g=(_=a>>>0>(r=_+a|0)>>>0?g+1|0:g)^e,h=UI(D^=r,g,21),a=f,g=UI(y,s,17),I=c+(s=I^f)|0,B=I=(Q=t+(y=g^B)|0)>>>0>>0?I+1|0:I,I=UI(Q,I,32),g=e+f|0,e=g=(c=a)^(a=(I=I+D|0)>>>0>>0?g+1|0:g),c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),g=_+(s=B^f)|0,I=UI(Q=r+(y=I^Q)|0,g=Q>>>0>>0?g+1|0:g,32),B=e+f|0,e=B=(_=(I=I+D|0)>>>0>>0?B+1|0:B)^t,r=I,h=UI(D=h^I,B,21),t=f,I=UI(y,s,17),g=a+(s=g^f)|0,B=g=(Q=c+(y=I^Q)|0)>>>0>>0?g+1|0:g,I=UI(Q,g,32),g=e+f|0,e=g=(a=(I=I+D|0)>>>0>>0?g+1|0:g)^t,c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),B=_+(s=B^f)|0,g=UI(Q=r+(y=I^Q)|0,B=Q>>>0>>0?B+1|0:B,32),I=e+f|0,_=g=g+D|0,h=UI(h^g,(I=g>>>0>>0?I+1|0:I)^t,21),t=f,r=UI(y,s,17),g=B^f,r=UI(B=Q^r,g,13),g=g+a|0,g=(B=B+c|0)>>>0>>0?g+1|0:g,Q=UI(a=B^r,g^=Q=f,17)^h,B=f^t,g=I+g|0,I=UI(I=a+_|0,g=I>>>0<_>>>0?g+1|0:g,32)^Q^I,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g^f^B,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,0},Tj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;IC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,IC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},Uj:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,IC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,IC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},Vj:BB,Wj:eB,Xj:cB,Yj:PC,Zj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;gC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,gC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},_j:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,gC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,gC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},$j:BB,ak:eB,bk:cB,ck:PC,dk:BB,ek:_B,fk:cB,gk:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,s=Q=s-32|0,yA(Q,C|=0,B|=0,0),A=Xg(A,I,g,C+16|0,Q),s=Q+32|0,0|A},hk:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,yA(E,B|=0,o|=0,0),A=mg(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),s=E+32|0,0|A},ik:function(A,I,g,C,B,Q){var i;return A|=0,I|=0,g|=0,C|=0,s=i=s-32|0,yA(i,B|=0,Q|=0,0),A=mg(A,I,g,C,B+16|0,0,0,i),s=i+32|0,0|A},jk:PC,kk:K,lk:BA,mk:pB}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new y.Module(A);g({instance:new y.Instance(C,I)})}}},RuntimeError:Error};t=[];var s,h,D,f,p,w,n,k=!1;function F(){var A=e.buffer;B.HEAP8=s=new Int8Array(A),B.HEAP16=D=new Int16Array(A),B.HEAPU8=h=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=f=new Int32Array(A),B.HEAPU32=p=new Uint32Array(A),B.HEAPF32=w=new Float32Array(A),B.HEAPF64=n=new Float64Array(A)}var S=[],N=[],G=[],M=0,K=null,U=null;function b(A){throw B.onAbort?.(A),r(A="Aborted("+A+")"),k=!0,A+=". Build with -sASSERTIONS for more info.",new y.RuntimeError(A)}var H,Y=A=>A.startsWith("file://");var J={36800:()=>B.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=require("crypto"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw"No secure random number generator found"}}}},d=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var m,l="undefined"!=typeof TextDecoder?new TextDecoder:void 0,u=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&l)return l.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(h,A,I):"",x=[],v=A=>{var I=(A-e.buffer.byteLength+65535)/65536;try{return e.grow(I),F(),1}catch(A){}},R={b:(A,I,g,C)=>{b(`Assertion failed: ${u(A)}, at: `+[I?u(I):"unknown filename",g,C?u(C):"unknown function"])},c:()=>{b("")},a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(x.length=0;g=h[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,x.push(112==g?p[I>>2]:105==g?f[I>>2]:n[I>>3]),I+=C?8:4}return x})(I,g);return J[A](...C)})(A,I,g),d:A=>{var I=h.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(v(i))return!0}return!1}},L=function(){var A={a:R};function I(A,I){var g;return L=A.exports,e=L.e,F(),g=L.f,N.unshift(g),function(A){if(M--,B.monitorRunDependencies?.(M),0==M&&(null!==K&&(clearInterval(K),K=null),U)){var I=U;U=null,I()}}(),L}if(M++,B.monitorRunDependencies?.(M),B.instantiateWasm)try{return B.instantiateWasm(A,I)}catch(A){return r(`Module.instantiateWasm callback failed with error: ${A}`),!1}return H||(H="<<< WASM_BINARY_FILE >>>"),function(A,I,C){(function(A){return Promise.resolve().then((()=>function(A){if(A==H&&t)return new Uint8Array(t);if(g)return g(A);throw"both async and sync fetching of the wasm failed"}(A)))})(A).then((A=>y.instantiate(A,I))).then(C,(A=>{r(`failed to asynchronously prepare wasm: ${A}`),b(A)}))}(H,A,(function(A){I(A.instance)})),{}}();function P(){function A(){m||(m=!0,B.calledRun=!0,k||(d(N),B.onRuntimeInitialized?.(),function(){if(B.postRun)for("function"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),G.unshift(A);var A;d(G)}()))}M>0||(function(){if(B.preRun)for("function"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),S.unshift(A);var A;d(S)}(),M>0||(B.setStatus?(B.setStatus("Running..."),setTimeout((function(){setTimeout((function(){B.setStatus("")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=L.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=L.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=L.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=L.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=L.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=L.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=L.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=L.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=L.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=L.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=L.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=L.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=L.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=L.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=L.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=L.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=L.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=L.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=L.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=L.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=L.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=L.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=L.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=L.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=L.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=L.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=L.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=L.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=L.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=L.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=L.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=L.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=L.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=L.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=L.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=L.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=L.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=L.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=L.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=L.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=L.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=L.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=L.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=L.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=L.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=L.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=L._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=L.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=L.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=L.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=L.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=L.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=L.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=L.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=L.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=L.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=L.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=L.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=L.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=L.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=L.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=L.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=L.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=L.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=L.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=L.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=L.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=L.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=L.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=L.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=L.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=L.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=L.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=L.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=L.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=L.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=L.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=L.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=L.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=L.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=L.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=L.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=L.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=L.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=L.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=L.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=L.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=L.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=L.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=L.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=L.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=L.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=L.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=L.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=L.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=L.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=L.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=L.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=L.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=L.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=L._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=L.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=L.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=L.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=L.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=L.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=L.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=L.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=L.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=L.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=L.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=L.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=L.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=L.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=L.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=L.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=L.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=L.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=L.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=L.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=L.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=L.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=L.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=L.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=L.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=L.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=L.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=L.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=L.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=L.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=L.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=L.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=L.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=L.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=L.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=L.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=L.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=L.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=L.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=L.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=L.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=L.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=L.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=L.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=L.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=L.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=L.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=L.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=L.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=L.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=L.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=L.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=L.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=L.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=L._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=L.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=L.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=L.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=L.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=L.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=L.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=L.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=L.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=L.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=L.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=L.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=L.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=L.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=L.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=L.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=L.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=L.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=L.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=L.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=L.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=L.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=L.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=L.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=L.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=L.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=L.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=L.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=L.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=L.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=L.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=L.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=L.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=L.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=L.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=L.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=L.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=L.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=L.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=L.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=L.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=L.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=L.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=L.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=L.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=L.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=L.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=L.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=L.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=L.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=L.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=L.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=L.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=L.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=L._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=L.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=L.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=L.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=L.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=L.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=L.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=L.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=L.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=L.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=L.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=L.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=L.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=L.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=L.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=L.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=L.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=L.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=L.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=L.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=L.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=L.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=L.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=L.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=L.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=L.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=L.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=L.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=L.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=L.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=L.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=L.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=L.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=L.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=L.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=L.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=L.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=L.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=L.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=L.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=L.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=L.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=L.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=L.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=L.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=L.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=L.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=L.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=L.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=L.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=L.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=L.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=L.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=L.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=L._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=L.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=L.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=L.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=L.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=L.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=L.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=L.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=L.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=L.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=L.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=L.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=L.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=L.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=L.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=L.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=L.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=L.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=L.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=L.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=L.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=L.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=L.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=L.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=L.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=L.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=L.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=L.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=L.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=L.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=L.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=L.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=L.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=L.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=L.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=L.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=L.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=L.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=L.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=L.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=L.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=L.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=L.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=L.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=L.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=L.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=L.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=L.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=L.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=L.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=L.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=L.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=L.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=L.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=L._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=L.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=L.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=L.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=L.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=L.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=L.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=L.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=L.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=L.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=L.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=L.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=L.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=L.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=L.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=L.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=L.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=L.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=L.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=L.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=L.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=L.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=L.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=L.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=L.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=L.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=L.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=L.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=L.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=L.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=L.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=L.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=L.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=L.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=L.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=L.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=L.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=L.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=L.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=L.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=L.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=L.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=L.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=L.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=L.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=L.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=L.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=L.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=L.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=L.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=L.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=L.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=L.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=L._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=L.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=L.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=L.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=L.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=L.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=L.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=L.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=L.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=L.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=L.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=L.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=L.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=L.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=L.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=L.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=L.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=L.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=L.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=L.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=L.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=L.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=L.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=L.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=L.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=L.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=L.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=L.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=L.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=L.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=L.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=L.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=L.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=L.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=L.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=L.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=L.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=L.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=L.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=L.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=L.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=L.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=L.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=L.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=L.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=L.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=L.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=L.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=L.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=L.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=L.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=L.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=L.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=L.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=L._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=L.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=L.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=L.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=L.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=L.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=L.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=L.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=L.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=L.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=L.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=L.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=L.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=L.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=L.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=L.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=L.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=L.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=L.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=L.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=L.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=L.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=L.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=L.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=L.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=L.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=L.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=L.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=L.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=L.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=L.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=L.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=L.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=L.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=L.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=L.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=L.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=L.Jh)(),B._randombytes_random=()=>(B._randombytes_random=L.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=L.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=L.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=L.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=L.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=L.Ph)(),B._randombytes_close=()=>(B._randombytes_close=L.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=L.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=L.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=L.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=L.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=L.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=L.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=L.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=L.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=L.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=L._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=L.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=L.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=L.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=L.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=L.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=L.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=L.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=L.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=L.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=L.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=L.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=L.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=L.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=L.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=L.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=L.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=L.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=L.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=L.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=L.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=L.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=L.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=L.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=L.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=L.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=L.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=L.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=L.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=L.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=L.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=L.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=L.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=L.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=L.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=L.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=L.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=L.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=L.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=L.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=L.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=L.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=L.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=L.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=L.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=L.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=L.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=L.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=L.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=L.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=L.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=L.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=L.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=L.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=L._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=L.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=L.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=L.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=L.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=L.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=L.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=L.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=L.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=L.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=L.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=L.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=L.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=L.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=L.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=L.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=L.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=L.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=L.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=L.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=L.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=L.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=L.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=L.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=L.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=L.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=L.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=L.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=L.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=L.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=L.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=L.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=L.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=L.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=L.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=L.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=L.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=L.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=L.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=L.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=L.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=L.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=L.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=L.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=L.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=L.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=L.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=L.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=L.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=L.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=L.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=L.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=L.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=L.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=L._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=L.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=L.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=L.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=L.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=L.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=L.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=L.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=L.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=L.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=L.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=L.jk)(A),B._malloc=A=>(B._malloc=L.kk)(A),B._free=A=>(B._free=L.lk)(A),B.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":s[A]=I;break;case"i16":D[A>>1]=I;break;case"i32":f[A>>2]=I;break;case"i64":b("to do setValue(i64) use WASM_BIGINT");case"float":w[A>>2]=I;break;case"double":n[A>>3]=I;break;case"*":p[A>>2]=I;break;default:b(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return s[A];case"i16":return D[A>>1];case"i32":return f[A>>2];case"i64":b("to do getValue(i64) use WASM_BIGINT");case"float":return w[A>>2];case"double":return n[A>>3];case"*":return p[A>>2];default:b(`invalid type for getValue: ${I}`)}},B.UTF8ToString=u,U=function A(){m||P(),m||(U=A)},B.preInit)for("function"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();P()}))};var g,B=void 0!==B?B:{},Q="object"==typeof window,i="function"==typeof importScripts,o=false,E=Object.assign({},B),a="";if(o){var _=require("fs"),c=require("path");a=__dirname+"/",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),"undefined"!=typeof module&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:"undefined"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith("blob:")?"":a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}));B.print;var t,r,e=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var y,s,h,D,f,p,w,n=!1;function k(){var A=r.buffer;B.HEAP8=y=new Int8Array(A),B.HEAP16=h=new Int16Array(A),B.HEAPU8=s=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=D=new Int32Array(A),B.HEAPU32=f=new Uint32Array(A),B.HEAPF32=p=new Float32Array(A),B.HEAPF64=w=new Float64Array(A)}var F=[],S=[],N=[],G=0,M=null,K=null;function U(A){throw B.onAbort?.(A),e(A="Aborted("+A+")"),n=!0,A+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(A)}var b,H="data:application/octet-stream;base64,",Y=A=>A.startsWith("file://");function J(A){return Promise.resolve().then((()=>function(A){if(A==b&&t)return new Uint8Array(t);var I=function(A){if((A=>A.startsWith(H))(A))return function(A){if(void 0!==o&&o){var I=Buffer.from(A,"base64");return new Uint8Array(I.buffer,I.byteOffset,I.length)}for(var g=atob(A),C=new Uint8Array(g.length),B=0;BB.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A="object"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=require("crypto"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw"No secure random number generator found"}}}},m=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var l,u="undefined"!=typeof TextDecoder?new TextDecoder:void 0,x=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&u)return u.decode(A.subarray(I,B));for(var Q="";I>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(s,A,I):"",v=[],R=A=>{var I=(A-r.buffer.byteLength+65535)/65536;try{return r.grow(I),k(),1}catch(A){}},L={b:(A,I,g,C)=>{U(`Assertion failed: ${x(A)}, at: `+[I?x(I):"unknown filename",g,C?x(C):"unknown function"])},c:()=>{U("")},d:(A,I,g)=>s.copyWithin(A,I,I+g),a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(v.length=0;g=s[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,v.push(112==g?f[I>>2]:105==g?D[I>>2]:w[I>>3]),I+=C?8:4}return v})(I,g);return d[A](...C)})(A,I,g),e:A=>{var I=s.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(R(i))return!0}return!1}},P=function(){var A,I={a:L};function g(A,I){return P=A.exports,r=P.f,k(),function(A){if(G--,B.monitorRunDependencies?.(G),0==G&&(null!==M&&(clearInterval(M),M=null),K)){var I=K;K=null,I()}}(),P}if(G++,B.monitorRunDependencies?.(G),B.instantiateWasm)try{return B.instantiateWasm(I,g)}catch(A){return e(`Module.instantiateWasm callback failed with error: ${A}`),!1}return b||(b="data:application/octet-stream;base64,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AkJmAFcCQ2YAEgJEZgCrAQJFZgCjAgJGZgCqAQJHZgCpAQJIZgBYAklmAFcCSmYACgJLZgAlAkxmAAoCTWYADQJOZgANAk9mACwCUGYAEgJRZgASAlJmAJ4DAlNmAJ0DAlRmAJwDAlVmAKICAlZmAKECAldmAJsDAlhmAJoDAllmACUCWmYACgJfZgCZAwIkZgAcAmFnAFECYmcAOQJjZwBkAmRnACcCZWcADQJmZwDoAgJnZwChAQJoZwDzAQJpZwAnAmpnAA0Ca2cAoQECbGcAUAJtZwAWAm5nAAoCb2cACgJwZwAWAnFnAMoBAnJnAIADAnNnAP8CAnRnAP4CAnVnAKABAnZnAJ8BAndnAJ4BAnhnAJ0BAnlnAP0CAnpnAHECQWcA/AICQmcA+wICQ2cAUAJEZwAWAkVnAAoCRmcACgJHZwAWAkhnAMoBAklnAIIDAkpnAIEDAktnAMkBAkxnAHECTWcAyAECTmcAxwECT2cAzAECUGcAywECUWcAhwMCUmcAhgMCU2cAnQECVGcAnwECVWcAngECVmcAoAECV2cACgJYZwAnAllnABQCWmcACgJfZwDrAQIkZwAUAmFoAJ8CAmJoAJ4CAmNoAJ0CAmRoAJwCAmVoAJsCAmZoAJoCAmdoABICaGgAEgJpaAAKAmpoACUCa2gAFAJsaACIAwJtaACcAQJuaACbAQJvaAASAnBoAAoCcWgAJwJyaAAUAnNoAJgCAnRoAJcCAnVoAJYCAnZoABICd2gAnAECeGgAlQICeWgAmwECemgACgJBaAAlAkJoABQCQ2gAEgJEaAANAkVoAAoCRmgAFgJHaAA3AkhoAD8CSWgAsQECSmgAvAMCS2gAuwMCTGgA6AECTWgAugMCTmgAGQJPaAC5AwJQaAAKAlFoALgDAlJoAJQCAlNoAJIDAlRoAJEDAlVoAJADAlZoAIIBAldoAIEBAlhoAMEDAlloALQDAlpoAKsDAl9oANgCAiRoANcCAmFpADkCYmkAHAJjaQB6AmRpAEECZWkAiQMCZmkAmgECZ2kAkwICaGkAkgICaWkAkAICamkAmQECa2kAjwICbGkAmAECbWkAjgICbmkACgJvaQAKAnBpAAoCcWkACgJyaQAlAnNpAA0CdGkALAJ1aQCNAgJ2aQCMAgJ3aQDBAQJ4aQCwAwJ5aQCvAwJ6aQCuAwJBaQCt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iEL///8AgyIIIAEoAA8iO0EGdkH///8Aca0iBn58IAEoAAoiPEEYdq0gATEADkIIhoQgATEAD0IQhoRCAYhC////AIMiDCACKAAKIj1BBHZB////AHGtIg1+fCA5QRh2rSACMQAGQgiGhCACMQAHQhCGhEICiEL///8AgyIOIDtBGHatIAExABNCCIaEIAExABRCEIaEQgOIIgl+fCACKAAPIjlBBnZB////AHGtIgcgATUAB0IHiEL///8AgyIPfnwgPUEYdq0gAjEADkIIhoQgAjEAD0IQhoRCAYhC////AIMiCiA8QQR2Qf///wBxrSIQfnwgOUEYdq0gAjEAE0IIhoQgAjEAFEIQhoRCA4giESABKAACIjlBGHatIAExAAZCCIaEIAExAAdCEIaEQgKIQv///wCDIhJ+fCACMwAVIAIxABdCEIZCgID8AIOEIhUgOUEFdkH///8Aca0iFn58IAEzAAAgATEAAkIQhkKAgPwAg4QiFyACKAAXIjlBBXZB////AHGtIhh+fCAEIAV+IAkgC358IAggDH58IA0gEH58IAYgDn58IAcgEn58IAogD358IBEgFn58IBUgF358Ih1CgIBAfSIeQhWIfCITIBNCgIBAfSIgQoCAgH+DfSA5QRh2rSACMQAbQgiGhCACMQAcQhCGhEICiEL///8AgyITIAEoABxBB3atIhl+IDpBGHatIAExABtCCIaEIAExABxCEIaEQgKIQv///wCDIhogAigAHEEHdq0iG358IAMgG34gGCAZfnwgEyAafnwiIUKAgEB9Ih9CFYh8IiIgIkKAgEB9IhxCgICA/////wCDfSIiQpPYKH58ICEgH0KAgID/////AIN9IBUgGX4gGCAafnwgBCAbfnwgAyATfnwgAyAYfiARIBl+fCAVIBp+fCAJIBt+fCAEIBN+fCIjQoCAQH0iFEIViHwiH0KAgEB9IiRCFYh8IiFCmNocfnwgHyAkQoCAgH+DfSIfQuf2J358ICMgFEKAgIB/g30gESAafiAHIBl+fCAEIBh+fCADIBV+fCAGIBt+fCAJIBN+fCAKIBl+IAcgGn58IAMgEX58IAkgGH58IAQgFX58IAwgG358IAYgE358IhRCgIBAfSIkQhWIfCIlQoCAQH0iJkIViHwiI0LTjEN+fCAdIAUgCX4gBiALfnwgCCAQfnwgDSAP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SQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvyAgICfwF+AkAgAkUNACAAIAE6AAAgACACaiIDQQFrIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0EDayABOgAAIANBAmsgAToAACACQQdJDQAgACABOgADIANBBGsgAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkEEayABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBCGsgATYCACACQQxrIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQRBrIAE2AgAgAkEUayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAsEAEEQCxkBAX9BiKoCKAIAIgAEQCAAERYACxCLAQAL1AECBX8CfgJ/IAJCAFIEQCAAQeABaiEHIABB4ABqIQMgACgA4AIhBANAIAMgBGohBkGAAiAEayIFrSIIIAJaBEAgBiABIAKnIgEQCxogACAAKADgAiABajYA4AJBAAwDCyAGIAEgBRALGiAAIAAoAOACIAVqNgDgAiAAIAApAEAiCUKAAXw3AEAgACAAKQBIIAlC/35WrXw3AEggACADEFIgAyAHQYABEAsaIAAgACgA4AJBgAFrIgQ2AOACIAEgBWohASACIAh9IgJCAFINAAsLQQALC58EARN/IAEoAgQhAiABKAIsIQMgASgCCCEEIAEoAjAhBSABKAIMIQYgASgCNCEHIAEoAhAhCCABKAI4IQkgASgCFCEKIAEoAjwhCyABKAIYIQwgAUFAayINKAIAIQ4gASgCHCEPIAEoAkQhECABKAIgIREgASgCSCESIAEoAiQhEyABKAJMIRQgACABKAIAIAEoAihqNgIAIAAgEyAUajYCJCAAIBEgEmo2AiAgACAPIBBqNgIcIAAgDCAOajYCGCAAIAogC2o2AhQgACAIIAlqNgIQIAAgBiAHajYCDCAAIAQgBWo2AgggACACIANqNgIEIAEoAgQhAiABKAIsIQMgASgCCCEEIAEoAjAhBSABKAIMIQYgASgCNCEHIAEoAhAhCCABKAI4IQkgASgCFCEKIAEoAjwhCyABKAIYIQwgDSgCACENIAEoAhwhDiABKAJEIQ8gASgCICEQIAEoAkghESABKAIAIRIgASgCKCETIAAgASgCTCABKAIkazYCTCAAIBEgEGs2AkggACAPIA5rNgJEIABBQGsgDSAMazYCACAAIAsgCms2AjwgACAJIAhrNgI4IAAgByAGazYCNCAAIAUgBGs2AjAgACADIAJrNgIsIAAgEyASazYCKCAAIAEpAlA3AlAgACABKQJYNwJYIAAgASkCYDcCYCAAIAEpAmg3AmggACABKQJwNwJwIABB+ABqIAFB+ABqQZANEAYL6AQBCX8gACABKAIgIgUgASgCHCIGIAEoAhgiByABKAIUIgggASgCECIJIAEoAgwiCiABKAIIIgQgASgCBCIDIAEoAgAiAiABKAIkIgFBE2xBgICACGpBGXZqQRp1akEZdWpBGnVqQRl1akEadWpBGXVqQRp1akEZdWpBGnUgAWpBGXVBE2wgAmoiAjoAACAAIAJBEHY6AAIgACACQQh2OgABIAAgAyACQRp1aiIDQQ52OgAFIAAgA0EGdjoABCAAIAJBGHZBA3EgA0ECdHI6AAMgACAEIANBGXVqIgJBDXY6AAggACACQQV2OgAHIAAgAkEDdCADQYCAgA5xQRZ2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ABcgAy0AD3I6AA8gAyAALQAYIAMtAA9yOgAPIAMgAC0AGSADLQAPcjoADyADIAAtABogAy0AD3I6AA8gAyAALQAbIAMtAA9yOgAPIAMgAC0AHCADLQAPcjoADyADIAAtAB0gAy0AD3I6AA8gAyAALQAeIAMtAA9yOgAPIAMgAC0AHyADLQAPcjoADyADLQAPQRd0QYCAgARrQR91IQQLIANBEGokACAEC30BA38CQAJAIAAiAUEDcUUNACABLQAARQRAQQAPCwNAIAFBAWoiAUEDcUUNASABLQAADQALDAELA0AgASICQQRqIQFBgIKECCACKAIAIgNrIANyQYCBgoR4cUGAgYKEeEYNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrCycAIAJBgAJPBEBB1gpB/wlB6wBB4wgQAQALIAAgASACQf8BcRCDAQv7AwECf0F/IQQCQCACQcAASw0AIANBwQBrQUBJDQACQCABQQAgAhtFBEAgA0H/AXEiAUHBAGtB/wFxQb8BTQRAEA4ACyAAQUBrQQBBpQIQDBogAEL5wvibkaOz8NsANwA4IABC6/qG2r+19sEfNwAwIABCn9j52cKR2oKbfzcAKCAAQtGFmu/6z5SH0QA3ACAgAELx7fT4paf9p6V/NwAYIABCq/DT9K/uvLc8NwAQIABCu86qptjQ67O7fzcACCAAIAGtQoiS95X/zPmE6gCFNwAADAELAn8gAkH/AXEhAiMAQYABayIFJAACQCADQf8BcSIDQcEAa0H/AXFBvwFNDQAgAUUNACACQcEAa0H/AXFBvwFNDQAgAEFAa0EAQaUCEAwaIABC+cL4m5Gjs/DbADcAOCAAQuv6htq/tfbBHzcAMCAAQp/Y+dnCkdqCm383ACggAELRhZrv+s+Uh9EANwAgIABC8e30+KWn/aelfzcAGCAAQqvw0/Sv7ry3PDcAECAAQrvOqqbY0Ouzu383AAggACADrSACrUIIhoRCiJL3lf/M+YTqAIU3AAAgAEHgAGogBUEAQYABEAwgASACEAsiAUGAARALGiAAIAAoAOACQYABajYA4AIgAUGAARAJIAFBgAFqJABBAAwBCxAOAAsNAQtBACEECyAECw0AIAAgASACECQaQQAL6AUCB34DfyMAQaACayILJAACQCACUA0AIAAgACkDICIDIAJCA4Z8NwMgIABBKGohCkLAACADQgOIQj+DIgR9IgggAlgEQEIAIQMgBEI/hUIDWgRAIAhC/ACDIQcDQCAKIAMgBHynaiABIAOnai0AADoAACAKIANCAYQiCSAEfKdqIAEgCadqLQAAOgAAIAogA0IChCIJIAR8p2ogASAJp2otAAA6AAAgCiADQgOEIgkgBHynaiABIAmnai0AADoAACADQgR8IQMgBUIEfCIFIAdSDQALCyAIQgODIgVCAFIEQANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgBVINAAsLIAAgCiALIAtBgAJqIgwQYiABIAinaiEBIAIgCH0iAkI/VgRAA0AgACABIAsgDBBiIAFBQGshASACQkB8IgJCP1YNAAsLAkAgAlANACACQgODIQRCACEGQgAhAyACQgRaBEAgAkI8gyEFQgAhAgNAIAogA6ciAGogACABai0AADoAACAKIABBAXIiDGogASAMai0AADoAACAKIABBAnIiDGogASAMai0AADoAACAKIABBA3IiAGogACABai0AADoAACADQgR8IQMgAkIEfCICIAVSDQALCyAEUA0AA0AgCiADpyIAaiAAIAFqLQAAOgAAIANCAXwhAyAGQgF8IgYgBFINAAsLIAtBoAIQCQwBC0IAIQMgAkIEWgRAIAJCfIMhCANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIAogA0IBhCIHIAR8p2ogASAHp2otAAA6AAAgCiADQgKEIgcgBHynaiABIAenai0AADoAACAKIANCA4QiByAEfKdqIAEgB6dqLQAAOgAAIANCBHwhAyAFQgR8IgUgCFINAAsLIAJCA4MiAlANAANAIAogAyAEfKdqIAEgA6dqLQAAOgAAIANCAXwhAyAGQgF8IgYgAlINAAsLIAtBoAJqJABBAAsEAEEYCw0AIAAgASACEBcaQQALBABBCAv3EgIVfgN/IAAgACgALCIWQQV2Qf///wBxrSAAKAA8QQN2rSICQoOhVn4gADMAKiAAMQAsQhCGQoCA/ACDhHwiC0KAgEB9IghCFYd8IgFCg6FWfiAANQAxQgeIQv///wCDIgNC04xDfiAAKAAXIhdBGHatIAAxABtCCIaEIAAxABxCEIaEQgKIQv///wCDfCAAKAA0IhhBBHZB////AHGtIgRC5/YnfnwgFkEY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QbABaiQAC7sGAQl/IwBB4ABrIgMkACACQcEATwRAIAAQYxogACABIAKtECQaIAAgAxAtGkEgIQIgAyEBCyAAEGMaIANCtuzYsePGjZs2NwNYIANCtuzYsePGjZs2NwNQIANCtuzYsePGjZs2NwNIIANBQGsiCkK27Nix48aNmzY3AwAgA0K27Nix48aNmzY3AzggA0K27Nix48aNmzY3AzAgA0K27Nix48aNmzY3AyggA0K27Nix48aNmzY3AyACQCACRQ0AIAJBBE8EQCACQfwAcSEGA0AgA0EgaiILIARqIgUgBS0AACABIARqLQAAczoAACALIARBAXIiBWoiCCAILQAAIAEgBWotAABzOgAAIAsgBEECciIFaiIIIAgtAAAgASAFai0AAHM6AAAgCyAEQQNyIgVqIgggCC0AACABIAVqLQAAczoAACAEQQRqIQQgB0EEaiIHIAZHDQALCyACQQNxIgdFDQADQCADQSBqIARqIgYgBi0AACABIARqLQAAczoAACAEQQFqIQQgCUEBaiIJIAdHDQALCyAAIANBIGpCwAAQJBogAEHoAGoiABBjGiADQty48eLFi5eu3AA3A1ggA0LcuPHixYuXrtwANwNQIANC3Ljx4sWLl67cADcDSCAKQty48eLFi5eu3AA3AwAgA0LcuPHixYuXrtwANwM4IANC3Ljx4sWLl67cADcDMCADQty48eLFi5eu3AA3AyggA0LcuPHixYuXrtwANwMgAkAgAkUNAEEAIQlBACEEIAJBBE8EQCACQfwAcSEKQQAhBwNAIANBIGoiCCAEaiIGIAYtAAAgASAEai0AAHM6AAAgCCAEQQFyIgZqIgUgBS0AACABIAZqLQAAczoAACAIIARBAnIiBmoiBSAFLQAAIAEgBmotAABzOgAAIAggBEEDciIGaiIFIAUtAAAgASAGai0AAHM6AAAgBEEEaiEEIAdBBGoiByAKRw0ACwsgAkEDcSICRQ0AA0AgA0EgaiAEaiIHIActAAAgASAEai0AAHM6AAAgBEEBaiEEIAlBAWoiCSACRw0ACwsgACADQSBqIgBCwAAQJBogAEHAABAJIANBIBAJIANB4ABqJABBAAs7AQF/IwBBQGoiAiQAIAAgAhAdGiAAQdABaiIAIAJCwAAQFxogACABEB0aIAJBwAAQCSACQUBrJABBAAtyACAAQgA3A0AgAEIANwNIIABBsIwCKQMANwMAIABBuIwCKQMANwMIIABBwIwCKQMANwMQIABByIwCKQMANwMYIABB0IwCKQMANwMgIABB2IwCKQMANwMoIABB4IwCKQMANwMwIABB6IwCKQMANwM4QQALIwAgAUKAgICAEFoEQBAOAAsgACABIAIgA0G0nwIoAgARDwAL5QgBGH8jAEHAAmsiAiQAIABBKGoiFyABEDYgAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAkHwAWoiBCAXEAUgAkHAAWoiDiAEQbAMEAYgAiACKALAAUEBajYCwAEgAiACKALwAUEBayIDNgLwASACKAL0ASENIAIoAvgBIQUgAigC/AEhBiACKAKAAiEHIAIoAoQCIQggAigCiAIhCSACKAKMAiEKIAIoApACIQsgAigClAIhDCAAIAQgDhAGIAAgABBuIAAgBCAAEAYgAkGQAWoiBCAAEAUgBCAEIA4QBiACIAIoArQBIgQgDGs2AoQBIAIgAigCsAEiDiALazYCgAEgAiACKAKsASIPIAprNgJ8IAIgAigCqAEiECAJazYCeCACIAIoAqQBIhEgCGs2AnQgAiACKAKgASISIAdrNgJwIAIgAigCnAEiEyAGazYCbCACIAIoApgBIhQgBWs2AmggAiACKAKUASIVIA1rNgJkIAIgAigCkAEiFiADazYCYCACIAQgDGo2AlQgAiALIA5qNgJQIAIgCiAPajYCTCACIAkgEGo2AkggAiAIIBFqNgJEIAIgByASajYCQCACIAYgE2o2AjwgAiAFIBRqNgI4IAIgDSAVajYCNCACIAMgFmo2AjAgAiACQeAAahARIAJBIBAaIQQgAiACQTBqEBEgAkEgEBohDyACIABB4AwQBiAAKAIEIQwgACgCCCELIAAoAgwhCiAAKAIQIQkgACgCFCEIIAAoAhghByAAKAIcIQYgACgCICEFIAAoAgAhDiACKAIAIRAgAigCBCERIAIoAgghEiACKAIMIRMgAigCECEUIAIoAhQhFSACKAIYIRYgAigCHCEYIAIoAiAhGSAAIARBAWsiAyAAKAIkIg0gAigCJHNxIA1zIg02AiQgACAFIAUgGXMgA3FzIgU2AiAgACAGIAYgGHMgA3FzIgY2AhwgACAHIAcgFnMgA3FzIgc2AhggACAIIAggFXMgA3FzIgg2AhQgACAJIAkgFHMgA3FzIgk2AhAgACAKIAogE3MgA3FzIgo2AgwgACALIAsgEnMgA3FzIgs2AgggACAMIAwgEXMgA3FzIgw2AgQgACAOIA4gEHMgA3FzIgM2AgAgAkGgAmogABARIABBACACLQCgAkEBcSABLQAfQQd2c0GAqgItAABBAnZzayIBIA1BACANa3NxIA1zNgIkIAAgBUEAIAVrcyABcSAFczYCICAAIAZBACAGa3MgAXEgBnM2AhwgACAHQQAgB2tzIAFxIAdzNgIYIAAgCEEAIAhrcyABcSAIczYCFCAAIAlBACAJa3MgAXEgCXM2AhAgACAKQQAgCmtzIAFxIApzNgIMIAAgC0EAIAtrcyABcSALczYCCCAAIAxBACAMa3MgAXEgDHM2AgQgACADQQAgA2tzIAFxIANzNgIAIABB+ABqIAAgFxAGIAJBwAJqJAAgBCAPckEBawvKCAEDfyMAQcABayICJAAgAkGQAWoiBCABEAUgAkHgAGoiAyAEEAUgAyADEAUgAyABIAMQBiAEIAQgAxAGIAJBMGoiASAEEAUgAyADIAEQBiABIAMQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSADIAEgAxAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiABEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSADIAEgAxAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASADEAYgAiABEAVBASEBA0AgAiACEAUgAUEBaiIBQeQARw0ACyACQTBqIgEgAiABEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgAkHgAGoiAyABIAMQBiADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSAAIAMgAkGQAWoQBiACQcABaiQAC/QEARl+IAExAB8hAiABMQAeIQYgATEAHSEOIAExAAYhByABMQAFIQggATEABCEDIAExAAkhDyABMQAIIRAgATEAByERIAExAAwhCSABMQALIQogATEACiELIAExAA8hDCABMQAOIRIgATEADSETIAExABwhBCABMQAbIRQgATEAGiEVIAExABkhBSABMQAYIRYgATEAFyEXIAE1AAAhGCAAIAExABVCD4YgATEAFEIHhoQgATEAFkIXhoQgATUAECIZQoCAgAh8IhpCGYh8Ig0gDUKAgIAQfCINQoCAgOAPg30+AhggACAWQg2GIBdCBYaEIAVCFYaEIgUgDUIaiHwgBUKAgIAIfCIFQoCAgPADg30+AhwgACAUQgyGIBVCBIaEIARCFIaEIAVCGYh8IgQgBEKAgIAQfCIEQoCAgOAPg30+AiAgACAZIBpCgICA8A+DfSASQgqGIBNCAoaEIAxCEoaEIApCC4YgC0IDhoQgCUIThoQiCUKAgIAIfCIKQhmIfCILQoCAgBB8IgxCGoh8PgIUIAAgCyAMQoCAgOAPg30+AhAgACAQQg2GIBFCBYaEIA9CFYaEIAhCDoYgA0IGhoQgB0IWhoQiB0KAgIAIfCIIQhmIfCIDIANCgICAEHwiA0KAgIDgD4N9PgIIIAAgAkIShkKAgPAPgyAGQgqGIA5CAoaEhCICIARCGoh8IAJCgICACHwiAkKAgIAQg30+AiQgACADQhqIIAl8IApCgICA8ACDfT4CDCAAIAcgCEKAgIDwB4N9IBggAkIZiEITfnwiAkKAgIAQfCIGQhqIfD4CBCAAIAIgBkKAgIDgD4N9PgIAC+8DAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA2AgQgAiACKAIEIAIoAgwtAAAgAigCCC0AAHNyNgIEIAIgAigCBCACKAIMLQABIAIoAggtAAFzcjYCBCACIAIoAgQgAigCDC0AAiACKAIILQACc3I2AgQgAiACKAIEIAIoAgwtAAMgAigCCC0AA3NyNgIEIAIgAigCBCACKAIMLQAEIAIoAggtAARzcjYCBCACIAIoAgQgAigCDC0ABSACKAIILQAFc3I2AgQgAiACKAIEIAIoAgwtAAYgAigCCC0ABnNyNgIEIAIgAigCBCACKAIMLQAHIAIoAggtAAdzcjYCBCACIAIoAgQgAigCDC0ACCACKAIILQAIc3I2AgQgAiACKAIEIAIoAgwtAAkgAigCCC0ACXNyNgIEIAIgAigCBCACKAIMLQAKIAIoAggtAApzcjYCBCACIAIoAgQgAigCDC0ACyACKAIILQALc3I2AgQgAiACKAIEIAIoAgwtAAwgAigCCC0ADHNyNgIEIAIgAigCBCACKAIMLQANIAIoAggtAA1zcjYCBCACIAIoAgQgAigCDC0ADiACKAIILQAOc3I2AgQgAiACKAIEIAIoAgwtAA8gAigCCC0AD3NyNgIEIAIoAgRBAWtBCHZBAXFBAWsLmQEBBH9BwQAhAkGACCEBAkACQCAAQf8BcSIDQYAILQAARwRAIANBgYKECGwhAwNAQYCChAggASgCACADcyIEayAEckGAgYKEeHFBgIGChHhHDQIgAUEEaiEBIAJBBGsiAkEDSw0ACwsgAkUNAQsgAEH/AXEhAANAIAAgAS0AAEYEQCABDwsgAUEBaiEBIAJBAWsiAg0ACwtBAAsEAEECCz8AAkAgBK1CgICAgBAgAkI/fEIGiH1WDQAgAkKAgICAEFoNACAAIAEgAiADIAQgBUG8nwIoAgAREAAPCxAOAAsnACACQoCAgIAQWgRAEA4ACyAAIAEgAiADIAQgBUG4nwIoAgARDAAL1wEBA38jAEEQayIDIAA2AgwgAyABNgIIQQAhACADQQA6AAcCQCACRQ0AIAJBAXEgAkEBRwRAIAJBfnEhBEEAIQIDQCADIAMtAAcgAygCDCAAai0AACADKAIIIABqLQAAc3I6AAcgAyADLQAHIABBAXIiBSADKAIMai0AACADKAIIIAVqLQAAc3I6AAcgAEECaiEAIAJBAmoiAiAERw0ACwtFDQAgAyADLQAHIAMoAgwgAGotAAAgAygCCCAAai0AAHNyOgAHCyADLQAHQQFrQQh2QQFxQQFrC5wLARd/IwBBgARrIgIkAEF/IQMgAS0AHyIEQX9zQf8AcSABLQABIAEtAAIgAS0AAyABLQAEIAEtAAUgAS0ABiABLQAHIAEtAAggAS0ACSABLQAKIAEtAAsgAS0ADCABLQANIAEtAA4gAS0ADyABLQAQIAEtABEgAS0AEiABLQATIAEtABQgAS0AFSABLQAWIAEtABcgAS0AGCABLQAZIAEtABogAS0AGyABLQAcIAEtAB0gAS0AHnFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxQX9zckH/AXFBAWtB7AEgAS0AACIFa3FBCHYgBSAEQQd2cnJBAXFFBEAgAkHQAmoiDSABEDYgAkGgAmogDRAFIAJBACACKALEAiIBazYClAIgAkEAIAIoAsACIgNrNgKQAiACQQAgAigCvAIiBGs2AowCIAJBACACKAK4AiIFazYCiAIgAkEAIAIoArQCIgZrNgKEAiACQQAgAigCsAIiB2s2AoACIAJBACACKAKsAiIIazYC/AEgAkEAIAIoAqgCIglrNgL4ASACQQAgAigCpAIiCms2AvQBIAJBASACKAKgAiILazYC8AEgAkGQAWoiDCACQfABaiIREAUgAiABNgLkASACIAM2AuABIAIgBDYC3AEgAiAFNgLYASACIAY2AtQBIAIgBzYC0AEgAiAINgLMASACIAk2AsgBIAIgCjYCxAEgAiALQQFqNgLAASACQeAAaiISIAJBwAFqIhMQBSACQTBqIhBBsAwgDBAGIAIoAmAhASACKAIwIQMgAigCZCEEIAIoAjQhBSACKAJoIQYgAigCOCEHIAIoAmwhCCACKAI8IQkgAigCcCEKIAIoAkAhCyACKAJ0IQwgAigCRCEOIAIoAnghDyACKAJIIRQgAigCfCEVIAIoAkwhFiACKAKAASEXIAIoAlAhGCACQQAgAigCVCACKAKEAWprNgJUIAJBACAXIBhqazYCUCACQQAgFSAWams2AkwgAkEAIA8gFGprNgJIIAJBACAMIA5qazYCRCACQQAgCiALams2AkAgAkEAIAggCWprNgI8IAJBACAGIAdqazYCOCACQQAgBCAFams2AjQgAkEAIAEgA2prNgIwIAIgECASEAYgAkIANwKUAyACQgA3ApwDIAJBADYCpAMgAkIANwKEAyACQQE2AoADIAJCADcCjAMgAkGwA2oiASACQYADaiACEGohDyAAIAEgExAGIABBKGoiAyABIAAQBiADIAMgEBAGIAAgACANEAYgACAAKAIkQQF0IgQ2AiQgACAAKAIgQQF0IgU2AiAgACAAKAIcQQF0IgY2AhwgACAAKAIYQQF0Igc2AhggACAAKAIUQQF0Igg2AhQgACAAKAIQQQF0Igk2AhAgACAAKAIMQQF0Igo2AgwgACAAKAIIQQF0Igs2AgggACAAKAIEQQF0Igw2AgQgACAAKAIAQQF0Ig42AgAgAkHgA2oiDSAAEBEgAEEAIAItAOADQQFxayIBIARBACAEa3NxIARzNgIkIAAgBUEAIAVrcyABcSAFczYCICAAIAZBACAGa3MgAXEgBnM2AhwgACAHQQAgB2tzIAFxIAdzNgIYIAAgCEEAIAhrcyABcSAIczYCFCAAIAlBACAJa3MgAXEgCXM2AhAgACAKQQAgCmtzIAFxIApzNgIMIAAgC0EAIAtrcyABcSALczYCCCAAIAxBACAMa3MgAXEgDHM2AgQgACAOQQAgDmtzIAFxIA5zNgIAIAMgESADEAYgAEIANwJUIABBATYCUCAAQgA3AlwgAEIANwJkIABCADcCbCAAQQA2AnQgAEH4AGoiASAAIAMQBiANIAEQESACLQDgAyEAIA0gAxARQQAgDUEgEBpBASAPayAA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RQ0BIAJBAWsiAkUNASABQQFqIQEgAC0AASEDIABBAWohACADDQALQQAhAwsgAwVBAAsgAS0AAGsLUgECf0HwlgIoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRtFBEAgAD8AQRB0TQ0BIAAQBA0BC0HwpQJBMDYCAEF/DwtB8JYCIAA2AgAgAQs5AQF/IwBBIGsiAiQAIAAgAhAtGiAAQegAaiIAIAJCIBAkGiAAIAEQLRogAkEgEAkgAkEgaiQAQQALlgEBAX8jAEHQAWsiAyQAIANCADcDSCADQbiMAikDADcDCCADQcCMAikDADcDECADQciMAikDADcDGCADQdCMAikDADcDICADQdiMAikDADcDKCADQeCMAikDADcDMCADQeiMAikDADcDOCADQgA3A0AgA0GwjAIpAwA3AwAgAyABIAIQFxogAyAAEB0aIANB0AFqJABBAAsQACAAIAEgAiADQQgQaUEACxAAIAAgASACIANBDBBpQQALEAAgACABIAIgA0EUEGlBAAuhEQIsfwV+IwBBoAZrIgIkACABKAIsIQMgASgCVCEFIAEoAjAhDCABKAJYIQ0gASgCNCEOIAEoAlwhDyABKAI4IRAgASgCYCERIAEoAjwhEiABKAJkIRMgAUFAayIUKAIAIRYgASgCaCEEIAEoAkQhBiABKAJsIQcgASgCSCEIIAEoAnAhCSABKAIoIQogASgCUCELIAIgASgCTCIVIAEoAnQiF2o2AsQCIAIgCCAJajYCwAIgAiAGIAdqNgK8AiACIAQgFmo2ArgCIAIgEiATajYCtAIgAiAQIBFqNgKwAiACIA4gD2o2AqwCIAIgDCANajYCqAIgAiADIAVqNgKkAiACIAogC2o2AqACIAIgFyAVazYCJCACIAkgCGs2AiAgAiAHIAZrNgIcIAIgBCAWazYCGCACIBMgEms2AhQgAiARIBBrNgIQIAIgDyAOazYCDCACIA0gDGs2AgggAiAFIANrNgIEIAIgCyAKazYCACACQaACaiIFIAUgAhAGIAJB8AFqIgYgASABQShqIgMQBiACQcABaiIEIAYQBSAEIAUgBBAGIAJCADcCxAMgAkIANwLMAyACQQA2AtQDIAJCADcCtAMgAkIANwK8AyACQQE2ArADIAJBwARqIgcgAkGwA2ogBBBqGiACQdAFaiIEIAcgBRAGIAJBoAVqIh8gByAGEAYgAkEwaiIdIAQgHxAGIB0gHSABQfgAaiIFEAYgAkGQBGogAUHgDBAGIAJB4ANqIANB4AwQBiACQfAEaiAEQYAXEAYgAkHQAmoiAyAFIB0QBiACQYADaiIYIAMQESACLQCAAyEDIAIgASkCICIuNwOwASACIAEpAhgiLzcDqAEgAiABKQIQIjA3A6ABIAIgASkCCCIxNwOYASACIAEpAgAiMjcDkAEgASgCLCEFIAEoAjAhDCABKAI0IQ0gASgCOCEOIAEoAjwhDyAUKAIAIRAgASgCRCERIAEoAkghEiABKAJMIRMgASgCKCEWIAIoAuQDIQogAigClAEhBCACKALsAyELIAIoApwBIQYgAigC9AMhFCACKAKkASEHIAIoAvwDIRUgAigCrAEhCCACKAKEBCEXIAIoArQBIQkgAigC4AMhHiACKALoAyEZIAIoAvADIRogAigC+AMhGyACQQAgA0EBcWsiAyAupyIcIAIoAoAEc3EgHHM2ArABIAIgGyAvpyIccyADcSAcczYCqAEgAiAaIDCnIhtzIANxIBtzNgKgASACIBkgMaciGnMgA3EgGnM2ApgBIAIgHiAypyIZcyADcSAZczYCkAEgAiAJIAkgF3MgA3FzNgK0ASACIAggCCAVcyADcXM2AqwBIAIgByAHIBRzIANxczYCpAEgAiAGIAYgC3MgA3FzNgKcASACIAQgBCAKcyADcXM2ApQBIAIoApAEIRcgAigClAQhHiACKAKYBCEZIAIoApwEIRogAigCoAQhGyACKAKkBCEcIAIoAqgEISAgAigCrAQhISACKAKwBCEiIAIoArQEISMgAigCoAUhBCACKALwBCEkIAIoAqQFIQYgAigC9AQhJSACKAKoBSEHIAIoAvgEISYgAigCrAUhCCACKAL8BCEnIAIoArAFIQkgAigCgAUhKCACKAK0BSEKIAIoAoQFISkgAigCuAUhCyACKAKIBSEqIAIoArwFIRQgAigCjAUhKyACKALABSEVIAIoApAFISwgAiACKALEBSItIAIoApQFcyADcSAtczYCxAUgAiAVIBUgLHMgA3FzNgLABSACIBQgFCArcyADcXM2ArwFIAIgCyALICpzIANxczYCuAUgAiAKIAogKXMgA3FzNgK0BSACIAkgCSAocyADcXM2ArAFIAIgCCAIICdzIANxczYCrAUgAiAHIAcgJnMgA3FzNgKoBSACIAYgBiAlcyADcXM2AqQFIAIgBCAEICRzIANxczYCoAUgAkHgAGoiBCACQZABaiAdEAYgGCAEEBEgASgCVCEEIAEoAlghBiABKAJcIQcgASgCYCEIIAEoAmQhCSABKAJoIQogASgCbCELIAEoAnAhFCABKAJQIRUgAiABKAJ0QQAgAi0AgANBAXFrIgEgEyATICNzIANxcyITQQAgE2tzcSATc2s2AqQDIAIgFCASIBIgInMgA3FzIhJBACASa3MgAXEgEnNrNgKgAyACIAsgESARICFzIANxcyIRQQAgEWtzIAFxIBFzazYCnAMgAiAKIBAgECAgcyADcXMiEEEAIBBrcyABcSAQc2s2ApgDIAIgCSAPIA8gHHMgA3FzIg9BACAPa3MgAXEgD3NrNgKUAyACIAggDiAOIBtzIANxcyIOQQAgDmtzIAFxIA5zazYCkAMgAiAHIA0gDSAacyADcXMiDUEAIA1rcyABcSANc2s2AowDIAIgBiAMIAwgGXMgA3FzIgxBACAMa3MgAXEgDHNrNgKIAyACIAQgBSAFIB5zIANxcyIFQQAgBWtzIAFxIAVzazYChAMgAiAVIAEgFiAWIBdzIANxcyIBQQAgAWtzcSABc2s2AoADIBggHyAYEAYgAkGABmogGBARIAJBACACLQCABkEBcWsiASACKAKAAyIDQQAgA2tzcSADczYCgAMgAiACKAKEAyIDQQAgA2tzIAFxIANzNgKEAyACIAIoAogDIgNBACADa3MgAXEgA3M2AogDIAIgAigCjAMiA0EAIANrcyABcSADczYCjAMgAiACKAKQAyIDQQAgA2tzIAFxIANzNgKQAyACIAIoApQDIgNBACADa3MgAXEgA3M2ApQDIAIgAigCmAMiA0EAIANrcyABcSADczYCmAMgAiACKAKcAyIDQQAgA2tzIAFxIANzNgKcAyACIAIoAqADIgNBACADa3MgAXEgA3M2AqADIAIgASACKAKkAyIBQQAgAWtzcSABczYCpAMgACAYEBEgAkGgBmokAAv4AQEKfwNAIAQgACADai0AACIBIANBgBVqIgItAABzciEEIAogASACLQDAAXNyIQogCSABIAItAKABc3IhCSAIIAEgAi0AgAFzciEIIAcgASACLQBgc3IhByAGIAEgAkFAay0AAHNyIQYgBSABIAItACBzciEFIANBAWoiA0EfRw0ACyAKIAAtAB9B/wBxIgBB/wBzIgFyQf8BcUEBayABIAlyQf8BcUEBayABIAhyQf8BcUEBayAHIABB+gBzckH/AXFBAWsgBiAAQQVzckH/AXFBAWsgACAFckH/AXFBAWsgACAEckH/AXFBAWtycnJycnJBCHZBAXELwQUBHH8jAEHAAmsiASQAIAFB8AFqIgMgABAFIAFBwAFqIgQgAEEoahAFIAFBkAFqIgIgAEHQAGoQBSABKALwASEAIAEoAsABIQUgASgC9AEhBiABKALEASEHIAEoAvgBIQggASgCyAEhCSABKAL8ASEKIAEoAswBIQsgASgCgAIhDCABKALQASENIAEoAoQCIQ4gASgC1AEhDyABKAKIAiEQIAEoAtgBIREgASgCjAIhEiABKALcASETIAEoApACIRQgASgC4AEhFSABIAEoAuQBIAEoApQCazYCVCABIBUgFGs2AlAgASATIBJrNgJMIAEgESAQazYCSCABIA8gDms2AkQgASANIAxrNgJAIAEgCyAKazYCPCABIAkgCGs2AjggASAHIAZrNgI0IAEgBSAAazYCMCABQTBqIhYgFiACEAYgASADIAQQBiABIAFBsAwQBiABQeAAaiACEAUgASgCMCEAIAEoAmAhBSABKAIAIQYgASgCNCEHIAEoAmQhCCABKAIEIQkgASgCOCEKIAEoAmghCyABKAIIIQwgASgCPCENIAEoAmwhDiABKAIMIQ8gASgCQCEQIAEoAnAhESABKAIQIRIgASgCRCETIAEoAnQhFCABKAIUIRUgASgCSCECIAEoAnghAyABKAIYIQQgASgCTCEXIAEoAnwhGCABKAIcIRkgASgCUCEaIAEoAoABIRsgASgCICEcIAEgASgCVCABKAKEASABKAIkams2AlQgASAaIBsgHGprNgJQIAEgFyAYIBlqazYCTCABIAIgAyAEams2AkggASATIBQgFWprNgJEIAEgECARIBJqazYCQCABIA0gDiAPams2AjwgASAKIAsgDGprNgI4IAEgByAIIAlqazYCNCABIAAgBSAGams2AjAgAUGgAmoiACAWEBEgAEEgEBogAUHAAmokAAuFAwIDfwF+IwBB4AJrIgYkACAGIAQgBUEAECsaAn8C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IAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCCABIAIpAogCNwIoIAEgAikCgAI3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAggASACKQKIAjcCGCABIAIpAoACNwIQIAIgAikDmAI3AxggAiACKQOQAjcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAggASACKQKIAjcCCCABIAIpAoACNwIAIAEgCiABKAAMczYCDCABIAkgASgACHM2AgggASAIIAEoAARzNgIEIAEgCyABKAAAczYCACAAIAcgACgAAHM2AgAgASAGIAEoAERzNgJEIAEgBSABKABIczYCSCABIAQgASgATHM2AkwgAkGgAmokAAvwCQEdfyABKAIEIQQgASgCLCEDIAEoAgghBSABKAIwIQYgASgCDCEHIAEoAjQhCCABKAIQIQkgASgCOCEKIAEoAhQhCyABKAI8IQwgASgCGCENIAFBQGsiDigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIkIRQgASgCTCEVIAAgASgCACABKAIoajYCACAAIBQgFWo2AiQgACASIBNqNgIgIAAgECARajYCHCAAIA0gD2o2AhggACALIAxqNgIUIAAgCSAKajYCECAAIAcgCGo2AgwgACAFIAZqNgIIIAAgAyAEajYCBCABKAIEIQMgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEPIA4oAgAhDiABKAIcIQQgASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAEoAighFCAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAEazYCRCAAQUBrIgQgDiAPazYCACAAIA0gDGs2AjwgACALIAprNgI4IAAgCSAIazYCNCAAIAcgBms2AjAgACAFIANrNgIsIAAgFCATazYCKCAAQdAAaiAAIAJBKGoQBiAAQShqIgMgAyACEAYgAEH4AGogAkH4AGogAUH4AGoQBiAAIAFB0ABqIAJB0ABqEAYgACgCBCEUIAAoAgghFSAAKAIMIRYgACgCECEXIAAoAhQhGCAAKAIYIRkgACgCHCEaIAAoAiAhGyAAKAIkIRwgACgCLCEBIAAoAlQhAiAAKAIwIQMgACgCWCEFIAAoAjQhBiAAKAJcIQcgACgCOCEIIAAoAmAhCSAAKAI8IQogACgCZCELIAQoAgAhDCAAKAJoIQ0gACgCRCEOIAAoAmwhDyAAKAJIIRAgACgCcCERIAAoAgAhHSAAKAIoIRIgACgCUCETIAAgACgCTCIeIAAoAnQiH2o2AkwgACAQIBFqNgJIIAAgDiAPajYCRCAEIAwgDWo2AgAgACAKIAtqNgI8IAAgCCAJajYCOCAAIAYgB2o2AjQgACADIAVqNgIwIAAgASACajYCLCAAIBIgE2o2AiggACAfIB5rNgIkIAAgESAQazYCICAAIA8gDms2AhwgACANIAxrNgIYIAAgCyAKazYCFCAAIAkgCGs2AhAgACAHIAZrNgIMIAAgBSADazYCCCAAIAIgAWs2AgQgACATIBJrNgIAIAAgACgCnAEiASAcQQF0IgJqNgKcASAAIAAoApgBIgQgG0EBdCIDajYCmAEgACAAKAKUASIFIBpBAXQiBmo2ApQBIAAgACgCkAEiByAZQQF0IghqNgKQASAAIAAoAowBIgkgGEEBdCIKajYCjAEgACAAKAKIASILIBdBAXQiDGo2AogBIAAgACgChAEiDSAWQQF0Ig5qNgKEASAAIAAoAoABIg8gFUEBdCIQajYCgAEgACAAKAJ8IhEgFEEBdCISajYCfCAAIAAoAngiEyAdQQF0IhRqNgJ4IAAgAyAEazYCcCAAIAYgBWs2AmwgACAIIAdrNgJoIAAgCiAJazYCZCAAIAwgC2s2AmAgACAOIA1rNgJcIAAgECAPazYCWCAAIBIgEWs2AlQgACAUIBNrNgJQIAAgAiABazYCdAtAAQN/IAAgASABQfgAaiICEAYgAEEoaiABQShqIgMgAUHQAGoiBBAGIABB0ABqIAQgAhAGIABB+ABqIAEgAxAGCxcAIAAgASACrSADrUIghoQgBCAFEL8BCxcAIAAgASACrSADrUIghoQgBCAFEMABC4UBAQV/AkAgAS0AABA4IgJFDQAgAS0AARA4IgNFDQAgAS0AAhA4IgRFDQAgAS0AAxA4IgVFDQAgAS0ABBA4IgZFDQAgACACQYAIayADQYAIa0EGdHIgBEGACGtBDHRyIAVBgAhrQRJ0ciAGQYAIa0EYdHI2AgAgAUEFag8LIABBADYCAEEAC8MGAQR/IAIgACADQQd0akFAaiIEKQIANwIAIAIgBCkCODcCOCACIAQpAjA3AjAgAiAEKQIoNwIoIAIgBCkCIDcCICACIAQpAhg3AhggAiAEKQIQNwIQIAIgBCkCCDcCCCADBEAgA0EBdCEGIANBBnQhBwNAIAIgAigCACAAIAVBBnRqIgMoAgBzNgIAIAIgAigCBCADKAIEczYCBCACIAIoAgggAygCCHM2AgggAiACKAIMIAMoAgxzNgIMIAIgAigCECADKAIQczYCECACIAIoAhQgAygCFHM2AhQgAiACKAIYIAMoAhhzNgIYIAIgAigCHCADKAIcczYCHCACIAIoAiAgAygCIHM2AiAgAiACKAIkIAMoAiRzNgIkIAIgAigCKCADKAIoczYCKCACIAIoAiwgAygCLHM2AiwgAiACKAIwIAMoAjBzNgIwIAIgAigCNCADKAI0czYCNCACIAIoAjggAygCOHM2AjggAiACKAI8IAMoAjxzNgI8IAIQuwEgASAFQQV0aiIEIAIpAjg3AjggBCACKQIwNwIwIAQgAikCKDcCKCAEIAIpAiA3AiAgBCACKQIYNwIYIAQgAikCEDcCECAEIAIpAgg3AgggBCACKQIANwIAIAIgAigCACADQUBrKAIAczYCACACIAIoAgQgAygCRHM2AgQgAiACKAIIIAMoAkhzNgIIIAIgAigCDCADKAJMczYCDCACIAIoAhAgAygCUHM2AhAgAiACKAIUIAMoAlRzNgIUIAIgAigCGCADKAJYczYCGCACIAIoAhwgAygCXHM2AhwgAiACKAIgIAMoAmBzNgIgIAIgAigCJCADKAJkczYCJCACIAIoAiggAygCaHM2AiggAiACKAIsIAMoAmxzNgIsIAIgAigCMCADKAJwczYCMCACIAIoAjQgAygCdHM2AjQgAiACKAI4IAMoAnhzNgI4IAIgAigCPCADKAJ8czYCPCACELsBIAQgB2oiAyACKQI4NwI4IAMgAikCMDcCMCADIAIpAig3AiggAyACKQIgNwIgIAMgAikCGDcCGCADIAIpAhA3AhAgAyACKQIINwIIIAMgAikCADcCACAFQQJqIgUgBkkNAAsLCyIBAX8gACgCACIBBEAgARAVCyAAQQA2AgggAEIANwIAQQALkR4CEX8UfiMAQYAgayIFJAACQCAARQ0AAkACQAJ/IAAoAiQiAkECRwRAIAEtAAghCSAAKAIEIQ4gASgCAAwBCyAAKAIEIQ4gAS0ACCEJIAEoAgAiDA0BIAlBAk8NAUEACyEMIAVBgBhqQQBBgAgQDBogBUG4EGpBAEHIBxAMGiAFIAytNwOAECABNQIEIRcgBSAJrUL/AYM3A5AQIAUgFzcDiBAgBSAANQIQNwOYECAANQIIIRcgBSACrTcDqBAgBSAXNwOgECAAKAIURQ0BQgAhFwNAIARB/wBxIgNFBEAgBSAXQgF8Ihc3A7AQIAVBAEGACBAMIgJBgAhqQQBBgAgQDBogAkGAGGoiBiACQYAQaiACEHUgBiACIAJBgAhqEHULIA4gBEEDdGogBUGACGogA0EDdGopAwA3AwAgBEEBaiIEIAAoAhQiA0kNAAsMAQsgACgCFCEDQQEhEAsgCSAMckUiEUEBdCIIIANPDQBBfyAAKAIYIgJBAWsgCCACIAEoAgQiDWxqIAMgCWxqIgogAnAbIApqIQQgCUEBaiESIA2tISYDQCAKQQFrIAQgCiAAKAIYIgJwQQFGGyENIAAoAhwhByAQBH8gACgCACgCBCANQQp0agUgDiAIQQN0agspAwAhEyABIAg2AgwgJiATQiCIpyAHcK0gERshGAJ+IAxFBEAgCUUEQCAIQQFrIQRCAAwCCyADIAlsIQQgGCAmUQRAIAQgCGpBAWshBEIADAILIAQgCEVrIQRCAAwBCyAYICZRBH8gCCADQX9zagVBAEF/IAgbIANrCyACaiEEQgAgCUEDRg0AGiADIBJsrQshFyAAKAIAKAIEIgMgAiAYp2xBCnRqIBcgBEEBa618IAStIBNC/////w+DIhcgF35CIIh+QiCIfSACrYKnQQp0aiEEIAMgDUEKdGohAiADIApBCnRqIQcCQCAMBEAgAiAEIAcQdQwBCyAFQYAYaiAEQYAIEAsaQQAhBANAIARBA3QiAyAFQYAYaiILaiIGIAYpAwAgAiADaikDAIU3AwAgCyADQQhyIgZqIg8gDykDACACIAZqKQMAhTcDACALIANBEHIiBmoiDyAPKQMAIAIgBmopAwCFNwMAIAsgA0EYciIDaiIGIAYpAwAgAiADaikDAIU3AwAgBEEEaiIEQYABRw0ACyAFQYAQaiALQYAIEAsaQQAhA0EAIQQDQCAFQYAYaiAEQQd0aiICIAIpAzgiFyACKQMYIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCACKQN4hUIgiSITIAIpA1giFnwgE0L/////D4MgFkIBhkL+////H4N+fCIWIBeFQiiJIhcgGHwgF0L/////D4MgGEIBhkL+////H4N+fCIYIBOFQjCJIhMgAikDKCIUIAIpAwgiFXwgFUIBhkL+////H4MgFEL/////D4N+fCIVIAIpA2iFQiCJIhsgAikDSCIcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgG4VCMIkiGyAcfCAbQv////8PgyAcQgGGQv7///8fg358IhwgFIVCAYkiFCACKQMgIh8gAikDACIafCAaQgGGQv7///8fgyAfQv////8Pg358IhogAikDYIVCIIkiICACQUBrIgYpAwAiI3wgIEL/////D4MgI0IBhkL+////H4N+fCIjIB+FQiiJIh8gGnwgH0L/////D4MgGkIBhkL+////H4N+fCIafCAUQv////8PgyAaQgGGQv7///8fg358IhmFQiCJIiQgAikDMCIhIAIpAxAiHXwgHUIBhkL+////H4MgIUL/////D4N+fCIdIAIpA3CFQiCJIiIgAikDUCIefCAiQv////8PgyAeQgGGQv7///8fg358Ih4gIYVCKIkiISAdfCAhQv////8PgyAdQgGGQv7///8fg358Ih0gIoVCMIkiIiAefCAiQv////8PgyAeQgGGQv7///8fg358Ih58ICRC/////w+DIB5CAYZC/v///x+DfnwiJSAUhUIoiSIUIBl8IBRC/////w+DIBlCAYZC/v///x+DfnwiGTcDACACIBkgJIVCMIkiGTcDeCACIBkgJXwgGUL/////D4MgJUIBhkL+////H4N+fCIZNwNQIAIgFCAZhUIBiTcDKCACIB4gIYVCAYkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhUgGiAghUIwiSIahUIgiSIgIBMgFnwgE0L/////D4MgFkIBhkL+////H4N+fCITfCAgQv////8PgyATQgGGQv7///8fg358IhYgFIVCKIkiFCAVfCAUQv////8PgyAVQgGGQv7///8fg358IhkgIIVCMIkiFTcDYCACIBk3AwggAiAVIBZ8IBVC/////w+DIBZCAYZC/v///x+DfnwiFiAUhUIBiTcDMCACIBY3A1ggAiATIBeFQgGJIhcgHXwgF0L/////D4MgHUIBhkL+////H4N+fCITIBuFQiCJIhYgGiAjfCAaQv////8PgyAjQgGGQv7///8fg358IhR8IBZC/////w+DIBRCAYZC/v///x+DfnwiFSAXhUIoiSIXIBN8IBdC/////w+DIBNCAYZC/v///x+DfnwiEzcDECACIBMgFoVCMIkiEzcDaCAGIBMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIVNwMAIAIgGCAUIB+FQgGJIhN8IBhCAYZC/v///x+DIBNC/////w+DfnwiGCAihUIgiSIWIBx8IBZC/////w+DIBxCAYZC/v///x+DfnwiFCAThUIoiSITIBh8IBNC/////w+DIBhCAYZC/v///x+DfnwiGyAWhUIwiSIYIBR8IBhC/////w+DIBRCAYZC/v///x+DfnwiFjcDSCACIBg3A3AgAiAbNwMYIAIgFSAXhUIBiTcDOCACIBMgFoVCAYk3AyAgBEEBaiIEQQhHDQALA0AgBUGAGGogA0EEdGoiAiACKQOIAyIXIAIpA4gBIhh8IBhCAYZC/v///x+DIBdC/////w+DfnwiGCACKQOIB4VCIIkiEyACKQOIBSIWfCATQv////8PgyAWQgGGQv7///8fg358IhYgF4VCKIkiFyAYfCAXQv////8PgyAYQgGGQv7///8fg358IhggE4VCMIkiEyACKQOIAiIUIAIpAwgiFXwgFUIBhkL+////H4MgFEL/////D4N+fCIVIAIpA4gGhUIgiSIbIAIpA4gEIhx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHCAUhUIoiSIUIBV8IBRC/////w+DIBVCAYZC/v///x+DfnwiFSAbhUIwiSIbIBx8IBtC/////w+DIBxCAYZC/v///x+DfnwiHCAUhUIBiSIUIAIpA4ACIh8gAikDACIafCAaQgGGQv7///8fgyAfQv////8Pg358IhogAikDgAaFQiCJIiAgAikDgAQiI3wgIEL/////D4MgI0IBhkL+////H4N+fCIjIB+FQiiJIh8gGnwgH0L/////D4MgGkIBhkL+////H4N+fCIafCAUQv////8PgyAaQgGGQv7///8fg358IhmFQiCJIiQgAikDgAMiISACKQOAASIdfCAdQgGGQv7///8fgyAhQv////8Pg358Ih0gAikDgAeFQiCJIiIgAikDgAUiHnwgIkL/////D4MgHkIBhkL+////H4N+fCIeICGFQiiJIiEgHXwgIUL/////D4MgHUIBhkL+////H4N+fCIdICKFQjCJIiIgHnwgIkL/////D4MgHkIBhkL+////H4N+fCIefCAkQv////8PgyAeQgGGQv7///8fg358IiUgFIVCKIkiFCAZfCAUQv////8PgyAZQgGGQv7///8fg358Ihk3AwAgAiAZICSFQjCJIhk3A4gHIAIgGSAlfCAZQv////8PgyAlQgGGQv7///8fg358Ihk3A4AFIAIgFCAZhUIBiTcDiAIgAiAeICGFQgGJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIVIBogIIVCMIkiGoVCIIkiICATIBZ8IBNC/////w+DIBZCAYZC/v///x+DfnwiE3wgIEL/////D4MgE0IBhkL+////H4N+fCIWIBSFQiiJIhQgFXwgFEL/////D4MgFUIBhkL+////H4N+fCIZICCFQjCJIhU3A4AGIAIgGTcDCCACIBUgFnwgFUL/////D4MgFkIBhkL+////H4N+fCIWIBSFQgGJNwOAAyACIBY3A4gFIAIgEyAXhUIBiSIXIB18IBdC/////w+DIB1CAYZC/v///x+DfnwiEyAbhUIgiSIWIBogI3wgGkL/////D4MgI0IBhkL+////H4N+fCIUfCAWQv////8PgyAUQgGGQv7///8fg358IhUgF4VCKIkiFyATfCAXQv////8PgyATQgGGQv7///8fg358IhM3A4ABIAIgEyAWhUIwiSITNwOIBiACIBMgFXwgE0L/////D4MgFUIBhkL+////H4N+fCIVNwOABCACIBggFCAfhUIBiSITfCAYQgGGQv7///8fgyATQv////8Pg358IhggIoVCIIkiFiAcfCAWQv////8PgyAcQgGGQv7///8fg358IhQgE4VCKIkiEyAYfCATQv////8PgyAYQgGGQv7///8fg358IhsgFoVCMIkiGCAUfCAYQv////8PgyAUQgGGQv7///8f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IAAgARAGIAAgABBuIAAgACAEEAYgACAAIAEQBiADQcABaiIEIAAQBSAEIAQgAhAGIAEoAgQhBSABKAIIIQ0gASgCDCEOIAEoAhAhDyABKAIUIRAgASgCGCERIAEoAhwhEiABKAIgIRMgASgCACEUIAMoAsABIQIgAygCxAEhBCADKALIASEGIAMoAswBIQcgAygC0AEhCCADKALUASEJIAMoAtgBIQogAygC3AEhCyADKALgASEMIAMgAygC5AEiFSABKAIkIhZrNgK0ASADIAwgE2s2ArABIAMgCyASazYCrAEgAyAKIBFrNgKoASADIAkgEGs2AqQBIAMgCCAPazYCoAEgAyAHIA5rNgKcASADIAYgDWs2ApgBIAMgBCAFazYClAEgAyACIBRrNgKQASADIBUgFmo2AoQBIAMgDCATajYCgAEgAyALIBJqNgJ8IAMgCiARajYCeCADIAkgEGo2AnQgAyAIIA9qNgJwIAMgByAOajYCbCADIAYgDWo2AmggAyAEIAVqNgJkIAMgAiAUajYCYCADQTBqIgUgAUHgDBAGIAMgFSADKAJUajYCVCADIAwgAygCUGo2AlAgAyALIAMoAkxqNgJMIAMgCiADKAJIajYCSCADIAkgAygCRGo2AkQgAyAIIAMoAkBqNgJAIAMgByADKAI8ajYCPCADIAYgAygCOGo2AjggAyAEIAMoAjRqNgI0IAMgAiADKAIwajYCMCADIANBkAFqEBEgA0EgEBohDiADIANB4ABqEBEgA0EgEBohDSADIAUQESADQSAQGiEBIAMgAEHgDBAGIAAoAgQhDCAAKAIIIQsgACgCDCEKIAAoAhAhCSAAKAIUIQggACgCGCEHIAAoAhwhBiAAKAIgIQQgACgCACEFIAMoAgAhDyADKAIEIRAgAygCCCERIAMoAgwhEiADKAIQIRMgAygCFCEUIAMoAhghFSADKAIcIRYgAygCICEXIABBACABIA1yayIBIAAoAiQiAiADKAIkc3EgAnMiAjYCJCAAIAQgBCAXcyABcXMiBDYCICAAIAYgBiAWcyABcXMiBjYCHCAAIAcgByAVcyABcXMiBzYCGCAAIAggCCAUcyABcXMiCDYCFCAAIAkgCSATcyABcXMiCTYCECAAIAogCiAScyABcXMiCjYCDCAAIAsgCyARcyABcXMiCzYCCCAAIAwg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DigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIkIRQgASgCTCEVIAAgASgCACABKAIoajYCACAAIBQgFWo2AiQgACASIBNqNgIgIAAgECARajYCHCAAIA0gD2o2AhggACALIAxqNgIUIAAgCSAKajYCECAAIAcgCGo2AgwgACAFIAZqNgIIIAAgAyAEajYCBCABKAIEIQMgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEPIA4oAgAhDiABKAIcIQQgASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAEoAighFCAAIAEoAkwgASgCJGs2AkwgACASIBFrNgJIIAAgECAEazYCRCAAQUBrIgQgDiAPazYCACAAIA0gDGs2AjwgACALIAprNgI4IAAgCSAIazYCNCAAIAcgBms2AjAgACAFIANrNgIsIAAgFCATazYCKCAAQdAAaiAAIAIQBiAAQShqIgMgAyACQShqEAYgAEH4AGogAkHQAGogAUH4AGoQBiABKAJUIRQgASgCWCEVIAEoAlwhFiABKAJgIRcgASgCZCEYIAEoAmghGSABKAJsIRogASgCcCEbIAEoAnQhHCAAKAIsIQIgACgCVCEDIAAoAjAhBSAAKAJYIQYgACgCNCEHIAAoAlwhCCAAKAI4IQkgACgCYCEKIAAoAjwhCyAAKAJkIQwgBCgCACENIAAoAmghDiAAKAJEIQ8gACgCbCEQIAAoAkghESAAKAJwIRIgASgCUCEdIAAoAighASAAKAJQIRMgACAAKAJMIh4gACgCdCIfajYCTCAAIBEgEmo2AkggACAPIBBqNgJEIAQgDSAOajYCACAAIAsgDGo2AjwgACAJIApqNgI4IAAgByAIajYCNCAAIAUgBmo2AjAgACACIANqNgIsIAAgASATajYCKCAAIB8gHms2AiQgACASIBFrNgIgIAAgECAPazYCHCAAIA4gDWs2AhggACAMIAtrNgIUIAAgCiAJazYCECAAIAggB2s2AgwgACAGIAVrNgIIIAAgAyACazYCBCAAIBMgAWs2AgAgACAcQQF0IgEgACgCnAEiAms2ApwBIAAgG0EBdCIEIAAoApgBIgNrNgKYASAAIBpBAXQiBSAAKAKUASIGazYClAEgACAZQQF0IgcgACgCkAEiCGs2ApABIAAgGEEBdCIJIAAoAowBIgprNgKMASAAIBdBAXQiCyAAKAKIASIMazYCiAEgACAWQQF0Ig0gACgChAEiDms2AoQBIAAgFUEBdCIPIAAoAoABIhBrNgKAASAAIBRBAXQiESAAKAJ8IhJrNgJ8IAAgHUEBdCITIAAoAngiFGs2AnggACADIARqNgJwIAAgBSAGajYCbCAAIAcgCGo2AmggACAJIApqNgJkIAAgCyAMajYCYCAAIA0gDmo2AlwgACAPIBBqNgJYIAAgESASajYCVCAAIBMgFGo2AlAgACABIAJqNgJ0C64IAQN/IwBBkAFrIgMkACADQeAAaiIEIAEQBSADQTBqIgIgBBAFIAIgAhAFIAIgASACEAYgBCAEIAIQBiAEIAQQBSAEIAIgBBAGIAIgBBAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAQgAiAEEAYgAiAEEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAQQBiADIAIQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSADIAMQBSACIAMgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAQgAiAEEAYgAiAEEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAQQBiADIAIQBUEBIQIDQCADIAMQBSACQQFqIgJB5ABHDQALIANBMGoiAiADIAIQBiACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSADQeAAaiIEIAIgBBAGIAQgBBAFIAQgBBAFIAAgBCABEAYgA0GQAWokAAumBAIOfgp/IAAoAiQhEiAAKAIgIRMgACgCHCEUIAAoAhghFSAAKAIUIREgAkIQWgRAIAAtAFBFQRh0IRYgACgCECIXrSEPIAAoAgwiGK0hDSAAKAIIIhmtIQsgACgCBCIarSEJIBpBBWytIRAgGUEFbK0hDiAYQQVsrSEMIBdBBWytIQogADUCACEIA0AgASgAA0ECdkH///8fcSAVaq0iAyANfiABKAAAQf///x9xIBFqrSIEIA9+fCABKAAGQQR2Qf///x9xIBRqrSIFIAt+fCABKAAJQQZ2IBNqrSIGIAl+fCASIBZqIAEoAAxBCHZqrSIHIAh+fCADIAt+IAQgDX58IAUgCX58IAYgCH58IAcgCn58IAMgCX4gBCALfnwgBSAIfnwgBiAKfnwgByAMfnwgAyAIfiAEIAl+fCAFIAp+fCAGIAx+fCAHIA5+fCADIAp+IAQgCH58IAUgDH58IAYgDn58IAcgEH58IgNCGohC/////w+DfCIEQhqIQv////8Pg3wiBUIaiEL/////D4N8IgZCGohC/////w+DfCIHQhqIp0EFbCADp0H///8fcWoiEUEadiAEp0H///8fcWohFSAFp0H///8fcSEUIAan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aIVCIIkiCyABKQNIIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAEpAyAiDyABKQMAIgp8IApCAYZC/v///x+DIA9C/////w+DfnwiCiABKQNghUIgiSIQIAFBQGsiFikDACITfCATQgGGQv7///8fgyAQQv////8Pg358IhMgD4VCKIkiDyAKfCAPQv////8PgyAKQgGGQv7///8fg358Igp8IANC/////w+DIApCAYZC/v///x+DfnwiCYVCIIkiFCABKQMwIhEgASkDECINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gASkDcIVCIIkiEiABKQNQIg58IA5CAYZC/v///x+DIBJC/////w+DfnwiDiARhUIoiSIRIA18IBFC/////w+DIA1CAYZC/v///x+DfnwiDSAShUIwiSISIA58IBJC/////w+DIA5CAYZC/v///x+DfnwiDnwgFEL/////D4MgDkIBhkL+////H4N+fCIVIAOFQiiJIgMgCXwgA0L/////D4MgCUIBhkL+////H4N+fCIJNwMAIAEgCSAUhUIwiSIJNwN4IAEgCSAVfCAJQv////8PgyAVQgGGQv7///8fg358Igk3A1AgASADIAmFQgGJNwMoIAEgBCAFfCAEQv////8PgyAFQgGGQv7///8fg358IgQgDiARhUIBiSIFIAZ8IAVC/////w+DIAZCAYZC/v///x+DfnwiAyAKIBCFQjCJIgaFQiCJIgp8IARCAYZC/v///x+DIApC/////w+DfnwiECAFhUIoiSIFIAN8IAVC/////w+DIANCAYZC/v///x+DfnwiCSAKhUIwiSIDNwNgIAEgCTcDCCABIAUgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgWFQgGJNwMwIAEgBTcDWCABIAQgCIVCAYkiCCANfCAIQv////8PgyANQgGGQv7///8fg358IgQgC4VCIIkiBSAGIBN8IAZC/////w+DIBNCAYZC/v///x+DfnwiA3wgBUL/////D4MgA0IBhkL+////H4N+fCIGIAiFQiiJIgggBHwgCEL/////D4MgBEIBhkL+////H4N+fCIENwMQIAEgBCAFhUIwiSIENwNoIBYgBCAGfCAEQv////8PgyAGQgGGQv7///8fg358IgY3AwAgASAHIAMgD4VCAYkiBHwgB0IBhkL+////H4MgBEL/////D4N+fCIHIBKFQiCJIgUgDHwgBUL/////D4MgDEIBhkL+////H4N+fCIDIASFQiiJIgQgB3wgBEL/////D4MgB0IBhkL+////H4N+fCILIAWFQjCJIgcgA3wgB0L/////D4MgA0IBhkL+////H4N+fCIFNwNIIAEgBzcDcCABIAs3AxggASAGIAiFQgGJNwM4IAEgBCAFhUIBiTcDICAAQQFqIgBBCEcNAAtBACEAA0AgGEGACGogAEEEdGoiASABKQOIAyIIIAEpA4gBIgd8IAdCAYZC/v///x+DIAhC/////w+DfnwiByABKQOIB4VCIIkiBCABKQOIBSIFfCAFQgGGQv7///8fgyAEQv////8Pg358IgUgCIVCKIkiCCAHfCAIQv////8PgyAHQgGGQv7///8fg358IgcgBIVCMIkiBCABKQOIAiIDIAEpAwgiBnwgBkIBhkL+////H4MgA0L/////D4N+fCIGIAEpA4gGhUIgiSILIAEpA4gEIgx8IAxCAYZC/v///x+DIAtC/////w+DfnwiDCADhUIoiSIDIAZ8IANC/////w+DIAZCAYZC/v///x+DfnwiBiALhUIwiSILIAx8IAtC/////w+DIAxCAYZC/v///x+DfnwiDCADhUIBiSIDIAEpA4ACIg8gASkDACIKfCAKQgGGQv7///8fgyAPQv////8Pg358IgogASkDgAaFQiCJIhAgASkDgAQiE3wgE0IBhkL+////H4MgEEL/////D4N+fCITIA+FQiiJIg8gCnwgD0L/////D4MgCkIBhkL+////H4N+fCIKfCADQv////8PgyAKQgGGQv7///8fg358IgmFQiCJIhQgASkDgAMiESABKQOAASINfCANQgGGQv7///8fgyARQv////8Pg358Ig0gASkDgAeFQiCJIhIgASkDgAUiDnwgDkIBhkL+////H4MgEkL/////D4N+fCIOIBGFQiiJIhEgDXwgEUL/////D4MgDUIBhkL+////H4N+fCINIBKFQjCJIhIgDnwgEkL/////D4MgDkIBhkL+////H4N+fCIOfCAUQv////8PgyAOQgGGQv7///8fg358IhUgA4VCKIkiAyAJfCADQv////8PgyAJQgGGQv7///8fg358Igk3AwAgASAJIBSFQjCJIgk3A4gHIAEgCSAVfCAJQv////8PgyAVQgGGQv7///8fg358Igk3A4AFIAEgAyAJhUIBiTcDiAIgASAEIAV8IARC/////w+DIAVCAYZC/v///x+DfnwiBCAOIBGFQgGJIgUgBnwgBUL/////D4MgBkIBhkL+////H4N+fCIDIAogEIVCMIkiBoVCIIkiCnwgBEIBhkL+////H4MgCkL/////D4N+fCIQIAWFQiiJIgUgA3wgBUL/////D4MgA0IBhkL+////H4N+fCIJIAqFQjCJIgM3A4AGIAEgCTcDCCABIAUgAyAQfCADQv////8PgyAQQgGGQv7///8fg358IgWFQgGJNwOAAyABIAU3A4gFIAEgBCAIhUIBiSIIIA18IAhC/////w+DIA1CAYZC/v///x+DfnwiBCALhUIgiSIFIAYgE3wgBkL/////D4MgE0IBhkL+////H4N+fCIDfCAFQv////8PgyADQgGGQv7///8fg358IgYgCIVCKIkiCCAEfCAIQv////8PgyAEQgGGQv7///8fg358IgQ3A4ABIAEgBCAFhUIwiSIENwOIBiABIAQgBnwgBEL/////D4MgBkIBhkL+////H4N+fCIGNwOABCABIAcgAyAPhUIBiSIEfCAHQgGGQv7///8fgyAEQv////8Pg358IgcgEoVCIIkiBSAMfCAFQv////8PgyAMQgGGQv7///8fg358IgMgBIVCKIkiBCAHfCAEQv////8PgyAHQgGGQv7///8fg358IgsgBYVCMIkiByADfCAHQv////8PgyADQgGGQv7///8fg358IgU3A4gEIAEgBzcDgAcgASALNwOIASABIAYgCIVCAYk3A4gDIAEgBCAFhUIBiTcDgAIgAEEBaiIAQQhHDQALIAIgGEGACBALIQFBACEAA0AgASAAQQN0IgJqIhYgFikDACAYQYAIaiIZIAJqKQMAhTcDACABIAJBCHIiFmoiFyAXKQMAIBYgGWopAwCFNwMAIAEgAkEQciIWaiIXIBcpAwAgGEGACGogFmopAwCFNwMAIAEgAkEYciICaiIWIBYpAwAgGEGACGogAmop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AnA3A+ADIAJBgARqIgMgAkHwA2ogAkHgA2oQCCABIAIpAogENwJ4IAEgAikCgAQ3AnAgAiABKQJYNwPYAyACIAEpAlA3A9ADIAIgASkCaDcDyAMgAiABKQJgNwPAAyADIAJB0ANqIAJBwANqEAggASACKQKIBDcCaCABIAIpAoAENwJgIAIgASkCSDcDuAMgAiABQUBrIgApAgA3A7ADIAIgASkCWDcDqAMgAiABKQJQNwOgAyADIAJBsANqIAJBoANqEAggASACKQKIBDcCWCABIAIpAoAENwJQIAIgASkCODcDmAMgAiABKQIwNwOQAyACIAEpAkg3A4gDIAIgACkCADcDgAMgAyACQZADaiACQYADahAIIAEgAikCiAQ3AkggACACKQKABDcCACACIAEpAig3A/gCIAIgASkCIDcD8AIgAiABKQI4NwPoAiACIAEpAjA3A+ACIAMgAkHwAmogAkHgAmoQCCABIAIpAogENwI4IAEgAikCgAQ3AjAgAiABKQIYNwPYAiACIAEpAhA3A9ACIAIgASkCKDcDyAIgAiABKQIgNwPAAiADIAJB0AJqIAJBwAJqEAggASACKQKIBDcCKCABIAIpAoAENwIgIAIgASkCCDcDuAIgAiABKQIANwOwAiACIAEpAhg3A6gCIAIgASkCEDcDoAIgAyACQbACaiACQaACahAIIAEgAikCiAQ3AhggASACKQKABDcCECACIAIpA5gENwOYAiACIAIpA5AENwOQAiACIAEpAgg3A4gCIAIgASkCADcDgAIgAyACQZACaiACQYACahAIIAEgAikCiAQ3AgggASACKQKABDcCACABIBIgASgADHM2AgwgASARIAEoAAhzNgIIIAEgECABKAAEczYCBCABIBMgASgAAHM2AgAgACAPIAAoAABzNgIAIAEgDiABKABEczYCRCABIA0gASgASHM2AkggASAMIAEoAExzNgJMIAIgASkCeDcDmAQgAiABKQJwNwOQBCACIAEpAmg3A/gBIAIgASkCYDcD8AEgAiABKQJ4NwPoASACIAEpAnA3A+ABIAMgAkHwAWogAkHgAWoQCCABIAIpAogENwJ4IAEgAikCgAQ3AnAgAiABKQJYNwPYASACIAEpAlA3A9ABIAIgASkCaDcDyAEgAiABKQJgNwPAASADIAJB0AFqIAJBwAFqEAggASACKQKIBDcCaCABIAIpAoAENwJgIAIgASkCSDcDuAEgAiAAKQIANwOwASACIAEpAlg3A6gBIAIgASkCUDcDoAEgAyACQbABaiACQaABahAIIAEgAikCiAQ3AlggASACKQKABDcCUCACIAEpAjg3A5gBIAIgASkCMDcDkAEgAiABKQJINwOIASACIAApAgA3A4ABIAMgAkGQAWogAkGAAWoQCCABIAIpAogENwJIIAAgAikCgAQ3AgAgAiABKQIoNwN4IAIgASkCIDcDcCACIAEpAjg3A2ggAiABKQIwNwNgIAMgAkHwAGogAkHgAGoQCCABIAIpAogENwI4IAEgAikCgAQ3AjAgAiABKQIYNwNYIAIgASkCEDcDUCACIAEpAig3A0ggAiABKQIgNwNAIAMgAkHQAGogAkFAaxAIIAEgAikCiAQ3AiggASACKQKABDcCICACIAEpAgg3AzggAiABKQIANwMwIAIgASkCGDcDKCACIAEpAhA3AyAgAyACQTBqIAJBIGoQCCABIAIpAogENwIYIAEgAikCgAQ3AhAgAiACKQOYBDcDGCACIAIpA5AENwMQIAIgASkCCDcDCCACIAEpAgA3AwAgAyACQRBqIAIQCCABIAIpAogENwIIIAEgAikCgAQ3AgAgASALIAEoAAxzNgIMIAEgCiABKAAIczYCCCABIAkgASgABHM2AgQgASAIIAEoAABzNgIAIAAgByAAKAAAczYCACABIAYgASgARHM2AkQgASAFIAEoAEhzNgJIIAEgBCABKABMczYCTCACQaAEaiQAC70JARF/IwBBoAJrIgMkACABKAAEIRAgASgACCERIAEoAAwhEiAAKAAEIQsgACgACCEMIAAoAAwhDSABKAAAIRMgAkHwAGoiASAAKAAAIg5BgIKEEHMiADYCACACQeAAaiIGIA5B2/vgqAVzNgIAIAJB0ABqIgcgADYCACACQUBrIgAgDiATcyIFNgIAIAJCoKLEkbSurZRdNwI4IAJBMGoiCELb++Co1c3wl3E3AgAgAkKVxNzJhbL6vOIANwIoIAJBIGoiCUKAgoSQsKCBhA03AgAgAkKgosSRtK6tlF03AhggAkEQaiIKQtv74KjVzfCXcTcCACACIAU2AgAgAiANQZDT55MGcyIFNgJ8IAIgDEGVxNzJBXMiBDYCeCACIAtBg4qg6ABzIg82AnQgAiANQfPqoul9czYCbCACIAxBoKLEkQRzNgJoIAIgC0HthL+Jf3M2AmQgAiAFNgJcIAIgBDYCWCACIA82AlQgAiANIBJzIgU2AkwgAiAMIBFzIgQ2AkggAiALIBBzIg82AkQgAiAFNgIMIAIgBDYCCCACIA82AgRBACEFA0AgAyABKQIINwOYAiADIAEpAgA3A5ACIAMgBikCCDcD+AEgAyAGKQIANwPwASADIAEpAgg3A+gBIAMgASkCADcD4AEgA0GAAmoiBCADQfABaiADQeABahAIIAEgAykCiAI3AgggASADKQKAAjcCACADIAcpAgg3A9gBIAMgBykCADcD0AEgAyAGKQIINwPIASADIAYpAgA3A8ABIAQgA0HQAWogA0HAAWoQCCAGIAMpAogCNwIIIAYgAykCgAI3AgAgAyAAKQIINwO4ASADIAApAgA3A7ABIAMgBykCCDcDqAEgAyAHKQIANwOgASAEIANBsAFqIANBoAFqEAggByADKQKIAjcCCCAHIAMpAoACNwIAIAMgCCkCCDcDmAEgAyAIKQIANwOQASADIAApAgg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAAgAykCiAI3AgggACADKQKAAjcCACADIAkpAgg3A3ggAyAJKQIANwNwIAMgCCkCCDcDaCADIAgpAgA3A2AgBCADQfAAaiADQeAAahAIIAggAykCiAI3AgggCCADKQKAAjcCACADIAopAgg3A1ggAyAKKQIANwNQIAMgCSkCCDcDSCADIAkpAgA3A0AgBCADQdAAaiADQUBrEAggCSADKQKIAjcCCCAJIAMpAoACNwIAIAMgAikCCDcDOCADIAIpAgA3AzAgAyAKKQIINwMoIAMgCikCADcDICAEIANBMGogA0EgahAIIAogAykCiAI3AgggCiADKQKAAjcCACADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAEIANBEGogAxAIIAIgAykCiAI3AgggAiADKQKAAjcCACACIAIoAAwgEnM2AgwgAiACKAAIIBFzNgIIIAIgAigABCAQczYCBCACIAIoAAAgE3M2AgAgACAAKAAAIA5zNgIAIAIgAigARCALczYCRCACIAIoAEggDHM2AkggAiACKABMIA1zNgJMIAVBAWoiBUEKRw0ACyADQaACaiQACxAAIAAgAUGMlwIoAgARAAAL0g8BJH8jAEHwBGsiAiQAIAJB4ANqIgMgARAFIANB4AwgAxAGIAIgAigChAQiBzYClAIgAiACKAKABCIINgKQAiACIAIoAvwDIgk2AowCIAIgAigC+AMiCjYCiAIgAiACKAL0AyILNgKEAiACIAIoAvADIgw2AoACIAIgAigC7AMiDTYC/AEgAiACKALoAyIONgL4ASACIAIoAuQDIgU2AvQBIAIgAigC4AMiBkEBajYC8AEgAkHwAWoiBCAEQbCJAhAGIAIgB0HM5N8FazYC1AMgAiAIQYCS9QhrNgLQAyACIAlB55zGAWs2AswDIAIgCkHEhv8CazYCyAMgAiALQeiumARrNgLEAyACIAxBqYAHajYCwAMgAiANQY+UqANqNgK8AyACIA5Bw6KqB2s2ArgDIAIgBUGF5c0GajYCtAMgAiAGQcqOmgVrNgKwAyACQcABaiIZIANBsAwQBiACQQAgAigC5AFrNgLkASACQQAgAigC4AFrNgLgASACQQAgAigC3AFrNgLcASACQQAgAigC2AFrNgLYASACQQAgAigC1AFrNgLUASACQQAgAigC0AFrNgLQASACQQAgAigCzAFrNgLMASACQQAgAigCyAFrNgLIASACQQAgAigCxAFrNgLEASACIAIoAsABQX9zNgLAASAZIBkgAkGwA2oQBiACQYADaiIiIAQgGRBqIQMgAkHQAmoiBCAiIAEQBiACQcAEaiIkIAQQESACLQDABCElIAIoAqQDIRogAigC9AIhBCACKAKgAyEbIAIoAvACIRAgAigCnAMhHCACKALsAiERIAIoApgDIR0gAigC6AIhEiACKAKUAyEeIAIoAuQCIRMgAigCkAMhHyACKALgAiEUIAIoAowDISAgAigC3AIhFSACKAKIAyEhIAIoAtgCIRYgAigChAMhDyACKALUAiEXIAIoAoADISMgAigC0AIhGCACIAcgA0EBayIBcTYC5AQgAiABIAhxNgLgBCACIAEgCXE2AtwEIAIgASAKcTYC2AQgAiABIAtxNgLUBCACIAEgDHE2AtAEIAIgASANcTYCzAQgAiABIA5xNgLIBCACIAEgBXE2AsQEIAIgBkEAIANrcjYCwAQgAiAjICNBACAYQQAgJUEBcWsiAyAYQQAg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IAIgASADEAYgAkGQBmoiASACEAUgASABEAUgAkGQB2oiBSACIAEQBiACQcAEaiIDIAUQBSADIAMQBSADIAMQBSADIAMQBSACQZAEaiIBIAUgAxAGIAEgARAFIAEgARAFIAEgASACEAYgAiACKQOwBDcDgAQgAiACKQOoBDcD+AMgAiACKQOgBDcD8AMgAiACKQOYBDcD6AMgAiACKQOQBDcD4AMgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAJB4ANqIgMQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEgAxAGIAIgAikDsAQ3A9ADIAIgAikDqAQ3A8gDIAIgAikDoAQ3A8ADIAIgAikDmAQ3A7gDIAIgAikDkAQ3A7ADIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgASACQbADaiIDEAYgAiACKQOwBDcD0AMgAiACKQOoBDcDyAMgAiACKQOgBDcDwAMgAiACKQOYBDcDuAMgAiACKQOQBDcDsAMgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAIpA7AENwPQAyACIAIpA6gENwPIAyACIAIpA6AENwPAAyACIAIpA5gENwO4AyACIAIpA5AENwOwAwNAIAJBkARqIgEgARAFIARBAWoiBEH4AEcNAAsgASABIAJBsANqEAYgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAJB4ANqEAYgASABEAUgASABEAUgASABEAUgASABIAIQBiABIAEQBSACQZADaiABEBEgAigCgAIhAyACKAKEAiEEIAIoAogCIQUgAigCjAIhBiACKAKQAiEHIAIoApQCIQggAigCmAIhCSACKAKcAiEKIAIoAqACIQsgAkEAIAItAJEDQQFxayIBIAIoAqQCIgxBACAMa3NxIAxzIgw2ApQFIAIgCyALQQAgC2tzIAFxcyILNgKQBSACIAogCkEAIAprcyABcXMiCjYCjAUgAiAJIAlBACAJa3MgAXFzIgk2AogFIAIgCCAIQQAgCGtzIAFxcyIINgKEBSACIAcgB0EAIAdrcyABcXMiBzYCgAUgAiAGIAZBACAGa3MgAXFzIgY2AvwEIAIgBSAFQQAgBWtzIAFxcyIFNgL4BCACIAQgBEEAIARrcyABcXMiBDYC9AQgAiADIANBACADa3MgAXFzIAFBhtodcWsiAUEBajYC8AQgAiAMNgK0BiACIAs2ArAGIAIgCjYCrAYgAiAJNgKoBiACIAg2AqQGIAIgBzYCoAYgAiAGNgKcBiACIAU2ApgGIAIgBDYClAYgAiABQQFrNgKQBiACIAJB8ARqEDUgAkGQB2oiASACQZAGaiACEAYgACABEBEgACAALQAfIBByOgAfIAIgABA0BEAQiwEACyACIAIpAiA3A7AGIAIgAikCGDcDqAYgAiACKQIQNwOgBiACIAIpAgg3A5gGIAIgAikCMDcDwAYgAiACKQI4NwPIBiACIAJBQGspAgA3A9AGIAIgAikCSDcD2AYgAiACKQIANwOQBiACIAIpAig3A7gGIAIgAikCcDcDgAcgAiACKQJoNwP4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QQFrQR92ECogACABQcAHaiAEQQdzQf8BcUEBa0EfdhAqIAAgAUHgCGogBEEIc0H/AXFBAWtBH3YQKiADIAApAkg3AyAgAyAAQUBrKQIANwMYIAMgACkCODcDECADIAApAjA3AwggAyAAKQIoNwMAIAMgACkCIDcDSCADQUBrIAApAhg3AwAgAyAAKQIQNwM4IAMgACkCCDcDMCADIAApAgA3AyggAyAAKQJYNwNYIAMgACkCYDcDYCADIAApAmg3A2ggAyAAKQJwNwNwIAMgACkCUDcDUCAAKAJ8IQEgACgCgAEhBCAAKAKEASEFIAAoAogBIQYgACgCjAEhByAAKAKQASEIIAAoApQBIQkgACgCmAEhCiAAKAJ4IQsgA0EAIAAoApwBazYCnAEgA0EAIAprNgKYASADQQAgCWs2ApQBIANBACAIazYCkAEgA0EAIAdrNgKMASADQQAgBms2AogBIANBACAFazYChAEgA0EAIARrNgKAASADQQAgAWs2AnwgA0EAIAtrNgJ4IAAgAyACQYABcUEHdhAqIANBoAFqJAALjhEBE38jAEHAH2siAyQAIANBoAFqIAIQECADQYAeaiIGIAIpAiA3AwAgA0H4HWoiByACKQIYNwMAIANB8B1qIgkgAikCEDcDACADQegdaiIMIAIpAgg3AwAgAyACKQIANwPgHSADQZAeaiINIAIpAjA3AwAgA0GYHmoiDiACKQI4NwMAIANBoB5qIg8gAkFAaykCADcDACADQageaiIQIAIpAkg3AwAgAyACKQIoNwOIHiADQbgeaiIRIAIpAlg3AwAgA0HAHmoiEiACKQJgNwMAIANByB5qIhMgAikCaDcDACADQdAeaiIUIAIpAnA3AwAgAyACKQJQNwOwHiADQcgbaiIIIANB4B1qIhUQGCADQegSaiILIAggA0HAHGoiBBAGIANBkBNqIANB8BtqIgUgA0GYHGoiChAGIANBuBNqIAogBBAGIANB4BNqIAggBRAGIANBwAJqIgQgCxAQIANBqBpqIgggAiAEEBMgA0HIEWoiCyAIIANBoBtqIgQQBiADQfARaiADQdAaaiIFIANB+BpqIgoQBiADQZgSaiAKIAQQBiADQcASaiAIIAUQBiADQeADaiALEBAgBiADQYgTaikCADcDACAHIANBgBNqKQIANwMAIAkgA0H4EmopAgA3AwAgDCADQfASaikCADcDACANIANBmBNqKQIANwMAIA4gA0GgE2opAgA3AwAgDyADQagTaikCADcDACAQIANBsBNqKQIANwMAIAMgAykC6BI3A+AdIAMgAykCkBM3A4geIBQgA0HYE2opAgA3AwAgEyADQdATaikCADcDACASIANByBNqKQIANwMAIBEgA0HAE2opAgA3AwAgAyADKQK4EzcDsB4gA0GIGWoiCCAVEBggA0GoEGoiCyAIIANBgBpqIgQQBiADQdAQaiADQbAZaiIFIANB2BlqIgoQBiADQfgQaiAKIAQQBiADQaARaiAIIAUQBiADQYAFaiIEIAsQECADQegXaiIIIAIgBBATIANBiA9qIgsgCCADQeAYaiIEEAYgA0GwD2ogA0GQGGoiBSADQbgYaiIKEAYgA0HYD2ogCiAEEAYgA0GAEGogCCAFEAYgA0GgBmogCxAQIAYgA0HoEWopAgA3AwAgByADQeARaikCADcDACAJIANB2BFqKQIANwMAIAwgA0HQEWopAgA3AwAgDSADQfgRaikCADcDACAOIANBgBJqKQIANwMAIA8gA0GIEmopAgA3AwAgECADQZASaikCADcDACADIAMpAsgRNwPgHSADIAMpAvARNwOIHiAUIANBuBJqKQIANwMAIBMgA0GwEmopAgA3AwAgEiADQagSaikCADcDACARIANBoBJqKQIANwMAIAMgAykCmBI3A7AeIANByBZqIgggFRAYIANB6A1qIgsgCCADQcAXaiIEEAYgA0GQDmogA0HwFmoiBSADQZgXaiIKEAYgA0G4DmogCiAEEAYgA0HgDmogCCAFEAYgA0HAB2oiBCALEBAgA0GoFWoiCiACIAQQEyADQcgMaiIIIAogA0GgFmoiAhAGIANB8AxqIANB0BVqIgQgA0H4FWoiBRAGIANBmA1qIAUgAhAGIANBwA1qIAogBBAGIANB4AhqIAgQECAGIANByBBqKQIANwMAIAcgA0HAEGopAgA3AwAgCSADQbgQaikCADcDACAMIANBsBBqKQIANwMAIA0gA0HYEGopAgA3AwAgDiADQeAQaikCADcDACAPIANB6BBqKQIANwMAIBAgA0HwEGopAgA3AwAgAyADKQKoEDcD4B0gAyADKQLQEDcDiB4gFCADQZgRaikCADcDACATIANBkBFqKQIA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azYCACAAQQAgACgCJGs2AiQgAEEAIAAoAiBrNgIgIABBACAAKAIcazYCHCAAQQAgACgCGGs2AhggAEEAIAAoAhRrNgIUIABBACAAKAIQazYCECAAQQAgACgCDGs2AgwgAEEAIAAoAghrNgIIIABBACAAKAIEazYCBAsgAEH4AGogACAGEAZBACEHCyACQcACaiQAIAcLBQBBgAILEAAgACABQYSXAigCABEAAAsQACAAIAFB/JYCKAIAEQAACy0BAX4gAq0gA61CIIaEIgZCEFoEfyAAIAFBEGogASAGQhB9IAQgBRBeBUF/CwsYACAAIAEgAiADrSAErUIghoQgBSAGEF4LGAAgACABIAIgA60gBK1CIIaEIAUgBhBPCxYAIAAgASACrSADrUIghoQgBCAFEHkLFQAgACABrSACrUIghoQgAyAEEM0BCxYAIAAgASACrSADrUIghoQgBEEAEHYLFwAgACABIAIgA60gBK1CIIaEIAUQhQMLFwAgACABIAIgA60gBK1CIIaEIAUQgwMLFwAgACABIAIgA60gBK1CIIaEIAUQhAMLFQAgACABIAKtIAOtQiCGhCAEEOkCCx8AIAAgASACrSADrUIghoQgBK0gBa1CIIaEIAYQ0QELGgAgACABIAKtIAOtQiCGhEGAlwIoAgARAgALHAAgACABIAKtIAOtQiCGhCAEQfiWAigCABERAAscACAAIAEgAq0gA61CIIaEIARB9JYCKAIAEREACxcAIAAgASACrSADrUIghoQgBCAFEOoCCxIAIAAgASACrSADrUIghoQQRwsYACAAIAEgAiADrSAErUIghoQgBSAGEGELLQEBfiACrSADrUIghoQiBkIQWgR/IAAgAUEQaiABIAZCEH0gBCAFEF0FQX8LCxgAIAAgASACIAOtIAStQiCGhCAFIAYQXQsYACAAIAEgAiADrSAErUIghoQgBSAGEE4LGQAgACABIAKtIAOtQiCGhCAEIAUgBhD3AgsZACAAIAEgAq0gA61CIIaEIAQgBSAGEPgCCxIAIAAgASACrSADrUIghoQQJgsVACAAIAEgAq0gA61CIIaEIAQQ4gILFQAgACABIAKtIAOtQiCGhCAEEOMCC4wBAQF/IwBBEGsiAiAANgIMIAIgATYCCEEAIQAgAkEANgIEA0AgAiACKAIEIAIoAgwgAGotAAAgAigCCCAAai0AAHNyNgIEIAIgAigCBCAAQQFyIgEgAigCDGotAAAgAigCCCABai0AAHNyNgIEIABBAmoiAEHAAEcNAAsgAigCBEEBa0EIdkEBcUEBawvaAgECfyMAQZADayIIJAAgCEEANgIEIAhBEGoiCSAGIAdBABAbGiAIIAYpABA3AgggCEHQAGoiB0LAACAIQQRqIAkQMxogCEGQAWoiBiAHQfyWAigCABEAABogB0HAABAJIAYgBCAFQYCXAigCABECABogBkHglgJCACAFfUIPg0GAlwIoAgARAgAaIAYgASACQYCXAigCABECABogBkHglgJCACACfUIPg0GAlwIoAgARAgAaIAggBTcDSCAGIAhByABqIgRCCEGAlwIoAgARAgAaIAggAjcDSCAGIARCCEGAlwIoAgARAgAaIAYgCEEwaiIEQYSXAigCABEAABogBkGAAhAJIAQgAxA3IQYgBEEQEAkCQCAARQ0AIAYEQCAAQQAgAqcQDBpBfyEGDAELIAAgASACIAhBBGogCEEQahDqAUEAIQYLIAhBEGpBIBAJIAhBkANqJAAgBgusAgEDfyMAQYADayIJJAAgCUEANgIEIAlBEGoiCiAHIAhBABAbGiAJIAcpABA3AgggCUFAayIIQsAAIAlBBGoiCyAKEDMaIAlBgAFqIgcgCEH8lgIoAgARAAAaIAhBwAAQCSAHIAUgBkGAlwIoAgARAgAaIAdB4JYCQgAgBn1CD4NBgJcCKAIAEQIAGiAAIAMgBCALIAoQ6gEgByAAIARBgJcCKAIAEQIAGiAHQeCWAkIAIAR9Qg+DQYCXAigCABECABogCSAGNwM4IAcgCUE4aiIAQghBgJcCKAIAEQIAGiAJIAQ3AzggByAAQghBgJcCKAIAEQIAGiAHIAFBhJcCKAIAEQAAGiAHQYACEAkgAgRAIAJCEDcDAAsgCUEQakEgEAkgCUGAA2okAEEAC0oBAn8jAEEgayIGJABBfyEHAkAgAkIQVA0AIAYgBCAFEEANACAAIAFBEGogASACQhB9IAMgBhBdIQcgBkEgEAkLIAZBIGokACAHC08BAn8jAEEgayIGJAAgAkLw////D1QEQEF/IQcgBiAEIAUQQEUEQCAAQRBqIAAgASACIAMgBhBOIQcgBkEgEAkLIAZBIGokACAHDwsQDgAL6AQBAn8jAEGgAWsiBCQAIAAgAS0AADoAACAAIAEtAAE6AAEgACABLQACOgACIAAgAS0AAzoAAyAAIAEtAAQ6AAQgACABLQAFOgAFIAAgAS0ABjoABiAAIAEtAAc6AAcgACABLQAIOgAIIAAgAS0ACToACSAAIAEtAAo6AAogACABLQALOgALIAAgAS0ADDoADCAAIAEtAA06AA0gACABLQAOOgAOIAAgAS0ADzoADyAAIAEtABA6ABAgACABLQAROgARIAAgAS0AEjoAEiAAIAEtABM6ABMgACABLQAUOgAUIAAgAS0AFToAFSAAIAEtABY6ABYgACABLQAXOgAXIAAgAS0AGDoAGCAAIAEtABk6ABkgACABLQAaOgAaIAAgAS0AGzoAGyAAIAEtABw6ABwgACABLQAdOgAdIAAgAS0AHjoAHiABLQAfIQMgACACBH8gACAALQAAQfgBcToAACADQcAAcgUgAwtB/wBxOgAfIAQgABA+IAAgBBAvQX8hAyAALQAfQf8AcSAALQAeIAAtAB0gAC0AHCAALQAbIAAtABogAC0AGSAALQAYIAAtABcgAC0AFiAALQAVIAAtABQgAC0AEyAALQASIAAtABEgAC0AECAALQAPIAAtAA4gAC0ADSAALQAMIAAtAAsgAC0ACiAALQAJIAAtAAggAC0AByAALQAGIAAtAAUgAC0ABCAALQADIAAtAAIgAC0AASAALQAAQQFzcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyckEBa0GAAnFFBEBBf0EAIAFBIBAaGyEDCyAEQaABaiQAIAMLjgUBAn8jAEHAAmsiBCQAQX8hBQJAIAIQa0UNACACEEwNACAEIAIQNA0AIAQQbEUNACAAIAEtAAA6AAAgACABLQABOgABIAAgAS0AAjoAAiAAIAEtAAM6AAMgACABLQAEOgAEIAAgAS0ABToABSAAIAEtAAY6AAYgACABLQAHOgAHIAAgAS0ACDoACCAAIAEtAAk6AAkgACABLQAKOgAKIAAgAS0ACzoACyAAIAEtAAw6AAwgACABLQANOgANIAAgAS0ADjoADiAAIAEtAA86AA8gACABLQAQOgAQIAAgAS0AEToAESAAIAEtABI6ABIgACABLQATOgATIAAgAS0AFDoAFCAAIAEtABU6ABUgACABLQAWOgAWIAAgAS0AFzoAFyAA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DCAHKQAAQuv6htq/tfbBH4ULIQ4gAUFAa0EAQaUCEAwaIAEgDDcDOCABIA43AzAgASALNwMoIAEgDTcDICABQvHt9Pilp/2npX83AxggAUKr8NP0r+68tzw3AxAgAUK7zqqm2NDrs7t/NwMIIAEgCK1CiJL3lf/M+YTqAIU3AwBBAAshBAJAIANQDQAgAUHgAWohCSABQeAAaiEFA0AgBCAFaiEHQYACIARrIgatIgsgA1oEQCAHIAIgA6ciAhALGiABIAEoAuACIAJqNgLgAgwCCyAHIAIgBhALGiABIAEoAuACIAZqNgLgAiABIAEpA0AiDEKAAXw3A0AgASABKQNIIAxC/35WrXw3A0ggASAFEFIgBSAJQYABEAsaIAEgASgC4AJBgAFrIgQ2AuACIAIgBmohAiADIAt9IgNCAFINAAsLIAEgACAIEIMBGiAKJABBAAwBCxAOAAshCAsgCAsFAEGAAwsKACAAIAEgAhAHC/ADAgJ/An4jAEHAAWsiAyQAIANCADcDkAEgA0IANwOYASADQgA3A2ggA0IANwNwIANCADcDeCADQfiSAikDADcDqAEgA0GAkwIpAwA3A7ABIANBiJMCKQMANwO4ASADQgA3A4ABIANCADcDiAEgA0IANwNgIANB8JICKQMANwOgASADIAIpABA3A1AgAyACKQAYNwNYIAMgAikAADcDQCADIAIpAAg3A0ggA0GAAWoiAiADQUBrIgQQhQEgAhAoIAMgAykDmAE3AxggAyADKQOQATcDECADIAMpA4gBNwMIIAMgAykDgAE3AwAgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIAMgASkAEDcDUCADIAEpABg3A1ggASkACCEFIAEpAAAhBiADQgA3AzggA0IANwMwIANCADcDKCADIAY3A0AgAyAFNwNIIANCADcDICAEIAMQ6QEgAyADKQN4NwO4ASADIAMpA3A3A7ABIAMgAykDaDcDqAEgAyADKQNgNwOgASADIAMpA1g3A5gBIAMgAykDUDcDkAEgAyADKQNINwOIASADIAMpA0A3A4ABIAIQKCAAIAMpA5gBNwAYIAAgAykDkAE3ABAgACADKQOIATcACCAAIAMpA4ABNwAAIAJBwAAQCSADQcABaiQAC5cBAQF/IwBBQGoiAiQAIAIgASkAODcDOCACIAEpADA3AzAgAiABKQAoNwMoIAIgASkAIDcDICACIAEpABg3AxggAiABKQAQNwMQIAIgASkAADcDACACIAEpAAg3AwggAhAoIAAgAikDGDcAGCAAIAIpAxA3ABAgACACKQMINwAIIAAgAikDADcAACACQcAAEAkgAkFAayQAC8cCAgF/An4jAEHAAWsiAyQAIANCADcDYCADQgA3A2ggA0IANwNwIANCADcDeCADIAEpABA3A1AgAyABKQAYNwNYIAEpAAghBCABKQAAIQUgA0IANwMoIANCADcDMCADQgA3AzggAyAFNwNAIAMgBDcDSCADQgA3AyAgAyACKQAQNwMQIAMgAikAGDcDGCADIAIpAAA3AwAgAyACKQAINwMIIANBQGsgAxDpASADIAMpA3g3A7gBIAMgAykDcDcDsAEgAyADKQNoNwOoASADIAMpA2A3A6ABIAMgAykDWDcDmAEgAyADKQNQNwOQASADIAMpA0g3A4gBIAMgAykDQDcDgAEgA0GAAWoiARAoIAAgAykDmAE3ABggACADKQOQATcAECAAIAMpA4gBNwAIIAAgAykDgAE3AAAgAUHAABAJIANBwAFqJAAL5QEBAX8jAEGAAWsiAiQAIAJCADcDUCACQgA3A1ggAkIANwMoIAJCADcDMCACQgA3AzggAkH4kgIpAwA3A2ggAkGAkwIpAwA3A3AgAkGIkwIpAwA3A3ggAkIANwNAIAJCADcDSCACQQE6AEAgAkIANwMgIAJB8JICKQMANwNgIAIgASkAGDcDGCACIAEpABA3AxAgAiABKQAINwMIIAIgASkAADcDACACQUBrIgEgAhCFASABECggACACKQNYNwAYIAAgAikDUDcAECAAIAIpA0g3AAggACACKQNANwAAIAJBgAFqJAAL3gEBAX8jAEGAAWsiAiQAIAJCADcDUCACQgA3A1ggAkIANwMoIAJCADcDMCACQgA3AzggAkH4kgIpAwA3A2ggAkGAkwIpAwA3A3AgAkGIkwIpAwA3A3ggAkIANwNAIAJCADcDSCACQgA3AyAgAkHwkgIpAwA3A2AgAiABKQAQNwMQIAIgASkAGDcDGCACIAEpAAA3AwAgAiABKQAINwMIIAJBQGsiASACEIUBIAEQKCAAIAIpA1g3ABggACACKQNQNwAQIAAgAikDSDcACCAAIAIpA0A3AAAgAkGAAWokAAvPCwELfyMAQeAFayICJAAgAkHABWoiByABIAEQByACQeABaiIGIAEgBxAHIAJBoAVqIgQgASAGEAcgAkGABWoiBSAEIAQQByACQaADaiIJIAcgBRAHIAJBwAJqIgcgASAJEAcgAkHgBGoiAyAFIAUQByACQaACaiIFIAcgBxAHIAJBwARqIgggCSAFEAcgAkHAA2oiDCADIAUQByACQaAEaiIKIAggCBAHIAJBgANqIgggAyAKEAcgAkHgAmoiCyAGIAgQByACQcABaiIGIAMgCxAHIAJBoAFqIgMgBCAGEAcgAkHgAGogBCADEAcgAkGABGoiBiAKIAsQByACQeADaiIDIAQgBhAHIAJBgAJqIgYgDCADEAcgAkGAAWogBSAGEAcgAkFAayIFIAggAxAHIAJBIGoiAyAEIAUQByACIAkgAxAHIAAgByACEAdBACEEA0AgACAAIAAQByAEQQFqIgRB/gBHDQALIAAgACACQeACahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQcAFahAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGgAWoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAhAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkGAAmoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBQGsQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHgAGoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHAAmoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAJBgARqEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHAAWoQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkHgA2oQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACACQYABahAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgABAHIAAgACAAEAcgACAAIAAQByAAIAAgAkEgahAHIAJB4AVqJABBACABQSAQGmsLKAADQCAAQSAQGSAAIAAtAB9BH3E6AB8gABCNAUUNACAAQSAQGg0ACwsKACAAIAEgAhAuCykBAX8jAEEQayIAJAAgAEEAOgAPQeSfAiAAQQ9qQQAQABogAEEQaiQAC2MBBX8DQCAAIANqIgIgASADai0AACAEIAItAABqaiICOgAAIAAgA0EBciIEaiIGIAEgBGotAAAgBi0AACACQQh2amoiAjoAACACQQh2IQQgA0ECaiEDIAVBAmoiBUEgRw0ACwsoACACQoCAgIAQWgRAEA4ACyAAIAEgAiADQQEgBEG8nwIoAgAREAAaCwQAQQwLdAEFfwJAQQEhAgNAIAAgA2oiASACIAEtAABqIgI6AAAgASABLQABIAJBCHZqIgI6AAEgASABLQACIAJBCHZqIgI6AAIgASABLQADIAJBCHZqIgE6AAMgAUEIdiECIANBBGohAyAEQQRqIgRBBEcNAAsMAAsLggcBFH8jAEHwAWsiBCQAIARCADcDyAEgBEIANwPAASAEQcABaiIJIAEgAhALGiADKAAQIQYgA0FAayIBKAAAIQcgAygAUCEFIAMoACAhCCADKAAwIQogAygAFCELIAMoAEQhDCADKABUIQ0gAygAJCEOIAMoADQhDyADKAAYIRAgAygASCERIAMoAFghEiADKAAoIRMgAygAOCEUIAQoAsABIRUgBCgCxAEhFiAEKALIASEXIAQgAygALCADKAA8cSADKAAcIAMoAEwgAygAXCAEKALMAXNzc3M2AswBIAQgEyAUcSAQIBEgEiAXc3NzczYCyAEgBCAOIA9xIAsgDCANIBZzc3NzNgLEASAEIAggCnEgBiAHIAUgFXNzc3M2AsABIAIgCWpBAEEQIAJrEAwaIAAgCSACEAsaIAQoAsABIQAgBCgCxAEhAiAEKALIASEGIAQoAswBIQcgBCADKQJYNwPoASAEIAMpAlA3A+ABIAQgAykCSDcDuAEgBCABKQIANwOwASAEIAMpAlg3A6gBIAQgAykCUDcDoAEgBEHQAWoiBSAEQbABaiAEQaABahAIIAMgBCkC2AE3AlggAyAEKQLQATcCUCAEIAMpAjg3A5gBIAQgAykCMDcDkAEgBCADKQJINwOIASAEIAEpAgA3A4ABIAUgBEGQAWogBEGAAWoQCCADIAQpAtgBNwJIIAEgBCkC0AE3AgAgBCADKQIoNwN4IAQgAykCIDcDcCAEIAMpAjg3A2ggBCADKQIwNwNgIAUgBEHwAGogBEHgAGoQCCADIAQpAtgBNwI4IAMgBCkC0AE3AjAgBCADKQIYNwNYIAQgAykCEDcDUCAEIAMpAig3A0ggBCADKQIgNwNAIAUgBEHQAGogBEFAaxAIIAMgBCkC2AE3AiggAyAEKQLQATcCICAEIAMpAgg3AzggBCADKQIANwMwIAQgAykCGDcDKCAEIAMpAhA3AyAgBSAEQTBqIARBIGoQCCADIAQpAtgBNwIYIAMgBCkC0AE3AhAgBCAEKQPoATcDGCAEIAQpA+ABNwMQIAQgAykCCDcDCCAEIAMpAgA3AwAgBSAEQRBqIAQQCCAEKALQASEBIAQoAtQBIQUgBCgC2AEhCCADIAcgBCgC3AFzNgIMIAMgBiAIczYCCCADIAIgBXM2AgQgAyAAIAFzNgIAIARB8AFqJAALqwYBFH8jAEHgAWsiAyQAIAIoABAhBCACQUBrIgUoAAAhBiACKABQIQkgAigAICEKIAIoADAhCyACKAAUIQcgAigARCEMIAIoAFQhDSABKAAEIQ4gAigAJCEPIAIoADQhECACKAAYIQggAigASCERIAIoAFghEiABKAAIIRMgAigAKCEUIAIoADghFSABKAAAIRYgACACKAAsIAIoADxxIAIoABwgAigATCACKABcIAEoAAxzc3NzIgE2AAwgACAUIBVxIAggESASIBNzc3NzIgg2AAggACAPIBBxIAcgDCANIA5zc3NzIgc2AAQgACAKIAtxIAQgBiAJIBZzc3NzIgA2AAAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCSDcDuAEgAyAFKQIANwOwASADIAIpAlg3A6gBIAMgAikCUDcDoAEgA0HAAWoiBCADQbABaiADQaABahAIIAIgAykCyAE3AlggAiADKQLAATcCUCADIAIpAjg3A5gBIAMgAikCMDcDkAEgAyACKQJINwOIASADIAUpAgA3A4ABIAQgA0GQAWogA0GAAWoQCCACIAMpAsgBNwJIIAUgAykCwAE3AgAgAyACKQIoNwN4IAMgAikCIDcDcCADIAIpAjg3A2ggAyACKQIwNwNgIAQgA0HwAGogA0HgAGoQCCACIAMpAsgBNwI4IAIgAykCwAE3AjAgAyACKQIYNwNYIAMgAikCEDcDUCADIAIpAig3A0ggAyACKQIgNwNAIAQgA0HQAGogA0FAaxAIIAIgAykCyAE3AiggAiADKQLAATcCICADIAIpAgg3AzggAyACKQIANwMwIAMgAikCGDcDKCADIAIpAhA3AyAgBCADQTBqIANBIGoQCCACIAMpAsgBNwIYIAIgAykCwAE3AhAgAyADKQPYATcDGCADIAMpA9ABNwMQIAMgAikCCDcDCCADIAIpAgA3AwAgBCADQRBqIAMQCCADKALAASEFIAMoAsQBIQQgAygCyAEhBiACIAMoAswBIAFzNgIMIAIgBiAIczYCCCACIAQgB3M2AgQgAiAAIAVzNgIAIANB4AFqJAALiwkBEX8jAEHgAWsiBSQAIAQoADwgA0EddnMhDiAEKAA4IANBA3RzIQ8gBCgANCACQR12cyEQIARBMGoiAygAACACQQN0cyERIARBEGohAiAEQSBqIQYgBEFAayEHIARB0ABqIQgDQCAFIAgpAgg3A9gBIAUgCCkCADcD0AEgBSAHKQIINwO4ASAFIAcpAgA3A7ABIAUgCCkCCDcDqAEgBSAIKQIANwOgASAFQcABaiIJIAVBsAFqIAVBoAFqEAggCCAFKQLIATcCCCAIIAUpAsABNwIAIAUgAykCCDcDmAEgBSADKQIANwOQASAFIAcpAgg3A4gBIAUgBykCADcDgAEgCSAFQZABaiAFQYABahAIIAcgBSkCyAE3AgggByAFKQLAATcCACAFIAYpAgg3A3ggBSAGKQIANwNwIAUgAykCCDcDaCAFIAMpAgA3A2AgCSAFQfAAaiAFQeAAahAIIAMgBSkCyAE3AgggAyAFKQLAATcCACAFIAIpAgg3A1ggBSACKQIANwNQIAUgBikCCDcDSCAFIAYpAgA3A0AgCSAFQdAAaiAFQUBrEAggBiAFKQLIATcCCCAGIAUpAsABNwIAIAUgBCkCCDcDOCAFIAQpAgA3AzAgBSACKQIINwMoIAUgAikCADcDICAJIAVBMGogBUEgahAIIAIgBSkCyAE3AgggAiAFKQLAATcCACAFIAUpA9gBNwMYIAUgBSkD0AE3AxAgBSAEKQIINwMIIAUgBCkCADcDACAJIAVBEGogBRAIIAUoAsABIQsgBSgCxAEhDCAFKALIASEJIAQgDiAFKALMAXMiDTYCDCAEIAkgD3MiCTYCCCAEIAwgEHMiDDYCBCAEIAsgEXMiCzYCACAKQQFqIgpBB0cNAAsCQAJAAkACQCABQRBrDhEAAgICAgICAgICAgICAgICAQILIAQoABAhASAEKAAwIQIgBCgAICEDIAQoAFAhBiAEQUBrKAAAIQcgBCgAFCEIIAQoADQhCiAEKAAkIQ4gBCgAVCEPIAQoAEQhECAEKAAYIREgBCgAOCESIAQoACghEyAEKABYIRQgBCgASCEVIAAgBCgAHCAEKAA8IAQoACwgBCgAXCAEKABMc3NzcyANczYADCAAIBEgEiATIBQgFXNzc3MgCXM2AAggACAIIAogDiAPIBBzc3NzIAxzNgAEIAAgASACIAMgBiAHc3NzcyALczYAAAwCCyAEKAAgIQEgBCgAECECIAQoACQhAyAEKAAUIQYgBCgAKCEHIAQoABghCCAAIAQoACwgBCgAHHMgDXM2AAwgACAHIAhzIAlzNgAIIAAgAyAGcyAMczYABCAAIAEgAnMgC3M2AAAgBCgAMCEBIAQoAFAhAiAEQUBrKAAAIQMgBCgANCEGIAQoAFQhByAEKABEIQggBCgAOCEKIAQoAFghDSAEKABIIQkgACAEKAA8IAQoAFwgBCgATHNzNgAcIAAgCiAJIA1zczYAGCAAIAYgByAIc3M2ABQgACABIAIgA3NzNgAQDAELIABBACABEAwaCyAFQeABaiQAC6UGARR/IwBB4AFrIgMkACACKAAQIQUgAkFAayIEKAAAIQkgAigAUCEKIAIoACAhCyACKAAwIQwgASgABCEGIAIoABQhDSACKABEIQ4gAigAVCEPIAIoACQhECACKAA0IREgASgACCEHIAIoABghEiACKABIIRMgAigAWCEUIAIoACghFSACKAA4IRYgASgAACEIIAAgASgADCIBIAIoACwgAigAPHEgAigAHCACKABcIAIoAExzc3NzNgAMIAAgByAVIBZxIBIgEyAUc3NzczYACCAAIAYgECARcSANIA4gD3Nzc3M2AAQgACAIIAsgDHEgBSAJIApzc3NzNgAAIAMgAikCWDcD2AEgAyACKQJQNwPQASADIAIpAkg3A7gBIAMgBCkCADcDsAEgAyACKQJYNwOoASADIAIpAlA3A6ABIANBwAFqIgAgA0GwAWogA0GgAWoQCCACIAMpAsgBNwJYIAIgAykCwAE3AlAgAyACKQI4NwOYASADIAIpAjA3A5ABIAMgAikCSDcDiAEgAyAEKQIANwOAASAAIANBkAFqIANBgAFqEAggAiADKQLIATcCSCAEIAMpAsABNwIAIAMgAikCKDcDeCADIAIpAiA3A3AgAyACKQI4NwNoIAMgAikCMDcDYCAAIANB8ABqIANB4ABqEAggAiADKQLIATcCOCACIAMpAsABNwIwIAMgAikCGDcDWCADIAIpAhA3A1AgAyACKQIoNwNIIAMgAikCIDcDQCAAIANB0ABqIANBQGsQCCACIAMpAsgBNwIoIAIgAykCwAE3AiAgAyACKQIINwM4IAMgAikCADcDMCADIAIpAhg3AyggAyACKQIQNwMgIAAgA0EwaiADQSBqEAggAiADKQLIATcCGCACIAMpAsABNwIQIAMgAykD2AE3AxggAyADKQPQATcDECADIAIpAgg3AwggAyACKQIANwMAIAAgA0EQaiADEAggAygCwAEhACADKALEASEEIAMoAsgBIQUgAiABIAMoAswBczYCDCACIAUgB3M2AgggAiAEIAZzNgIEIAIgACAIczYCACADQeABaiQAC6UJAQ1/IwBBoANrIgIkACAAKAAQIQYgACgAFCEHIAAoABghCCAAKAAcIQkgACgABCEEIAAoAAghBSAAKAAMIQogACgAACELIAIgASkCWDcDmAMgAiABKQJQNwOQAyACIAEpAkg3A/gCIAIgAUFAayIAKQIANwPwAiACIAEpAlg3A+gCIAIgASkCUDcD4AIgAkGAA2oiAyACQfACaiACQeACahAIIAEgAikCiAM3AlggASACKQKAAzcCUCACIAEpAjg3A9gCIAIgASkCMDcD0AIgAiABKQJINwPIAiACIAApAgA3A8ACIAMgAkHQAmogAkHAAmoQCCABIAIpAogDNwJIIAAgAikCgAM3AgAgAiABKQIoNwO4AiACIAEpAiA3A7ACIAIgASkCODcDqAIgAiABKQIwNwOgAiADIAJBsAJqIAJBoAJqEAggASACKQKIAzcCOCABIAIpAoADNwIwIAIgASkCGDcDmAIgAiABKQIQNwOQAiACIAEpAig3A4gCIAIgASkCIDcDgAIgAyACQZACaiACQYACahAIIAEgAikCiAM3AiggASACKQKAAzcCICACIAEpAgg3A/gBIAIgASkCADcD8AEgAiABKQIYNwPoASACIAEpAhA3A+ABIAMgAkHwAWogAkHgAWoQCCABIAIpAogDNwIYIAEgAikCgAM3AhAgAiACKQOYAzcD2AEgAiACKQOQAzcD0AEgAiABKQIINwPIASACIAEpAgA3A8ABIAMgAkHQAWogAkHAAWoQCCACKAKAAyEMIAIoAoQDIQ0gAigCiAMhDiABIAogAigCjANzNgIMIAEgBSAOczYCCCABIAQgDXM2AgQgASALIAxzNgIAIAIgASkCWDcDmAMgAiABKQJQNwOQAyACIAEpAkg3A7gBIAIgACkCADcDsAEgAiABKQJYNwOoASACIAEpAlA3A6ABIAMgAkGwAWogAkGgAWoQCCABIAIpAogDNwJYIAEgAikCgAM3AlAgAiABKQI4NwOYASACIAEpAjA3A5ABIAIgASkCSDcDiAEgAiAAKQIANwOAASADIAJBkAFqIAJBgAFqEAggASACKQKIAzcCSCAAIAIpAoADNwIAIAIgASkCKDcDeCACIAEpAiA3A3AgAiABKQI4NwNoIAIgASkCMDcDYCADIAJB8ABqIAJB4ABqEAggASACKQKIAzcCOCABIAIpAoADNwIwIAIgASkCGDcDWCACIAEpAhA3A1AgAiABKQIoNwNIIAIgASkCIDcDQCADIAJB0ABqIAJBQGsQCCABIAIpAogDNwIoIAEgAikCgAM3AiAgAiABKQIINwM4IAIgASkCADcDMCACIAEpAhg3AyggAiABKQIQNwMgIAMgAkEwaiACQSBqEAggASACKQKIAzcCGCABIAIpAoADNwIQIAIgAikDmAM3AxggAiACKQOQAzcDECACIAEpAgg3AwggAiABKQIANwMAIAMgAkEQaiACEAggAigCgAMhACACKAKEAyEEIAIoAogDIQUgASAJIAIoAowDczYCDCABIAUgCHM2AgggASAEIAdzNgIEIAEgACAGczYCACACQaADaiQAC/MUARl/IwBBoAZrIgMkACABKAAEIQsgASgACCEMIAEoAAwhDSABKAAQIQ4gASgAFCEEIAEoABghDyABKAAcIRAgACgABCERIAAoAAghEiAAKAAMIRMgACgAECEUIAAoABQhFSAAKAAYIRYgACgAHCEXIAEoAAAhBSACQUBrIgEgACgAACIYQYCChBBzNgIAIAJClcTcyYWy+rziADcCOCACQTBqIgBCgIKEkLCggYQNNwIAIAJCoKLEkbSurZRdNwIoIAJBIGoiBkLb++Co1c3wl3E3AgAgAiAFIBhzIhk2AgAgAiAXQfPqoul9czYCXCACIBZBoKLEkQRzNgJYIAIgFUHthL+Jf3M2AlQgAkHQAGoiBSAUQdv74KgFczYCACACIBNBkNPnkwZzNgJMIAIgEkGVxNzJBXM2AkggAiARQYOKoOgAczYCRCACIBAgF3MiEDYCHCACIA8gFnMiDzYCGCACIAQgFXMiGjYCFCACQRBqIgQgDiAUcyIONgIAIAIgDSATcyINNgIMIAIgDCAScyIMNgIIIAIgCyARcyIbNgIEQQAhCwNAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A/gFIAMgASkCADcD8AUgAyAFKQIINwPoBSADIAUpAgA3A+AFIANBgAZqIgcgA0HwBWogA0HgBWoQCCAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwPYBSADIAApAgA3A9AFIAMgASkCCDcDyAUgAyABKQIANwPABSAHIANB0AVqIANBwAVqEAggASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDuAUgAyAGKQIANwOwBSADIAApAgg3A6gFIAMgACkCADcDoAUgByADQbAFaiADQaAFahAIIAAgAykCiAY3AgggACADKQKABjcCACADIAQpAgg3A5gFIAMgBCkCADcDkAUgAyAGKQIINwOIBSADIAYpAgA3A4AFIAcgA0GQBWogA0GABWoQCCAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwP4BCADIAIpAgA3A/AEIAMgBCkCCDcD6AQgAyAEKQIANwPgBCAHIANB8ARqIANB4ARqEAggBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3A9gEIAMgAykDkAY3A9AEIAMgAikCCDcDyAQgAyACKQIANwPABCAHIANB0ARqIANBwARqEAggAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiATczYCDCACIAogEnM2AgggAiAJIBFzNgIEIAIgCCAYczYCACADIAUpAgg3A5gGIAMgBSkCADcDkAYgAyABKQIINwO4BCADIAEpAgA3A7AEIAMgBSkCCDcDqAQgAyAFKQIANwOgBCAHIANBsARqIANBoARqEAggBSADKQKIBjcCCCAFIAMpAoAGNwIAIAMgACkCCDcDmAQgAyAAKQIANwOQBCADIAEpAgg3A4gEIAMgASkCADcDgAQgByADQZAEaiADQYAEahAIIAEgAykCiAY3AgggASADKQKABjcCACADIAYpAgg3A/gDIAMgBikCADcD8AMgAyAAKQIINwPoAyADIAApAgA3A+ADIAcgA0HwA2ogA0HgA2oQCCAAIAMpAogGNwIIIAAgAykCgAY3AgAgAyAEKQIINwPYAyADIAQpAgA3A9ADIAMgBikCCDcDyAMgAyAGKQIANwPAAyAHIANB0ANqIANBwANqEAggBiADKQKIBjcCCCAGIAMpAoAGNwIAIAMgAikCCDcDuAMgAyACKQIANwOwAyADIAQpAgg3A6gDIAMgBCkCADcDoAMgByADQbADaiADQaADahAIIAQgAykCiAY3AgggBCADKQKABjcCACADIAMpA5gGNwOYAyADIAMpA5AGNwOQAyADIAIpAgg3A4gDIAMgAikCADcDgAMgByADQZADaiADQYADahAIIAMoAoAGIQggAygChAYhCSADKAKIBiEKIAIgAygCjAYgF3M2AgwgAiAKIBZzNgIIIAIgCSAVczYCBCACIAggFHM2AgAgAyAFKQIINwOYBiADIAUpAgA3A5AGIAMgASkCCDcD+AIgAyABKQIANwPwAiADIAUpAgg3A+gCIAMgBSkCADcD4AIgByADQfACaiADQeACahAIIAUgAykCiAY3AgggBSADKQKABjcCACADIAApAgg3A9gCIAMgACkCADcD0AIgAyABKQIINwPIAiADIAEpAgA3A8ACIAcgA0HQAmogA0HAAmoQCCABIAMpAogGNwIIIAEgAykCgAY3AgAgAyAGKQIINwO4AiADIAYpAgA3A7ACIAMgACkCCDcDqAIgAyAAKQIANwOgAiAHIANBsAJqIANBoAJqEAggACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDmAIgAyAEKQIANwOQAiADIAYpAgg3A4gCIAMgBikCADcDgAIgByADQZACaiADQYACahAIIAYgAykCiAY3AgggBiADKQKABjcCACADIAIpAgg3A/gBIAMgAikCADcD8AEgAyAEKQIINwPoASADIAQpAgA3A+ABIAcgA0HwAWogA0HgAWoQCCAEIAMpAogGNwIIIAQgAykCgAY3AgAgAyADKQOYBjcD2AEgAyADKQOQBjcD0AEgAyACKQIINwPIASADIAIpAgA3A8ABIAcgA0HQAWogA0HAAWoQCCADKAKABiEIIAMoAoQGIQkgAygCiAYhCiACIAMoAowGIA1zNgIMIAIgCiAMczYCCCACIAkgG3M2AgQgAiAIIBlzNgIAIAMgBSkCCDcDmAYgAyAFKQIANwOQBiADIAEpAgg3A7gBIAMgASkCADcDsAEgAyAFKQIINwOoASADIAUpAgA3A6ABIAcgA0GwAWogA0GgAWoQCCAFIAMpAogGNwIIIAUgAykCgAY3AgAgAyAAKQIINwOYASADIAApAgA3A5ABIAMgASkCCDcDiAEgAyABKQIANwOAASAHIANBkAFqIANBgAFqEAggASADKQKIBjcCCCABIAMpAoAGNwIAIAMgBikCCDcDeCADIAYpAgA3A3AgAyAAKQIINwNoIAMgACkCADcDYCAHIANB8ABqIANB4ABqEAggACADKQKIBjcCCCAAIAMpAoAGNwIAIAMgBCkCCDcDWCADIAQpAgA3A1AgAyAGKQIINwNIIAMgBikCADcDQCAHIANB0ABqIANBQGsQCCAGIAMpAogGNwIIIAYgAykCgAY3AgAgAyACKQIINwM4IAMgAikCADcDMCADIAQpAgg3AyggAyAEKQIANwMgIAcgA0EwaiADQSBqEAggBCADKQKIBjcCCCAEIAMpAoAGNwIAIAMgAykDmAY3AxggAyADKQOQBjcDECADIAIpAgg3AwggAyACKQIANwMAIAcgA0EQaiADEAggAygCgAYhCCADKAKEBiEJIAMoAogGIQogAiADKAKMBiAQczYCDCACIAogD3M2AgggAiAJIBpzNgIEIAIgCCAOczYCACALQQFqIgtBBEcNAAsgA0GgBmokAAsIACAAQRAQGQsEAEFfC5gKAR5/IwBBwAJrIgQkACAEQgA3A5gCIARCADcDkAIgBEIANwOIAiAEQgA3A4ACIARBgAJqIgUgASACEAsaIAMoABAhCyADKAAwIQwgAygAFCENIAMoADQhDiADKAAYIQ8gAygAOCEQIAMoABwhESADKAA8IRIgAygAJCEBIAMoAFQhEyADKAB0IRQgAygAZCEGIAMoACwhByADKABcIRUgAygAfCEWIAMoAGwhCCADKAAgIQkgAygAUCEXIAMoAHAhGCADKABgIQogBCgCkAIhGSAEKAKAAiEaIAQoAoQCIRsgBCgCiAIhHCAEKAKMAiEdIAQoApQCIR4gBCgCnAIhHyAEIAMoACgiICADKABoIiEgAygAeHEgAygAWCAEKAKYAnNzczYCmAIgBCAJIAogGHEgFyAZc3NzNgKQAiAEIAcgCCAWcSAVIB9zc3M2ApwCIAQgASAGIBRxIBMgHnNzczYClAIgBCAIIAcgEnEgESAdc3NzNgKMAiAEICEgECAgcSAPIBxzc3M2AogCIAQgBiABIA5xIA0gG3NzczYChAIgBCAKIAkgDHEgCyAac3NzNgKAAiACIAVqQQBBICACaxAMGiAAIAUgAhALGiAEKAKYAiEBIAQoApACIQIgBCgCnAIhBiAEKAKUAiEHIAQoAoACIQggBCgChAIhCSAEKAKIAiEKIAQoAowCIQsgBCADKQJ4NwO4AiAEIAMpAnA3A7ACIAQgAykCaDcD+AEgBCADKQJgNwPwASAEIAMpAng3A+gBIAQgAykCcDcD4AEgBEGgAmoiBSAEQfABaiAEQeABahAIIAMgBCkCqAI3AnggAyAEKQKgAjcCcCAEIAMpAlg3A9gBIAQgAykCUDcD0AEgBCADKQJoNwPIASAEIAMpAmA3A8ABIAUgBEHQAWogBEHAAWoQCCADIAQpAqgCNwJoIAMgBCkCoAI3AmAgBCADKQJINwO4ASAEIANBQGsiACkCADcDsAEgBCADKQJYNwOoASAEIAMpAlA3A6ABIAUgBEGwAWogBEGgAWoQCCADIAQpAqgCNwJYIAMgBCkCoAI3AlAgBCADKQI4NwOYASAEIAMpAjA3A5ABIAQgAykCSDcDiAEgBCAAKQIANwOAASAFIARBkAFqIARBgAFqEAggAyAEKQKoAjcCSCAAIAQpAqACNwIAIAQgAykCKDcDeCAEIAMpAiA3A3AgBCADKQI4NwNoIAQgAykCMDcDYCAFIARB8ABqIARB4ABqEAggAyAEKQKoAjcCOCADIAQpAqACNwIwIAQgAykCGDcDWCAEIAMpAhA3A1AgBCADKQIoNwNIIAQgAykCIDcDQCAFIARB0ABqIARBQGsQCCADIAQpAqgCNwIoIAMgBCkCoAI3AiAgBCADKQIINwM4IAQgAykCADcDMCAEIAMpAhg3AyggBCADKQIQNwMgIAUgBEEwaiAEQSBqEAggAyAEKQKoAjcCGCADIAQpAqACNwIQIAQgBCkDuAI3AxggBCAEKQOwAjcDECAEIAMpAgg3AwggBCADKQIANwMAIAUgBEEQaiAEEAggAyAEKQKoAjcCCCADIAQpAqACNwIAIAMgCyADKAAMczYCDCADIAogAygACHM2AgggAyAJIAMoAARzNgIEIAMgCCADKAAAczYCACAAIAIgACgAAHM2AgAgAyAHIAMoAERzNgJEIAMgASADKABIczYCSCADIAYgAygATHM2AkwgBEHAAmokAAuRCQEefyMAQaACayIDJAAgAigAECEOIAIoADAhDyACKAAUIRAgASgABCERIAIoADQhEiACKAAYIRMgASgACCEUIAIoADghFSACKAAcIQggASgADCEWIAIoADwhFyACKAAgIQUgAigAUCEJIAEoABAhGCACKABwIRkgAigAYCEEIAIoACQhBiACKABUIQogASgAFCEaIAIoAHQhGyACKABkIQwgAigAKCEHIAIoAFghCyABKAAYIRwgAigAeCEdIAIoAGghDSABKAAAIR4gACACKAAsIh8gAigAbCIgIAIoAHxxIAIoAFwgASgAHHNzcyIBNgAcIAAgByANIB1xIAsgHHNzcyILNgAYIAAgBiAMIBtxIAogGnNzcyIKNgAUIAAgBSAEIBlxIAkgGHNzcyIJNgAQIAAgICAXIB9xIAggFnNzcyIINgAMIAAgDSAHIBVxIBMgFHNzcyIHNgAIIAAgDCAGIBJxIBAgEXNzcyIGNgAEIAAgBCAFIA9xIA4gHnNzcyIFNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCCACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAggAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAggAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAIIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAggAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAIIAIgAykCiAI3AhggAiAD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IAIoAHAhGiACKABgIQkgAigAJCEKIAEoABQhCyACKABUIRsgAigAdCEcIAIoAGQhDCACKAAoIQ0gASgAGCEOIAIoAFghHSACKAB4IR4gAigAaCEPIAEoAAAhECAAIAIoACwiHyABKAAcIgEgAigAXCACKABsIiAgAigAfHFzc3M2ABwgACANIA4gHSAPIB5xc3NzNgAYIAAgCiALIBsgDCAccXNzczYAFCAAIAQgCCAZIAkgGnFzc3M2ABAgACAgIAcgFyAYIB9xc3NzNgAMIAAgDyAGIBUgDSAWcXNzczYACCAAIAwgBSATIAogFHFzc3M2AAQgACAJIBAgESAEIBJxc3NzNgAAIAMgAikCeDcDmAIgAyACKQJwNwOQAiADIAIpAmg3A/gBIAMgAikCYDcD8AEgAyACKQJ4NwPoASADIAIpAnA3A+ABIANBgAJqIgQgA0HwAWogA0HgAWoQCCACIAMpAogCNwJ4IAIgAykCgAI3AnAgAyACKQJYNwPYASADIAIpAlA3A9ABIAMgAikCaDcDyAEgAyACKQJgNwPAASAEIANB0AFqIANBwAFqEAggAiADKQKIAjcCaCACIAMpAoACNwJgIAMgAikCSDcDuAEgAyACQUBrIgApAgA3A7ABIAMgAikCWDcDqAEgAyACKQJQNwOgASAEIANBsAFqIANBoAFqEAggAiADKQKIAjcCWCACIAMpAoACNwJQIAMgAikCODcDmAEgAyACKQIwNwOQASADIAIpAkg3A4gBIAMgACkCADcDgAEgBCADQZABaiADQYABahAIIAIgAykCiAI3AkggACADKQKAAjcCACADIAIpAig3A3ggAyACKQIgNwNwIAMgAikCODcDaCADIAIpAjA3A2AgBCADQfAAaiADQeAAahAIIAIgAykCiAI3AjggAiADKQKAAjcCMCADIAIpAhg3A1ggAyACKQIQNwNQIAMgAikCKDcDSCADIAIpAiA3A0AgBCADQdAAaiADQUBrEAggAiADKQKIAjcCKCACIAMpAoACNwIgIAMgAikCCDcDOCADIAIpAgA3AzAgAyACKQIYNwMoIAMgAikCEDcDICAEIANBMGogA0EgahAIIAIgAykCiAI3AhggAiADKQKAAjcCECADIAMpA5gCNwMYIAMgAykDkAI3AxAgAyACKQIINwMIIAMgAikCADcDACAE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ACJDNwPQAiADIAEpAAg3A9gCIAMgQ6dB+AFxOgDQAiADIAMtAO8CQT9xQcAAcjoA7wIgA0GgAmogAhA2IANCADcChAIgA0IANwKMAiADQQA2ApQCIANCADcD0AEgA0IANwPYASADQgA3A+ABIAMgAykDsAI3A6ABIAMgAykDuAI3A6gBIAMgAykDwAI3A7ABIANCADcC9AEgA0EBNgLwASADQgA3AvwBIANCADcDwAEgA0IANwPIASADIAMpA6ACNwOQASADIAMpA6gCNwOYASADQgA3AnQgA0IANwJ8IANBADYChAEgA0IANwJkIANBATYCYCADQgA3AmxB/gEhAkEAIQQDQCADKAKUAiEJIAMoArQBIQYgAygCYCEHIAMoAsABIQogAygCkAEhCyADKALwASENIAMoAmQhCCADKALEASEMIAMoApQBIQUgAygC9AEhECADKAJoIQ4gAygCyAEhESADKAKYASESIAMoAvgBIRMgAygCbCEPIAMoAswBIRQgAygCnAEhFSADKAL8ASEXIAMoAnAhGCADKALQASEcIAMoAqABIR0gAygCgAIhHiADKAJ0IRkgAygC1AEhHyADKAKkASEgIAMoAoQCISEgAygCeCEaIAMoAtgBISIgAygCqAEhIyADKAKIAiEkIAMoAnwhGyADKALcASElIAMoAqwBISYgAygCjAIhJyADKAKAASEWIAMoAuABISggAygCsAEhKSADKAKQAiEsIANBACAEIANB0AJqIi0gAiIBQQN2ai0AACACQQdxdkEBcSIEc2siAiADKAKEASIqIAMoAuQBIitzcSIuICpzIio2AoQBIAMgBiAGIAlzIAJxIi9zIjAgKms2AlQgAyAWIBYgKHMgAnEiMXMiBjYCgAEgAyApICkgLHMgAnEiFnMiKSAGazYCUCADIBsgGyAlcyACcSIycyIbNgJ8IAMgJiAmICdzIAJxIjNzIiYgG2s2AkwgAyAaIBogInMgAnEiNHMiGjYCeCADICMgIyAkcyACcSI1cyIjIBprNgJIIAMgGSAZIB9zIAJxIjZzIhk2AnQgAyAgICAgIXMgAnEiN3MiICAZazYCRCADIBggGCAccyACcSI4cyIYNgJwIAMgHSAdIB5zIAJxIjlzIh0gGGs2AkAgAyAPIA8gFHMgAnEiOnMiDzYCbCADIBUgFSAXcyACcSI7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BiAWIAMgGhAGIAENAAsgAygCkAEhECADKALwASECIAMoApQBIQ4gAygC9AEhBiADKAKYASERIAMoAvgBIQcgAygCnAEhEiADKAL8ASEKIAMoAqABIRMgAygCgAIhCyADKAKkASEPIAMoAoQCIQ0gAygCqAEhFCADKAKIAiEIIAMoAqwBIRUgAygCjAIhDCADKAKwASEXIAMoApACIQUgA0EAIARrIgEgAygClAIiBCADKAK0AXNxIARzNgKUAiADIAUgBSAXcyABcXM2ApACIAMgDCAMIBVzIAFxczYCjAIgAyAIIAggFHMgAXFzNgKIAiADIA0gDSAPcyABcXM2AoQCIAMgCyALIBNzIAFxczYCgAIgAyAKIAogEnMgAXFzNgL8ASADIAcgByARcyABcXM2AvgBIAMgBiAGIA5zIAFxczYC9AEgAyACIAIgEHMgAXFzNgLwASADKALAASECIAMoAmAhBSADKALEASEEIAMoAmQhECADKALIASEGIAMoAmghDiADKALMASEHIAMoAmwhESADKALQASEKIAMoAnAhEiADKALUASELIAMoAnQhEyADKALYASENIAMoAnghDyADKALcASEIIAMoAnwhFCADKALgASEMIAMoAoABIRUgAyADKALkASIXIAMoAoQBcyABcSAXczYC5AEgAyAMIAwgFXMgAXFzNgLgASADIAggCCAUcyABcXM2AtwBIAMgDSANIA9zIAFxczYC2AEgAyALIAsgE3MgAXFzNgLUASADIAogCiAScyABcXM2AtABIAMgByAHIBFzIAFxczYCzAEgAyAGIAYgDnMgAXFzNgLIASADIAQgBCAQcyABcXM2AsQBIAMgAiACIAVzIAFxczYCwAEgFiAWEDUgGSAZIBYQBiAAIBkQESAtQSAQCUEAIQkLIANB8AJqJAAgCQs4AQF/IwBBIGsiBiQAIAYgBCAFQQAQGxogACABIAKtIAOtQiCGhCAEQRBqQgAgBhA7IAZBIGokAAtAAQF/IwBBIGsiCCQAIAggBCAHQQAQGxogACABIAKtIAOtQiCGhCAEQRBqIAWtIAatQiCGhCAIEDsgCEEgaiQACzQBAX8jAEEgayIFJAAgBSADIARBABAbGiAAIAGtIAKtQiCGhCADQRBqIAUQUyAFQSBqJAALtgQCA38CfiMAQfAAayIGJAAgAq0gA61C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IwtbAQJ+IAetIAitQiCGhCEMQX8hAiAErSAFrUIghoQiC0IQWgRAIAAgAyALQhB9IAMgC6dqQRBrIAYgDCAJIAoQsgEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQsgELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChCzARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALELMBC1sBAn4gB60gCK1CIIaEIQxBfyECIAStIAWtQiCGhCILQhBaBEAgACADIAtCEH0gAyALp2pBEGsgBiAMIAkgChDDASECCyABBEAgAUIAIAtCEH0gAhs3AwALIAILJQAgACACIAOtIAStQiCGhCAFIAYgB60gCK1CIIaEIAkgChDDAQtbAQJ+IAetIAitQiCGhCEMQX8hAiAErSAFrUIghoQiC0IQWgRAIAAgAyALQhB9IAMgC6dqQRBrIAYgDCAJIAoQxAEhAgsgAQRAIAFCACALQhB9IAIbNwMACyACCyUAIAAgAiADrSAErUIghoQgBSAGIAetIAitQiCGhCAJIAoQxAELWQECfgJ/IAatIAetQiCGhCEMIAOtIAStQiCGhCILQvD///8PVARAIAAgACALp2pBACACIAsgBSAMIAkgChDFARogAQRAIAEgC0IQfDcDAAtBAAwBCxAOAAsLJwAgACABIAIgAyAErSAFrUIghoQgBiAHrSAIrUIghoQgCiALEMUBC1kBAn4CfyAGrSAHrUIghoQhDCADrSAErUIghoQiC0Lw////D1QEQCAAIAAgC6dqQQAgAiALIAUgDCAJIAoQxgEaIAEEQCABIAtCEHw3AwALQQAMAQsQDgALCycAIAAgASACIAMgBK0gBa1CIIaEIAYgB60gCK1CIIaEIAogCxDGAQtZAQJ+IAetIAitQiCGhCELQX8hAQJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC3////w9WDQAgACACIAynIAVBICAGIAunIAkgCkGsnwIoAgARDQAhAQsgAQuAAQEDfiAHrSAIrUIghoQhDEF/IQICQCAErSAFrUIghoQiC0IgVA0AIAtCIH0iDULf////D1YNACAMQt////8PVg0AIAAgAyANpyADIAunakEga0EgIAYgDKcgCSAKQayfAigCABENACECCyABBEAgAUIAIAtCIH0gAhs3AwALIAILYAECfiAErSAFrUIghoQhDCAHrSAIrUIghoQhDSACBEAgAkIgNwMACyANQuD///8PVCAMQt////8PWHFFBEAQDgALIAAgAUEgIAMgDKcgBiANpyAKIAtBqJ8CKAIAEQ0AC3YBAn4CfyAGrSAHrUIghoQhCwJAIAOtIAStQiCGhCIMQt////8PVg0AIAtC4P///w9aDQAgACAAIAynIgNqQSAgAiADIAUgC6cgCSAKQaifAigCABENACEAIAEEQCABQgAgDEIgfCAAGzcDAAsgAAwBCxAOAAsLWQECfiAHrSAIrUIghoQhC0F/IQECQCADrSAErUIghoQiDELf////D1YNACALQt////8PVg0AIAAgAiAMpyAFQSAgBiALpyAJIApBpJ8CKAIAEQ0AIQELIAELgAEBA34gB60gCK1CIIaEIQxBfyECAkAgBK0gBa1CIIaEIgtCIFQNACALQiB9Ig1C3////w9WDQAgDELf////D1YNACAAIAMgDacgAyALp2pBIGtBICAGIAynIAkgCkGknwIoAgARDQAhAgsgAQRAIAFCACALQiB9IAIbNwMACyACC2ABAn4gBK0gBa1CIIaEIQwgB60gCK1CIIaEIQ0gAgRAIAJCIDcDAAsgDULg////D1QgDELf////D1hxRQRAEA4ACyAAIAFBICADIAynIAYgDacgCiALQaCfAigCABENAAt2AQJ+An8gBq0gB61CIIaEIQsCQCADrSAErUIghoQiDELf////D1YNACALQuD///8PWg0AIAAgACAMpyIDakEgIAIgAyAFIAunIAkgCkGgnwIoAgARDQAhACABBEAgAUIAIAxCIHwgABs3AwALIAAMAQsQDgALCwUAQegACwQAQRoLBQBBiwwLBQBBtAoL/QEBBX8jACIFIQkgBUGABGtBQHEiBSQAIAAgASAAGyIHBEBBfyEGIAVB4ABqIgggAyAEEB9FBEAgASAAIAEbIQNBACEAIAVBgAFqIgFBAEEAQcAAECIaIAEgCEIgEA8aIAhBIBAJIAEgBEIgEA8aIAEgAkIgEA8aIAEg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ACABIAIgAxAiCwsAIAAgASACEMcBCw0AIAAgASACIAMQyAELBwAgABDJAQsJACAAIAEQywELCwAgACABIAIQzAELBQBBrgsLOgEDfiABKQAgIQIgASkAKCEDIAEpADAhBCAAIAEpADg3ABggACAENwAQIAAgAzcACCAAIAI3AABBAAs6AQN+IAEpAAghAiABKQAQIQMgASkAACEEIAAgASkAGDcAGCAAIAM3ABAgACACNwAIIAAgBDcAAEEAC3wBAX8CQAJAAkAgA0LAAFQNACADQkB8IgNCv////w9WDQAgAiACQUBrIgUgAyAEQQAQdkUNASAARQ0AIABBACADpxAMGgtBfyECIAFFDQEgAUIANwMAQX8PCyABBEAgASADNwMAC0EAIQIgAEUNACAAIAUgA6cQQhoLIAILcAECfyMAQRBrIgUkACAAIAVBCGogAEFAayACIAOnIgIQQiADIARBABB4GgJAIAUpAwhCwABSBEAgAQRAIAFCADcDAAsgAEEAIAJBQGsQDBpBfyEGDAELIAFFDQAgASADQkB9NwMACyAFQRBqJAAgBgsTACAAIAEgAiADIARBABB4GkEAC20BAX8jAEFAaiICJAAgAiABQiAQRxogAiACLQAAQfgBcToAACACIAItAB9BP3FBwAByOgAfIAAgAikDEDcAECAAIAIpAwg3AAggACACKQMANwAAIAAgAikDGDcAGCACQcAAEAkgAkFAayQAQQAL5woCD38nfiMAQYACayICJABBfyEIAkAgARBMDQAgAkHgAGoiAyABEJQBDQAgAxBsRQ0AQQAhCCACQQAgAigCrAEiAWs2AiQgAkEAIAIoAqgBIgNrNgIgIAJBACACKAKkASIJazYCHCACQQAgAigCoAEiBGs2AhggAkEAIAIoApwBIgprNgIUIAJBACACKAKYASIFazYCECACQQAgAigClAEiC2s2AgwgAkEAIAIoApABIgZrNgIIIAJBACACKAKMASIMazYCBCACQQEgAigCiAEiB2s2AgAgAiACEDUgAiACKAIEIg2sIhkgCkEBdKwiIn4gAjQCACIRIASsIhR+fCACKAIIIgSsIhsgBawiFX58IAIoAgwiBawiHiALQQF0rCIjfnwgAigCECIOrCIfIAasIhZ+fCACKAIUIgasIiQgDEEBdKwiJX58IAIoAhgiD6wiLiAH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IAIQPQ0AIAMgARAQIANBoAFqIgEgBSADEFUgA0HAAmoiAiABEFYgACACEEtBACEECyADQaAGaiQAIAQLZQEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABED0NACADQeADaiIBIAIQPQ0AIAMgARAQIANBoAFqIgEgBSADEBMgA0HAAmoiAiABEFYgACACEEtBACEECyADQaAGaiQAIAQLHQEBfyMAQaABayIBJAAgASAAED0gAUGgAWokAEULpQEBBn8jAEEQayIFQQA2AgxBfyEEIAIgA0EBa0sEfyABIAJBAWsiB2ohCEEAIQJBACEBQQAhBANAIAUgBSgCDCIGQQAgCCACay0AACIJQYABc0EBayAGQQFrIARBAWtxcUEIdkEBcSIGayACcXI2AgwgASAGciEBIAQgCXIhBCACQQFqIgIgA0cNAAsgACAHIAUoAgxrNgIAIAFB/wFxQQFrBUF/CwshAQF/IwBBIGsiASQAIAFBIBAZIAAgARCMASABQSBqJAALCwAgACABEIwBQQALcwEDfyMAQaAGayIDJABBfyEEAkAgA0GABWoiBSABEDQNACAFEE1FDQAgA0HgA2oiASACEDQNACABEE1FDQAgAyABEBAgA0GgAWoiASAFIAMQVSADQcACaiICIAEQViAAIAIQL0EAIQQLIANBoAZqJAAgBAtzAQN/IwBBoAZrIgMkAEF/IQQCQCADQYAFaiIFIAEQNA0AIAUQTUUNACADQeADaiIBIAIQNA0AIAEQTUUNACADIAEQECADQaABaiIBIAUgAxATIANBwAJqIgIgARBWIAAgAhAvQQAhBAsgA0GgBmokACAEC0ABAn8jAEGgAWsiASQAAkAgABBrRQ0AIAAQTA0AIAEgABA0DQAgARBNRQ0AIAEQbEEARyECCyABQaABaiQAIAILBgBBwP8AC7UCAgV/AX4jAEHwA2siBSQAIAVBAToADwJ/IAFBwP8ATQRAIAFBwABPBEAgAEFAaiEJIAOtIQpBwAAhBgNAIAYhByAFQdAAaiIGIARBwAAQLhogCARAIAYgCCAJakLAABAmGgsgBUHQAGoiBiACIAoQJhogBiAFQQ9qQgEQJhogBiAAIAhqEDEaIAUgBS0AD0EBajoADyAHIQggB0FAayIGIAFNDQALCyABQT9xIggEQCAFQdAAaiIBIARBwAAQ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ZABcjnj+aHy+ALWxPv/6KVUAmIIqAWD89gCXlz/+74U+ACA4nAAtp73/joWzAYNW0wC7s5b++qoO/9KjTgAlNJcAY00aAO6c1f/VwNEBSS5UABRBKQE2zk8AyYOS/qpvGP+xITL+qybL/073dADR3ZkAhYCyATosGQDJJzsBvRP8ADHl0gF1u3UAtbO4AQBy2wAwXpMA9Sk4AH0NzP70rXcALN0g/lTqFAD5oMYB7H7q/y9jqP6q4pn/ZrPYAOKNev96Qpn+tvWGAOPkGQHWOev/2K04/7Xn0gB3gJ3/gV+I/25+MwACqbf/B4Ji/kWwXv90BOMB2fKR/8qtHwFpASf/Lq9FAOQvOv/X4EX+zzhF/xD+i/8Xz9T/yhR+/1/VYP8JsCEAyAXP//EqgP4jIcD/+OXEAYEReAD7Z5f/BzRw/4w4Qv8o4vX/2UYl/qzWCf9IQ4YBksDW/ywmcABEuEv/zlr7AJXrjQC1qjoAdPTvAFydAgBmrWIA6YlgAX8xywAFm5QAF5QJ/9N6DAAihhr/28yIAIYIKf/gUyv+VRn3AG1/AP6piDAA7nfb/+et1QDOEv7+CLoH/34JBwFvKkgAbzTs/mA/jQCTv3/+zU7A/w5q7QG720wAr/O7/mlZrQBVGVkBovOUAAJ20f4hngkAi6Mu/11GKABsKo7+b/yO/5vfkAAz5af/Sfyb/150DP+YoNr/nO4l/7Pqz//FALP/mqSNAOHEaAAKIxn+0dTy/2H93v64ZeUA3hJ/AaSIh/8ez4z+kmHzAIHAGv7JVCH/bwpO/5NRsv8EBBgAoe7X/waNIQA11w7/KbXQ/+eLnQCzy93//7lxAL3irP9xQtb/yj4t/2ZACP9OrhD+hXVE/wBBoBULAQEAQcAVC7ABJuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQAQf8WC6zxARD9QF0AoGo/ADnTV/4M0roAWLx0/kHYAQD/yD0B2EKU/wD7XAAksuH/AAAA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AZGInAD8dan+keLuAO8XawBttbz/5nAx/kmq7f/nt+P/UNwUAMJrfwF/zWUALjTFAdKrJP9YA1r/OJeNAGC7//8qTsgA/kZGAfR9qADMRIoBfNdGAGZCyP4RNOQAddyP/sv4ewA4Eq7/upek/zPo0AGg5Cv/+R0ZAUS+PwANAAAAAP8AAAAA9QAAAAAAAPsAAAAAAAD9AAAAAPMAAAAABwAAAAAAAwAAAADzAAAAAAUAAAAAAAAAAAsAAAAAAAsAAAAA8wAAAAAAAP0AAAAAAP8AAAAAAwAAAAD1AAAAAAAAAA8AAAAAAP8AAAAA/wAAAAAHAAAAAAUAQayJAgsrAQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCgBB4IkCC1czTe0AkapW/zYmM//xgGX/KXlK/+xOmwCpl2n+nClIAMJmr//OomX/AAAAAAAAAAAbLnsBEqj9/9Ovl/7D22AAOHa+/v7R9f+ZZH7+6IEV/zW48v/HpN0AQeCKAgsBAQBBgIsCC/EG4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4K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"),A=I,J(b).then((I=>WebAssembly.instantiate(I,A))).then((function(A){g(A.instance)}),(A=>{e(`failed to asynchronously prepare wasm: ${A}`),U(A)})),{}}();function q(){function A(){l||(l=!0,B.calledRun=!0,n||(m(S),B.onRuntimeInitialized?.(),function(){if(B.postRun)for("function"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),N.unshift(A);var A;m(N)}()))}G>0||(function(){if(B.preRun)for("function"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),F.unshift(A);var A;m(F)}(),G>0||(B.setStatus?(B.setStatus("Running..."),setTimeout((function(){setTimeout((function(){B.setStatus("")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=P.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=P.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=P.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=P.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=P.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=P.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=P.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=P.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=P.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=P.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=P.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=P.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=P.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=P.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=P.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=P.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=P.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=P.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=P.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=P.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=P.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=P.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=P.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=P.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=P.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=P.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=P.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=P.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=P.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=P.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=P.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=P.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=P.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=P.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=P.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=P.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=P.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=P.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=P.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=P.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=P.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=P.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=P.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=P.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=P.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=P.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=P._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=P.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=P.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=P.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=P.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=P.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=P.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=P.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=P.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=P.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=P.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=P.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=P.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=P.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=P.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=P.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=P.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=P.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=P.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=P.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=P.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=P.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=P.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=P.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=P.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=P.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=P.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=P.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=P.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=P.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=P.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=P.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=P.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=P.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=P.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=P.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=P.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=P.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=P.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=P.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=P.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=P.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=P.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=P.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=P.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=P.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=P.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=P.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=P.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=P.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=P.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=P.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=P.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=P.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=P._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=P.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=P.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=P.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=P.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=P.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=P.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=P.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=P.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=P.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=P.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=P.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=P.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=P.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=P.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=P.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=P.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=P.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=P.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=P.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=P.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=P.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=P.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=P.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=P.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=P.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=P.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=P.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=P.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=P.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=P.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=P.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=P.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=P.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=P.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=P.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=P.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=P.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=P.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=P.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=P.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=P.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=P.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=P.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=P.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=P.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=P.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=P.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=P.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=P.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=P.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=P.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=P.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=P.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=P._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=P.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=P.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=P.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=P.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=P.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=P.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=P.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=P.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=P.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=P.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=P.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=P.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=P.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=P.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=P.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=P.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=P.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=P.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=P.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=P.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=P.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=P.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=P.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=P.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=P.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=P.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=P.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=P.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=P.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=P.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=P.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=P.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=P.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=P.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=P.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=P.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=P.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=P.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=P.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=P.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=P.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=P.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=P.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=P.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=P.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=P.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=P.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=P.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=P.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=P.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=P.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=P.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=P.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=P._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=P.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=P.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=P.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=P.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=P.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=P.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=P.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=P.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=P.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=P.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=P.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=P.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=P.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=P.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=P.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=P.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=P.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=P.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=P.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=P.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=P.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=P.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=P.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=P.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=P.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=P.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=P.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=P.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=P.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=P.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=P.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=P.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=P.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=P.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=P.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=P.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=P.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=P.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=P.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=P.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=P.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=P.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=P.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=P.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=P.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=P.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=P.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=P.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=P.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=P.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=P.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=P.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=P.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=P._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=P.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=P.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=P.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=P.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=P.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=P.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=P.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=P.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=P.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=P.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=P.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=P.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=P.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=P.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=P.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=P.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=P.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=P.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=P.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=P.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=P.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=P.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=P.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=P.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=P.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=P.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=P.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=P.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=P.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=P.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=P.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=P.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=P.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=P.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=P.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=P.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=P.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=P.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=P.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=P.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=P.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=P.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=P.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=P.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=P.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=P.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=P.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=P.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=P.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=P.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=P.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=P.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=P.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=P._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=P.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=P.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=P.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=P.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=P.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=P.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=P.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=P.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=P.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=P.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=P.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=P.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=P.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=P.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=P.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=P.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=P.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=P.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=P.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=P.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=P.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=P.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=P.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=P.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=P.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=P.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=P.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=P.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=P.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=P.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=P.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=P.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=P.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=P.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=P.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=P.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=P.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=P.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=P.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=P.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=P.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=P.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=P.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=P.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=P.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=P.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=P.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=P.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=P.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=P.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=P.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=P.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=P._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=P.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=P.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=P.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=P.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=P.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=P.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=P.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=P.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=P.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=P.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=P.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=P.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=P.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=P.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=P.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=P.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=P.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=P.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=P.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=P.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=P.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=P.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=P.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=P.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=P.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=P.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=P.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=P.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=P.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=P.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=P.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=P.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=P.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=P.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=P.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=P.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=P.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=P.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=P.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=P.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=P.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=P.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=P.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=P.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=P.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=P.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=P.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=P.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=P.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=P.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=P.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=P.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=P.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=P._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=P.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=P.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=P.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=P.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=P.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=P.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=P.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=P.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=P.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=P.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=P.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=P.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=P.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=P.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=P.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=P.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=P.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=P.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=P.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=P.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=P.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=P.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=P.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=P.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=P.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=P.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=P.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=P.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=P.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=P.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=P.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=P.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=P.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=P.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=P.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=P.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=P.Jh)(),B._randombytes_random=()=>(B._randombytes_random=P.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=P.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=P.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=P.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=P.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=P.Ph)(),B._randombytes_close=()=>(B._randombytes_close=P.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=P.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=P.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=P.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=P.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=P.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=P.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=P.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=P.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=P.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=P._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=P.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=P.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=P.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=P.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=P.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=P.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=P.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=P.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=P.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=P.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=P.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=P.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=P.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=P.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=P.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=P.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=P.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=P.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=P.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=P.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=P.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=P.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=P.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=P.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=P.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=P.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=P.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=P.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=P.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=P.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=P.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=P.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=P.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=P.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=P.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=P.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=P.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=P.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=P.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=P.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=P.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=P.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=P.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=P.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=P.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=P.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=P.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=P.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=P.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=P.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=P.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=P.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=P.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=P._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=P.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=P.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=P.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=P.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=P.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=P.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=P.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=P.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=P.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=P.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=P.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=P.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=P.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=P.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=P.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=P.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=P.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=P.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=P.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=P.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=P.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=P.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=P.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=P.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=P.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=P.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=P.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=P.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=P.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=P.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=P.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=P.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=P.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=P.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=P.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=P.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=P.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=P.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=P.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=P.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=P.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=P.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=P.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=P.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=P.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=P.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=P.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=P.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=P.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=P.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=P.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=P.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=P.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=P._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=P.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=P.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=P.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=P.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=P.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=P.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=P.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=P.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=P.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=P.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=P.jk)(A),B._malloc=A=>(B._malloc=P.kk)(A),B._free=A=>(B._free=P.lk)(A),B.setValue=function(A,I,g="i8"){switch(g.endsWith("*")&&(g="*"),g){case"i1":case"i8":y[A]=I;break;case"i16":h[A>>1]=I;break;case"i32":D[A>>2]=I;break;case"i64":U("to do setValue(i64) use WASM_BIGINT");case"float":p[A>>2]=I;break;case"double":w[A>>3]=I;break;case"*":f[A>>2]=I;break;default:U(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I="i8"){switch(I.endsWith("*")&&(I="*"),I){case"i1":case"i8":return y[A];case"i16":return h[A>>1];case"i32":return D[A>>2];case"i64":U("to do getValue(i64) use WASM_BIGINT");case"float":return p[A>>2];case"double":return w[A>>3];case"*":return f[A>>2];default:U(`invalid type for getValue: ${I}`)}},B.UTF8ToString=x,K=function A(){l||q(),l||(K=A)},B.preInit)for("function"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();q()})).catch((function(){return C.useBackupModule()})),I}"function"==typeof define&&define.amd?define(["exports"],I):"object"==typeof exports&&"string"!=typeof exports.nodeName?I(exports):A.libsodium=I(A.libsodium_mod||(A.commonJsStrict={}))}(this); diff --git a/scripts/clean.mjs b/scripts/clean.mjs index ea1c13474..04a609808 100644 --- a/scripts/clean.mjs +++ b/scripts/clean.mjs @@ -20,10 +20,7 @@ along with this program. If not, see . import fs from "fs/promises"; import { existsSync } from "fs"; import path from "path"; -import { findPackages, readConfig, runTasks } from "./utils.mjs"; - -const config = readConfig(); -const allPackages = await findPackages(config.projects); +import { allPackages, runTasks } from "./utils.mjs"; const tasks = []; for (const pkg of allPackages) {